WorkflowModelManager - グローバル
WorkflowModelManager スクリプトインクルードは、ワークフロー モデルを照会するメソッド、指定されたワークフロー履歴アイテム間の前後のステップ操作、アクティビティおよび移行固有の情報の履歴を照会するメソッドを提供します。
WorkflowModelManager スクリプトインクルードとのインタラクションは、ActivityHistoryRecord データオブジェクトを介して行われます。ActivityHistoryRecord オブジェクトは内部クラスであり、WorkflowModelManager との対話中にのみ使用されます。
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.playBack();
このとき、実行されたトランジションをロードするには playBack が必要です。これは、特定のアクティビティにロールバックするためにモデルを逆方向に歩く役割も果たします。
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.dump();WorkflowModelManager - WorkflowModelManager(文字列 contextId)
指定されたコンテキスト内に新しい WorkflowModelManager オブジェクト (コンストラクター) を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| contextId | 文字列 | WorkflowModelManager を作成するコンテキストの ID。 |
| タイプ | 説明 |
|---|---|
| アクティビティ履歴レコード | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
var model = new WorkflowModelManager('MyContextId');
WorkflowModelManager:getActivityHistoryRecordById(文字列 haRecordSysId)
引数で指定された wf_history.sys_id によってキャッシュされた履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | 目的のアクティビティ履歴 [wf_history] レコードのSys_id。 |
| タイプ | 説明 |
|---|---|
| アクティビティ履歴レコード | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
この例では、このメソッドを使用して指定された履歴アクティビティレコードを取得する方法を示します。
var model = new WorkflowModelManager('a71efa6345550110a86630cf9552f3af'); // The sys_id of the wf_context
model.getExecutedHistory();
var current_hist_obj = model.getActivityHistoryRecordById('2b1efa6345550110a86630cf9552f3bc'); // The sys_id of the desired record
gs.info(JSON.stringify(current_hist_obj));
出力:
{
"sys_id":"2b1efa6345550110a86630cf9552f3bc",
"index":"3",
"startTime":1643795456000,
"endTime":1643795456000,
"wfaId":"31bf2a05e7c133009a610558d2f6a968",
"wfaIsParent":{
},
"parent":"",
"wfaName":{
},
"adId":"db8c65aec0a8016501d00259bc7203a4",
"adName":{
},
"transitions":[
{
"sys_id":"e31efa6345550110a86630cf9552f3c0",
"ahrId":"2b1efa6345550110a86630cf9552f3bc",
"to":"39bf2a05e7c133009a610558d2f6a970",
"from":"31bf2a05e7c133009a610558d2f6a968",
"rolledBack":"false",
"rolledBackBy":""
},
{
"sys_id":"e71efa6345550110a86630cf9552f3c0",
"ahrId":"2b1efa6345550110a86630cf9552f3bc",
"to":"7dbf2a05e7c133009a610558d2f6a96b",
"from":"31bf2a05e7c133009a610558d2f6a968",
"rolledBack":"false",
"rolledBackBy":""
}
],
"rolledBackBy":"",
"ARRIVED":true,
"NOT_ARRIVED":false,
"joinFroms":[
],
"joinSatisfied":false,
"rollingBackBy":0
}
WorkflowModelManager - getAllTransitionedIntoActivity(オブジェクトの説明)
実行され、引数の sys_id で表されるアクティビティに移行した履歴アクティビティを取得します。
次のステータスは、ワークフローの履歴で実行された任意のActivityHistoryRecordsに関連付けられた移行でTOとして存在するhaRecordで表されたアクティビティに関連付けられたwf_activity.sys_idに基づいています。(これは、実行シーケンスでhaRecordの前に来るTO遷移のみを(時間別に)返す getPreviousByTransitionとは異なります)。戻り値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。戻り値は、このアクティビティの前に実行されたアクティビティを時間内に取得するために、 getPreviousByExecutedOrder を使用する実行履歴コレクション内のすべての移行に基づいています。
| 名前 | タイプ | 説明 |
|---|---|---|
| 説明 | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord JavaScript オブジェクトのアレイ。 |
WorkflowModelManager:getAllTransitionedIntoActivityId(文字列 haRecordSysId)
実行され、引数の sys_id で表されるアクティビティに移行した履歴アクティビティを取得します。 nextステータスは、ワークフローの履歴で実行された任意のActivityHistoryRecordsに関連付けられた移行のTOとして存在するhaRecordで表されたアクティビティに関連付けられたwf_activity.sys_idに基づいています。(これは、実行シーケンスでhaRecordの前に来るTO遷移のみを返す getPreviousByTransitionとは異なります(時間別)。戻り値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。
nextステータスは、ワークフローの履歴で実行された任意のActivityHistoryRecordsに関連付けられた移行のTOとして存在するhaRecordで表されたアクティビティに関連付けられたwf_activity.sys_idに基づいています。(これは、実行シーケンスでhaRecordの前に来るTO遷移のみを返す getPreviousByTransitionとは異なります(時間別)。戻り値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | アクティビティ履歴のsys_id (テーブル wf_history)。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord JavaScript オブジェクトのアレイが要求されました。 |
var model = new WorkflowModelManager('a143585c3b001000dada82c09ccf3d44');
model.getExecutedHistory();
var activity = model.begin;
gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);
while( activity != null){
gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);
var parents = model.getAllTransitionedIntoActivity(activity);
for( var i = 0; i < parents.length; i++ ){
gs.print(' --------------- parent activity: ' + parents[i].wfaName );
}
activity = model.getNextByExecutedOrder( activity );
}
WorkflowModelManager:getExecutedHistory( )
これは、 WorkflowModelManager オブジェクトを初期化するために呼び出す必要があるワーカーメソッドです。 WorkflowModelManager オブジェクトを初期化するプロセスで、 getExecutedHistory() は activityHistoryRecord データ オブジェクト配列 ( WorkflowModelManager クラスのメンバー) を作成して入力します。ほとんどの WorkflowModelManager メソッドは、 activityHistoryRecord 配列のサブセットを返します。その後、スクリプトは 1 つ以上の activityHistoryRecord メソッドを呼び出して、さらに作業を実行できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列アレイ | テーブル wf_history からのsys_idsの順序付けされたアレイ。クライアント コードが戻り値を使用する可能性は低いです。これは、後続のメソッド呼び出しで使用するために、このオブジェクトの内部的に保持されます。 |
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
WorkflowModelManager - getFinalExecutedActivityList( )
コンテキストによってwf_historyテーブルをクエリし、このオブジェクトの構築で設定されたコンテキストによって指定されたワークフローで実行されたすべてのアクティビティを取得します。
この関数は、新しいactivity_indexを使用してデータベースから順序が強制的に出されるように、各アクティビティがサーバー側を通過ActivityManager.java正確な順序で実行されたアクティビティのリストを生成します。この呼び出しでは全体像はわかりません。移行をロードしてマッピングする必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord javascript オブジェクトのアレイ。 |
WorkflowModelManager - getFinalExecutedActivityIdList( )
正常に実行され、関数が呼び出された時点までロールバックまたはスキップされていなかったすべてのアクティビティの wf_history.sys_ids のリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列アレイ | 実行されたアクティビティの wf_history.sys_id 値のアレイ。 |
var model = new WorkflowModelManager('ee3e0a053b101000dada82c09ccf3d7c');
model.getExecutedHistory();
var finals = model.getFinalExecutedActivityIdList();
gs.print(' EXECUTION PATH IDs --------------- : ' + finals.length);
for ( var x = 0; x < finals.length; x++ ) {
gs.print(finals[x] );
}
WorkflowModelManager:getNextByExecutedOrder(オブジェクト haRecord)
引数で指定されたアクティビティの直後に実行された履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haレコード | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
次の例は、 getNextByExecutedOrder() メソッドを使用して、指定されたアクティビティの後に実行された履歴アクティビティを取得する方法を示しています。
var model = new WorkflowModelManager('34451ec2cb200200d71cb9c0c24c9c66'); // Sys_id of the workflow context
model.getExecutedHistory();
var current_hist_obj = model.getActivityHistoryRecordById('0199483adba52200a6a2b31be0b8f562');// Sys_id of the current activity from wf_history table
var next_hist_obj = model.getNextByExecutedOrder(current_hist_obj);
gs.info(JSON.stringify(next_hist_obj));
出力:
{
"sys_id":"b2c5a06e07e0011094b4fe4f7c1ed049",
"index":"3",
"startTime":1640265864000,
"endTime":1640265864000,
"wfaId":"64d4e4aa07e0011094b4fe4f7c1ed060",
"wfaIsParent":{
},
"parent":"",
"wfaName":{
},
"adId":"1ca8d7cf0a0a0b265e9a000c2c08248c",
"adName":{
},
"transitions":[
{
"sys_id":"bac5a06e07e0011094b4fe4f7c1ed07d",
"ahrId":"b2c5a06e07e0011094b4fe4f7c1ed049",
"to":"e0d4acaa07e0011094b4fe4f7c1ed062",
"from":"64d4e4aa07e0011094b4fe4f7c1ed060",
"rolledBack":"false",
"rolledBackBy":""
}
],
"rolledBackBy":"",
"ARRIVED":true,
"NOT_ARRIVED":false,
"joinFroms":[
],
"joinSatisfied":false,
"rollingBackBy":0
}
WorkflowModelManager:getNextByExecutedOrderId(文字列 haRecordSysId)
引数で指定された wf_history.sys_id によってキャッシュされた履歴アクティビティを取得し、取得した JavaScript オブジェクトを使用して getNextByExecutedOrder() を呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | アクティビティ履歴のsys_id (テーブル wf_history)。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
model.getExecutedHistory();
var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
current.debugDump();
var results = model.getNextByExecutedOrderId(current.sys_id);
results.debugDump();
WorkflowModelManager:getNextByTransitionId(文字列 haRecordSysId)
引数で指定されたsys_idによって識別されたアクティビティの直後に実行された履歴アクティビティを取得します。
この関数は、指定された wf_history.sys_id に関連付けられたキャッシュ履歴レコードを取得し、 getNextByTransition を呼び出します。戻り値は、 haRecord が送信される前にどの移行が行われたかに基づいており、必ずしも haRecord の直前に実行されたアクティビティに基づいているわけではありません。このアクティビティより前に実行されたアクティビティを時間内に取得するには、 getNextByExecutedOrder を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | 目的のアクティビティ履歴 [wf_history] レコードのSys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord JavaScript オブジェクトのアレイ。 |
var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
model.getExecutedHistory();
model.playBack();
var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
current.debugDump();
var results = model.getNextByTransitionId(current.sys_id);
gs.print('COMPLETED NEXT' + results.length );
for(var i = 0; i < results.length; i++){
results[i].debugDump();
}
WorkflowModelManager:getPreviousByExecutedOrder(オブジェクト haRecord)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haレコード | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
WorkflowModelManager:getPreviousByExecutedOrderId(文字列 haRecordSysId)
引数で指定された wf_history.sys_id によってキャッシュされた履歴アクティビティを取得し、取得した JavaScript オブジェクトを使用して getPreviousByExecutedOrder() を呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | ワークフロー履歴システム ID (wf_history.sys_id) |
| タイプ | 説明 |
|---|---|
| アクティビティ履歴レコード | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
var model = new WorkflowModelManager('contextId');
model.getExecutedHistory();
var current = model.getActivityHistoryRecordById('wf_history.sys_id');
current.debugDump();
var results = model.getPreviousByExecutedOrderId(current.sys_id);
results.debugDump();
WorkflowModelManager:getPreviousByTransition(オブジェクト haRecord)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
次のステータスは、実行シーケンスで haRecord の前に来る任意の ActivityHistoryRecords に関連付けられた移行で TO として存在する haRecord で表されるアクティビティに関連付けられた wf_activity.sys_id に基づいています。(これは、実行シーケンスの指定されたhaRecordまでのすべてのTO遷移を返す getAllTransitionedIntoActivityとは異なります。戻り値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。戻り値は、haRecordが送信される前にどの移行が行われたかに基づいており、必ずしもhaRecordの直前に実行されたアクティビティに基づいているわけではありません。このアクティビティより前に実行されたアクティビティを時間内に取得するには、 getPreviousByExecutedOrder を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haレコード | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord JavaScript オブジェクトのアレイが要求されました。 |
WorkflowModelManager:getPreviousByTransitionId(文字列 haRecordSysId)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
nextステータスは、実行シーケンスで haRecord の前に来る任意の ActivityHistoryRecords に関連付けられた移行において、TO として存在する haRecord で表されるアクティビティに関連付けられたwf_activity.sys_idに基づいています。戻り値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。戻り値は、haRecordが集計される前にどの移行が行われたかに基づいており、必ずしもhaRecordの直前に実行されたアクティビティに基づいているわけではありません。このアクティビティの前に実行されたアクティビティを時間内に取得するには、 getPreviousByExecutedOrder() を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysID | 文字列 | アクティビティ履歴のSys_id。 テーブル:ワークフロー履歴 [wf_history] |
| タイプ | 説明 |
|---|---|
| オブジェクト | ActivityHistoryRecord JavaScript オブジェクトのアレイが要求されました。 |
次の例は、 getPreviousByTransitionId() メソッドを使用して ActivityHistoryRecord オブジェクトを取得する方法を示しています。
var w_history = new GlideRecord('wf_history');
w_history.addQuery('context.id', '089ebdad1b420110c97a40c6cc4bcbf7'); // Pass sys_id of record -> Requested Item / Change Request / Request, etc....
w_history.query();
if (w_history.next()) {
var model = new WorkflowModelManager(w_history.context); // Call sys_id of the workflow context
model.getExecutedHistory();
var previousObje_hist_obj = model.getPreviousByTransitionId(w_history.sys_id); // Sys_id of wf_history table
gs.info(JSON.stringify(previousObje_hist_obj));
}
出力:
[
{
"sys_id": "a40a92950721011094b4fe4f7c1ed05e",
"index": "1",
"startTime": 1644255752000,
"endTime": 1644255758000,
"wfaId": "28200e2a77873300b473455caa1061cd",
"wfaIsParent": {},
"parent": "",
"wfaName": {},
"adId": "3961a1da0a0a0b5c00ecd84822f70d85",
"adName": {},
"transitions": [
{
"sys_id": "060ad6950721011094b4fe4f7c1ed016",
"ahrId": "a40a92950721011094b4fe4f7c1ed05e",
"to": "24204e2a77873300b473455caa10611a",
"from": "28200e2a77873300b473455caa1061cd",
"rolledBack": "false",
"rolledBackBy": ""
}
],
"rolledBackBy": "",
"ARRIVED": true,
"NOT_ARRIVED": false,
"joinFroms": [],
"joinSatisfied": false,
"rollingBackBy": 0
}
]