ActivityHistoryRecord - グローバル
ActivityHistoryRecord API には、WorkflowModelManager オブジェクトとの対話を容易にするメソッドが用意されています。これは、 WorkflowModelManager クラスのメンバーであるデータ オブジェクトです。
この API は基本的に、アクティビティ履歴 [wf_history] テーブルの Glide レコードからのデータのコピーです。このクラスにもいくつかのヘルパー メソッドが定義されています。このクラスの単純なデータ要素にアクセサーまたはミューテーターはありません。
ActivityHistoryRecord - addArrivedActivityToJoin(文字列 アレイ activityIds)
既知の ID の arrivedState を true に変更します。
このメソッドは、既知の ID の arrivedState を trueに変更すると直ちに、結合が満たされるかどうかをテストして確認します。満たされる場合、モデルウォークを続行できます。満たされない場合は、次の適切な移行に進む必要があります。これは再生時に、結合への予期される wf_activities フローとして呼び出されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| activityIds | 文字列アレイ | 結合に向かう wf_activity.sys_ids のアレイ |
| タイプ | 説明 |
|---|---|
| なし |
ActivityHistoryRecord - addJoinFromActivityIds(文字列 アレイ activityIds)
この結合を通過することが予想されるすべての予期される wf_activity sys_ids をシードし、その arriveState を false に設定します。
予期される各アクティビティは結合のこのインスタンスに移行するため、状態は true に戻ります。このメソッドは、メモリ内にキャッシュされたモデルを構築する一環として呼び出され、再生中は呼び出されません。
| 名前 | タイプ | 説明 |
|---|---|---|
| activityIds | 文字列アレイ | 結合に向かう wf_activity.sys_ids のアレイ |
| タイプ | 説明 |
|---|---|
| なし |
ActivityHistoryRecord - addTransition(オブジェクト InTransition)
モデルが _getExecutedTransitions() によってキャッシュされると、このメソッドは、このアクティビティを .to アクティビティに移行したトランジションを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| InTransition | オブジェクト | このアクティビティを追加する ExecutedTransition Javascript オブジェクト |
| タイプ | 説明 |
|---|---|
| なし |
ActivityHistoryRecord - debugDump( )
デバッグ情報を出力します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
次のコード例は、このメソッドの使用方法を示しています。ベースインスタンスの最も古いワークフロー履歴レコードを使用します。
// These are associated with the Change Request - Normal workflow for CHG0000037.
var wfhGR = new GlideRecord ('wf_history');
wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
wfhGR.addQuery('context.table', 'change_request');
wfhGR.orderBy ('activity_index');
wfhGR.query();
while (wfhGR.next()) {
var script_name = 'AHR';
//
// Acquire the execution history of the workflow's activities.
// Do this just once while processing the first activity.
if(wfhGR.activity_index == 0) {
var model = new WorkflowModelManager( wfhGR.context );
model.getExecutedHistory();
}
//
// Access a hash of ActivityHistoryRecord javascript objects,
// hashed by the sys_id of the wf_history record.
// There will be one ActivityHistoryRecord for each activity.
var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
//
// Use ActivityHistoryRecord methods to display selected values
gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
gs.log('debugDump START', script_name);
ActivityHistoryRecord.debugDump();
gs.log('debugDump END', script_name);
gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
}
出力:
[0:00:00.133] Script completed in scope global: script
Script execution history and recovery available here
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57a History INDEX:0 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Begin WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76 WF Activity DEF NAME:Begin Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57a
*** Script: History INDEX: 0
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 0
*** Script: WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Begin
*** Script: WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
*** Script: WF Activity DEF NAME: Begin
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57d History INDEX:1 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Change moves to Assess WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035 WF Activity DEF NAME:Wait for condition Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57d
*** Script: History INDEX: 1
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 1
*** Script: WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Change moves to Assess
*** Script: WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
*** Script: WF Activity DEF NAME: Wait for condition
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:3e28c4b6dba52200a6a2b31be0b8f57e History INDEX:2 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Requested WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5 WF Activity DEF NAME:Approval Action Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
*** Script: History INDEX: 2
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 2
*** Script: WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Requested
*** Script: WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
*** Script: WF Activity DEF NAME: Approval Action
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:0d38c4b6dba52200a6a2b31be0b8f5cc History INDEX:3 History START TIME:1585659881000 History END TIME:1585659891000 WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26 WF Activity NAME:Technical approvals WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f WF Activity DEF NAME:Approval - Group Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
*** Script: History INDEX: 3
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 3
*** Script: WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
*** Script: WF Activity NAME: Technical approvals
*** Script: WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
*** Script: WF Activity DEF NAME: Approval - Group
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:c538c4b6dba52200a6a2b31be0b8f5ce History INDEX:4 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b WF Activity NAME:Check if Change is "On hold" WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e WF Activity DEF NAME:If Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: c538c4b6dba52200a6a2b31be0b8f5ce
*** Script: History INDEX: 4
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 4
*** Script: WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
*** Script: WF Activity NAME: Check if Change is "On hold"
*** Script: WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
*** Script: WF Activity DEF NAME: If
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:cd3808b6dba52200a6a2b31be0b8f501 History INDEX:5 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:e633b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Move to Authorize WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c WF Activity DEF NAME:Set Values Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: cd3808b6dba52200a6a2b31be0b8f501
*** Script: History INDEX: 5
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 5
*** Script: WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Move to Authorize
*** Script: WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
*** Script: WF Activity DEF NAME: Set Values
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
ActivityHistoryRecord - doesJoinContainActivity( )
この履歴レコードにシードされると見なされる受信した wf_activity sys_id をテストします。この結合を介して行われるアクティビティであるかどうかを調べるためにテストされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | この結合を介して行われるアクティビティの場合は true です。 |
ActivityHistoryRecord - getLogString( )
履歴レコードからログ文字列を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ログ文字列 |
次のコード例は、このメソッドの使用方法を示しています。ベースインスタンスの最も古いワークフロー履歴レコードを使用します。
// These are associated with the Change Request - Normal workflow for CHG0000037.
var wfhGR = new GlideRecord ('wf_history');
wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
wfhGR.addQuery('context.table', 'change_request');
wfhGR.orderBy ('activity_index');
wfhGR.query();
while (wfhGR.next()) {
var script_name = 'AHR';
//
// Acquire the execution history of the workflow's activities.
// Do this just once while processing the first activity.
if(wfhGR.activity_index == 0) {
var model = new WorkflowModelManager( wfhGR.context );
model.getExecutedHistory();
}
//
// Access a hash of ActivityHistoryRecord javascript objects,
// hashed by the sys_id of the wf_history record.
// There will be one ActivityHistoryRecord for each activity.
var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
//
// Use ActivityHistoryRecord methods to display selected values
gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
gs.log('debugDump START', script_name);
ActivityHistoryRecord.debugDump();
gs.log('debugDump END', script_name);
gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
}
出力:
[0:00:00.133] Script completed in scope global: script
Script execution history and recovery available here
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57a History INDEX:0 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Begin WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76 WF Activity DEF NAME:Begin Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57a
*** Script: History INDEX: 0
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 0
*** Script: WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Begin
*** Script: WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
*** Script: WF Activity DEF NAME: Begin
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57d History INDEX:1 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Change moves to Assess WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035 WF Activity DEF NAME:Wait for condition Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57d
*** Script: History INDEX: 1
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 1
*** Script: WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Change moves to Assess
*** Script: WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
*** Script: WF Activity DEF NAME: Wait for condition
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:3e28c4b6dba52200a6a2b31be0b8f57e History INDEX:2 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Requested WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5 WF Activity DEF NAME:Approval Action Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
*** Script: History INDEX: 2
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 2
*** Script: WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Requested
*** Script: WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
*** Script: WF Activity DEF NAME: Approval Action
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:0d38c4b6dba52200a6a2b31be0b8f5cc History INDEX:3 History START TIME:1585659881000 History END TIME:1585659891000 WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26 WF Activity NAME:Technical approvals WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f WF Activity DEF NAME:Approval - Group Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
*** Script: History INDEX: 3
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 3
*** Script: WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
*** Script: WF Activity NAME: Technical approvals
*** Script: WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
*** Script: WF Activity DEF NAME: Approval - Group
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:c538c4b6dba52200a6a2b31be0b8f5ce History INDEX:4 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b WF Activity NAME:Check if Change is "On hold" WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e WF Activity DEF NAME:If Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: c538c4b6dba52200a6a2b31be0b8f5ce
*** Script: History INDEX: 4
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 4
*** Script: WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
*** Script: WF Activity NAME: Check if Change is "On hold"
*** Script: WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
*** Script: WF Activity DEF NAME: If
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:cd3808b6dba52200a6a2b31be0b8f501 History INDEX:5 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:e633b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Move to Authorize WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c WF Activity DEF NAME:Set Values Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: cd3808b6dba52200a6a2b31be0b8f501
*** Script: History INDEX: 5
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 5
*** Script: WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Move to Authorize
*** Script: WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
*** Script: WF Activity DEF NAME: Set Values
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
ActivityHistoryRecord - getSatisfiedJoinActivities( )
既に実行された Join アクティビティに移行する履歴レコードの sys_ids を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列アレイ | この Join アクティビティに移行する履歴レコードの sys_id のアレイ。 |
ActivityHistoryRecord - getTransitionCount( )
このアクティビティの移行回数を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 番号 | このアクティビティからの移行の数 |
次のコード例は、このメソッドの使用方法を示しています。ベースインスタンスの最も古いワークフロー履歴レコードを使用します。
// These are associated with the Change Request - Normal workflow for CHG0000037.
var wfhGR = new GlideRecord ('wf_history');
wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
wfhGR.addQuery('context.table', 'change_request');
wfhGR.orderBy ('activity_index');
wfhGR.query();
while (wfhGR.next()) {
var script_name = 'AHR';
//
// Acquire the execution history of the workflow's activities.
// Do this just once while processing the first activity.
if(wfhGR.activity_index == 0) {
var model = new WorkflowModelManager( wfhGR.context );
model.getExecutedHistory();
}
//
// Access a hash of ActivityHistoryRecord javascript objects,
// hashed by the sys_id of the wf_history record.
// There will be one ActivityHistoryRecord for each activity.
var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
//
// Use ActivityHistoryRecord methods to display selected values
gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
gs.log('debugDump START', script_name);
ActivityHistoryRecord.debugDump();
gs.log('debugDump END', script_name);
gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
}
出力:
[0:00:00.133] Script completed in scope global: script
Script execution history and recovery available here
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57a History INDEX:0 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Begin WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76 WF Activity DEF NAME:Begin Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57a
*** Script: History INDEX: 0
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 0
*** Script: WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Begin
*** Script: WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
*** Script: WF Activity DEF NAME: Begin
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:a228c4b6dba52200a6a2b31be0b8f57d History INDEX:1 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Change moves to Assess WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035 WF Activity DEF NAME:Wait for condition Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: a228c4b6dba52200a6a2b31be0b8f57d
*** Script: History INDEX: 1
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 1
*** Script: WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Change moves to Assess
*** Script: WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
*** Script: WF Activity DEF NAME: Wait for condition
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:3e28c4b6dba52200a6a2b31be0b8f57e History INDEX:2 History START TIME:1585659881000 History END TIME:1585659881000 WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f WF Activity NAME:Requested WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5 WF Activity DEF NAME:Approval Action Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
*** Script: History INDEX: 2
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659881000
*** Script: History INDEX: 2
*** Script: WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
*** Script: WF Activity NAME: Requested
*** Script: WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
*** Script: WF Activity DEF NAME: Approval Action
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:0d38c4b6dba52200a6a2b31be0b8f5cc History INDEX:3 History START TIME:1585659881000 History END TIME:1585659891000 WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26 WF Activity NAME:Technical approvals WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f WF Activity DEF NAME:Approval - Group Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
*** Script: History INDEX: 3
*** Script: History START TIME: 1585659881000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 3
*** Script: WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
*** Script: WF Activity NAME: Technical approvals
*** Script: WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
*** Script: WF Activity DEF NAME: Approval - Group
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:c538c4b6dba52200a6a2b31be0b8f5ce History INDEX:4 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b WF Activity NAME:Check if Change is "On hold" WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e WF Activity DEF NAME:If Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: c538c4b6dba52200a6a2b31be0b8f5ce
*** Script: History INDEX: 4
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 4
*** Script: WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
*** Script: WF Activity NAME: Check if Change is "On hold"
*** Script: WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
*** Script: WF Activity DEF NAME: If
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
AHR: Log String [HISTORY RECORD: History ID:cd3808b6dba52200a6a2b31be0b8f501 History INDEX:5 History START TIME:1585659891000 History END TIME:1585659891000 WF Activity ID:e633b949cb020200d71cb9c0c24c9c20 WF Activity NAME:Move to Authorize WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c WF Activity DEF NAME:Set Values Transition Count: 1 Is Turnstile (loop) : false Is Join: false]
AHR: debugDump START
*** Script:
*** Script: WF HISTORY RECORD:
*** Script: History ID: cd3808b6dba52200a6a2b31be0b8f501
*** Script: History INDEX: 5
*** Script: History START TIME: 1585659891000
*** Script: History END TIME: 1585659891000
*** Script: History INDEX: 5
*** Script: WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
*** Script: WF Activity NAME: Move to Authorize
*** Script: WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
*** Script: WF Activity DEF NAME: Set Values
*** Script: Transition Count: 1
*** Script: Roll Back Originator:
*** Script: Is Turnstile (loop): false
*** Script: Is Join: false
AHR: debugDump END
AHR: Turnstile? [false]
AHR: Transition Count [1]
ActivityHistoryRecord - getUnSatisfiedJoinActivities( )
結合がまだ待機しているこの Join アクティビティに移行する履歴レコードの sys_id を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列アレイ | この Join アクティビティに移行する履歴レコードの sys_id のアレイ。 |
ActivityHistoryRecord - isARollback( )
このアクティビティがロールバックアクティビティの 1 つかどうかを決定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | アクティビティがロールバックアクティビティの 1 つであるかどうかを示すフラグ。 有効な値:
|
ActivityHistoryRecord - isIdADestination(文字列 ahrSys_id)
渡された sys_id が、ActivityHistoryRecord のインスタンスに関連付けられているいずれかの移行の宛先かどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ahrSys_id | 文字列 | テーブル wf_history のアクティビティ履歴 sys_id |
| タイプ | 説明 |
|---|---|
| ブーリアン | 渡された sys_id がいずれかの移行の宛先である場合は true。 |
ActivityHistoryRecord - isJoin( )
このアクティビティが結合であるかどうかを判定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | アクティビティが「結合」の場合は true。 |
ActivityHistoryRecord - isJoinSatisfied( )
arriveState の値を調べます。
移行の sys_id への移行が、結合であるアクティビティを指している場合は再生中に呼び出されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 結合が満たされている場合は true。 |
ActivityHistoryRecord - isJoinWaitingForActivity(文字列 アレイ activityIds)
この履歴レコードにシードされると見なされる受信した wf_activity sys_id をテストします。
そうであれば、それが既に完了しているかどうかをテストします。完了している場合、この結合はこのアクティビティで待機しておらず、待機中のものをさらに下流で探す必要があります。このテストは、モデルが連結されているときに順番に呼び出されるため、ロールバックやループのインスタンスで想定されます。sys_id がここにあり、フラグが true である場合、この待機中の結合はさらにシーケンスの上方になります。結合の履歴レコードが履歴テーブルから削除されると、このような確認が必要になるため、レコードが対応する履歴テーブルに一致することなく移行テーブルに存在する可能性があります。ただし、依然として以前に実行された同じ結合のインスタンスに対する適切な一致となります。
| 名前 | タイプ | 説明 |
|---|---|---|
| activityIds | 文字列アレイ | 結合に向かう wf_activity.sys_ids のアレイ |
| タイプ | 説明 |
|---|---|
| ブーリアン | アクティビティが既に終了している場合は true。 |
ActivityHistoryRecord - isRolledBack( )
このワークフローがロールバックされたかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | このワークフローがロールバックされた場合は true。 |
ActivityHistoryRecord - isTurnstile( )
現在のアクティビティがターンスタイルかどうかを決定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブール | アクティビティが ターンスタイルかどうかを示すフラグ。 有効な値:
|
次のコード例は、このメソッドを使用してターンスタイルを検出する方法を示しています。これは、[ ロールバック] ワークフローアクティビティにあるワークフローに基づいています。このスクリプトの出力を確認するには、要求アイテム (RITM) フォームで [ワークフローを表示] しているときに、[ワークフローアクティビティ履歴] タブを調べます。
var wfhGR = new GlideRecord ('wf_history');
wfhGR.addQuery ('context.id','cc45480d2f9b8110b99eb2e72799b6f9'); // sys_id of the RITM
wfhGR.addQuery ('context.table','sc_req_item'); // Table for the RITM
wfhGR.orderBy ('activity_index');
wfhGR.query();
var turnstile_count = 0;
while (wfhGR.next()) {
var script_name = 'AHR';
//
// Acquire the execution history of the workflow's activities.
// Do this just once while processing the first activity.
if(wfhGR.activity_index == 0) {
var model = new WorkflowModelManager(wfhGR.context);
model.getExecutedHistory();
}
//
// Access a hash of ActivityHistoryRecord javascript objects,
// hashed by the sys_id of the wf_history record.
// There will be one ActivityHistoryRecord for each activity.
var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
//
// Use ActivityHistoryRecord methods to display turnstile activities.
if(ActivityHistoryRecord.isTurnstile()) {
var log_string = ActivityHistoryRecord.getLogString();
var name_start = log_string.indexOf('WF Activity NAME:');
var name_end = log_string.indexOf('WF Activity DEF ID:');
var name = log_string.substring(name_start, name_end).trim();
gs.log(name + ' Activity ' + wfhGR.activity_index + ' is a turnstile.', script_name);
turnstile_count++;
}
}
gs.log ('Turnstile activities detected: ' + turnstile_count, script_name);
出力:
AHR: WF Activity NAME:Prevent infinite loops Activity 8 is a turnstile.
AHR: WF Activity NAME:Prevent infinite loops Activity 13 is a turnstile.
AHR: WF Activity NAME:Prevent infinite loops Activity 18 is a turnstile.
AHR: WF Activity NAME:Prevent infinite loops Activity 23 is a turnstile.
AHR: Turnstile activities detected: 4