ActivityHistoryRecord : global
L’API ActivityHistoryRecord fournit des méthodes qui facilitent l’interaction avec un objet WorkflowModelManager. Il s’agit d’un objet de données membre de la classe WorkflowModelManager .
Cette API est essentiellement une copie des données d’un enregistrement Glide sur la table Historique des activités [wf_history]. Certaines méthodes d’assistance sont également définies pour cette classe. Il n’y a pas d’accesseurs ou de mutateurs pour les éléments de données simples de cette classe.
ActivityHistoryRecord : addArrivedActivityToJoin(Tableau de chaînes activityIds)
Modifie la valeur arrivedState des ID déjà connus en vrai.
Dès que cette méthode change l’ID arrivedState connu en vrai, elle teste si la jointure est satisfaite. Si c’est le cas, la marche du modèle peut continuer ; si ce n’est pas le cas, elle doit continuer jusqu’à la transition appropriée suivante. Ceci est appelé pendant la lecture, comme prévu wf_activities flux vers la jointure.
| Nom | Type | Description |
|---|---|---|
| activityIds | Tableau de chaînes | Tableau des wf_activity.sys_ids qui se dirigent vers la jonction. |
| Type | Description |
|---|---|
| nul |
ActivityHistoryRecord : addJoinFromActivityIds (tableau de chaînes activityIds)
Alimente toutes les sys_ids de wf_activity attendues qui devraient passer par cette jointure et définit leur arriveState = false.
Cet état est basculé sur vrai , car chaque activité attendue effectue la transition vers cette instance de la jointure. Cette méthode est appelée dans le cadre de la construction du modèle mis en cache en mémoire et n’est pas appelée pendant la lecture.
| Nom | Type | Description |
|---|---|---|
| activityIds | Tableau de chaînes | Tableau des wf_activity.sys_ids qui se dirigent vers la jonction. |
| Type | Description |
|---|---|
| nul |
ActivityHistoryRecord : addTransition(Objet InTransition)
Comme le modèle est mis en cache par _getExecutedTransitions(), cette méthode ajoute des transitions qui sont passées de cette activité vers l’activité .to.
| Nom | Type | Description |
|---|---|---|
| En transition | Objet | ExecutedTransition Objet JavaScript à ajouter à cette activité. |
| Type | Description |
|---|---|
| nul |
ActivityHistoryRecord : debugDump( )
Imprime les informations de débogage.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
L’exemple de code suivant montre comment utiliser cette méthode. Elle utilise les enregistrements d’historique de workflow les plus anciens d’une instance de base.
// 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 );
}
Sortie :
[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( )
Teste la wf_activity sys_id entrante, présumée être amorcée dans cet enregistrement d’historique. Si c’est le cas, il est testé pour voir s’il s’agit d’une activité qui proviendrait de cette jointure.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai, s’il s’agit d’une activité qui proviendrait de cette jointure. |
ActivityHistoryRecord : getLogString( )
Renvoie la chaîne de journal de l’enregistrement de l’historique.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | La chaîne de journal. |
L’exemple de code suivant montre comment utiliser cette méthode. Elle utilise les enregistrements d’historique de workflow les plus anciens d’une instance de base.
// 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 );
}
Sortie :
[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 : getSatisfied JoinActivities( )
Renvoie le sys_ids des enregistrements d’historique qui passent à cette activité de jointure et qui sont déjà arrivés.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau de chaînes | Tableau des sys_ids des enregistrements de l’historique qui passent à cette activité de jointure. |
ActivityHistoryRecord : getTransitionCount( )
Renvoie le nombre de transitions pour cette activité.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Numéro | Nombre de transitions à partir de cette activité. |
L’exemple de code suivant montre comment utiliser cette méthode. Elle utilise les enregistrements d’historique de workflow les plus anciens d’une instance de base.
// 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 );
}
Sortie :
[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 : getUnSatisfied JoinActivities( )
Renvoie le sys_ids des enregistrements d’historique qui effectuent la transition vers cette activité de jointure que la jointure attend toujours.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau de chaînes | Tableau des sys_ids des enregistrements de l’historique qui passent à cette activité de jointure. |
ActivityHistoryRecord : isARollback( )
Détermine si cette activité est l’une des activités de restauration.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’activité fait partie des activités de restauration. Valeurs valides :
|
ActivityHistoryRecord : isIdADestination(chaîne ahrSys_id)
Détermine si le sys_id transmis est une destination de l’une des transitions associées à cette instance d’un ActivityHistoryRecord.
| Nom | Type | Description |
|---|---|---|
| ahrSys_id | Chaîne | Historique des activités sys_id à partir de la table wf_history. |
| Type | Description |
|---|---|
| Booléen | Vrai, si la sys_id transmise est une destination de l’une des transitions. |
ActivityHistoryRecord : isJoin( )
Détermine si cette activité est une jointure.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai, si l’activité est « Rejoindre ». |
ActivityHistoryRecord : isJoinSatisfied ( )
Examine la valeur de arriveState.
Appelé pendant la lecture lorsque la transition vers sys_id d’une transition pointe vers une activité qui est une jointure.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai, si la jointure est satisfaite. |
ActivityHistoryRecord : isJoinWaitingForActivity(Tableau de chaînes activityIds)
Teste la wf_activity sys_id entrante, présumée être amorcée dans cet enregistrement d’historique.
Si c’est le cas, il est testé pour voir s’il est déjà passé ; Si c’est le cas, cette jointure n’attend pas cette activité et doit chercher plus en aval celle qui attend. Ce test est appelé en séquence au fur et à mesure que le modèle est parcouru, il suppose donc dans les instances de restaurations et de boucles. Si le sys_id est ici et que le marqueur est vrai, cette jointure en attente est plus haut dans la séquence. Ce type de vérification est nécessaire car les enregistrements d’historique des jointures sont supprimés de la table d’historique, et il est donc possible qu’un enregistrement se trouve dans la table de transition sans correspondance dans la table d’historique correspondante, mais qu’il soit toujours approprié pour une instance exécutée précédemment de la même jointure.
| Nom | Type | Description |
|---|---|---|
| activityIds | Tableau de chaînes | Tableau des wf_activity.sys_ids qui se dirigent vers la jonction. |
| Type | Description |
|---|---|
| Booléen | Vrai, si l’activité est déjà terminée. |
ActivityHistoryRecord : isRolledBack( )
Détermine si ce workflow a été restauré.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai, si ce workflow a été restauré. |
ActivityHistoryRecord : isTurnstile( )
Détermine si l’activité actuelle est un tourniquet.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’activité est un tourniquet. Valeurs valides :
|
L’exemple de code suivant montre comment utiliser cette méthode pour détecter un tourniquet. Elle est basée sur le workflow trouvé dans l’activité de workflow Restaurer à. Vous pouvez confirmer la sortie de ce script en examinant l’onglet Historique de l’activité du workflow lorsque vous affichez le workflow sur le formulaire des éléments demandés (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);
Sortie :
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