GlideFlow - Cliente

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 5 min. de leitura
  • Use a API GlideFlow para interações do lado do cliente com ações, fluxos e subfluxos.

    Você pode usar essa API em qualquer lugar na plataforma que aceite scripts de cliente. 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 Flow Designer.

    Alguns dos métodos no GlideFlow retornam objetos de compromisso. Uma promessa representa o resultado final de uma operação assíncrona. Para obter mais informações sobre promessas, consulte Promessa - Documentação 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 as saídas disponíveis.
    • Aguarde a conclusão de uma ação, fluxo ou subfluxo.

    Não há construtor para a classe GlideFlow. Acesse 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 um fluxo ou execução de 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 da 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. Após a conclusão da execução, o código usa getOutputs() para retornar um objeto de saída, que é registrado em log 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 recuperada.
    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 aguarda a conclusão antes de registrar em log 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, Mapear entradas)

    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(cadeia de caracteres scopedName.flowName, Mapear entradas)

    Inicie 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 entrada que contém o registro atual e a tabela para o 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(cadeia de caracteres 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);
    	}
    })();