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 | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
var model = new WorkflowModelManager('MyContextId');
WorkflowModelManager - getActivityHistoryRecordById(文字列 haRecordSysId)
引数で指定された wf_history.sys_id によってキャッシュされる履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysId | 文字列 | 目的のアクティビティ履歴 [wf_history] レコードの sys_id。 |
| タイプ | 説明 |
|---|---|
| ActivityHistoryRecord | 要求された 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(オブジェクト description)
実行されて引数内の sys_id で表されるアクティビティに移行した履歴アクティビティを取得します。
next ステータスは、ワークフローの履歴内で実行された ActivityHistoryRecords に関連付けられた移行の TO として存在する、haRecord 内で示されたアクティビティに関連する wf_activity.sys_id に基づいています。(これは getPreviousByTransition とは異なり、時間的な実行順序で haRecord の前に来る TO 移行のみを返します。) リターン値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。リターン値は、移行する実行済み履歴コレクション内のすべての移行に基づいて決まります。このアクティビティの前に実行されたアクティビティを取得するには、getPreviousByExecutedOrder を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| description | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | ActivityHistoryRecord JavaScript オブジェクトのアレイ。 |
WorkflowModelManager - getAllTransitionedIntoActivityId(文字列 haRecordSysId)
実行されて引数内の sys_id で表されるアクティビティに移行した履歴アクティビティを取得します。 next ステータスは、ワークフローの履歴内で実行された ActivityHistoryRecords に関連付けられた移行の TO として存在する、haRecord 内で示されるアクティビティに関連付けられた wf_activity.sys_id に基づいています。(これは getPreviousByTransition とは異なり、時間的な実行順序で haRecord の前に来る TO 移行のみを返します。) リターン値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。
next ステータスは、ワークフローの履歴内で実行された ActivityHistoryRecords に関連付けられた移行の TO として存在する、haRecord 内で示されるアクティビティに関連付けられた wf_activity.sys_id に基づいています。(これは getPreviousByTransition とは異なり、時間的な実行順序で haRecord の前に来る TO 移行のみを返します。) リターン値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysId | 文字列 | アクティビティ履歴 (テーブル wf_history) の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | 要求された 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_id の順序付きアレイ。クライアントコードがリターン値を使用することはほとんどありません。クライアントコードはこのオブジェクトに内部的に保持され、その後のメソッド呼び出しで使用されます。 |
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)
引数で指定されたアクティビティの直後に実行された履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecord | オブジェクト | 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 | 文字列 | アクティビティ履歴 (テーブル wf_history) の sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求された 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)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecord | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト |
| タイプ | 説明 |
|---|---|
| オブジェクト | 要求された ActivityHistoryRecord JavaScript オブジェクト。 |
WorkflowModelManager - getPreviousByExecutedOrderId(文字列 haRecordSysId)
引数で指定された wf_history.sys_id によってキャッシュされた履歴アクティビティを取得し、取得した JavaScript オブジェクトを使用して getPreviousByExecutedOrder() を呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecordSysId | 文字列 | ワークフローの履歴Sys ID (wf_history.sys_id) |
| タイプ | 説明 |
|---|---|
| ActivityHistoryRecord | 要求された 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)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
next ステータスは、実行シーケンス内で haRecord の前に来る任意の ActivityHistoryRecords に関連付けられた移行の TO として存在する、haRecord 内で示されるアクティビティに関連付けられた wf_activity.sys_id に基づいています。(これは、実行順序内で haRecord の前に来るすべての TO 移行を返す getAllTransitionedIntoActivity とは異なります。) リターン値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecords のコレクションです。リターン値は送信された haRecord の前にどの移行が行われたかに基づいて決まるものであり、haRecord の直前に実行されたアクティビティに基づいて決まるわけではありません。このアクティビティよりも先に実行されたアクティビティを取得するには、getPreviousByExecutedOrder を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| haRecord | オブジェクト | ActivityHistoryRecord JavaScript オブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクトアレイ | 要求された ActivityHistoryRecord JavaScript オブジェクトのアレイ。 |
WorkflowModelManager - getPreviousByTransitionId(文字列 haRecordSysId)
引数で指定されたアクティビティの直前に実行された履歴アクティビティを取得します。
next ステータスは、実行シーケンス内で haRecord の前に来る任意の ActivityHistoryRecords に関連付けられた移行の TO として存在する、haRecord 内で示されるアクティビティに関連付けられた wf_activity.sys_id に基づいています。リターン値は、引数 haRecord.wfaId を TO アクティビティとして識別する ActivityHistoryRecord のコレクションです。リターン値は送信された 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
}
]