---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Fluxo - com escopo (descontinuado)

# Fluxo - com escopo (descontinuado) {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 min. de leitura

A Flow API fornece métodos para executar Workflow Studio fluxos ativados.

Esta API está obsoleta e foi substituída pelas APIs [ScriptableFlowRunner - com escopo](https://servicenow-prod.fluidtopics.net/N~IwWsqZCQZbCCwUyocCww#ScriptableFlowRunnerScopedAPI "Cria um objeto de construtor usado para definir parâmetros para fluxo, subfluxo e execução de ação. Você pode especificar um fluxo para executar em um domínio específico. Inicie o fluxo, subfluxo ou execução de ação diretamente do construtor e exiba os resultados em um objeto ScriptableFlowRunnerResult.") e [ScriptableFlowRunnerResult - com escopo](https://servicenow-prod.fluidtopics.net/tMjfpCH6IQYlkoApwBuaxw#ScriptableFlowRunnerResultScopedAPI "Captura o resultado do uso de ScriptableFlowRunner para executar um fluxo, subfluxo ou ação. Inclui dados como ID de contexto, domínio e quaisquer saídas da execução do fluxo.").

A Flow API só pode ser usada em scripts de servidor.

Use o namespace `sn_fd` para acessar a Flow API.

Antes de interagir com um fluxo usando a Flow API, você deve primeiro criar e ativar o fluxo na interface Workflow Studio. Como a Flow API só interage com fluxos pré-criados, não há construtor para a classe.  
Nota:  
Para otimizar o desempenho da instância, evite chamar esses métodos de um script de regra de negócio assíncrono. Em vez disso, crie um registro de trabalho agendado na IU Workflow Studio.

## Fluxo - startAsync(String scopeName.flowName, Map flowInputs) {#ariaid-title2}

Ignora o gatilho e executa um fluxo ativado de forma assíncrona.
As chamadas assíncronas não são bloqueadas, permitindo que o cliente execute outro código no script sem ter que esperar a conclusão do fluxo.
{#FlowScoped-startAsync_S_GR__table_s1t_yn5_ncb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| scopeName.flowName | Cadeia de caracteres | O escopo da aplicação para o fluxo e o nome interno do fluxo a ser executado. Se scopeName não estiver incluído, o escopo do usuário conectado no momento será usado. Recupere o nome interno do fluxo usando a coluna Nome interno na página principal Workflow Studio. |
| flowInputs | Mapa | Pares de nome-valor em\<String, Object\> formato que define entradas de fluxo baseadas em registro. Para chamar um fluxo com um gatilho baseado em registro, use o formato: var flowInputs = {}; flowInputs['current'] = glideRecord; flowInputs['table_name'] = glideRecord.getTableName(); O objeto GlideRecord deve ser chamado de "atual". Para chamar um fluxo com um gatilho Catálogo de serviços, use o formato: var flowInputs = {}; flowInputs['request_item'] = glideRecord; flowInputs['table_name'] = glideRecord.getTableName(); O objeto GlideRecord deve ser chamado de "request_item". |
[Tabela 1. Parâmetros]

{#FlowScoped-startAsync_S_GR__table_s1t_yn5_ncb} {#FlowScoped-startAsync_S_GR__table_t1t_yn5_ncb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Objeto PlanResponse que contém as seguintes propriedades: * contextId: sys_id do registro de detalhes de execução do fluxo executado. Acesse os detalhes da execução navegando até a guia Execuções de fluxo em Workflow Studio e filtrando por sys_id. {#FlowScoped-startAsync_S_GR__ul_bd2_k2v_ncb} Uma exceção ocorre quando o fluxo: * Não existe no escopo da aplicação especificado ou o nome do fluxo ou do escopo foi digitado incorretamente. * Não está ativado. * Excede o limite de recursão definido pela propriedade do sistema com.glide.hub.flow_engine.indirect_recursion_limit. O valor padrão é três. {#FlowScoped-startAsync_S_GR__ul_ub3_n3t_pcb} |
[Tabela 2. Retorna]

{#FlowScoped-startAsync_S_GR__table_t1t_yn5_ncb}  

    //Example 1: Run a flow with a record-based trigger
    (function startFlowAsync() {

    	try {
    		// You MUST fetch the GlideRecord that will be passed to the flow
    		var glideRecordInput = new GlideRecord('sys_user');
    		glideRecordInput.get('62826bf03710200044e0bfc8bcbe5df1');

    		var flowInputs = {};
    		flowInputs['current'] = glideRecordInput;
    		flowInputs['table_name'] = glideRecordInput.getTableName();

    		var result = sn_fd.Flow.startAsync('global.recordtriggeredflow', flowInputs);

    		//The Sys ID of a flow execution (contextId)
    		var contextId = result.contextId;

    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	}

    })();

    //Example 2: Run a flow with a schedule-based trigger
    (function startFlowAsync() {

    	try {
    		var result = sn_fd.Flow.startAsync('global.scheduletriggeredflow');

    		//The Sys ID of a flow execution (contextId)
    		var contextId = result.contextId;

    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	}

    })();

    //Example 3: Run a flow with a Service Catalog trigger
    (function startFlowAsync() {

    	try {
    		// You MUST fetch the GlideRecord that will be passed to the flow
    		var glideRecordInput = new GlideRecord('sc_req_item');
    		glideRecordInput.get(aeed229047801200e0ef563dbb9a71c2);

    		var flowInputs = {};
    		flowInputs['request_item'] = glideRecordInput;
    		flowInputs['table_name'] = glideRecordInput.getTableName();

    		var result = sn_fd.Flow.startAsync('global.catalogtriggeredflow', flowInputs);

    		//The Sys ID of a flow execution (contextId)
    		var contextId = result.contextId;

    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	}

    })();

    //Example 4: Run a flow with a MetricBase trigger
    (function startMetricBaseFlowAsync() {

    	try {

    		var oilLevelTriggerRecord = new GlideRecord('oil_levels');
    		oilLevelTriggerRecord.get('a4b3622bc72113007b237f48cb97635f');

    		var metricTriggerDefinition = new GlideRecord('sys_metric_trigger_definition');
    		metricTriggerDefinition.get('21f2eae7c72113007b237f48cb976352');

    		var event_time = oilLevelTriggerRecord.getValue('sys_created_on');
    		var level = 4;

    		var metricBaseFlowInputs = {};
    		//The record that triggered the metric event
    		metricBaseFlowInputs['current'] = oilLevelTriggerRecord;
    		//The MetricBase Trigger Definition record
    		metricBaseFlowInputs['metric'] = metricTriggerDefinition;
    		//The time that the 'record' reached a specific metric event level and triggered this flow
    		metricBaseFlowInputs['event_time'] = event_time;
    		//The target event level to reach in order for a metric flow to trigger
    		metricBaseFlowInputs['level'] = level;

    		var result = sn_fd.Flow.startAsync('global.metricbasedtriggeredflow', metricBaseFlowInputs);

    		//The Sys ID of a flow execution (contextId)
    		var contextId = result.contextId;

    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	}

    })();


