WorkflowModelManager – Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 9 Minuten Lesedauer
  • Die Klasse WorkflowModelManager bietet eine Möglichkeit, das Workflow-Modell abzufragen, zwischen den angegebenen wf_history itemshin und her zu gehen und den Verlauf nach aktivitäts- und übergangsspezifischen Informationen abzufragen.

    Die Interaktion mit dem WorkflowModelManager-Klasse erfolgt durch das ActivityHistoryRecord-Datenobjekt. ActivityHistoryRecord ist eine innere Klasse und wird nur während der Interaktion mit WorkflowModelManager verwendet.

    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 – getActivityHistoryRecordById(String haRecordSysId)

    Ruft die Verlaufsaktivität ab, die von wf_history.sys_id im Argument zwischengespeichert wird.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des gewünschten Aktivitätsverlauf-Datensatzes [wf_history].
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    ActivityHistoryRecord Angefordertes JavaScript-Objekt „ActivityHistoryRecord“.

    Dieses Beispiel zeigt, 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 Aktivität überführt wurden.

    Der next -Status basiert auf dem wf_activity.sys_id, der der Aktivität zugeordnet ist, die im haRecord dargestellt wird, 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 : 3. Parameter
    Name Typ Beschreibung
    description Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 4. 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 Aktivität überführt wurden. Der Status next basiert auf dem Status wf_activity.sys_id, der der Aktivität im haRecord zugeordnet 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.

    Der Status next basiert auf dem Status wf_activity.sys_id, der der Aktivität im haRecord zugeordnet 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.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“).
    Tabelle : 6. 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 : 7. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 8. 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 : 9. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 10. 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 Zeitpunkt des Aufrufs der Funktion nicht zurückgesetzt oder übersprungen wurden.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 12. 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 die Verlaufsaktivität ab, die kurz nach der im Argument angegebenen Aktivität ausgeführt wurde.

    Der Status next basiert auf dem Aktivitätsindex, der die nächste vorherige Aktivität (zeitlich) und nicht unbedingt die nächste wf_activity widerspiegelt, zu der die bereitgestellte Aktivität übergegangen ist. Um die nächste Aktivität zu erhalten, 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 : 13. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 14. Ergebnisse
    Typ Beschreibung
    Objekt Das angeforderte JavaScript-Objekt „ActivityHistoryRecord“

    Das folgende Beispiel zeigt, wie Sie mit der Methode getNextByExecutedOrder() die Verlaufsaktivität abrufen, die 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 vom im Argument bereitgestellten wf_history.sys_id zwischengespeichert wird, und ruft dann getNextByExecutedOrder() mit dem abgerufenen JavaScript-Objekt auf.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Die sys_id des Aktivitätsverlaufs (Tabelle „wf_history“).
    Tabelle : 16. 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 kurz nach der Aktivität ausgeführt wurde, die durch die im Argument angegebene 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 erfolgten, und nicht unbedingt auf den Aktivitäten, die kurz 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 : 17. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des gewünschten Aktivitätsverlauf-Datensatzes [wf_history].
    Tabelle : 18. Ergebnisse
    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 : 19. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt "ActivityHistoryRecord"
    Tabelle : 20. Ergebnisse
    Typ Beschreibung
    Objekt Angefordertes JavaScript-Objekt „ActivityHistoryRecord“.

    WorkflowModelManager – getPreviousByExecutedOrderId (String haRecordSysId)

    Ruft die Verlaufsaktivität ab, die vom im Argument bereitgestellten wf_history.sys_id zwischengespeichert wird, und ruft dann getPreviousByExecutedOrder() mit dem abgerufenen JavaScript-Objekt auf.

    Tabelle : 21. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge ID des Workflow-Verlaufssystems (wf_history.sys_id)
    Tabelle : 22. 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 : 23. Parameter
    Name Typ Beschreibung
    haRecord Objekt JavaScript-Objekt „ActivityHistoryRecord“.
    Tabelle : 24. 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 im haRecord zugeordnet ist, der als TO in einem Übergang vorhanden ist, der einem beliebigen ActivityHistoryRecord zugeordnet ist, der in der Ausführungssequenz vor dem haRecord liegt. 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 dem gesendeten haRecord erfolgten, und nicht unbedingt auf den Aktivitäten, die kurz vor dem haRecord ausgeführt wurden. Um die Aktivität abzurufen, die rechtzeitig vor dieser Aktivität ausgeführt wurde, verwenden Sie getPreviousByExecutedOrder().

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    haRecordSysId Zeichenfolge Sys_id des Aktivitätsverlaufs. Befindet sich in der Tabelle „wf_history“.
    Tabelle : 26. Ergebnisse
    Typ Beschreibung
    Objekt Array von angeforderten ActivityHistoryRecord-JavaScript-Objekten.

    Das folgende Beispiel zeigt, wie die getPreviousByTransitionId()- Methode zum Abrufen von ActivityHistoryRecord-Objekten verwendet wird.

    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
      }
    ]

    WorkflowModelManager – WorkflowModelManager(String contextId)

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

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge ID für den Kontext, in dem der WorkflowModelManager erstellt werden soll.
    Tabelle : 28. Ergebnisse
    Typ Beschreibung
    ActivityHistoryRecord Angefordertes JavaScript-Objekt „ActivityHistoryRecord“.
    var model = new WorkflowModelManager('MyContextId');