WorkflowModelManager : Global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 9 Minuten Lesedauer
  • 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.

    So rufen Sie den ausgeführten Verlauf der Workflow-Aktivitäten ab:
    var model = new WorkflowModelManager('myContextId');
    var activities = model.getExecutedHistory();
    
    So geben Sie die Wiedergabe des Workflows aus:
    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.

    So zeigen Sie die Details des zwischengespeicherten Modells an:
    var model = new WorkflowModelManager('myContextId');
     model.getExecutedHistory();
     model.dump();

    WorkflowModelManager – WorkflowModelManager(String contextId)

    Erstellt ein neues WorkflowModelManager-Objekt (Konstruktor) im angegebenen Kontext.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge ID für den Kontext, in dem der WorkflowModelManager erstellt werden soll.
    Tabelle : 2. Ergebnisse
    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.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des gewünschten Datensatzes „Aktivitätsverlauf“ [wf_history].
    Tabelle : 4. Rückgaben
    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.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    description Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 6. Ergebnisse
    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.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“).
    Tabelle : 8. Ergebnisse
    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.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 10. Ergebnisse
    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.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 12. Ergebnisse
    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.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 14. Ergebnisse
    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.

    Der Status next basiert auf dem Aktivitätsindex, der die zeitlich nächste vorherige Aktivität widerspiegelt und nicht unbedingt die nächste nächste wf_activity, zu der die angegebene Aktivität übergegangen ist. Um die nächstgelegene nächste Aktivität abzurufen, die zu diesem übergebenen haRecord übergegangen ist, verwenden Sie getNextByTransitionOrder(haRecord).
    Hinweis:
    Beim Zusammenstellen des Arrays der Ausführungsreihenfolge verbleiben Leerzeichen im Array, in dem Verlaufsobjekte gelöscht wurden. Dies geschieht, um sicherzustellen, dass der Index im Array und der activity_index des Objekts synchron bleiben. Aus diesem Grund sollten alle Objekte, die aus dem Array für die Ausführungsreihenfolge stammen, auf nil() getestet werden und nicht als der vorherige Datensatz angenommen werden (basierend auf activity_index oder dem Array-Indexwert selbst).
    Tabelle : 15. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 16. Ergebnisse
    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.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“).
    Tabelle : 18. Ergebnisse
    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 getNextByTransitionauf. 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 .

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des gewünschten Datensatzes „Aktivitätsverlauf“ [wf_history].
    Tabelle : 20. Rückgaben
    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.

    Der previous-Status basiert auf dem Aktivitätsindex, der die nächste vorherige Aktivität (zeitlich) und nicht notwendigerweise die nächste vorherige Aktivität mit einem gültigen Übergang zu dieser Aktivität widerspiegelt Um die nächste vorherige Aktivität zu erhalten, die auf diesen übergebenen haRecord übertragen wurde, verwenden Sie getPreviousByTransition(haRecord).
    Hinweis:
    Beim Zusammenstellen des Arrays der Ausführungsreihenfolge verbleiben Leerzeichen im Array, in dem Verlaufsobjekte gelöscht wurden. Dadurch wird sichergestellt, dass der Index im Array und der activity_index des Objekts synchron bleiben. Aus diesem Grund sollten alle Objekte, die aus dem Array für die Ausführungsreihenfolge stammen, auf nil() getestet werden und nicht als der vorherige Datensatz angenommen werden (basierend auf activity_index oder dem Array-Indexwert).
    Tabelle : 21. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt "ActivityHistoryRecord"
    Tabelle : 22. Ergebnisse
    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.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge ID des Workflow-Verlaufssystems (wf_history.sys_id)
    Tabelle : 24. Ergebnisse
    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 .

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 26. Ergebnisse
    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().

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des Aktivitätsverlaufs.

    Tabelle: WorkFlow-Verlauf [wf_history]

    Tabelle : 28. Rückgaben
    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
      }
    ]