FlowAPI: Bereichsbezogen, global

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 38 Minuten Lesedauer
  • Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.

    Greifen Sie mit dem Namespace sn_fd auf FlowAPI- Methoden in globalen und bereichsbezogenen Skripts zu. Erstellen Sie Aufrufe für Ihre Flows mithilfe der Codeausschnittaktion in Workflow-Studio, oder verwenden Sie die hier beschriebenen Methoden, um Skripts manuell zu aktualisieren.

    Hinweis:
    In domänengetrennten Instanzen werden von dieser API ausgelöste Flows, Subflows und Aktionen in der Domäne des Benutzers ausgeführt, der das Skript gestartet hat. Wenn beispielsweise ein Benutzer 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, selbst wenn der Flow als Systembenutzer ausgeführt wird.
    Hinweis:
    Um die Leistung der Instanz zu optimieren, sollten Sie diese Methoden nicht aus einem asynchronen Business Rule-Skript aufrufen. Erstellen Sie stattdessen einen Datensatz für eine geplante Aufgabe in der Anwenderoberfläche Workflow-Studio.

    FlowAPI – Abbrechen (Zeichenfolge-Kontext-ID, 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ührungsdetail-Datensatzes für den Flow, Subflow oder die Aktion. Greifen Sie auf die Ausführungsdetails zu, indem Sie zur Registerkarte Flow-Ausführungen in Workflow-Studionavigieren, oder übergeben Sie die sys_id des Kontextdatensatzes, der von den Methoden startFlow(), startSubflow()oder startAction() zurückgegeben wird.
    Hinweis:
    Der Abbruch kann zu einer geringfügigen Verzögerung führen, wenn der Zielkontext auf einem anderen Knoten der Instanz ausgeführt wird. Auf demselben Knoten ausgeführte Kontexte 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 im Feld Nachricht der Tabelle „Flow-Engine-Protokolleinträge“ [sys_flow_log] angezeigt.
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird der Rückgabewert der startFlow()- Methode verwendet, um lang laufende Flows abzubrechen.

    (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 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 synchron über ein serverseitiges Skript 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt die Aktion als der Benutzer 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 Nummer Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von der Systemeigenschaft com.glide.hub.flow_api.default_execution_time angegebene Standard-Zeitüberschreitung von 30 Sekunden. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Objekt Die Aktionsausgaben.

    In diesem Beispiel verwendet das Skript sn_fd.FlowAPI.executeAction, um im globalen Bereich eine Aktion namens actionforpassword2test auszuführen. 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, Anzahl Zeitüberschreitung)

    Führen Sie eine Aktion von 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 Aufwand für die Datensatzverwaltung eliminieren. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten der Aktion zum Warten auf Bedingungen nicht. Schritte, die für Wartebedingungen wie „Um Genehmigung bitten“ oder „Auf Bedingung warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten einer Aktion, die über einen MID-Server ausgeführt wird.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die 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 das Feld Interner Name in der Liste der Workflow-Studio -Aktionen.
    Eingaben Karte Name-Wert-Paare, die Aktionseingaben definieren. Die verfügbaren Aktionseingaben und erforderlichen Datentypen finden Sie unter Eingaben in der Aktionsgliederung. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'incident','sys_id':'a39d8e3cf0212300964feeefe80ff0ed'}.
    Zeitüberschreitung Nummer

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

    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Objekt Objekt mit durch die Aktion definierten Ausgaben. Sie finden die Ausgaben für die Aktion unter Ausgaben in der Aktionsgliederung.
    (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, Anzahl Zeitüberschreitung)

    Führt eine Datenstromaktion synchron mit 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Schließen Sie die Datenstromlogik immer in einen Versuch/ Erfassung-Block ein, um Fehler abzufangen. Fügen Sie immer eine finale Anweisung ein, die mit der Methode schließen () aus der Klasse ScriptableDataStream endet, um den Datenstrom zu schließen und Leistungsprobleme zu vermeiden.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und Name der auszuführenden Datenstromaktion. Beispiel: global.data_stream_action_name.
    Eingaben Karte Name-Wert-Paare, die Aktionseingaben definieren. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Wenn die Aktion keine Eingaben enthält, fügen Sie diesen Parameter nicht ein.
    Zeitüberschreitung Nummer Optional. Zeitspanne, bis die Aktion abläuft. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst. Die Zeitüberschreitung gilt nur für die Methode executeDataStreamAction, nicht für Methoden in der Klasse ScriptableDataStream.

    Standard: 30000, angegeben durch die Systemeigenschaft com.glide.hub.flow_api.default_execution_time

    Einheit: Millisekunden

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    ScriptableDataStream Ein Objekt, das zum Iterieren durch Elemente im Datenstrom verwendet wird. Verwenden Sie die Methoden in der Klasse „ScriptableDataStream“, um mit diesem Objekt zu interagieren. Weitere Informationen finden Sie unter ScriptableDataStream-API.

    In diesem Beispiel wird ein Incident-Datensatz für jedes im Datenstrom zurückgegebene Element 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 synchron aus einem serverseitigen Skript 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als den in den Flow-Eigenschaften angegebenen Anwender aus.
    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 Nummer Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von der Systemeigenschaft com.glide.hub.flow_api.default_execution_time angegebene Standard-Zeitüberschreitung von 30 Sekunden. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    Keine Im Normalbetrieb wird kein Rückgabewert erzeugt.
    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, Anzahl Zeitüberschreitung)

    Führt einen Flow, einen Subflow, eine Aktion oder eine Datenstromaktion synchron oder asynchron aus einem serverseitigen Skript aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessert die Leistung, indem der Aufwand für die Datensatzverwaltung eliminiert wird. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Als Anwender ausführen
    Diese Methode führt den Flow als der Benutzer aus, der die Sitzung initiiert. Das Festlegen des Flows als Systembenutzer oder das Annehmen der Identität eines Benutzers wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten des Flow zum Warten auf Bedingungen nicht. Aktionen oder Flow-Logik, die für Wartebedingungen wie „Um Genehmigung bitten“, „Auf Bedingung warten“ oder „Eine Dauer warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt das Anhalten eines Flows zur Ausführung über einen MID-Server nicht.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die 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 das Feld Interner Name in der Liste der Flows Workflow-Studio.
    Eingaben 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 Nummer Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von der Systemeigenschaft com.glide.hub.flow_api.default_execution_time angegebene Standard-Zeitüberschreitung von 30 Sekunden. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 12. Ergebnisse
    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 synchron 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, laufen synchron. Verwenden Sie startSubflow, um einen Subflow asynchron auszuführen.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als den in den Flow-Eigenschaften angegebenen Anwender aus.
    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 Nummer Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von der Systemeigenschaft com.glide.hub.flow_api.default_execution_time angegebene Standard-Zeitüberschreitung von 30 Sekunden. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 14. Ergebnisse
    Typ Beschreibung
    Objekt Objekt mit den Subflow-Ausgaben.
    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, Anzahl Zeitüberschreitung)

    Führen Sie einen Subflow aus einem serverseitigen Skript synchron zur aktuellen Anwendersitzung aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Aufwand für die Datensatzverwaltung eliminieren. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Als Anwender ausführen
    Diese Methode führt den Flow als der Benutzer aus, der die Sitzung initiiert. Das Festlegen des Flows als Systembenutzer oder das Annehmen der Identität eines Benutzers wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten des Flow zum Warten auf Bedingungen nicht. Aktionen oder Flow-Logik, die für Wartebedingungen wie „Um Genehmigung bitten“, „Auf Bedingung warten“ oder „Eine Dauer warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt das Anhalten eines Flows zur Ausführung über einen MID-Server nicht.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die 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 das Feld Interner Name in der Liste der Subflows Workflow-Studio.
    Eingaben Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Die verfügbaren Subflow-Eingaben und erforderlichen Datentypen finden Sie unter Eingaben im Subflow. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'incident','sys_id':'a39d8e3cf0212300964feeefe80ff0ed'}.
    Zeitüberschreitung Nummer Optional. Zeitüberschreitung in Millisekunden. Dieser Wert überschreibt die von der Systemeigenschaft com.glide.hub.flow_api.default_execution_time angegebene Standard-Zeitüberschreitung von 30 Sekunden. Nach Ablauf der Zeitüberschreitung wird eine Ausnahme ausgelöst.
    Tabelle : 16. Ergebnisse
    Typ Beschreibung
    Objekt Objekt mit den vom Subflow definierten Ausgaben. Sie finden die Ausgaben für den Subflow unter Subflow-Eingaben und -Ausgaben in der Subflow-Modellierung.
    (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(String contextId)

    Gibt die Fehlermeldungen zurück, die von einem Flow, Subflow oder einer Aktion erzeugt wurden. Diese Methode kann keine Nachrichten von Flows, Subflows oder Aktionen zurückgeben, die mit der Quick ()-API 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. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der letzte Vorgang und die Fehlermeldung, die er erzeugt hat.

    Dieses Beispiel startet einen globalen Subflow namens test_error_subflow und gibt alle von ihm erzeugten Fehlermeldungen zurück. Normalerweise führt ein einzelnes Skript nicht einen Flow aus und erhält dann seine Fehlermeldungen. Normalerweise hat entweder ein anderes Skript oder Workflow-Studio 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(String scopedFlowName)

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

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    scopedFlowName Zeichenfolge Anwendungsbereich und Name des Flows, dessen Phasen Sie abrufen möchten.
    Tabelle : 20. Ergebnisse
    Typ Beschreibung
    Zeichenfolge JSON-formatierte Zeichenfolge, die die Phasen des Flows nach den Phasendatensatzwerten auflistet.

    In diesem Beispiel wird gezeigt, wie die Phasen für den Flow zur Anforderung eines Servicekatalogelements abgerufen werden.

    (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 Stufenfeld. 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(String contextId)

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

    Sie können die Rückgabewerte der Methoden startAction() oderstartSubflow() als Parameter contextId verwenden.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die 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. Ergebnisse
    Typ Beschreibung
    Objekt Objekt, das die Aktions- 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 einen Flow aus und ruft dann seine Ausgabewerte ab. Da ein Flow vor dem Aufruf von getOutputs() möglicherweise nicht abgeschlossen wird, wird in diesem Beispiel eine Wartezeit verwendet. Normalerweise hat entweder ein anderes Skript oder Workflow-Studio 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 ein ScriptableFlowRunner -Generator-Objekt für einen Flow oder eine Aktion zurück, die Sie ausführen möchten.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 24. Ergebnisse
    Typ Beschreibung
    ScriptableFlowRunner Builder-Objekt, das zum Ausführen einer Workflow-Studio -Aktion, eines Flows oder eines Subflows verwendet wird.

    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(String 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. Ergebnisse
    Parameter Typ Beschreibung
    <String> Zeichenfolge JSON-formatierte Zeichenfolge, die den aktuellen Status des Flows, Subflows oder der Aktion als Name-Wert-Paare enthält.
    {
        "hasLookupError": Boolean,
        "errorMessage": "String",
        "contextStatus": {Object}
      }
    <String>.hasSuchfehler Boolean Kennzeichnung, die angibt, ob beim Suchen des Kontextstatus des Flows, Subflows oder der Aktion ein Problem aufgetreten ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {Object}
      }
    <String>.Fehlermeldung Zeichenfolge Fehlermeldung, die von der Kontextsuche zurückgegeben wird. Dieser Parameter ist ungültig, wenn hasLookupError auf „false“ festgelegt ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {Object}
      }
    <String>.KontextStatus Objekt JSON-formatierte Zeichenfolge, die Statusdetails zum abgefragten Flow, Subflow oder der Aktion enthält.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "NONE"
        }
      }
    <String>.KontextStatus.Status Zeichenfolge Status des Flows, Subflows oder Aktionskontexts. Einige Statuswerte enthalten zusätzliche Informationen in zugehörigen Parametern.
    • COMPLETE stellt zusätzliche Informationen im Parameter errorState bereit
    • FEHLER enthält zusätzliche Informationen im Parameter message
    • CANCELLED stellt zusätzliche Informationen im Parameter canceledReason bereit
    • IN_PROGRESS stellt zusätzliche Informationen im Parameter isRunOnMid bereit
    • WARTEN stellt zusätzliche Informationen im Parameter waitingOn bereit
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "NONE"
        }
      }
    <String>.KontextStatus.FehlerStatus Zeichenfolge Flow-Abschlussstatus, der durch die Flow-Fehlerbehandlung erzeugt wird. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status COMPLETE befindet.
    • ERROR_CAUGHT
    • FEHLER_ÜBERSPRUNGEN
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "COMPLETE",
          "errorState": "ERROR_CAUGHT"
        }
      }
    <String>.KontextStatus.Nachricht Zeichenfolge Fehlermeldung, die vom Flow, Subflow oder der Aktion zurückgegeben wird. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status FEHLER befindet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "ERROR",
          "message": "Error:  Error Message! (Process Automation.LOG; line 1)"
        }
      }
    <String>.contextStatus.canceledReason Zeichenfolge Vom Flow, Subflow oder Aktion zurückgegebene Nachricht zum Abbrechen. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status CANCELLED befindet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "CANCELLED",
          "canceledReason": "User has requested to stop executing the flow"
        }
      }
    <String>.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, Subflow oder die Aktion im Status IN_PROGRESS befindet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "IN_PROGRESS",
          "isRunOnMid": true
        }
      }
      }
    <String>.contextStatus.waitingOn 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, Subflow oder die Aktion im Status WARTEN befindet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "stepType": "TIMER",
              "endTime": 1713627497643
            },
            {
              "stepType": "WAIT_FOR_CONDITION_WITH_TIMEOUT",
              "table": "incident",
              "condition": "sys_id=10e8b43243200210338774d6ebb8f22d^short_description=112",
              "endTime": 1713645497800
            }
          ]
        }
      }
    <String>.Kontextstatus.WartenAuf.Schritttyp Zeichenfolge Liste der Gründe für das Warten auf einen Flow, Subflow oder eine Aktion. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status WARTEN befindet.
    • WARTEN_FÜR_BEDINGUNG
    • WARTEN_FÜR_BEDINGT_MIT_ZEITüberschreitung
    • ASK_FOR_APPROVAL
    • CREATE_TASK_MIT_WARTEN
    • TIMER
    • SLA_TIMER
    • SUBFLOW
    <String>.KontextStatus.WartenAuf.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, Subflow oder die Aktion im Status „WARTEN“ befindet und stepType WAIT_FOR_CONDITION, WAIT_FOR_CONDITION_WITH_TIMEout, ASK_FOR_APPROVAL oder CREATE_TASK_WITH_WAIT lautet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
              {
              "stepType": "WAIT_FOR_CONDITION",
              "table": "incident",
              "condition": "sys_id=1347723243200210338774d6ebb8f285^short_description=1238"
              }
            ]
        }
      }
    <String>.KontextStatus.WaitingOn.Bedingung Zeichenfolge Abfragebedingung des Datensatzes, auf den der Flow, der Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status „WARTEN“ befindet und stepType WAIT_FOR_CONDITION, WAIT_FOR_CONDITION_WITH_TIMEout, ASK_FOR_APPROVAL oder CREATE_TASK_WITH_WAIT lautet.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
              {
              "stepType": "WAIT_FOR_CONDITION",
              "table": "incident",
              "condition": "sys_id=1347723243200210338774d6ebb8f285^short_description=1238"
              }
            ]
        }
      }
    <String>.KontextStatus.WartenAm.Endzeit Ganzzahl Endzeit, auf die der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status WARTEN befindet und stepType WAIT_FOR_CONDITION_WITH_TIMEout, TIMER oder SLA_TIMER ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
        "state": "WAITING",
        "waitingOn": [
            {
              "stepType": "SLA_TIMER",
              "endTime": 1713574610000
            }
        ]
        }
      }
    <String>.contextStatus.waitingOn.approvalRule Zeichenfolge Genehmigungsregel, auf die der Flow, Subflow oder die Aktion wartet. Die API generiert diesen Parameter nur, wenn sich der Flow, Subflow oder die Aktion im Status WARTEN befindet und der Schritttyp ASK_FOR_APPROVAL ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "stepType": "ASK_FOR_APPROVAL",
              "table": "incident",
              "condition": "sys_id=3bd89703372002103387963174924b20^approvalINapproved,rejected,cancelled",
              "approvalRule": "ApprovesAnyU[a8f98bb0eb32010045e1a5115206fe3a,71826bf03710200044e0bfc8bcbe5d3b]"
            }
          ]
        }
      }
    <String>.KontextStatus.WartenAuf.KontextId 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 WAITING befindet und der stepType auf SUBFLOW festgelegt ist.
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
        "state": "WAITING",
        "waitingOn": [
            {
              "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 einen Flow aus und erhält dann seine Fehlermeldungen. Normalerweise hat entweder ein anderes Skript oder Workflow-Studio 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 action 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 action execution.
    
        return flowStatus;
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
    Ausgabe:
    {
        "hasLookupError": false,
        "errorMessage": "",
        "contextStatus": {
          "state": "WAITING",
          "waitingOn": [
            {
              "stepType": "TIMER",
              "endTime": 1713627497643
            },
            {
              "stepType": "WAIT_FOR_CONDITION_WITH_TIMEOUT",
              "table": "incident",
              "condition": "sys_id=10e8b43243200210338774d6ebb8f22d^short_description=112",
              "endTime": 1713645497800
            }
          ]
        }
      }

    FlowAPI – hasApprovals(String scopedFlowName)

    Überprüft, ob ein Flow in einem bestimmten Bereich Genehmigungsaktionen enthält.

    Die Methode hasApprovals() bestimmt, ob ein Flow innerhalb eines bestimmten Umfangs Genehmigungsanfrage-Aktionen enthält. Diese Methode überprüft auch, ob Genehmigungsanfrage-Aktionen innerhalb des Flows unter Flow-Logikblöcken geschachtelt sind. Weitere Informationen hierzu finden Sie unter Aktionen zum Anfordern der Genehmigung.

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    scopedFlowName Zeichenfolge Umfang und interner Name des auszuführenden Flows. Beispiel: global.flow_name. Suchen Sie das Feld Interner Name in der Liste der Flows Workflow-Studio.
    Tabelle : 28. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Gibt einen der folgenden Zeichenfolgenwerte zurück:
    • IMMER: Der Flow enthält eine Aktion „Genehmigung anfordern“, die nicht in einem bedingten If -Flow-Logikblock geschachtelt ist.
    • BEDINGT: Der Flow enthält eine Bitte um Genehmigung, die in einem bedingten If -Flow-Logikblock geschachtelt ist.
    • NEIN: Der Flow enthält keine Aktionen zum Anfordern der Genehmigung.
    • UNBEKANNT: Es ist ein Compilerfehler aufgetreten, und das System kann nicht bestimmen, ob der Flow Genehmigungsanfrage-Aktionen enthält.

    Im folgenden Beispiel wird überprüft, ob der Flow „example_flow“ im globalen Bereich „Genehmigung anfordern“-Aktionen enthält, und das Ergebnis wird protokolliert.

    (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 – neustartFlowFromContext(String ContextId, Zuordnung bereitgestellte Eingaben)

    Startet einen Flow, Subflow oder eine Aktion neu, die im Hintergrund ausgeführt wurde. Sie können neue Eingaben angeben oder sie 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 worden sein und über einen zugeordneten sysevent-Datensatz verfügen.
    bereitgestelltEingaben Objekt Optional. Zuordnungsobjekt mit den Name-Wert-Paaren, die Ersatzeingaben für den Flow, Subflow oder die Aktion definieren. Wenn Sie für diesen Parameter weglassen oder einen Nullwert angeben, wird der Flow, Subflow oder die Aktion mit den zuvor angegebenen Eingaben ausgeführt.
    Tabelle : 30. Ergebnisse
    Typ Beschreibung
    SkriptfähigeFlowRunnerErgebnisseBereichsbezogene Objekt mit den Ausführungsdetails einer Workflow-Studio -Aktion, eines Flows oder Subflows.

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

    (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(String contextId, Zeichenfolgengrund, GanzzahldelaySeconds)

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

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    contextId Zeichenfolge Sys_id des Ausführungsdetail-Datensatzes für den Flow, Subflow oder die Aktion. Der Ziel-Flow, Subflow oder die Aktion muss sich im Status „In Bearbeitung“, „Vermutlich unterbrochen“ oder „Warten“ befinden. Greifen Sie auf die Ausführungsdetails zu, indem Sie zur Registerkarte Flow-Ausführungen in Workflow-Studionavigieren, oder übergeben Sie die sys_id des von der Methode zurückgegebenen Kontextdatensatzes.
    Hinweis:
    Der Abbruch kann zu einer geringfügigen Verzögerung führen, wenn der Zielkontext auf einem anderen Knoten der Instanz ausgeführt wird. Auf demselben Knoten ausgeführte Kontexte 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 im Feld Nachricht der Tabelle „Flow-Engine-Protokolleinträge“ [sys_flow_log] angezeigt.
    DelaySeconds Ganzzahl Optional. Anzahl der zu wartenden Sekunden, bevor ein Abbruchereignis in der Flow-Engine-Warteschlange verarbeitet wird. Wenn Sie diesen Parameter weglassen, verwendet die Methode den Standardwert 1 Sekunde.

    Sie können diesen Parameter verwenden, um die Auswirkungen auf die Leistung zu vermeiden, wenn Sie den Abbruch von Tausenden von Flow-Kontexten gleichzeitig planen. Anstatt alle Abbrüche gleichzeitig auszuführen, planen Sie einen Stapel von Flow-Abbrüchen mit Verzögerung. Alternativ können Sie die Verzögerung als Zeitüberschreitungswert für einen asynchronen Flow verwenden.

    Tabelle : 32. Ergebnisse
    Typ Beschreibung
    Keine

    In diesem Beispiel wird der Rückgabewert der startFlow()- Methode verwendet, um den Abbruch von Flows mit langer Laufzeit zu planen.

    (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 von 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 – setEncryptedOutput(Zeichenfolge „password“)

    Erstellt password2-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 : 33. Parameter
    Name Typ Beschreibung
    Passwort Zeichenfolge Verschlüsselter password2-Wert.
    Tabelle : 34. 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 asynchron über ein serverseitiges Skript 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt die Aktion als der Benutzer aus, der die Sitzung initiiert.
    Tabelle : 35. 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 : 36. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys-ID des Kontextdatensatzes für die Aktion Greifen Sie auf den Kontextdatensatz zu, indem Sie zur Registerkarte Flow-Ausführungen in Workflow-Studionavigieren, eine Flow-Ausführung auswählen und auf Kontextdatensatz öffnenklicken.

    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 asynchron aus einem serverseitigen Skript aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Aufwand für die Datensatzverwaltung eliminieren. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten der Aktion zum Warten auf Bedingungen nicht. Schritte, die für Wartebedingungen wie „Um Genehmigung bitten“ oder „Auf Bedingung warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt nicht das Anhalten einer Aktion, die über einen MID-Server ausgeführt wird.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Tabelle : 37. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name der auszuführenden Aktion. Beispiel: global.action_name. Suchen Sie das Feld Interner Name in der Liste der Workflow-Studio -Aktionen.
    Eingaben Karte Name-Wert-Paare, die Aktionseingaben definieren. Die verfügbaren Aktionseingaben und erforderlichen Datentypen finden Sie unter Eingaben in der Aktionsgliederung. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'incident','sys_id':'a39d8e3cf0212300964feeefe80ff0ed'}.
    Tabelle : 38. Ergebnisse
    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 über ein serverseitiges 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als den in den Flow-Eigenschaften angegebenen Anwender aus.
    Tabelle : 39. 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 : 40. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys-ID des Kontextdatensatzes für den Flow. Greifen Sie auf den Kontextdatensatz zu, indem Sie zur Registerkarte Flow-Ausführungen in Workflow-Studionavigieren, eine Flow-Ausführung auswählen und auf Kontextdatensatz öffnenklicken.

    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 asynchron aus einem serverseitigen Skript aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Aufwand für die Datensatzverwaltung eliminieren. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Als Systemanwender ausführen
    Diese Methode führt den Flow als Systemanwender aus. Das Festlegen des Flows als Anwender, der die Sitzung initiiert, oder das Annehmen der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten des Flow zum Warten auf Bedingungen nicht. Aktionen oder Flow-Logik, die für Wartebedingungen wie „Um Genehmigung bitten“, „Auf Bedingung warten“ oder „Eine Dauer warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt das Anhalten eines Flows zur Ausführung über einen MID-Server nicht.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Tabelle : 41. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Flows. Beispiel: global.flow_name. Suchen Sie das Feld Interner Name in der Liste der Flows Workflow-Studio.
    Eingaben 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 : 42. Ergebnisse
    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 über ein serverseitiges 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 ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Hinweis:
    Diese Methode führt den Flow als den in den Flow-Eigenschaften angegebenen Anwender aus.
    Tabelle : 43. 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 : 44. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys-ID des Kontextdatensatzes für den Subflow. Greifen Sie auf den Kontextdatensatz zu, indem Sie zur Registerkarte Flow-Ausführungen in Workflow-Studionavigieren, eine Flow-Ausführung auswählen und auf Kontextdatensatz öffnenklicken.

    In diesem Beispiel wird mit sn_fd.FlowAPI.startSubflow ein globaler Flow namens test_subflow 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 {
        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 asynchron aus einem serverseitigen Skript aus, ohne Ausführungsdetails oder andere zugehörige Datensätze zu erstellen. Verbessern Sie die Leistung, indem Sie den Aufwand für die Datensatzverwaltung eliminieren. Verwenden Sie diese API, um die Geschwindigkeit der Verarbeitung großer Mengen (z. B. mehrerer Ausführungen pro Sekunde) in einer Produktionsumgebung zu erhöhen.

    Berichterstellung und Datensätze generiert
    Diese Methode erstellt unabhängig von den Workflow-Studio -Einstellungen keine Ausführungsdetails und Kontextdatensätze.
    Als Systemanwender ausführen
    Diese Methode führt den Flow als Systemanwender aus. Das Festlegen des Flows als Anwender, der die Sitzung initiiert, oder das Annehmen der Identität eines Anwenders wird nicht unterstützt.
    Warten Sie auf Support
    Diese Methode unterstützt das Anhalten des Flow zum Warten auf Bedingungen nicht. Aktionen oder Flow-Logik, die für Wartebedingungen wie „Um Genehmigung bitten“, „Auf Bedingung warten“ oder „Eine Dauer warten“ anhalten, werden nicht unterstützt.
    MID-Server-Unterstützung
    Diese Methode unterstützt das Anhalten eines Flows zur Ausführung über einen MID-Server nicht.
    Hinweis:
    Diese API wird durch ScriptableFlowRunner : Bereichsbezogenersetzt, wodurch die vorhandenen Methoden zum Erstellen von Objekten und Ausführen von Workflow-Studio -Flows und -Aktionen veraltet sind. Verwenden Sie die getRunner()- Methode in der FlowAPI -Klasse, um ein ScriptableFlowRunner-Objekt zurückzugeben, und verwenden Sie die zugehörigen Methoden. Verwenden Sie die ScriptableFlowRunner- Methoden, wenn Sie die Domänentrennung unterstützen müssen.
    Tabelle : 45. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Umfang und interner Name des auszuführenden Subflows. Beispiel: global.subflow_name. Suchen Sie das Feld Interner Name in der Liste der Subflows Workflow-Studio.
    Eingaben Zuordnung Name-Wert-Paare, die Subflow-Eingaben definieren. Die verfügbaren Subflow-Eingaben und erforderlichen Datentypen finden Sie unter Eingaben im Subflow. Verwenden Sie den Eingabenamen, nicht die Eingabebezeichnung. Beispiel: {'table':'incident','sys_id':'a39d8e3cf0212300964feeefe80ff0ed'}.
    Tabelle : 46. Ergebnisse
    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);
        }
    	
    })();