使用可能なワークフロー・メトリック
EnsLib.Workflow.EngineOpens in a new tab クラスは、ワークフロー・ロールに関する統計を報告するメソッドを提供します。
ビジネス・メトリックを定義する際にこれらのメソッドを使用することで、ユーザがワークフローの進捗状況を追跡および分析できるようになります (詳細な手順は、"Ensemble プロダクションの開発" の “ビジネス・メトリックの定義” を参照してください。また、サンプルを紹介している “ワークフロー・サンプルの紹介” も参照してください)。
そのメソッドは以下のとおりです。
ClassMethod BamActiveTasks(pRole As %String) As %Integer
指定のワークフロー・ロールのアクティブなタスクの数を返します。 入力引数の pRole は、ワークフロー・ロールの構成名です。このメソッドは、このロールに割り当てられたタスクのリストを取得して、これらのタスクのうちまだ完了していないタスクを特定することで、アクティブなタスクの数を算出します。
ClassMethod BamActiveLoad(pRole As %String) As %Integer
指定のワークフロー・ロールのアクティブな負荷を示す値を返します。 入力引数の pRole は、ワークフロー・ロールの構成名です。このメソッドは、このワークフロー・ロールのアクティブなタスクの現在の数を取得して、その数とワークフロー・ロール定義内の Capacity プロパティの値を比較し、その比較結果をこのワークフロー・ロールの総合処理能力のパーセンテージとして提示することにより、アクティブな負荷を算出します。数式は以下のとおりです。
(ActiveTasks/Capacity)*100
ClassMethod BamCompletedTasks(pRole As %String,
                              pStart As %TimeStamp = "",
                              pEnd As %TimeStamp = "") As %Integer
指定のワークフロー・ロールの完了したタスクの数を返します。それぞれ以下の意味を持ちます。
- 
pRole は、ワークフロー・ロールの構成名です。 
- 
pStart と pEnd は、%TimeStampOpens in a new tab 形式 : yyyy-mm-dd で表されます。 
このメソッドは、このロールに割り当てられているタスクのリストを取得し、これらのタスクのうちステータスが [完了] になっているタスクを特定することで、完了したタスクの数を算出します。BamCompletedTasks() は、pStart と pEnd で指定されている期間内に開始したタスクのみを考慮対象とします。pEnd 時間が経過しているタスクは完了しているものとなります。
ClassMethod BamTasksWithStatus(pRole As %String,
                               pStatus As %String,
                               pStart As %TimeStamp = "",
                               pEnd As %TimeStamp = "") As %Integer
指定のワークフロー・ロールに特定のステータスのあるタスクの数を返します。それぞれ以下の意味を持ちます。
- 
pRole は、ワークフロー・ロールの構成名です。 
- 
pStatus は、ロールのステータスを表す以下のいずれかの文字列です。 - 
[未割り当て] 
- 
[割り当て済み] 
- 
[破棄] 
- 
[取り消し] 
- 
[完了] 
 
- 
- 
pStart と pEnd は、%TimeStampOpens in a new tab 形式 : yyyy-mm-dd で表されます。 
このメソッドは、そのロールに割り当てられているタスクのリストを取得し、これらのタスクのうち指定されたステータスに現在なっているタスクの数を特定します。BamTasksWithStatus() は、pStart と pEnd で指定されている期間内に開始したタスクのみを考慮対象とします。pEnd 時間が経過したタスクは、その理由にかかわらず、完了しているものとなります。
目的のステータスが Completed である場合は、BamCompletedTasks() を使用するほうが簡単です。
ClassMethod BamAvgTaskTime(pRole As %String,
                           pStart As %TimeStamp = "",
                           pEnd As %TimeStamp = "") As %Integer
指定のワークフロー・ロールで完了したタスクの平均存続時間 (秒単位) を返します。それぞれ以下の意味を持ちます。
- 
pRole は、ワークフロー・ロールの構成名です。 
- 
pStart と pEnd は、%TimeStampOpens in a new tab 形式 : yyyy-mm-dd で表されます。 
このメソッドは、pStart と pEnd で指定されている期間内に開始したタスクのみを考慮対象とします。pEnd 時間が経過しているタスクは完了しているものとなります。
ClassMethod BamMinTaskTime(pRole As %String,
                           pStart As %TimeStamp = "",
                           pEnd As %TimeStamp = "") As %Integer
指定のワークフロー・ロールで完了したタスクの最短存続時間 (秒単位) を返します。それぞれ以下の意味を持ちます。
- 
pRole は、ワークフロー・ロールの構成名です。 
- 
pStart と pEnd は、%TimeStampOpens in a new tab 形式 : yyyy-mm-dd で表されます。 
このメソッドは、pStart と pEnd で指定されている期間内に開始したタスクのみを考慮対象とします。pEnd 時間が経過しているタスクは完了しているものとなります。
ClassMethod BamMaxTaskTime(pRole As %String,
                           pStart As %TimeStamp = "",
                           pEnd As %TimeStamp = "") As %Integer
指定のワークフロー・ロールで完了したタスクの最長存続時間 (秒単位) を返します。それぞれ以下の意味を持ちます。
- 
pRole は、ワークフロー・ロールの構成名です。 
- 
pStart と pEnd は、%TimeStampOpens in a new tab 形式 : yyyy-mm-dd で表されます。 
このメソッドは、pStart と pEnd で指定されている期間内に開始したタスクのみを考慮対象とします。pEnd 時間が経過しているタスクは完了しているものとなります。
