Workflow : global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 9 Minuten Lesedauer
  • Die Workflow -Skripteinbindung stellt Methoden als Schnittstelle zur Workflow-Engine bereit.

    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. Weitere Informationen zur Verwendung von „broadcastEvent“finden Sie unter Workflow-Event-spezifische 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 laufenden Workflows in diesem Datensatz ab, indem das Ereignis cancel an Aktivitäten in allen laufenden Workflows in diesem Datensatz übertragen wird.

    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 laufenden Kontext ab, indem ein Ereignis cancel an Aktivitäten in diesem Workflow-Kontext übertragen wird.

    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, Zeichenfolge eventName, Objekt eventParms)

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

    Wird in Aktivitätengenehmigungskoordinator, Timer, Sperreund einigen anderen verwendet.

    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.
    eventParameter 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ätengenehmigungskoordinator, Timer, Sperreund einigen anderen verwendet.

    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 den der Anrufer eine Liste aller Workflow-Kontexte erhalten möchte. Dies kann ein beliebiger Datensatz in einer beliebigen Tabelle sein, für die der Anrufer die laufenden Workflow-Kontexte haben möchte.
    Tabelle : 14. Rückgaben
    Typ Beschreibung
    GlideRecord GlideRecord in der Workflow-Kontexttabelle [wf_context], die nach allen Workflow-Kontexten für den angegebenen Datensatz gefiltert wurde (in jedem Status, z. B. „Wird ausgeführt“, „Abgebrochen“, „Fertiggestellt“).
    //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, ohne dass aktuelle Genehmigungen und Aufgaben 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“: Behält alle Genehmigungen und Aufgaben in ihrem aktuellen Status bei.
    • „falsch“: Aktualisiert alle Genehmigungs- und Aufgabenstatus.
    Tabelle : 32. Rückgaben
    Typ Beschreibung
    void

    In diesem Beispiel wird der Workflow neu gestartet, wobei die Genehmigungsdatei von Abgelehnt in Angefordert wechselt.

    (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
    • delete
    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 aus dem Feld Table der Workflow-Eigenschaften für diesen Workflow.
    operation Zeichenfolge Der für currentauszuführende Vorgang. 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 der folgenden Werte: 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 der Geschäftsregel Start Workflow in der Tabelle „task_sla“ verwendet. 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 aus dem Feld Table der Workflow-Eigenschaften für diesen Workflow
    operation Zeichenfolge Durchgeführter Datenbankvorgang.Einer der Werte 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();