GlideFlow - Cliente

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 5 min. de leitura
  • A API GlideFlow fornece métodos para interações do lado do cliente com ações, fluxos e subfluxos.

    Você pode usar esta API em qualquer lugar na plataforma que aceite client scripts. A ação, fluxo ou subfluxo deve ser definido como cliente chamável e ter uma ACL válida usando o recurso Gerenciar segurança em Workflow Studio.

    Alguns dos métodos na API GlideFlow retornam objetos de promessa. Uma promessa representa o resultado final de uma operação assíncrona. Para obter mais informações sobre promessas, consulte a documentação Promessa - Javascript MDN ou AngularJS.

    Usando esta API, você pode:
    • Inicie ações, fluxos ou subfluxos por meio de um script.
    • Obtenha uma execução existente.
    • Obtenha o status e todas as saídas disponíveis.
    • Aguarde a conclusão de uma ação, fluxo ou subfluxo.

    Não há nenhum construtor para a API GlideFlow. Acesse os métodos GlideFlow usando o objeto global GlideFlow.

    GlideFlow – execution.awaitCompletion()

    Retorna um objeto de conclusão para a execução.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    Objeto Um objeto que contém detalhes de conclusão para uma execução de fluxo ou ação.

    Neste exemplo, uma ação é executada usando startAction(), que retorna um objeto de execução. O código usa awaitCompletion() neste objeto de execução, que retorna um objeto de conclusão. O código usa este objeto de conclusão para registrar o status e as saídas na execução.

    
    (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()

    Retorna uma cadeia de caracteres que contém o status da execução atual.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres que contém o status de execução.

    Neste exemplo, o código obtém um objeto de execução usando o método getExecution. O método getExecution requer um ID, que é retornado pelo método usado para iniciar a execução. O código usa getExecutionStatus() para determinar se a execução foi concluída antes de continuar.

    
    // 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()

    Retorna um objeto de saída para a execução.

    Use este método para acessar a saída gerada pela execução de uma ação, fluxo ou subfluxo.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Objeto Um objeto que contém saídas para uma ação, fluxo ou subfluxo.

    Neste exemplo, o código obtém um objeto de execução usando o método getExecution. Depois que a execução é concluída, o código usa getOutputs() para retornar um objeto de saída, que é registrado usando o método console.log.

    
    // 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(cadeia de caracteres executionId)

    Obtenha uma instância de execução existente por ID.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    executionId Cadeia de caracteres O ID da execução a ser recuperado.
    Tabela 8. Retorna
    Tipo Descrição
    Objeto Uma promessa de um objeto de execução.

    Neste exemplo, o código obtém uma execução e espera que ela seja concluída antes de registrar o status de conclusão das execuções e as saídas usando console.log.

    
    // 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(cadeia de caracteres scopedName.actionName, entradas de mapa)

    Inicie uma ação.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    scopedName Cadeia de caracteres O nome com escopo do fluxo a ser executado.
    entradas Objeto Um objeto que contém entradas definidas para a ação.
    Tabela 10. Retorna
    Tipo Descrição
    Objeto Um objeto que contém detalhes sobre a execução da ação.

    Neste exemplo, o código inicia a ação global action_name usando argumentos na variável de objeto de entrada de entradas. Após a conclusão, o exemplo usa console.log ou console.error para relatar o sucesso ou a falha do fluxo.

    
    // 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, Mapear entradas)

    Iniciar um fluxo.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    scopedName Cadeia de caracteres O nome com escopo do fluxo a ser executado.
    entradas Objeto Um objeto que contém entradas definidas para o fluxo.
    Tabela 12. Retorna
    Tipo Descrição
    Objeto Um objeto que contém detalhes sobre a execução do fluxo.

    Este fluxo de exemplo normalmente é acionado quando um registro na tabela de incidentes é atualizado. Como você está ativando o fluxo do script do cliente, forneça essas informações. O código cria uma variável de entradas que contém o registro atual e a tabela do registro

    
    // 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, Mapear entradas)

    Inicie um subfluxo.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    scopedName Cadeia de caracteres O nome com escopo do fluxo a ser executado.
    entradas Objeto Um objeto que contém entradas usadas para o subfluxo.
    Tabela 14. Retorna
    Tipo Descrição
    Objeto Um objeto que contém detalhes sobre a execução do subfluxo.

    Neste exemplo, o código inicia o subfluxo global subflow_name usando argumentos na variável de matriz de entradas. Após a conclusão, o exemplo usa console.log ou console.error para relatar o sucesso ou a falha do fluxo.

    
    // 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);
    	}
    })();