WorkflowModelManager : Global
Die WorkflowModelManager -Skripteinbindung stellt Methoden bereit, um das Workflow-Modell abzufragen, zwischen angegebenen Workflow-Verlaufselementen hin und her zu wechseln und den Verlauf nach aktivitäts- und übergangsspezifischen Informationen abzufragen.
Die Interaktion mit der Skripteinbindung WorkflowModelManager erfolgt über das Datenobjekt ActivityHistoryRecord. Das ActivityHistoryRecord -Objekt ist eine innere Klasse und wird nur bei der Interaktion mit WorkflowModelManagerverwendet.
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.playBack();
Zu diesem Zeitpunkt muss der playBack die ausgeführten Übergänge laden. Dies wird auch eine Rolle spielen, wenn Sie mit einem Modell rückwärts gehen, um eine bestimmte Aktivität rückgängig zu machen.
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.dump();WorkflowModelManager – WorkflowModelManager(String contextId)
Erstellt ein neues WorkflowModelManager-Objekt (Konstruktor) im angegebenen Kontext.
| Name | Typ | Beschreibung |
|---|---|---|
| contextId | Zeichenfolge | ID für den Kontext, in dem der WorkflowModelManager erstellt werden soll. |
| Typ | Beschreibung |
|---|---|
| ActivityHistoryRecord | Angefordertes JavaScript-Objekt „ActivityHistoryRecord“. |
var model = new WorkflowModelManager('MyContextId');
WorkflowModelManager – getActivityHistoryRecordById(String haRecordSysId)
Ruft die Verlaufsaktivität ab, die von wf_history.sys_id im Argument zwischengespeichert wird.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | Sys_id des gewünschten Datensatzes „Aktivitätsverlauf“ [wf_history]. |
| Typ | Beschreibung |
|---|---|
| ActivityHistoryRecord | Angefordertes JavaScript-Objekt „ActivityHistoryRecord“. |
In diesem Beispiel wird gezeigt, wie Sie mit der -Methode den angegebenen Verlaufsaktivitätsdatensatz abrufen.
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));
Ausgabe:
{
"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(Object description)
Ruft die Verlaufsaktivitäten ab, die ausgeführt wurden und in die durch sys_id im Argument dargestellte übergegangen sind.
Der nächste Status basiert auf dem wf_activity.sys_id, das der Aktivität zugeordnet ist, die im haRecord dargestellt ist, der als TO in einem Übergang vorhanden ist, der einem beliebigen ActivityHistoryRecord zugeordnet ist, der im Verlauf des Workflows ausgeführt wurde. (Dies unterscheidet sich von getPreviousByTransition, das nur TO-Übergänge zurückgibt, die in der Ausführungssequenz (zeitlich) vor dem haRecord liegen.) Der Rückgabewert ist eine Sammlung von ActivityHistoryRecords, die das haRecord.wfaId-Argument als ihre TO-Aktivität identifizieren. Die Rückgabewerte basieren auf allen Übergängen in der ausgeführten Verlaufssammlung, die umgestellt wird. Um die Aktivität, die rechtzeitig vor dieser Aktivität ausgeführt wurde, abzurufen, verwenden SiegetPreviousByExecutedOrder.
| Name | Typ | Beschreibung |
|---|---|---|
| description | Objekt | JavaScript-Objekt „ActivityHistoryRecord“. |
| Typ | Beschreibung |
|---|---|
| Objekt-Array | Array von ActivityHistoryRecord-JavaScript-Objekten. |
WorkflowModelManager – getAllTransitionedIntoActivityId(String haRecordSysId)
Ruft die Verlaufsaktivitäten ab, die ausgeführt wurden und in die durch sys_id im Argument dargestellte übergegangen sind. Der Status next basiert auf dem Status wf_activity.sys_id, der der Aktivität zugeordnet ist, die im haRecord dargestellt ist und als TO in einem Übergang vorhanden ist, der einem beliebigen ActivityHistoryRecord zugeordnet ist, der im Verlauf des Workflows ausgeführt wurde. (Dies unterscheidet sich von getPreviousByTransition, das nur TO-Übergänge zurückgibt, die in der Ausführungssequenz (zeitlich) vor dem haRecord liegen.) Der Rückgabewert ist eine Sammlung von ActivityHistoryRecords, die das haRecord.wfaId-Argument als ihre TO-Aktivität identifizieren.
Der Status next basiert auf dem Status wf_activity.sys_id, der der Aktivität zugeordnet ist, die im haRecord dargestellt ist und als TO in einem Übergang vorhanden ist, der einem beliebigen ActivityHistoryRecord zugeordnet ist, der im Verlauf des Workflows ausgeführt wurde. (Dies unterscheidet sich von getPreviousByTransition, das nur TO-Übergänge zurückgibt, die in der Ausführungssequenz (zeitlich) vor dem haRecord liegen.) Der Rückgabewert ist eine Sammlung von ActivityHistoryRecords, die das haRecord.wfaId-Argument als ihre TO-Aktivität identifizieren.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“). |
| Typ | Beschreibung |
|---|---|
| Objekt-Array | Array von angeforderten ActivityHistoryRecord-JavaScript-Objekten. |
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( )
Dies ist die Worker-Methode, die zum Initialisieren des WorkflowModelManager-Objekts aufgerufen werden muss. Beim Initialisieren des WorkflowModelManager-Objekts erstellt und füllt getExecutedHistory() das activityHistoryRecord-Datenobjekt-Array (Mitglied der WorkflowModelManager-Klasse). Die meisten WorkflowModelManager-Methoden geben eine Teilmenge des activityHistoryRecord-Array zurück. Ihr Skript kann dann eine oder mehrere der activityHistoryRecord-Methoden für die weitere Arbeit aufrufen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolgen-Array | Sortiertes Array von sys_ids aus der wf_history-Tabelle. Es ist unwahrscheinlich, dass der Client-Code den Rückgabewert verwendet. Er wird intern in diesem Objekt gespeichert, um von nachfolgenden Methodenaufrufen verwendet zu werden. |
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
WorkflowModelManager – getFinalExecutedActivityList( )
Fragt die wf_history-Tabelle nach Kontext ab und ruft alle im Workflow ausgeführten Aktivitäten ab. Diese werden vom Kontext angegeben, der in der Konstruktion dieses Objekts festgelegt ist.
Diese Funktion erstellt eine Liste der ausgeführten Aktivitäten in der genauen Reihenfolge, in der jede Aktivität das serverseitige ActivityManager.java durchlaufen hat, wobei der neue activity_index verwendet wird, um die Reihenfolge aus der Datenbank zu erzwingen. Bei diesem Aufruf wird nicht das vollständige Bild vermittelt; es muss die Übergänge laden und abbilden.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt-Array | Array von ActivityHistoryRecord-JavaScript-Objekten. |
WorkflowModelManager – getFinalExecutedActivityIdList( )
Ruft die Liste von wf_history.sys_ids aller Aktivitäten ab, die erfolgreich ausgeführt wurden und bis zum Aufruf der Funktion nicht zurückgesetzt oder übersprungen wurden.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolgen-Array | Array von wf_history.sys_id-Werten für ausgeführte Aktivitäten. |
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)
Ruft den Aktivitätsverlauf ab, der unmittelbar nach der im Argument angegebenen Aktivität ausgeführt wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecord | Objekt | JavaScript-Objekt „ActivityHistoryRecord“. |
| Typ | Beschreibung |
|---|---|
| Objekt | Das angeforderte JavaScript-Objekt „ActivityHistoryRecord“ |
Das folgende Beispiel zeigt, wie mit der Methode getNextByExecutedOrder() der Aktivitätsverlauf abgerufen wird, der nach der angegebenen Aktivität ausgeführt wurde.
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));
Ausgabe:
{
"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)
Ruft die Verlaufsaktivität ab, die von dem im Argument angegebenen wf_history.sys_id zwischengespeichert wird, und ruft dann getNextByExecutedOrder() mit dem abgerufenen JavaScript-Objekt auf.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“). |
| Typ | Beschreibung |
|---|---|
| Objekt | Angefordertes JavaScript-Objekt „ActivityHistoryRecord“. |
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)
Ruft die Verlaufsaktivität ab, die unmittelbar nach der Ausführung ausgeführt wurde, die von der im Argument angegebenen sys_id identifiziert wurde.
Diese Funktion ruft den zwischengespeicherten Verlaufsdatensatz ab, der dem angegebenen wf_history.sys_id zugeordnet ist, und ruft dann getNextByTransition auf. Die Rückgabewerte basieren darauf, welche Übergänge vor der Übermittlung von haRecord lagen, und nicht unbedingt auf den Aktivitäten, die unmittelbar vor der Übermittlung von haRecord ausgeführt wurden. Um die Aktivität zu erhalten, die rechtzeitig vor dieser Aktivität ausgeführt wurde, verwenden Sie getNextByExecutedOrder .
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | Sys_id des gewünschten Datensatzes „Aktivitätsverlauf“ [wf_history]. |
| Typ | Beschreibung |
|---|---|
| Objekt-Array | Array von ActivityHistoryRecord-JavaScript-Objekten. |
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)
Ruft die Verlaufsaktivität ab, die direkt vor der im Argument angegebenen Aktivität ausgeführt wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecord | Objekt | JavaScript-Objekt "ActivityHistoryRecord" |
| Typ | Beschreibung |
|---|---|
| Objekt | Angefordertes JavaScript-Objekt „ActivityHistoryRecord“. |
WorkflowModelManager – getPreviousByExecutedOrderId (String haRecordSysId)
Ruft die Verlaufsaktivität ab, die von der im Argument angegebenen wf_history.sys_id zwischengespeichert wird, und ruft dann getPreviusByExecutedOrder() mit dem abgerufenen JavaScript-Objekt auf.
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | ID des Workflow-Verlaufssystems (wf_history.sys_id) |
| Typ | Beschreibung |
|---|---|
| ActivityHistoryRecord | Angefordertes JavaScript-Objekt „ActivityHistoryRecord“. |
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)
Ruft die Verlaufsaktivitäten ab, die unmittelbar vor der im Argument angegebenen ausgeführt wurden.
Der next-Status basiert auf der wf_activity.sys_id, die auf der Aktivität im haRecord basiert. Dieser ist als TO in einem Übergang vorhanden, der beliebigen ActivityHistoryRecords (vor dem haRecord in der Ausführungssequenz) zugeordnet sind. (Dies unterscheidet sich von getAllTransitionedIntoActivity, das alle TO-Übergänge bis zum angegebenen haRecord in der Ausführungssequenz zurückgibt.) Der Rückgabewert ist eine Sammlung von ActivityHistoryRecords, die das haRecord.wfaId-Argument als ihre TO-Aktivität identifizieren. Die Rückgabewerte basieren darauf, welche Übergänge erfolgten, bevor der haRecord sendete, und nicht notwendigerweise auf den Aktivitäten, die direkt vor dem haRecord ausgeführt wurden (rechtzeitig). Um die Aktivität zu erhalten, die rechtzeitig vor dieser Aktivität ausgeführt wurde, verwenden Sie getPreviousByExecutedOrder .
| Name | Typ | Beschreibung |
|---|---|---|
| haRecord | Objekt | JavaScript-Objekt „ActivityHistoryRecord“. |
| Typ | Beschreibung |
|---|---|
| Objekt-Array | Array von angeforderten ActivityHistoryRecord-JavaScript-Objekten. |
WorkflowModelManager – getPreviousByTransitionId(String haRecordSysId)
Ruft die Verlaufsaktivitäten ab, die unmittelbar vor der im Argument angegebenen ausgeführt wurden.
Der Status next basiert auf dem Status wf_activity.sys_id, der der Aktivität zugeordnet ist, die im haRecord dargestellt ist und als TO in einem Übergang vorhanden ist, der allen ActivityHistoryRecords zugeordnet ist, die in der Ausführungsreihenfolge vor dem haRecord liegen. Der Rückgabewert ist eine Sammlung von ActivityHistoryRecords, die das haRecord.wfaId-Argument als ihre TO-Aktivität identifizieren. Die Rückgabewerte basieren darauf, welche Übergänge vor der Übermittlung des HARecord erfolgten, und nicht unbedingt auf den Aktivitäten, die unmittelbar vor dem Übermittlung des HARecord ausgeführt wurden. Um die Aktivität abzurufen, die rechtzeitig vor dieser Aktivität ausgeführt wurde, verwenden Sie getPreviusByExecutedOrder().
| Name | Typ | Beschreibung |
|---|---|---|
| haRecordSysId | Zeichenfolge | Sys_id des Aktivitätsverlaufs. Befindet sich in der Tabelle „wf_history“. |
| Typ | Beschreibung |
|---|---|
| Objekt | Array von angeforderten ActivityHistoryRecord-JavaScript-Objekten. |
Das folgende Beispiel zeigt, wie mit der Methode getPreviusByTransitionId() ActivityHistoryRecord-Objekte abgerufen werden.
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));
}
Ausgabe:
[
{
"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
}
]