GlideFlow : Client

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 5 Minuten Lesedauer
  • Die GlideFlow -API bietet Methoden für clientseitige Interaktionen mit Aktionen, Flows und Subflows.

    Sie können diese API überall in der Plattform verwenden, wo Client-Skripts akzeptiert werden. Die Aktion, der Flow oder der Subflow muss als vom Client aufrufbar festgelegt werden und über eine gültige ACL mit der Funktion „Sicherheit verwalten“ in Workflow-Studioverfügen.

    Einige der Methoden in der GlideFlow- API geben Prompt -Objekte zurück. Ein Versprechen repräsentiert das eventuelle Ergebnis einer asynchronen Operation. Weitere Informationen zu Zusagen finden Sie unter Zusage – JavaScript MDN oder AngularJS-Dokumentation.

    Mit dieser API können Sie Folgendes tun:
    • Aktionen, Flows oder Subflows über ein Skript starten.
    • Eine vorhandene Ausführung abrufen.
    • Den Status und alle verfügbaren Ausgaben abrufen.
    • Auf den Abschluss einer Aktion, eines Flow oder eines Subflow warten.

    Es gibt keinen Konstruktor für die GlideFlow- API. Greifen Sie mit dem globalen GlideFlow- Objekt auf GlideFlow- Methoden zu.

    GlideFlow – execution.awaitCompletion()

    Gibt ein Abschlussobjekt für die Ausführung zurück.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Objekt Ein Objekt, das Abschlussdetails für die Ausführung von Flows oder Aktionen enthält.

    In diesem Beispiel wird eine Aktion mit startAction() ausgeführt, was ein Ausführungsobjekt zurückgibt. Der Code verwendet dann awaitCompletion() für dieses Ausführungsobjekt, was ein Abschlussobjekt zurückgibt. Der Code verwendet dieses Abschlussobjekt, um den Status und die Ausgaben innerhalb der Ausführung zu protokollieren.

    
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startAction('global.action_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow – execution.getExecutionStatus()

    Gibt eine Zeichenfolge zurück, die den Ausführungsstatus der aktuellen Ausführung enthält.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Eine Zeichenfolge, die den Ausführungsstatus enthält.

    In diesem Beispiel erhält der Code ein Ausführungsobjekt mithilfe der getExecution-Methode. Die getExecution-Methode erfordert eine ID, die von der zum Start der Ausführung verwendeten Methode zurückgegeben wird. Der Code verwendet dann getExecutionStatus(), um festzustellen, ob die Ausführung abgeschlossen wurde, bevor Sie fortfahren.

    
    // Get an existing action, getStatus, and getOutputs if complete
    (function() {
       GlideFlow.getExecution('mamIN4Q35vmEFe744EwJV5GHrSz8fmJG')
          .then(function(execution) {
             execution.getExecutionStatus().then(
                function(status) {
                   if (status === 'COMPLETE')
                      execution.getOutputs().then(
                         function(outputs) {
                            console.log(outputs);
                         },
                         errorResolver
                      );
                },
                errorResolver
             );
          }, errorResolver);
    
       function errorResolver(error) {
          // Handle errors in error resolver
          console.error(error);
       }
    })();

    GlideFlow – execution.getOutputs()

    Gibt ein Ausgabeobjekt für die Ausführung zurück.

    Verwenden Sie diese Methode, um auf die Ausgabe zuzugreifen, die durch die Ausführung einer Aktion, eines Flow oder eines Subflow generiert wird.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Objekt Ein Objekt, das Ausgaben für eine Aktion, einen Flow oder einen Subflow enthält.

    In diesem Beispiel erhält der Code ein Ausführungsobjekt mithilfe der getExecution-Methode. Nachdem die Ausführung abgeschlossen ist, verwendet der Code getOutputs(), um ein Ausgabeobjekt zurückzugeben, das dann mit der Methode console.log protokolliert wird.

    
    // Get an existing action, getStatus, and getOutputs if complete
    (function() {
       GlideFlow.getExecution('mamIN4Q35vmEFe744EwJV5GHrSz8fmJG')
          .then(function(execution) {
             execution.getExecutionStatus().then(
                function(status) {
                   if (status === 'COMPLETE')
                      execution.getOutputs().then(
                         function(outputs) {
                            console.log(outputs);
                         },
                         errorResolver
                      );
                },
                errorResolver
             );
          }, errorResolver);
    
       function errorResolver(error) {
          // Handle errors in error resolver
          console.error(error);
       }
    })();

    GlideFlow – getExecution(String executionId)

    Rufen Sie eine vorhandene Ausführungsinstanz nach ID ab.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    executionId Zeichenfolge Die ID der abzurufenden Ausführung.
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Objekt Eine Zusage eines Ausführungsobjekts.

    In diesem Beispiel ruft der Code eine Ausführung ab und wartet dann auf den Abschluss, bevor der Abschlussstatus und die Ausgaben der Ausführung mithilfe von console.log protokolliert werden.

    
    // Get an existing action and await completion
    (function() {
    	GlideFlow.getExecution('79cd437e0b202300a150a95e93673ae3')
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow – startAction(String scopedName.actionName, Map inputs)

    Starten Sie eine Aktion.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    scopedName Zeichenfolge Der bereichsspezifische Name des auszuführenden Flow.
    inputs Objekt Ein Objekt, das die für die Aktion definierten Eingaben enthält.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    Objekt Ein Objekt, das Details zur Aktionsausführung enthält.

    In diesem Beispiel startet der Code die globale Aktion „action_name“ mit den Argumenten in der Eingabenvariablen „inputs“. Nach Abschluss verwendet das Beispiel console.log oder console.error, um über den Erfolg oder Misserfolg des Flow zu berichten.

    
    // Start an action and await completion.
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startAction('global.action_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow – startFlow(String scopedName.flowName, Map inputs)

    Starten Sie einen Flow.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    scopedName Zeichenfolge Der bereichsspezifische Name des auszuführenden Flow.
    inputs Objekt Ein Objekt, das die für den Flow definierten Eingaben enthält.
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    Objekt Ein Objekt, das Details zur Flow-Ausführung enthält.

    Dieser Beispiel-Flow wird normalerweise ausgelöst, wenn ein Datensatz in der Incident-Tabelle aktualisiert wird. Da Sie den Flow von einem Client-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.

    
    // Start a Flow
    (function() {
          var inputs = {};
          inputs['current'] = { // GlideRecord 
            table : 'incident', 
            sys_id : '79cd437e0b202300a150a95e93673ae3'  
        };
            inputs['table_name'] = 'incident';
             GlideFlow.startFlow('global.flow_name', inputs)
    		.then(
    			function(execution) {
    				console.log('Started flow_name with execution id :' + execution.getExecutionId());
    			},
    			function(error) {
    				console.log('Unable to start flow: ' + error);
    			}
    		);
    })();

    GlideFlow – startSubflow(String scopedName.subflowName, Map inputs)

    Starten Sie einen Subflow.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    scopedName Zeichenfolge Der bereichsspezifische Name des auszuführenden Flow.
    inputs Objekt Ein Objekt, das die für den Subflow verwendeten Eingaben enthält.
    Tabelle : 14. Ergebnisse
    Typ Beschreibung
    Objekt Ein Objekt, das Details zur Subflow-Ausführung enthält.

    In diesem Beispiel startet der Code den globale Subflow „subflow_name“ mit den Argumenten in der Eingabenvariablen „array“. Nach Abschluss verwendet das Beispiel console.log oder console.error, um über den Erfolg oder Misserfolg des Flow zu berichten.

    
    // Start an action and await completion.
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startSubflow('global.subflow_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();