FlowAPI: Bereichsbezogen, Global

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 40 Minuten Lesedauer
  • Die FlowAPI Stellt Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden bereit.

    Zugriff FlowAPI Methoden in globalen und bereichsbezogenen Skripts mit verwenden sn_fd Namespace. Erstellen Sie Anrufe für Ihre Flows mit Code-Fragment Aktion in Workflow-Studio Oder verwenden Sie die hier beschriebenen Methoden, um Skripts manuell zu aktualisieren.

    Hinweis:
    In domänengetrennten Instanzen werden Flows, Subflows und Aktionen, die von dieser API ausgelöst wurden, in der Domäne des Anwenders ausgeführt, der das Skript gestartet hat. Wenn beispielsweise ein Anwender in der Acme-Domäne ein Skript startet, das einen Flow auslöst, wird der Flow in der Acme-Domäne ausgeführt und kann nur auf Acme-Daten zugreifen, auch wenn der Flow als Systemanwender ausgeführt wird.
    Hinweis:
    Um die Instanzleistung zu optimieren, sollten Sie vermeiden, diese Methoden aus einem asynchronen Business-Regel-Skript aufzurufen. Erstellen Sie stattdessen einen Datensatz für eine geplante Aufgabe in Workflow-Studio UI.

    FlowAPI – Abbrechen (ZeichenfolgenkontextId, Zeichenfolgengrund)

    Bricht einen angehaltenen oder ausgeführten Flow, Subflow oder eine Aktion ab.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge SYS_ID des Ausführungsdetaildatensatzes für den Flow, den Subflow oder die Aktion. Greifen Sie auf die Ausführungsdetails zu, indem Sie in zur Registerkarte Flow-Ausführungen navigieren Workflow-Studio, Oder übergeben Sie die sys_ID des Kontextdatensatzes, der von zurückgegeben wird StartFlow() , StartSubflow() , Oder StartAction() Methoden.
    Hinweis:
    Es kann eine kleine Verzögerung beim Abbrechen geben, wenn der Zielkontext auf einem anderen Knoten der Instanz ausgeführt wird. Kontexte, die auf demselben Knoten ausgeführt werden, werden sofort abgebrochen. Kontexte, die auf einem anderen Knoten ausgeführt werden, müssen zuerst warten, bis der Abbruch an den entsprechenden Knoten weitergeleitet wird.
    Grund Zeichenfolge Optional. Grund für den Abbruch des Flows, Subflows oder der Aktion. Wird in angezeigt Nachricht Feld der Tabelle „Flow Engine-Protokolleinträge“ [sys_Flow_log].
    Tabelle : 2. Rückgaben
    Typ Beschreibung
    void

    In diesem Beispiel wird der Rückgabewert von verwendet StartFlow() Methode zum Abbrechen von Flows mit langer Laufzeit.

    (function() { 
    
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('number', 'INC0000050'); 
    now_GR.query(); 
    now_GR.next(); 
    
          try { 
              var inputs = {}; 
              inputs['current'] = now_GR; // GlideRecord of table: 
              inputs['table_name'] = 'incident'; 
    
              // Starts the flow asynchronously.
              var result = sn_fd.FlowAPI.getRunner()
              .flow('global.myFlow')
              .inBackground()
              .withInputs(inputs)
              .run();
    
              var contextId = result.getContextId();
              var dateRun = result.getDate();
              var domainUsed = result.getDomainId();
              var flowName = result.getFlowObjectName();
              var flowObjectType = result.getFlowObjectType(); 
    
          } catch (ex) { 
              var message = ex.getMessage(); 
              gs.error(message); 
          } 
    })();
    
     
    // Call the cancel() method using the context Id returned from the startFlow() method
    sn_fd.FlowAPI.cancel(contextId, 'Flow took too long to execute.');

    In diesem Beispiel werden alle Flows mit dem Namen Test-Flow abgebrochen.

    var now_GR = new GlideRecord("sys_flow_context");
    now_GR.addQuery("name", "Test Flow");
    now_GR.query();
    
    while (now_GR.next()) {
    sn_fd.FlowAPI.cancel(now_GR.getUniqueValue(), 'Canceling Test Flows');
    } 

    FlowAPI – executeAction(String name, Map inputs, Number timeout)

    Führt eine Aktion aus einem serverseitigen Skript synchron aus.

    Führen Sie eine Aktion aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Aktionen, die mit dieser Methode ausgeführt werden, laufen synchron, sodass die Methode Zugriff auf die von der Aktion erstellten Ausgaben hat. Verwenden Sie startAction, eine Aktion asynchron auszuführen.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt die Aktion als Anwender aus, der die Sitzung initiiert.
    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name der auszuführenden Aktion, z. B. global.action_name.
    inputs Karte Name-Wert-Paare, die Aktionseingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Zeitüberschreitung Anzahl Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    Objekt Die Aktionsausgaben.

    In diesem Beispiel verwendet das Skript sn_fd.FlowAPI.ExecuteAction Zum Ausführen einer Aktion namens actionforpassword2test im globalen Bereich. Eine Variable mit dem Namen „inputs“ enthält die Eingänge für die Aktion. In diesem Fall einen Namen und ein Passwort. Die Ausgaben für die Aktion werden in der Variablen „outputs“ gespeichert, die in diesem Fall ein verschlüsseltes Passwortobjekt ist. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
    	
      try {
        var inputs = {};
        inputs['name'] = ; // String 
        inputs['password2'] = ; // Password (2 Way Encrypted) 
    		
        // Execute Synchronously: Run in foreground. Code snippet has access to outputs.
        // var timeout = ; //timeout in ms
        //sn_fd.FlowAPI.executeAction('global.actionforpassword2test', inputs, timeout)
        var outputs = sn_fd.FlowAPI.executeAction('global.actionforpassword2test', inputs);
    
        // Get Outputs:
        // Note: outputs can only be retrieved when executing synchronously.
        var output = outputs['output']; // Password (2 Way Encrypted)
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();

    FlowAPI – executeActionQuick (Zeichenfolgenname, Zuordnungseingaben, Zeitüberschreitung bei Anzahl)

    Führen Sie eine Aktion aus einem serverseitigen Skript synchron aus der aktuellen Anwendersitzung aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Overhead bei der Datensatzführung vermeiden. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten der Aktion zum Warten auf Bedingungen. Schritte, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“ oder „Warten auf Bedingung“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten einer Aktion zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name der auszuführenden Aktion. Beispiel: Global.action_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Aktionen.
    inputs Karte Name-Wert-Paare, die Aktionseingaben definieren. Sie finden die verfügbaren Aktionseingaben und erforderlichen Datentypen unter Eingaben in der Aktionsstruktur. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Zeitüberschreitung Anzahl

    Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.

    Tabelle : 6. Rückgaben
    Typ Beschreibung
    Objekt Objekt mit Ausgaben, die durch die Aktion definiert sind. Sie finden die Ausgaben für die Aktion unter Ausgaben In der Aktionsstruktur.
    (function() {
      try {
    
        var grIncident = new GlideRecord('incident');
        grIncident.get('57af7aec73d423002728660c4cf6a71c');
    
        var inputs = {};
        inputs['variable'] = grIncident;
    
        var outputs = sn_fd.FlowAPI.executeActionQuick('global.update_record_test', inputs);
    
        // Get Outputs:
        // Note: outputs can only be retrieved when executing synchronously.
        var output1 = outputs['output1']; 
    
      } catch (ex) { 
        var message = ex.getMessage();
        gs.error(message);
        }
    	
    })();

    FlowAPI – executeDataStreamAction (Zeichenfolgenname, Zuordnungseingaben, Zahlenzeitüberschreitung)

    Führt eine Datenstromaktion synchron von einem serverseitigen Skript aus und gibt ein ScriptableDataStream-Objekt zurück.

    Weitere Informationen zu Datenstromaktionen finden Sie unter Datenstromaktionen und Paginierung .

    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Datenstromlogik immer in umbrechen Versuchen/fangen Blockieren, um Fehler zu erfassen. Fügen Sie immer ein ein Endlich Anweisung, die mit endet Schließen () Methode aus der SkriptableDataStream Klasse zum Schließen des Datenstroms und zur Vermeidung von Leistungsproblemen.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und Name der auszuführenden Datenstromaktion. Beispiel: Global.Data_Stream_action_Name .
    inputs Karte Name-Wert-Paare, die Aktionseingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Wenn die Aktion keine Eingaben enthält, schließen Sie diesen Parameter nicht ein.
    Zeitüberschreitung Anzahl Optional. Zeit, bis die Aktion abläuft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst. Die Zeitüberschreitung gilt nur für ExecuteDataStreamAction Methode, nicht zu Methoden in SkriptableDataStream Klasse.

    Standard: 30000, angegeben durch com.glide.hub.flow_api.default_execution_timeSystemeigenschaft

    Einheit: Millisekunden

    Tabelle : 8. Rückgaben
    Typ Beschreibung
    SkriptableDataStream Ein Objekt, das zum Iterieren von Elementen im Datenstrom verwendet wird. Verwenden Sie die Methoden in SkriptableDataStream Klasse, die mit diesem Objekt interagiert werden soll. Siehe ScriptableDataStream-API .

    In diesem Beispiel wird für jedes im Datenstrom zurückgegebene Element ein Incident-Datensatz erstellt.

    (function() {
    	
      try {
    
        // Execute Data Stream Action. 
        var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');
    
        // Process each item in the data stream
        while (stream.hasNext()) {
    
          // Get a single item from the data stream.
          var item = stream.next();
    
          // Use the item. 
          var now_GR = new GlideRecord('incident');
          now_GR.setValue('number',item.id);
          now_GR.setValue('short_description',item.name);
          now_GR.insert();
    		
          // By default, this code snippet will terminate after 10 items.
          // Remove or modify this limit after testing your code.
          if (stream.getItemIndex() >= 9) {
            break;
          }
        }
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      } finally {
        stream.close();
      }
    	
    })();

    FlowAPI – executeFlow(String name, Map inputs, Number timeout)

    Führt einen Flow aus einem serverseitigen Skript synchron aus.

    Führen Sie einen Flow aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Flows, die mit dieser Methode ausgeführt werden, laufen synchron. Verwenden Sie startFlow, um einen Flow asynchron auszuführen.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als Anwender aus, der in den Flow-Eigenschaften angegeben ist.
    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name des auszuführenden Flow, z. B. global.flow_name.
    inputs Karte Name-Wert-Paare, die Auslösereingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Zeitüberschreitung Anzahl Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 10. Rückgaben
    Typ Beschreibung
    Keine Der normale Vorgang erzeugt keinen Rückgabewert.
    Ausnahme Die API löst eine Ausnahme aus, wenn ein synchron aufgerufener Flow angehalten wird. Die aktuelle Ausführung befindet sich im Status „Warten“ . In den meisten Fällen wird die Ausnahme entfernt, wenn der Flow fortgesetzt wird. Die API kann jedoch einen Flow, der an einen MID-Server gesendet wurde, nicht fortsetzen.

    Dieses Beispiel verwendet „sn_fd.FlowAPI.executeFlow“, um einen globalen Flow mit dem Namen „test_flow“ auszuführen. Dieser Flow wird normalerweise ausgelöst, wenn ein Datensatz in der Incident-Tabelle aktualisiert wird. Da Sie den Flow von einem Skript aus aktivieren, müssen Sie diese Informationen angeben. Der Code erstellt eine Variable „inputs“, die den aktuellen Datensatz und die Tabelle für den Datensatz enthält. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
      try {
        var inputs = {};
        inputs['current'] = ; // GlideRecord of table:  
        inputs['table_name'] = 'incident';
    
        // Execute Synchronously: Run in foreground.
        // var timeout = ; //timeout in ms
        //sn_fd.FlowAPI.executeFlow('global.test_flow', inputs, timeout)
        sn_fd.FlowAPI.executeFlow('global.test_flow', inputs);
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();

    FlowAPI – executeFlowQuick(Zeichenfolgenname, Zuordnungseingaben, Zeitüberschreitung bei Anzahl)

    Führt einen Flow, Subflow, eine Aktion oder eine Datenstromaktion aus einem serverseitigen Skript synchron oder asynchron aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessert die Leistung durch Eliminierung des Aufzeichnungsaufwands. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Als Anwender ausführen
    Diese Methode führt den Flow als Anwender aus, der die Sitzung initiiert. Das Festlegen des Flows, der als Systemanwender ausgeführt werden soll, oder das Angeben der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten des Flows, um auf Bedingungen zu warten. Aktionen oder Flow-Logik, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“, „auf Bedingung warten“ oder „Warten für eine Dauer“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten eines Flows zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Flows. Beispiel: Global.Flow_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Flows.
    inputs Karte Name-Wert-Paare, die Auslösereingaben definieren. Sie finden die verfügbaren Auslösereingaben und erforderlichen Datentypen im Abschnitt „Auslöser“ des Flows. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Zeitüberschreitung Anzahl Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 12. Rückgaben
    Typ Beschreibung
    void
    (function() {
    	
      try {
        var grIncident = new GlideRecord('incident');
        grIncident.get('ed92e8d173d023002728660c4cf6a7bc');
    
        var inputs = {};
        inputs['current'] = grIncident;
        inputs['table_name'] = 'incident';
    		
        sn_fd.FlowAPI.executeFlowQuick('global.test_quick_flow', inputs);
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
    	}
    	
    })();

    FlowAPI – executeSubflow(Zeichenfolge „name“, Zuordnung „inputs“, Zahl „timeout“)

    Führt einen Subflow aus einem serverseitigen Skript synchron aus.

    Führen Sie einen Subflow aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Subflows, die mit dieser Methode ausgeführt werden, laufen synchron. Verwenden Sie startSubflow, um einen Subflow asynchron auszuführen.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als Anwender aus, der in den Flow-Eigenschaften angegeben ist.
    Tabelle : 13. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name des auszuführenden Subflow, z. B. global.subflow_name.
    inputs Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Zeitüberschreitung Anzahl Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 14. Rückgaben
    Typ Beschreibung
    Objekt Objekt, das die Subflow-Ausgaben enthält.
    Ausnahme Die API löst eine Ausnahme aus, wenn ein synchron aufgerufener Flow angehalten wird. Die aktuelle Ausführung befindet sich im Status „Warten“ . In den meisten Fällen wird die Ausnahme entfernt, wenn der Flow fortgesetzt wird. Die API kann jedoch einen Flow, der an einen MID-Server gesendet wurde, nicht fortsetzen.

    In diesem Beispiel verwendet das Skript „sn_fd.FlowAPI.executeSubflow“, um einen Subflow mit dem Namen „subflowTest“ im globalen Bereich auszuführen. Eine Variable mit dem Namen „input“ enthält die Eingaben für den Subflow. In diesem Fall einen Namen und ein Passwort. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    
    (function() {
    	
    	try {
    		var inputs = {};
    		inputs['name'] = ; // String 
    		inputs['password2'] = ; // Password (2 Way Encrypted) 
    		
    		// Execute Synchronously: Run in foreground.
    		// var timeout = ; //timeout in ms
                  //sn_fd.FlowAPI.executeSubflow('global.subflowTest', inputs, timeout)
                  var outputs = sn_fd.FlowAPI.executeSubflow('global.subflowTest', inputs);
    		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	}	
    })();

    FlowAPI – executeSubflowQuick (Zeichenfolgenname, Zuordnungseingaben, Zahlenzeitüberschreitung)

    Führen Sie einen Subflow aus einem serverseitigen Skript synchron aus der aktuellen Anwendersitzung aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Overhead bei der Datensatzführung vermeiden. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Als Anwender ausführen
    Diese Methode führt den Flow als Anwender aus, der die Sitzung initiiert. Das Festlegen des Flows, der als Systemanwender ausgeführt werden soll, oder das Angeben der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten des Flows, um auf Bedingungen zu warten. Aktionen oder Flow-Logik, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“, „auf Bedingung warten“ oder „Warten für eine Dauer“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten eines Flows zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 15. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Subflows. Beispiel: Global.Subflow_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Subflows.
    inputs Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Sie finden die verfügbaren Subflow-Eingaben und erforderlichen Datentypen unter Eingaben im Subflow. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Zeitüberschreitung Anzahl Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von angegebene Standardzeitüberschreitung von 30 Sekunden com.glide.hub.flow_api.default_execution_timeSystemeigenschaft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 16. Rückgaben
    Typ Beschreibung
    Objekt Objekt mit Ausgaben, die vom Subflow definiert sind. Sie finden die Ausgaben für den Subflow unter Subflow-Eingaben Und -Ausgaben In der Subflow-Gliederung.
    (function() {
    
      try {
        var grIncident = new GlideRecord('incident');
        grIncident.get('57af7aec73d423002728660c4cf6a71c');
    
        var inputs = {};
        inputs['variable'] = grIncident;
    
        var outputs = sn_fd.FlowAPI.executeSubflowQuick('global.test_quick_run_subflow', inputs);
    
        // Get Outputs:
        // Note: outputs can only be retrieved when executing synchronously.
        var output1 = outputs['output1']; 
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
        }
    	
    })();

    FlowAPI – getErrorMessage(Zeichenfolge contextId)

    Gibt die Fehlermeldungen zurück, die von einem Flow, Subflow oder einer Aktion erzeugt werden. Diese Methode kann keine Nachrichten von Flows, Subflows oder Aktionen zurückgeben, die mit der API „Quick()“ ausgeführt werden.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Die sys_ID des Flows, Subflows oder der Aktion, deren Fehlermeldungen Sie abrufen möchten.
    Tabelle : 18. Rückgaben
    Typ Beschreibung
    Zeichenfolge Die letzte Ausführung des Vorgangs und die von ihm erstellte Fehlermeldung.

    Dieses Beispiel startet einen globalen Subflow namens Test_error_Subflow und gibt alle von ihm erstellten Fehlermeldungen zurück. Normalerweise führt ein einzelnes Skript nicht gleichzeitig einen Flow aus und ruft dann seine Fehlermeldungen ab. Normalerweise entweder ein anderes Skript oder Workflow-Studio Hätte den Flow bereits ausgeführt. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
    
      try {
        // Gather inputs to call flow
        var inputs = {};
        inputs['ah_task'] = myTaskRecord; // GlideRecord of table: task
        inputs['ah_comment'] ='Test Comment' ; // String
    
        // Call flow with known errors
        var contextId = sn_fd.FlowAPI.startSubflow('global.test_error_subflow', inputs);
    
        // Get flow error message
        var errormsg = sn_fd.FlowAPI.getErrorMessage(contextId);
        return errormsg;
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();
    

    Ausgabe:

    Operation (test_error_flow.574033f6db6811102166e2291396199f.274073f6db6811102166e22913961908.0be0d916c31332002841b63b12d3ae13) failed with error: com.snc.process_flow.exception.OpException: Value of field record is not a GlideRecord
    at com.snc.process_flow.operation.FieldValue.getGlideRecord(FieldValue.java:145)
    at com.snc.process_flow.operation.CRUDOperation.getInputValidGlideRecord(CRUDOperation.java:54)
    at com.snc.process_flow.operation.RecordDeleteOperation.run(RecordDeleteOperation.java:26)
    at com.snc.process_flow.engine.Operation.execute(Operation.java:212)
    at com.snc.process_flow.engine.restricted_caller_access.ExecuteWithCallerAccessTracking.executeWithMetaStack(ExecuteWithCallerAccessTracking.java:31)
    at com.snc.process_flow.engine.ProcessEngine.executeOps(ProcessEngine.java:570)
    at com.snc.process_flow.engine.ProcessEngine.runInternal(ProcessEngine.java:476)
    at com.snc.process_flow.engine.ProcessEngine.run(ProcessEngine.java:462)
    at com.snc.process_flow.engine.ProcessAutomation.run(ProcessAutomation.java:86)
    at com.snc.process_flow.engine.GlideProcessAutomation.runSync(GlideProcessAutomation.java:155)
    at com.snc.process_flow.engine.GlideProcessAutomation.runWithDomain(GlideProcessAutomation.java:270)
    at com.snc.process_flow.engine.GlideProcessAutomation.lambda$runAsUserSync$1(GlideProcessAutomation.java:237)
    at com.snc.process_flow.engine.PFSessionClone.run(PFSessionClone.java:70)
    at com.snc.process_flow.engine.GlidePFSession.runPlanAsUserSession(GlidePFSession.java:42)
    at com.snc.process_flow.engine.GlideProcessAutomation.runAsUserSync(GlideProcessAutomation.java:235)
    at com.snc.process_flow.engine.GlideProcessAutomation.messageFlow(GlideProcessAutomation.java:330)
    at com.snc.process_flow.engine.GlideProcessAutomation.messageFlow(GlideProcessAutomation.java:309)
    at com.snc.process_flow.engine.ProcessHubEventHandler.doSendMessage(ProcessHubEventHandler.java:475)
    at com.snc.process_flow.engine.ProcessHubEventHandler.process(ProcessHubEventHandler.java:119)
    at com.snc.process_flow.engine.ProcessHubEventHandler.process(ProcessHubEventHandler.java:91)
    at com.snc.process_flow.engine.FlowEventManager.processEvents(FlowEventManager.java:122)
    at com.glide.job.EventHandlerJob.execute(EventHandlerJob.java:38)
    at com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    at com.snc.db.data_replicate.replicator.DataReplicationAdvisors.runInOriginatorContext(DataReplicationAdvisors.java:73)
    at com.glide.schedule.JobExecutor.lambda$inDataReplicationContext$2(JobExecutor.java:159)
    at com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    at com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    at com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    at com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    at com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    at com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    at com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)

    FlowAPI – getFlowStages(Zeichenfolge scopedFlowName)

    Gibt eine JSON-Zeichenfolge zurück, die die Liste der Flow-Phasen enthält.

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    Scope-FlowName Zeichenfolge Der Anwendungsbereich und der Name des Flows, dessen Phasen Sie abrufen möchten.
    Tabelle : 20. Rückgaben
    Typ Beschreibung
    Zeichenfolge JSON-formatierte Zeichenfolge, die die Phasen des Flows nach ihren Phasendatensatzwerten auflistet.

    Dieses Beispiel zeigt das Abrufen der Phasen für den Flow „Servicekatalog-Elementanforderung“.

    (function() {
    
      try {
        // Name of flow with stages
        var flowName = "service_catalog_item_request";
    
        // Get flow stages
        var flowStages = sn_fd.FlowAPI.getFlowStages(flowName);
        //Print JSON as info message  
        gs.info(flowStages);
        return flowStages;
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();
    

    Ausgabe:

    Die JSON-Zeichenfolge enthält Name-Wert-Paare für ein Phasenfeld. Weitere Informationen finden Sie unter .

    [
      {
        "label": "Manager Approval",
        "value": "manager_approval",
        "type": "standard",
        "duration": "1970-01-03 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 0
      },
      {
        "label": "Set current stage state to:  [Error]",
        "value": "Set current stage state to:  [Error]",
        "type": "error",
        "duration": "1970-01-01 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": false,
        "order": 0
      },
      {
        "label": "Dept. Head Approval",
        "value": "Dept. Head Approval",
        "type": "standard",
        "duration": "1970-01-03 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 1
      },
      {
        "label": "CIO Approval",
        "value": "CIO Approval",
        "type": "standard",
        "duration": "1970-01-03 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 2
      },
      {
        "label": "Order Fulfillment",
        "value": "Order Fulfillment",
        "type": "standard",
        "duration": "1970-01-05 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 3
      },
      {
        "label": "Backordered",
        "value": "Backordered",
        "type": "standard",
        "duration": "1970-01-15 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 4
      },
      {
        "label": "Deployment",
        "value": "Deployment",
        "type": "standard",
        "duration": "1970-01-02 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 5
      },
      {
        "label": "Request Cancelled",
        "value": "Request Cancelled",
        "type": "standard",
        "duration": "1970-01-01 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 6
      },
      {
        "label": "Completed",
        "value": "complete",
        "type": "standard",
        "duration": "1970-01-01 00:00:00",
        "states": {
          "pending": "Pending - has not started",
          "inprogress": "In progress",
          "skipped": "Skipped",
          "complete": "Completed",
          "error": "Error"
        },
        "flow": "30f3d26187e92300e0ef0cf888cb0b91",
        "alwaysShow": true,
        "order": 7
      }
    ]

    FlowAPI – getOutputs(Zeichenfolge contextId)

    Gibt die Ausgaben einer abgeschlossenen Aktion oder eines abgeschlossenen Subflows zurück.

    Sie können die Rückgabewerte aus entweder verwenden StartAction() Oder StartSubflow() Methoden als contextId-Parameter.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 21. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Die sys_ID der Aktion oder des Subflows, deren Ausgaben Sie abrufen möchten.
    Tabelle : 22. Rückgaben
    Typ Beschreibung
    Objekt Objekt, das die Aktionen- oder Subflow-Ausgaben enthält.

    Dieses Beispiel startet einen globalen Subflow namens Test_Subflow, wartet, bis der Flow abgeschlossen ist, und ruft dann seine Ausgabewerte ab. Normalerweise führt ein einzelnes Skript nicht gleichzeitig einen Flow aus und ruft dann seine Ausgabewerte ab. Da ein Flow möglicherweise nicht vor abgeschlossen wird GetOutputs() Anruf, in diesem Beispiel wird eine Wartezeit verwendet. Normalerweise entweder ein anderes Skript oder Workflow-Studio Hätte den Flow bereits ausgeführt. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
    
      try {
        // Gather inputs to call flow
        var inputs = {};
        inputs['ah_task'] = myTaskRecord; // GlideRecord of table: task
        inputs['ah_comment'] ='Test Comment' ; // String
    
        // Call flow
        var contextId = sn_fd.FlowAPI.startSubflow('global.test_subflow', inputs);
    
        // Wait for the flow to finish running
    
        // Get flow outputs
        var outputs = sn_fd.FlowAPI.getOutputs(contextId);
        var output1 = outputs['output1'];
        return output1;
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();
    

    FlowAPI – getRunner()

    Gibt einen zurück ScriptableFlowRunner builder-Objekt für einen Flow oder eine Aktion, den Sie ausführen möchten.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 24. Ergebnisse
    Typ Beschreibung
    ScriptableFlowRunner Builder-Objekt, das zum Ausführen von verwendet wird Workflow-Studio Aktion, Flow oder Subflow.

    In diesem Beispiel wird ein Flow synchron ausgeführt.

    
    (function() {
      try {
    
        var inputs = {}; 
    
        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  
    
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();
    
        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       

    FlowAPI – getStatus(Zeichenfolge contextId)

    Gibt den Status eines Flows, Subflows oder einer Aktion zurück.

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Die sys_ID des Flows, Subflows oder der Aktion, deren Status Sie abrufen möchten.
    Tabelle : 26. Rückgaben
    Parameter Typ Beschreibung
    <Object> Objekt Objekt, das den aktuellen Status des Flows, Subflows oder der Aktion als Name-Wert-Paare enthält.
    {
        "hasLookupError": Boolean,
        "errorMessage": "String",
        "contextStatus": {Object}
      }
    <Object>.HasLookupError Boolean Kennzeichnung, die angibt, ob beim Suchen des Kontextstatus des Flows, Subflows oder der Aktion ein Problem aufgetreten ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {Object}
      }
    <Object>.Fehlernachricht Zeichenfolge Fehlermeldung, die vom Kontextsuchvorgang zurückgegeben wird. Dieser Parameter ist ungültig, wenn hasLookupErrorIst „falsch“.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {Object}
      }
    <Object>.ContextStatus Objekt Objekt mit Statusdetails zum abgefragten Flow, Subflow oder Aktion.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "NONE"
        }
      }
    <Object>.ContextStatus.Status Zeichenfolge Status des Flows, Subflows oder Aktionskontexts. Einige Statuswerte enthalten zusätzliche Informationen in zugehörigen Parametern.
    • „ABSCHLIESSEN“ enthält zusätzliche Informationen in errorStateParameter
    • FEHLER stellt zusätzliche Informationen in bereit messageParameter
    • „ABGEBROCHEN“ stellt zusätzliche Informationen in bereit canceledReasonParameter
    • IN_PROGRESS stellt zusätzliche Informationen in bereit isRunOnMidParameter
    • WARTEN stellt zusätzliche Informationen in bereit waitingOnParameter
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "NONE"
        }
      }
    <Object>.ContextStatus.Fehlerstatus Zeichenfolge Flow-Abgeschlossenstatus, der durch die Flow-Fehlerbehandlung erzeugt wird. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „ABGESCHLOSSEN“ befinden.
    • FEHLER_ERFASST
    • ERROR_SKIPPED
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "ERROR_CAUGHT"
        }
      }
    <Object>.ContextStatus.Nachricht Zeichenfolge Fehlermeldung, die vom Flow, Subflow oder der Aktion zurückgegeben wird. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im FEHLERSTATUS befinden.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "ERROR",
          "message": "Error:  Error Message! (Process Automation.LOG; line 1)"
        }
      }
    <Object>.contextStatus.canceledReason Zeichenfolge Abbruchnachricht, die vom Flow, Subflow oder der Aktion zurückgegeben wird. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „ABGEBROCHEN“ befindet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "CANCELLED",
          "canceledReason": "User has requested to stop executing the flow"
        }
      }
    <Object>.ContextStatus.isRunOnMid Boolean Kennzeichnung, die angibt, ob der Flow, Subflow oder die Aktion in einer MID-Server-Umgebung ausgeführt wird. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status IN_PROGRESS befinden.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "IN_PROGRESS",
          "isRunOnMid": true
        }
      }
      }
    <Object>.ContextStatus.Warten auf Array Liste der Elemente, auf die der aktuelle Flow, Subflow oder die aktuelle Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befinden.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "order":"1",
              "stepType": "TIMER",
              "endTime": 1713627497643
            },
            {
              "order":"5",
              "stepType": "WAIT_FOR_CONDITION_WITH_TIMEOUT",
              "table": "incident",
              "condition": "sys_id=10e8b43243200210338774d6ebb8f22d^short_description=112",
              "endTime": 1713645497800
            }
          ]
        }
      }
    <Object>.ContextStatus.Warten auf.Bestellung Zeichenfolge Flow-Schrittnummer des Elements, das das Warten des Flows verursacht. Wenn die Warteaktion eine anwenderdefinierte Aktion innerhalb eines Flows ist, enthält die Reihenfolge auch einen Punkt und die Aktionsschrittnummer der anwenderdefinierten Aktion, auf die der Flow wartet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "order":"1",
              "stepType": "TIMER",
              "endTime": 1713627497643
            },
            {
              "order":"5",
              "stepType": "WAIT_FOR_CONDITION_WITH_TIMEOUT",
              "table": "incident",
              "condition": "sys_id=10e8b43243200210338774d6ebb8f22d^short_description=112",
              "endTime": 1713645497800
            }
          ]
        }
      }
    <Object>.ContextStatus.wartingOn.stepType Zeichenfolge Typ der Aktion oder des Flow-Schritts, der dazu führt, dass der Flow, der Subflow oder die Aktion warten. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befinden. Hier sind einige häufige Beispiele.
    • WARTEN_AUF_BEDINGUNG
    • WAIT_FOR_CONDITION_WITH_TIMEOUT
    • ASK_FOR_APPROVAL
    • CREATE_TASK_WITH_WAIT
    • TIMER
    • SLA_TIMER
    • SUBFLOW
    <Object>.ContextStatus.Warten auf.Tabelle Zeichenfolge Tabellenname, der den Datensatz enthält, auf den der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befindet und der stepType „WAIT_FOR_CONDITION“, „WAIT_FOR_CONDITION_WITH_TIMEOUT“, „ASK_FOR_APPROVAL“ oder „CREATE_TASK_WITH_WAIT“ ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
              {
              "order":"1",
              "stepType": "WAIT_FOR_CONDITION",
              "table": "incident",
              "condition": "sys_id=1347723243200210338774d6ebb8f285^short_description=1238"
              }
            ]
        }
      }
    <Object>.ContextStatus.Warten auf.Bedingung Zeichenfolge Abfragebedingung des Datensatzes, auf den der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befinden und eine Bedingung vorhanden ist, die erfüllt sein muss, um die Ausführung fortzusetzen.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
              {
              "order":"1",
              "stepType": "WAIT_FOR_CONDITION",
              "table": "incident",
              "condition": "sys_id=1347723243200210338774d6ebb8f285^short_description=1238"
              }
            ]
        }
      }
    <Object>.ContextStatus.Warten On.endTime Ganzzahl Endzeit, auf die der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befindet und der stepType „WAIT_FOR_CONDITION_WITH_TIMEOUT“, „TIMER“ oder „SLA_TIMER“ ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
        "state": "WAITING",
        "waitingOn": [
            {
              "order":"3",
              "stepType": "SLA_TIMER",
              "endTime": 1713574610000
            }
        ]
        }
      }
    <Object>.ContextStatus.WaitingOn.ApprovalRule Zeichenfolge Genehmigungsregel, auf die der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, der Subflow oder die Aktion im Status „WARTEN“ befinden und der stepType ASK_FOR_APPROVAL ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "order":"3",
              "stepType": "ASK_FOR_APPROVAL",
              "table": "incident",
              "condition": "sys_id=3bd89703372002103387963174924b20^approvalINapproved,rejected,cancelled",
              "approvalRule": "ApprovesAnyU[a8f98bb0eb32010045e1a5115206fe3a,71826bf03710200044e0bfc8bcbe5d3b]"
            }
          ]
        }
      }
    <Object>.ContextStatus.wartingOn.contextId Zeichenfolge Die sys_ID des Subflows, auf den der Flow oder Subflow wartet. Die API generiert diesen Parameter nur, wenn sich der Flow oder Subflow im Status „WARTEN“ befindet und der stepType SUBFLOW ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
        "state": "WAITING",
        "waitingOn": [
            {
              "order":"1",
              "stepType": "SUBFLOW",
              "contextId": "0f724aabd921021020291a665e07e44a"
            }
          ]
        }
      }

    In diesem Beispiel wird ein Flow ausgeführt, der Folgendes in paralleler Flow-Logik enthält. Normalerweise führt ein einzelnes Skript nicht gleichzeitig einen Flow aus und ruft dann seine Fehlermeldungen ab. Normalerweise entweder ein anderes Skript oder Workflow-Studio Hätte den Flow bereits ausgeführt.

    (function() {
      try {
        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .flow('global.test_do_in_parallel')   // Run the global scope flow named do_in_parallel.
          .run();                               // Run the flow and return a FlowRunnerResult object.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
    
        var flowStatus = sn_fd.FlowAPI
          .getStatus(contextId);                // Retrieve any outputs from the flow execution.
    
        JSON.stringfy(flowStatus);              // Convert object to string
        return flowStatus;
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
    Ausgabe:
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "order":"1",
              "stepType": "TIMER",
              "endTime": 1713627497643
            },
            {
              "order":"5",
              "stepType": "WAIT_FOR_CONDITION_WITH_TIMEOUT",
              "table": "incident",
              "condition": "sys_id=10e8b43243200210338774d6ebb8f22d^short_description=112",
              "endTime": 1713645497800
            }
          ]
        }
      }

    FlowAPI – hasApprovals(Zeichenfolge scopedFlowName)

    Überprüft, ob ein Flow innerhalb eines bestimmten Umfangs Aktionen zur Anforderung einer Genehmigung enthält.

    Die HasApprovals() Die Methode bestimmt, ob ein Flow innerhalb eines bestimmten Umfangs Aktionen zum Anfordern einer Genehmigung enthält. Mit dieser Methode wird auch überprüft, ob Aktionen zur Anforderung einer Genehmigung innerhalb des Flows unter „wenn“-Flow-Logikblöcken verschachtelt sind. Weitere Informationen finden Sie unter Aktionen „um Genehmigung bitten“ .

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    Scope-FlowName Zeichenfolge Umfang und interner Name des auszuführenden Flows. Beispiel: Global.Flow_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Flows.
    Tabelle : 28. Rückgaben
    Typ Beschreibung
    Zeichenfolge Gibt einen der folgenden Zeichenfolgenwerte zurück:
    • IMMER: Der Flow enthält eine Aktion „Genehmigung anfordern“, die nicht innerhalb einer Bedingung geschachtelt ist Wenn Flow-Logikblock.
    • BEDINGT: Der Flow enthält eine Aktion „Genehmigung anfordern“, die in einer bedingten verschachtelt ist Wenn Flow-Logikblock.
    • NEIN: Der Flow enthält keine Aktionen zum Anfragen um Genehmigung.
    • UNBEKANNT: Es ist ein Compilerfehler aufgetreten, und das System kann nicht bestimmen, ob der Flow Aktionen zum Anfordern von Genehmigungen enthält.

    Im folgenden Beispiel wird überprüft, ob Example_Flow Flow innerhalb von Global Der Umfang enthält alle Aktionen zur Anforderung einer Genehmigung und protokolliert das Ergebnis.

    (function() {
    	
      try {
        var result = sn_fd.FlowAPI.hasApprovals('global.example_flow');
        gs.log('Result: ' + result);
      }
    
      catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();

    FlowAPI – restartFlowFromContext(String ContextId, Map providedInputs)

    Startet einen Flow, Subflow oder eine Aktion neu, die im Hintergrund ausgeführt wurde. Sie können neue Eingaben bereitstellen oder auslassen, um die zuvor bereitgestellten Eingaben wiederzuverwenden.

    Tabelle : 29. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Die sys_ID des Flows, Subflows oder der Aktion, die Sie neu starten möchten. Dieser Flow, Subflow oder diese Aktion muss im Hintergrund ausgeführt werden und einen zugehörigen sysevent-Datensatz haben.
    BereitgestelltEingaben Objekt Optional. Zuordnungsobjekt, das die Name-Wert-Paare enthält, die Ersatzeingaben für den Flow, den Subflow oder die Aktion definieren. Wenn Sie diesen Parameter auslassen oder einen Nullwert angeben, wird der Flow, der Subflow oder die Aktion mit den zuvor angegebenen Eingaben ausgeführt.
    Tabelle : 30. Rückgaben
    Typ Beschreibung
    SkriptableFlowRunnerResultScoped Objekt, das die Ausführungsdetails von enthält Workflow-Studio Aktion, Flow oder Subflow.

    Startet einen Beispiel-Flow neu, der einen datensatzbasierten Auslöser in der Incident-Tabelle hat. Der ursprüngliche Flow verwendete Beispiel-Incident INC0008112 als Eingabe. Wenn der Flow neu gestartet wird, wird stattdessen ein Beispiel-Incident INC0008111 als Eingabe verwendet.

    (function() {
      try {
    
        var flowContextID = '4216396ffd7d11107edcf07204c30fd5';     // sys_id of sys_flow_context record
        var oldIncidentRecord = '552c48888c033300964f4932b03eb092'; // sys_id of INC0008112
        var newIncidentRecord = 'a83820b58f723300e7e16c7827bdeed2'; // sys_id of INC0008111
        var inputs = {};
        var gr = new GlideRecord('incident'); // Create new incident object
    
        gr.get(newIncidentRecord);            // Get GlideRecord object for INC0008111
    
        inputs['current'] = gr;               // Set new Incident record as input
        inputs['table_name'] = 'incident';    // Set table name to Incident
    
        var result = sn_fd.FlowAPI.getRunner()            // Create a ScriptableFlowRunner builder object.
          .restartFlowFromContext(flowContextID, inputs); // Restart flow with new inputs.
    
        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
    
        gs.info(contextId + ' ' + dateRun);
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();
    

    FlowAPI – scheduleCancel(ZeichenfolgenkontextId, Zeichenfolgengrund, Ganzzahl delaySeconds)

    Planen Sie ein Systemereignis in der Flow-Engine-Warteschlange, um einen Flow im Status „in Bearbeitung“, „vermutlich unterbrochen“ oder „Warten“ nach einer Verzögerung abzubrechen.

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge SYS_ID des Ausführungsdetaildatensatzes für den Flow, den Subflow oder die Aktion. Der Ziel-Flow, der Subflow oder die Aktion müssen sich im Status „in Bearbeitung“, „vermutlich unterbrochen“ oder „Warten“ befinden. Greifen Sie auf die Ausführungsdetails zu, indem Sie in zur Registerkarte Flow-Ausführungen navigieren Workflow-Studio, Oder übergeben Sie die sys_ID des Kontextdatensatzes, der von der Methode zurückgegeben wird.
    Hinweis:
    Es kann eine kleine Verzögerung beim Abbrechen geben, wenn der Zielkontext auf einem anderen Knoten der Instanz ausgeführt wird. Kontexte, die auf demselben Knoten ausgeführt werden, werden sofort abgebrochen. Kontexte, die auf einem anderen Knoten ausgeführt werden, müssen zuerst warten, bis der Abbruch an den entsprechenden Knoten weitergeleitet wird.
    Grund Zeichenfolge Grund für den Abbruch des Flows, Subflows oder der Aktion. Wird in angezeigt Nachricht Feld der Tabelle „Flow Engine-Protokolleinträge“ [sys_Flow_log].
    DelaySeconds Ganzzahl Optional. Anzahl der Sekunden, die gewartet werden soll, bevor ein Abbruchereignis in der Flow Engine-Warteschlange verarbeitet wird. Wenn Sie diesen Parameter auslassen, verwendet die Methode den Standardwert 1 Sekunde.

    Sie können diesen Parameter verwenden, um die Leistungsauswirkungen zu vermeiden, die durch die Planung des Abbruchs von Tausenden von Flow-Kontexten gleichzeitig entstehen. Anstatt alle Abbrüche gleichzeitig auszuführen, planen Sie einen Batch von Flow-Abbrüchen mit einer Verzögerung. Alternativ können Sie die Verzögerung als Zeitüberschreitungswert für einen asynchronen Flow verwenden.

    Tabelle : 32. Rückgaben
    Typ Beschreibung
    Keine

    In diesem Beispiel wird der Rückgabewert von verwendet StartFlow() Methode zum Planen des Abbruchs von Flows mit langer Laufzeit.

    (function() { 
    
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('number', 'INC0000050'); 
    now_GR.query(); 
    now_GR.next(); 
    
          try { 
              var inputs = {}; 
              inputs['current'] = now_GR; // GlideRecord of table: 
              inputs['table_name'] = 'incident'; 
    
              // Starts the flow asynchronously.
              var contextId = sn_fd.FlowAPI.startFlow('global.myFlow', inputs); 
    
          } catch (ex) { 
              var message = ex.getMessage(); 
              gs.error(message); 
          } 
    })();
    
     
    // Call the scheduleCancel() method using the context Id returned from the startFlow() method
    sn_fd.FlowAPI.scheduleCancel(contextId, 'Flow took too long to execute.', 60);

    In diesem Beispiel wird der Abbruch aller Flows mit dem Namen „Test-Flow“ geplant.

    var now_GR = new GlideRecord("sys_flow_context");
    now_GR.addQuery("name", "Test Flow");
    now_GR.query();
    
    while (now_GR.next()) {
    sn_fd.FlowAPI.scheduleCancel(now_GR.getUniqueValue(), 'Canceling Test Flows', 60);
    } 

    In diesem Beispiel wird der Parameter „delaySeconds“ verwendet, um Flow-Abbruchaufträge in Batches auszuführen. Verwenden Sie Batches, um Tausende von Flow-Kontexten abzubrechen.

    var delaySeconds = 1;
    
    for (var i; i < sys_flow_context.length; ++i) {
      if (i % 100 === 0) {
        delaySeconds = delaySeconds + 60;
      }
      var contextId = sys_flow_context[i];
      var reason = "Example reason";
      sn_fd.FlowAPI.scheduleCancel(contextId, reason, delaySeconds);
    }

    FlowAPI – sendMessage(String contextSysID, String Message, Zeichenfolgennutzlast)

    Senden Sie eine bestimmte Nachricht und Nutzlastantwort an einen Flow, der angehalten wird und auf eine Nachricht wartet.

    Tabelle : 33. Parameter
    Name Typ Beschreibung
    ContextSysID Zeichenfolge Der sys_ID-Wert des Flows oder Subflows, der angehalten wird und wartet, bis eine bestimmte Nachricht fortgesetzt wird. Der Flow oder Subflow muss eine Aktion Warten auf Nachricht enthalten. Weitere Informationen finden Sie unter Wait For Message action.
    Nachricht Zeichenfolge Die Textzeichenfolge, die an den wartenden Flow oder Subflow gesendet werden soll. Wenn dieser Nachrichtenwert mit dem Nachrichtenwert übereinstimmt, der in der Aktion auf Nachricht warten aufgeführt ist, wird der Flow oder Subflow fortgesetzt. Weitere Informationen finden Sie unter Wait For Message action.
    Nutzlast Zeichenfolge Der Ausgabewert der Textzeichenfolge, der an den wartenden Flow gesendet werden soll. Der Flow oder Subflow kann die Nutzlast als Eingabe verwenden, wenn sie fortgesetzt wird. Sie können beispielsweise einen Grund angeben, warum ein Datensatz erneut geöffnet wurde oder dass eine neue Genehmigung erforderlich war.
    Tabelle : 34. Rückgaben
    Typ Beschreibung
    Keine

    In diesem Beispiel wird die Nachricht gesendet Flow Fortsetzen Um einen angehaltenen Flow neu zu starten. Der angehaltene Flow kann dann den Nutzlastwert als Daten an anderer Stelle im Flow verwenden.

    (function() {
        try {
          // var change = '154a6320db9b12102166e229139619fc';    // Example sys_id of change record
          var pausedFlowId = '6e9bab60949b1210dda11cd237cd955d'; // Example sys_id of a paused flow
          var resumeMessage = 'Resume Flow';                     // Message that paused flow is waiting for
          var payload = 'Resubmitted for approval';              // Data to send back to flow
          var result = sn_fd.FlowAPI
          .sendMessage(pausedFlowId, resumeMessage, payload);    // Send a message to the paused flow
        } catch (ex) {
          var message = ex.getMessage();
          gs.error(message);
        }
      })();  
      

    Ausgabe:

    Dieses Skript erzeugt keine eigene Ausgabe. Wenn Sie es über ausführen Skripts-Background Modul, listet das System die Vorgänge und Tabellen auf, die vom Skript geändert wurden. Sie können die Ergebnisse der Skriptausgabe auch in den Flow-Ausführungsdetails einer Aktion „auf Nachricht warten“ anzeigen.
    [0:00:00.074] Script completed in scope global: script
    Script execution history and recovery available here
    Operation	Table	                       Row Count
    delete	   sys_flow_runtime_state_chunk	1
    insert	   sys_flow_runtime_state_chunk	1
    update	   sys_flow_context	            1
    record-watcher asynchronous tracking complete - time: 3 ms. Executed responders: 1 
    record-watcher asynchronous tracking complete - time: 3 ms. Executed responders: 1 
    record-watcher asynchronous tracking complete - time: 3 ms. Executed responders: 1 
    

    FlowAPI – setEncryptedOutput(Zeichenfolge „password“)

    Erstellt Passwort2-Werte innerhalb eines Skriptschritts.

    Ermitteln Sie einen verschlüsselten password2-Wert, der von einem GlideRecord zurückgegeben wird. Dadurch kann das System den Wert als maskiertes Passwort anstelle einer verschlüsselten Zeichenfolge anzeigen.

    Tabelle : 35. Parameter
    Name Typ Beschreibung
    Passwort Zeichenfolge Verschlüsselter password2-Wert.
    Tabelle : 36. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Verschlüsselter password2-Wert, der von der Engine als Passwortwert erkannt wird.

    In diesem Beispiel wird der Wert eines password2-Felds aus einem Benutzerdatensatz zurückgegeben und in einer Variablen gespeichert. Diese Variable wird an die Methode „setEncryptedOutput“ übergeben, die mit „sn_fd.GlideActionUtil.setEncryptedOutput“ angerufen wird. Die Instanz erkennt den zurückgegebenen Wert als Passwort.

    (function execute(inputs, outputs) {
      // ...code...
      var now_GR = new GlideRecord('sys_user');
      now_GR.addQuery('first_name' , 'Abel');
      now_GR.query();
      now_GR.next();
      var pwVal = now_GR.getValue('pw2');
      outputs['usedSetEncrypted'] = sn_fd.GlideActionUtil.setEncryptedOutput(pwVal);
      outputs['justSetDirectly'] = pwVal;
    })(inputs, outputs);

    FlowAPI – startAction(String name, Map inputs)

    Führt eine Aktion aus einem serverseitigen Skript asynchron aus.

    Führen Sie eine Aktion aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Aktionen, die mit dieser Methode ausgeführt werden, werden asynchron ausgeführt, sodass Skripts, die diese Methode verwenden, keinen Zugriff auf Ausgaben haben, die von der Aktion erstellt wurden. Verwenden Sie executeAction, um eine Aktion synchron auszuführen und auf die erzeugten Ausgaben zuzugreifen.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt die Aktion als Anwender aus, der die Sitzung initiiert.
    Tabelle : 37. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name der auszuführenden Aktion, z. B. global.action_name.
    inputs Karte Name-Wert-Paare, die Aktionseingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Tabelle : 38. Rückgaben
    Typ Beschreibung
    Zeichenfolge SYS-ID des Kontextdatensatzes für die Aktion. Greifen Sie auf den Kontextdatensatz zu, indem Sie in zur Registerkarte Flow-Ausführungen navigieren Workflow-Studio, Wählen Sie eine Flow-Ausführung aus, und klicken Sie auf Öffnen Sie Den Kontextdatensatz .

    Dieses Beispiel verwendet „sn_fd.FlowAPI.startAction“, um eine Aktion mit dem Namen „add_comment“ in dem Bereich „sn_itsm_spoke“ auszuführen. Das inputs-Objekt enthält einen Zieldatensatz und einen Kommentar, der diesem Datensatz hinzugefügt werden soll. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
      try {
        var inputs = {};
        inputs['ah_task'] = myTaskRecord; // GlideRecord of table: task 
        inputs['ah_comment'] ='Test Comment' ; // String 
    
        var contextId = sn_fd.FlowAPI.startAction('sn_itsm_spoke.add_comment', inputs);	
    			
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    })();

    FlowAPI – startActionQuick(Zeichenfolgenname, Zuordnungseingaben)

    Führt eine Aktion aus einem serverseitigen Skript asynchron aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Overhead bei der Datensatzführung vermeiden. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten der Aktion zum Warten auf Bedingungen. Schritte, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“ oder „Warten auf Bedingung“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten einer Aktion zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 39. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name der auszuführenden Aktion. Beispiel: Global.action_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Aktionen.
    inputs Karte Name-Wert-Paare, die Aktionseingaben definieren. Sie finden die verfügbaren Aktionseingaben und erforderlichen Datentypen unter Eingaben in der Aktionsstruktur. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Tabelle : 40. Rückgaben
    Typ Beschreibung
    void
    (function() {
    	
      try {
        var grIncident = new GlideRecord('incident');
        grIncident.get('57af7aec73d423002728660c4cf6a71c');
    
        var inputs = {};
        inputs['variable'] = grIncident;
    
        sn_fd.FlowAPI.startActionQuick('global.update_record_test', inputs);
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
        }
    	
    })();

    FlowAPI – startFlow(String name, Map inputs)

    Führt einen Flow aus einem serverseitigen Skript aus.

    Führen Sie einen Flow aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Mit dieser Methode ausgeführte Flows werden asynchron ausgeführt.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als Anwender aus, der in den Flow-Eigenschaften angegeben ist.
    Tabelle : 41. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name des auszuführenden Flow, z. B. global.flow_name.
    inputs Karte Name-Wert-Paare, die Auslösereingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Tabelle : 42. Rückgaben
    Typ Beschreibung
    Zeichenfolge SYS-ID des Kontextdatensatzes für den Flow. Greifen Sie auf den Kontextdatensatz zu, indem Sie in zur Registerkarte Flow-Ausführungen navigieren Workflow-Studio, Wählen Sie eine Flow-Ausführung aus, und klicken Sie auf Öffnen Sie Den Kontextdatensatz .

    Dieses Beispiel verwendet „sn_fd.FlowAPI.startFlow“, um einen globalen Flow mit dem Namen „test_flow“ auszuführen. Der Code erstellt eine Variable „inputs“, die Eingaben enthält, die für den Flow erforderlich sind. In diesem Fall den aktuellen Datensatz und die Tabelle für den Datensatz. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
     
      var now_GR = new GlideRecord('incident'); 
      now_GR.addQuery('number', 'INC0009009'); 
      now_GR.query(); 
      now_GR.next();
    
      try {
        var inputs = {};
        inputs['current'] = now_GR; // GlideRecord of table: Incident
        inputs['table_name'] = 'incident';
    
        var contextId = sn_fd.FlowAPI.startFlow('global.test_flow', inputs);	
    	
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);  
      }
    })();

    FlowAPI – startFlowQuick(Zeichenfolgenname, Zuordnungseingaben)

    Führt einen Flow aus einem serverseitigen Skript asynchron aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Overhead bei der Datensatzführung vermeiden. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Als Systemanwender ausführen
    Diese Methode führt den Flow als Systemanwender aus. Das Festlegen des Flows, der als Anwender ausgeführt werden soll, der die Sitzung initiiert, oder das Annehmen der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten des Flows, um auf Bedingungen zu warten. Aktionen oder Flow-Logik, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“, „auf Bedingung warten“ oder „Warten für eine Dauer“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten eines Flows zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 43. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Flows. Beispiel: Global.Flow_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Flows.
    inputs Karte Name-Wert-Paare, die Auslösereingaben definieren. Sie finden die verfügbaren Auslösereingaben und erforderlichen Datentypen im Abschnitt „Auslöser“ des Flows. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Tabelle : 44. Rückgaben
    Typ Beschreibung
    void
    (function() {
    	
      try {
        var grIncident = new GlideRecord('incident');
        grIncident.get('ed92e8d173d023002728660c4cf6a7bc');
    
        var inputs = {};
        inputs['current'] = grIncident;
        inputs['table_name'] = 'incident';
    		
        sn_fd.FlowAPI.startFlowQuick('global.test_quick_flow', inputs);
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
    	}
    	
    })();

    FlowAPI – startSubflow(String name, Map input)

    Führt einen Subflow aus einem serverseitigen Skript aus.

    Führen Sie einen Subflow aus einer Business Rule, einer Skripteinbindung oder einem anderen serverseitigen Skript aus. Subflows, die mit dieser Methode ausgeführt werden, werden asynchron ausgeführt. Skripts, die diese Methode enthalten, haben keinen Zugriff auf vom Flow erstellte Ausgaben. Verwenden Sie executeSubflow, um einen Subflow synchron auszuführen und auf die erzeugten Ausgaben zuzugreifen.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als Anwender aus, der in den Flow-Eigenschaften angegeben ist.
    Tabelle : 45. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Bereich und der Name des auszuführenden Subflow, z. B. global.subflow_name.
    inputs Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung.
    Tabelle : 46. Rückgaben
    Typ Beschreibung
    Zeichenfolge SYS-ID des Kontextdatensatzes für den Subflow. Greifen Sie auf den Kontextdatensatz zu, indem Sie in zur Registerkarte Flow-Ausführungen navigieren Workflow-Studio, Wählen Sie eine Flow-Ausführung aus, und klicken Sie auf Öffnen Sie Den Kontextdatensatz .

    In diesem Beispiel wird verwendet sn_fd.FlowAPI.startSubflow Zum Ausführen eines globalen Flows namens Test_Subflow. Der Code ist in einer try/catch-Anweisung eingeschlossen, um alle Fehler zu erfassen, die bei der Ausführung des Flow auftreten können.

    (function() {
      try {
        var inputs = {};
        inputs['ah_task'] = myTaskRecord; // GlideRecord of table: task 
        inputs['ah_comment'] ='Test Comment' ; // String 
    
        var contextId = sn_fd.FlowAPI.startSubflow('global.test_subflow', inputs);
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();

    FlowAPI – startSubflowQuick(Zeichenfolgenname, Zuordnungseingaben)

    Führt einen Subflow aus einem serverseitigen Skript asynchron aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Overhead bei der Datensatzführung vermeiden. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung mit hohem Volumen, z. B. mehrere Ausführungen pro Sekunde, in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt keine Ausführungsdetails und Kontextdatensätze, unabhängig von Workflow-Studio Einstellungen.
    Als Systemanwender ausführen
    Diese Methode führt den Flow als Systemanwender aus. Das Festlegen des Flows, der als Anwender ausgeführt werden soll, der die Sitzung initiiert, oder das Annehmen der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt nicht das Anhalten des Flows, um auf Bedingungen zu warten. Aktionen oder Flow-Logik, die für Wartebedingungen anhalten, z. B. „Genehmigung anfordern“, „auf Bedingung warten“ oder „Warten für eine Dauer“, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten eines Flows zur Ausführung von einem MID-Server.
    Hinweis:
    Diese API wird durch ersetzt ScriptableFlowRunner – Umfang, Der die vorhandenen Methoden zum Erstellen von Objekten und zum Ausführen veraltet Workflow-Studio Flows und Aktionen. Verwenden Sie GetRunner() Methode in FlowAPI Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben und die zugehörigen Methoden zu verwenden. Verwenden Sie ScriptableFlowRunner Methoden, wenn Sie Domänentrennung unterstützen müssen.
    Tabelle : 47. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Subflows. Beispiel: Global.Subflow_Name . Suchen Sie nach Interner Name Feld in der Liste von Workflow-Studio Subflows.
    inputs Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Sie finden die verfügbaren Subflow-Eingaben und erforderlichen Datentypen unter Eingaben im Subflow. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'Incident','sys_ID':'a39d8e3cf0212300964feeefe80ff0ed'} .
    Tabelle : 48. Rückgaben
    Typ Beschreibung
    void
    (function() {
    
      try {
        var grIncident = new GlideRecord('incident');
        grIncident.get('57af7aec73d423002728660c4cf6a71c');
    
        var inputs = {};
        inputs['variable'] = grIncident;
    
        sn_fd.FlowAPI.startSubflowQuick('global.test_quick_run_subflow', inputs);
    
      } catch (ex) {
        var message = ex.getMessage();  
        gs.error(message);
        }
    	
    })();