WorkflowModelManager : global
L’include de script WorkflowModelManager fournit des méthodes permettant d’interroger le modèle de workflow, de faire des allers-retours entre les éléments d’historique du workflow spécifiés et d’interroger l’historique pour obtenir des informations spécifiques à l’activité et à la transition.
L’interaction avec l’include de script WorkflowModelManager se fait via l’objet de données ActivityHistoryRecord . L’objet ActivityHistoryRecord est une classe interne et n’est utilisé que lors de l’interaction avec WorkflowModelManager.
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.playBack();
À ce stade, le playBack est nécessaire pour charger les transitions exécutées. Cela jouera également un rôle dans la marche arrière sur un modèle pour revenir à une activité spécifique.
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.dump();WorkflowModelManager : WorkflowModelManager(String contextId)
Crée un nouvel objet WorkflowModelManager (constructeur) dans le contexte spécifié.
| Nom | Type | Description |
|---|---|---|
| contextId | Chaîne | ID du contexte dans lequel vous souhaitez créer le WorkflowModelManager. |
| Type | Description |
|---|---|
| Enregistrement de l’historique de l’activité | Objet JavaScript ActivityHistoryRecord demandé. |
var model = new WorkflowModelManager('MyContextId');
WorkflowModelManager : getActivityHistoryRecordById(String haRecordSysId)
Récupère l’activité d’historique mise en cache par le wf_history.sys_id fourni dans l’argument.
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | Sys_id de l’enregistrement d’historique des activités [wf_history] souhaité. |
| Type | Description |
|---|---|
| Enregistrement de l’historique de l’activité | Objet JavaScript ActivityHistoryRecord demandé. |
Cet exemple montre comment utiliser la méthode pour obtenir l’enregistrement d’activité d’historique spécifié.
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));
Sortie :
{
"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 de l’objet)
Récupère les activités de l’historique qui se sont exécutées et sont passées à celle représentée par le sys_id dans l’argument.
L’état suivant est basé sur l’activité wf_activity.sys_id associée à l’activité représentée dans l’enregistrement haRecord existant en tant que TO dans une transition associée à tous les ActivityHistoryRecords exécutés dans l’historique du workflow. (Cela diffère de getPreviousByTransition, qui renvoie uniquement les transitions TO qui précèdent le haRecord dans la séquence d’exécution (par temps).) La valeur de retour est une collection de ActivityHistoryRecords qui identifient l’argument haRecord.wfaId comme leur activité TO. Les valeurs de retour sont basées sur toutes les transitions dans la collection d’historique exécutée que la transition Pour obtenir l’activité exécutée avant cette activité dans le temps, utilisez getPreviousByExecutedOrder.
| Nom | Type | Description |
|---|---|---|
| description | Objet | Objet JavaScript ActivityHistoryRecord. |
| Type | Description |
|---|---|
| Tableau d’objets | Tableau d’objets JavaScript ActivityHistoryRecord. |
WorkflowModelManager : getAllTransitionedIntoActivityId(String haRecordSysId)
Récupère les activités de l’historique qui se sont exécutées et sont passées à celle représentée par le sys_id dans l’argument. L’état next est basé sur l’associé wf_activity.sys_id à l’activité représentée dans le haRecord existant en tant que TO dans une transition associée à tous les ActivityHistoryRecords exécutés dans l’historique du workflow. (Cela diffère de getPreviousByTransition, qui renvoie uniquement les transitions TO qui précèdent le haRecord dans la séquence d’exécution (par heure).) La valeur de retour est une collection de ActivityHistoryRecords qui identifient l’argument haRecord.wfaId comme leur activité TO.
L’état next est basé sur l’associé wf_activity.sys_id à l’activité représentée dans le haRecord existant en tant que TO dans une transition associée à tous les ActivityHistoryRecords exécutés dans l’historique du workflow. (Cela diffère de getPreviousByTransition, qui renvoie uniquement les transitions TO qui précèdent le haRecord dans la séquence d’exécution (par heure).) La valeur de retour est une collection de ActivityHistoryRecords qui identifient l’argument haRecord.wfaId comme leur activité TO.
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | Le sys_id de l’historique de l’activité (table wf_history). |
| Type | Description |
|---|---|
| Tableau d’objets | Tableau d’objets JavaScript ActivityHistoryRecord demandés. |
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( )
Il s’agit de la méthode de travail qui doit être appelée pour initialiser l’objet WorkflowModelManager . Lors de l’initialisation de l’objet WorkflowModelManager, getExecutedHistory() crée et remplit le tableau d’objets de données activityHistoryRecord (qui est membre de la classe WorkflowModelManager ). La plupart des méthodes WorkflowModelManager renvoient un sous-ensemble du tableau activityHistoryRecord . Votre script peut ensuite appeler une ou plusieurs méthodes activityHistoryRecord pour effectuer un travail supplémentaire.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau de chaînes | Tableau ordonné de sys_ids de la table wf_history. Il est peu probable que le code client utilise la valeur de retour ; il est conservé en interne à cet objet pour être utilisé par les appels de méthode suivants. |
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
WorkflowModelManager : getFinalExecutedActivityList( )
Interroge la table wf_history par contexte et récupère toutes les activités exécutées dans le workflow donné par le contexte défini dans la construction de cet objet.
Cette fonction produit une liste des activités exécutées dans l’ordre exact dans lequel chaque activité est passée par le côté serveur ActivityManager.java en utilisant la nouvelle activity_index pour forcer l’ordre sortant de la base de données. Sur son appel, cet appel ne donnera pas une image complète ; Il doit charger et mapper les transitions.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau d’objets | Tableau d’objets JavaScript ActivityHistoryRecord. |
WorkflowModelManager : getFinalExecutedActivityIdList( )
Obtient la liste de wf_history.sys_ids toutes les activités qui se sont exécutées avec succès et qui n’ont pas été restaurées ou ignorées jusqu’au moment où la fonction a été appelée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau de chaînes | Tableau des valeurs wf_history.sys_id pour les activités exécutées. |
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(Object haRecord)
Récupère l’activité d’historique qui s’est exécutée juste après celle fournie dans l’argument.
| Nom | Type | Description |
|---|---|---|
| haRecord | Objet | Objet JavaScript ActivityHistoryRecord. |
| Type | Description |
|---|---|
| Objet | Objet JavaScript ActivityHistoryRecord demandé. |
L’exemple suivant montre comment utiliser la méthode getNextByExecutedOrder() pour récupérer l’activité d’historique qui s’est exécutée après l’activité spécifiée.
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));
Sortie :
{
"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(String haRecordSysId)
Récupère l’activité d’historique mise en cache par l’argument wf_history.sys_id fourni, puis appelle getNextByExecutedOrder() avec l’objet JavaScript récupéré.
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | Le sys_id de l’historique de l’activité (table wf_history). |
| Type | Description |
|---|---|
| Objet | Objet JavaScript ActivityHistoryRecord demandé. |
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(String haRecordSysId)
Récupère l’activité d’historique qui s’est exécutée juste après celle identifiée par le sys_id fourni dans l’argument.
Cette fonction récupère l’enregistrement d’historique mis en cache associé au fourni, wf_history.sys_id puis appelle getNextByTransition. Les valeurs de retour sont basées sur les transitions qui ont précédé la haRecord soumission et pas nécessairement sur les activités exécutées juste avant l’heure d’arrivée haRecord . Pour obtenir à temps l’activité exécutée avant cette activité, utilisez getNextByExecutedOrder.
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | Sys_id de l’enregistrement d’historique des activités [wf_history] souhaité. |
| Type | Description |
|---|---|
| Tableau d’objets | Tableau d’objets JavaScript ActivityHistoryRecord. |
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(Object haRecord)
Récupère l’activité d’historique exécutée juste avant celle fournie dans l’argument.
| Nom | Type | Description |
|---|---|---|
| haRecord | Objet | Objet JavaScript ActivityHistoryRecord |
| Type | Description |
|---|---|
| Objet | Objet JavaScript ActivityHistoryRecord demandé. |
WorkflowModelManager : getPreviousByExecutedOrderId(String haRecordSysId)
Récupère l’activité d’historique mise en cache par fournie wf_history.sys_id dans l’argument, puis appelle getPreviousByExecutedOrder() avec l’objet JavaScript récupéré.
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | ID système de l’historique du workflow (wf_history.sys_id) |
| Type | Description |
|---|---|
| Enregistrement de l’historique de l’activité | Objet JavaScript ActivityHistoryRecord demandé. |
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(Object haRecord)
Récupère les activités de l’historique qui se sont exécutées juste avant celle fournie dans l’argument.
L’état suivant est basé sur le wf_activity.sys_id associé à l’activité représentée dans le haRecord existant en tant que TO dans une transition associée à tous les ActivityHistoryRecords qui précèdent le haRecord dans la séquence d’exécution. (Ceci diffère de getAllTransitionedIntoActivity, qui renvoie toutes les transitions TO jusqu’au haRecord donné dans la séquence d’exécution .) La valeur de retour est une collection de ActivityHistoryRecords qui identifient l’argument haRecord.wfaId comme leur activité TO. Les valeurs de retour sont basées sur les transitions qui ont eu lieu avant l’envoi de haRecord et pas nécessairement sur les activités qui se sont exécutées juste avant le haRecord dans le temps. Pour obtenir à temps l’activité exécutée avant cette activité, utilisez getPreviousByExecutedOrder.
| Nom | Type | Description |
|---|---|---|
| haRecord | Objet | Objet JavaScript ActivityHistoryRecord. |
| Type | Description |
|---|---|
| Tableau d’objets | Tableau d’objets JavaScript ActivityHistoryRecord demandés. |
WorkflowModelManager : getPreviousByTransitionId(String haRecordSysId)
Récupère les activités de l’historique qui se sont exécutées juste avant celle fournie dans l’argument.
L’état next est basé sur l’associé wf_activity.sys_id à l’activité représentée dans le haRecord existant en tant que TO dans une transition associée à tous les ActivityHistoryRecords qui précèdent le haRecord dans la séquence d’exécution. La valeur de retour est une collection de ActivityHistoryRecords qui identifient l’argument haRecord.wfaId comme leur activité TO. Les valeurs de retour sont basées sur les transitions qui ont eu lieu avant le terme haRecord et pas nécessairement sur les activités exécutées juste avant le haRecord dans le temps. Pour obtenir à temps l’activité exécutée avant cette activité, utilisez getPreviousByExecutedOrder().
| Nom | Type | Description |
|---|---|---|
| haRecordSysId | Chaîne | Sys_id de l’historique des activités. Table : Historique du workflow [wf_history] |
| Type | Description |
|---|---|
| Objet | Tableau d’objets JavaScript ActivityHistoryRecord demandés. |
L’exemple suivant montre comment utiliser la méthode getPreviousByTransitionId() pour obtenir des objets 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));
}
Sortie :
[
{
"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
}
]