Workflow – Global

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 9 Minuten Lesedauer
  • Die Workflow Die Skripteinbindung stellt Methoden bereit, die mit der Workflow-Engine verbunden sind.

    Verwenden Sie diese Methoden, um Workflows zu bearbeiten.

    Workflow – broadcastEvent(String contextId, String eventName)

    Sendet den angegebenen Event (die angegebene Nachricht) in den Workflow-Kontext, um ihn an die ausgeführten Aktivitäten weiterzuleiten.

    Diese Methode wird normalerweise verwendet, um Aktivitäten zu aktivieren, die warten, bis eine Aktion ausgeführt wird, bevor Sie fortfahren. Für zusätzliche Informationen zur Verwendung BroadcastEvent , Siehe Workflow-ereignisspezifische Funktionen .

    Eine Liste der verfügbaren OOB-Ereignisse finden Sie unter Workflow-Ereignisse im Basissystem .

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Die Kontext-ID.
    eventName Zeichenfolge Der Name des Events.
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    void
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'resume');
          }

    Workflow – cancel(GlideRecord record)

    Bricht alle ausgeführten Workflows für diesen Datensatz durch Übertragung von ab cancelEreignis zu Aktivitäten in allen laufenden Workflows für diesen Datensatz.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord GlideRecord in einer beliebigen Tabelle. Alle in diesem Datensatz ausgeführten Workflows werden abgebrochen.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    void
    //get workflow helper
          var workflow = new Workflow();
          //cancel all the workflows, where current is a task record with a workflow context
          workflow.cancel(current);
          gs.addInfoMessage(gs.getMessage("Workflows for {0} have been cancelled", current.getDisplayValue()));

    Workflow – cancelContext(GlideRecord context)

    Bricht diesen Ausführungskontext durch Übertragung von ab cancelEreignis zu Aktivitäten in diesem Workflow-Kontext.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    context GlideRecord GlideRecord des abzubrechenden ausgeführten Kontexts.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    void
    // If a workflow has started for this item, cancel it, where current is a task record with a workflow context
          if ((current.stage == 'Request Cancelled') && current.context 
              && !current.context.nil()) {
          var w = new Workflow();
          var now_GR = new GlideRecord('wf_context');
          
          if (now_GR.get(current.context)) 
              w.cancelContext(now_GR);
          }

    Workflow – deleteWorkflow(GlideRecord current)

    Löscht alle Workflows im Datensatz.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    current GlideRecord GlideRecord, für den der Aufrufer alle Workflows löschen möchte. Dies kann ein beliebiger Datensatz in einer beliebigen Tabelle sein.
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    void
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          wkfw.deleteWorkflow(current);
        

    Workflow – fireEvent(GlideRecord eventRecord, String eventName, Object eventParms)

    Löst das benannte Ereignis eines laufenden Workflows für den Eingabedatensatz aus.

    Wird in Aktivitäten verwendet Genehmigungskoordinator , Timer , Sperren , Und einige andere.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    eventRecord GlideRecord Ereignisdatensatz, der in der Tabelle „Workflow-Ausführungsaktivitäten“ [wf_Executing] aufgeführt ist.
    eventName Zeichenfolge Der Name des Events, der an den ausgeführten Workflow gesendet werden soll.
    EventParms Objekt Optional. Parameter im JSON-Format, die vom Ereignis verwendet werden.
    Tabelle : 10. Rückgaben
    Typ Beschreibung
    void  
    // where current is a task record with a workflow context
      var w = new Workflow(); 
      w.fireEvent(current, 'execute');

    Workflow – fireEventById(String eventRecordId, String eventName)

    Löst den benannten Event in dem durch die Datensatz-ID angegebenen Datensatz aus.

    Wird in Aktivitäten verwendet Genehmigungskoordinator , Timer , Sperren , Und einige andere.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    eventRecordId Zeichenfolge Die sys_id des Glide-Datensatzes.
    eventName Zeichenfolge Der Name des Events, der an den ausgeführten Workflow gesendet werden soll.
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    void
    var wkfw = new Workflow();
          wkfw.fireEventById('f2400ec10b0a3c1c00ca5bb5c6fae427','Timer');

    Workflow – getContexts(GlideRecord record)

    Gibt alle Workflow-Kontexte für einen angegebenen Datensatz zurück.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord GlideRecord Für die der Anrufer eine Liste aller Workflow-Kontexte wünscht. Dies kann ein beliebiger Datensatz in einer beliebigen Tabelle sein, für den der Anrufer die ausgeführten Workflow-Kontexte haben möchte.
    Tabelle : 14. Rückgaben
    Typ Beschreibung
    GlideRecord GlideRecord in der Tabelle „Workflow-Kontext“ [wf_context] gefiltert für alle Workflow-Kontexte für den angegebenen Datensatz (in einem beliebigen Status, z. B. „wird ausgeführt“, „abgebrochen“, „Fertig“).
    //where current is a task record with a workflow context
    var wkfw = new Workflow();
    var context = wkfw.getContexts(current);
    while (context.next())
      gs.print(context.started);

    Workflow – getEstimatedDeliveryTime(String workflowId)

    Ruft die geschätzte Dauer für den Abschluss eines Workflows ab.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    workflowId Zeichenfolge Sys_id des Workflows (Tabelle „wf_workflow“), um die geschätzte Ausführungszeit abzurufen.
    Tabelle : 16. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Zeigt den Wert aus einer GlideDuration an (z. B. 3 Tage) oder ist leer, falls dieser unbekannt ist.
    var wkfw = new Workflow();
          gs.print(wkfw.getEstimatedDeliveryTime('b99a866a4a3623120074c033e005418f'));

    Zwei Tage

    Workflow – getEstimatedDeliveryTimeFromWFVersion(GlideRecord wfVersion)

    Rufen Sie die geschätzte verstrichene Ausführungszeit für die Workflow-Version ab.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    wfVersion GlideRecord GlideRecord in der Tabelle „wf_workflow_version“ einer bestimmten Workflow-Version, für die der Aufrufer die geschätzte Dauer der Ausführung haben möchte.
    Tabelle : 18. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Zeigt den Wert aus einer GlideDuration (z. B. 3 Tage) oder ist leer, falls dieser unbekannt ist.
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          var context = wkfw.getContexts(current);
          gs.print(wkfw.getEstimatedDeliveryTimeFromWFVersion(context.wf_version));

    Workflow – getReturnValue(String workflowID, Number amount, Boolean result)

    Ruft den entsprechenden Workflow-Rückgabewert für die Eingabe-Workflow-ID ab. Dies ist entweder der vom aktuellen Benutzer ausgecheckte Workflow oder der veröffentlichte Workflow mit dem neuesten Datum.

    Dies ist entweder der vom aktuellen Benutzer ausgecheckte Workflow oder der veröffentlichte Workflow mit dem neuesten Datum. Diese Methode ist ab der Fuji-Version verfügbar.

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    workflowID Zeichenfolge Die sys_id des Workflows (Tabelle „wf_workflow“)
    amount Zahl amount
    result Boolean True, wenn wahr
    Tabelle : 20. Ergebnisse
    Typ Beschreibung
    ??? Der Rückgabewert des Workflows, wie von der Aktivität „Wert zurückgeben“ angegeben. Workflows ohne Aktivität „Wert zurückgeben“ geben einen Nullwert zurück.
    var wkfw = new Workflow();
          wkfw.getReturnValue('context');
    Ausgabe:
    *** Script: b99a866a4a3623120074c033e005418f
          

    Workflow – getRunningFlows(GlideRecord record)

    Ruft alle aktuell ausgeführten Workflow-Kontexte für den Eingabedatensatz ab.

    Der Eingabedatensatz ist irgendein Datensatz in einer beliebigen Tabelle, für den der Aufrufer die ausgeführten Workflow-Kontexte haben möchte.

    Tabelle : 21. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord GlideRecord des Datensatzes, für den der Aufrufer eine Liste aller ausgeführten Workflows möchte.
    Tabelle : 22. Ergebnisse
    Typ Beschreibung
    GlideRecord GlideRecord in Tabelle „wf_context“, der nach allen ausgeführten Workflow-Kontexten gefiltert wurde.
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'pause');
          }

    Workflow – getVersion(String workflowID)

    Ruft die entsprechende Workflow-Version für die Eingabe-Workflow-ID ab. Dies ist entweder der vom aktuellen Benutzer ausgecheckte Workflow oder der veröffentlichte Workflow mit dem neuesten Datum.

    Dies ist entweder der vom aktuellen Benutzer ausgecheckte Workflow oder der veröffentlichte Workflow mit dem neuesten Datum.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    workflowID Zeichenfolge Die sys_id des Workflows (Tabelle „wf_workflow“)
    Tabelle : 24. Ergebnisse
    Typ Beschreibung
    Keine
    var wkfw = new Workflow();
          wkfw.getVersion('b99a866a4a3623120074c033e005418f');

    Workflow – getVersionFromName(String workflowName)

    Gibt die entsprechende Workflow-Version für den Eingabe-Workflow-Namen zurück.

    Weitere Informationen erhalten Sie unter getVersion().

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    workflowName Zeichenfolge Name des Workflows (Tabelle „wf_workflow“)
    Tabelle : 26. Ergebnisse
    Typ Beschreibung
    void
    var wkfw = new Workflow();
          wkfw.getVersionFromName('Emergency Change');

    Workflow – getWorkflowFromName(String workflowName)

    Gibt die sys_ID des Workflows zurück, der dem angegebenen Workflow-Namen zugeordnet ist.

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    workflowName Zeichenfolge Name des Workflows.
    Tabelle : 28. Rückgaben
    Typ Beschreibung
    Zeichenfolge Die sys_ID des Workflows, der dem übergebenen Namen zugeordnet ist.
    var wflw = new Workflow();
          gs.print(wflw.getWorkflowFromName('Emergency Change'));

    Workflow – hasWorkflow(GlideRecord record)

    Bestimmt, ob einem angegebenen Datensatz Workflow-Kontexte zugeordnet sind.

    Dies umfasst ausgeführte und abgeschlossene Workflow-Kontexte.

    Tabelle : 29. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord GlideRecord auf dem Prüfstand. Dieser GlideRecord kann aus einer beliebigen Tabelle stammen.
    Tabelle : 30. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn dem Datensatz ein Workflow zugeordnet ist. Andernfalls wird „false“ zurückgegeben.
    var wkfw = new Workflow();
          gs.print(wkfw.hasWorkflow('f2400ec10b0a3c1c00ca5bb5c6fae427'));

    falsch

    Workflow – restartWorkflow(GlideRecord current, Boolean maintainStateFlag)

    Berechnet die Genehmigungen und Aufgaben für einen Workflow neu, indem neue Genehmigungen und Aufgaben hinzugefügt werden, während die aktuellen Genehmigungen und Aufgaben nicht zurückgesetzt werden.

    Sie können diese Methode verwenden, um Aufgaben wie das Hinzufügen eines Unternehmens zu einer Change-Anforderung auszuführen, ohne die aktuellen Genehmigungen für Unternehmen zurückzusetzen, die sich bereits im Workflow befinden.

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    current GlideRecord GlideRecord des Datensatzes, den dieser Workflow ausführt. Dies kann jeder Datensatz in einer beliebigen Tabelle sein.
    maintainStateFlag Boolean Kennzeichnung, die angibt, ob alle Genehmigungen und Aufgaben in ihrem aktuellen Status beibehalten werden sollen.
    Gültige Werte:
    • Wahr: Alle Genehmigungen und Aufgaben im aktuellen Status beibehalten.
    • Falsch: Aktualisieren Sie alle Genehmigungs- und aufgabenstatus.
    Tabelle : 32. Rückgaben
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, dass der Workflow neu gestartet wird, wobei die Genehmigungsdatei von „abgelehnt“ in „angefordert“ geändert wird.

    (function(){
      var comment = 'Workflow Restarted - the Approval Field changing from Rejected to Requested';
      var gLock = new GlideRecordLock(current);
        gLock.setSpinWait(50);
      if (gLock.get()) {
        new Workflow().restartWorkflow(current, false);
        current.setDisplayValue('approval_history', comment);
      }
    })

    Workflow – runFlows(GlideRecord record, String operation)

    Führt alle Workflows für einen bestimmten Datensatz in einer bestimmten Tabelle und deren untergeordneten Tabellen aus.

    Beispiele für die Verwendung finden Sie in den Skripteinbindungen „SNC – Übergeordnete Workflows ausführen“ und „SNC – Übergeordnete Workflows ausführen (Genehmigung)“.

    Tabelle : 33. Parameter
    Name Typ Beschreibung
    Datensatz GlideRecord GlideRecord, für den Workflows ausgeführt werden sollen.
    operation Zeichenfolge Datenbankvorgang.
    Gültige Werte:
    • einfügen
    • update
    • löschen
    Tabelle : 34. Rückgaben
    Typ Beschreibung
    void
    var now_GR = new GlideRecord('wf_test');
    now_GR.addQuery('parent', current.parent);
    now_GR.addQuery('sys_id','!=',current.sys_id);
    now_GR.query();
    while(now_GR.next()) {
        new Workflow().runFlows(now_GR, 'update');
    }

    Workflow – startFlow(String workflowId, GlideRecord current, String operation, Array vars)

    Startet einen angegebenen Workflow.

    Beispiele für die Verwendung finden Sie unter der Skripteinbindung „WorkflowScheduler“ und der Business Rule „Workflow starten“ in Tabelle „sc_req_item“.

    Tabelle : 35. Parameter
    Name Typ Beschreibung
    workflowId Zeichenfolge Die sys_id des zu startenden Workflows. Diese sys_id verweist auf die Tabelle „wf_workflow“.
    current GlideRecord Der Datensatz, der in diesem Workflow als aktuell verwendet werden soll. Dies stammt normalerweise von TableFeld der Workflow-Eigenschaften für diesen Workflow.
    operation Zeichenfolge Der Vorgang, für den ausgeführt werden soll current. Mögliche Werte: einfügen, aktualisieren, löschen.
    vars Array Sammlung von Variablen, die dem Workflow hinzugefügt werden sollen
    ////where current is a task record with a workflow context
          var w = new Workflow();
          var context = w.startFlow(id, current, current.operation(), getVars());

    Workflow – startFlowFromContextInsert(GlideRecord context, String operation)

    Hilfsmethode für Business-Regel Auto start on context.

    Tabelle : 36. Parameter
    Name Typ Beschreibung
    context GlideRecord GlideRecord in Tabelle „wf_context“ eines neuen Datensatzes (der „aktuelle“ Datensatz in der Business Rule).
    operation Zeichenfolge Ausgeführter Datenbankvorgang. Einer von insert, update, delete.
    Tabelle : 37. Ergebnisse
    Typ Beschreibung
    void
    //where current is a task record with a workflow context
          current.name = current.workflow_version.name;
          current.started_by.setValue(gs.userID());
          
          if (gs.nil(current.id)) {
            var now_GR = new GlideRecord('wf_workflow_execution');
            now_GR.name = current.name;
            now_GR.insert();
          
            current.table = 'wf_workflow_execution';
            current.id = now_GR.sys_id;
          }
          
          var wf = new Workflow();
          wf.startFlowFromContextInsert(current, current.operation())

    Workflow – startFlowRetroactive(String workflowId, Number retroactiveMSecs, GlideRecord current, String operation, Array, ???)

    Wird von Business-Regel verwendet Start WorkflowIn Tabelle Task_sla. Dadurch wird ein Workflow gestartet, und die zusätzlichen Argumente für diese Methode werden von der Aktivität „Timer“ verwendet, um die Ausführung des Workflows für einige Zeit anzuhalten.

    Tabelle : 38. Parameter
    Name Typ Beschreibung
    workflowID Zeichenfolge Die sys_id des zu startenden Workflows. Diese sys_id verweist auf die Tabelle „wf_workflow“.
    retroactiveMSecs Zahl Verzögerung in Millisekunden, die von der Aktivität Timer verwendet wird.
    current GlideRecord GlideRecord des Datensatzes, der in diesem Workflow als aktuell verwendet werden soll. Dies stammt normalerweise von TableFeld der Workflow-Eigenschaften für diesen Workflow
    operation Zeichenfolge Datenbankvorgang wird ausgeführt.einer von insert, update, delete.
    vars Array Sammlung von Variablen, die dem Workflow hinzugefügt werden sollen.
    withSchedule ??? Zeitplan, der von der Aktivität Timer verwendet wird
    Tabelle : 39. Ergebnisse
    Typ Beschreibung
    GlideRecord Ein GlideRecord in der Tabelle „wf_context“ für den eingefügten Datensatz für diesen neu erstellten Workflow-Kontext.
    // is this a retroactive start?
          ////where current is a task record with a workflow context
          var msecs = new GlideDateTime().getNumericValue() - current.start_time.getGlideObject().getNumericValue();
          
          // treat this as a retroactive workflow start if the SLA started more than 5 seconds ago
          var w = new Workflow();
          if (msecs <= 5000)
            w.startFlow(id, current, current.operation());
          else
            w.startFlowRetroactive(id, msecs, current, current.operation());
          
          // update the record in case the workflow changed some values
          current.update();
          
        

    Workflow – Workflow()

    Konstruktor für die Klasse Workflow.

    Tabelle : 40. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 41. Ergebnisse
    Typ Beschreibung
    void
    var w = new Workflow();