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


---

# Subfluxo - com escopo (descontinuado)

# Subfluxo - 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) 2 min. de leitura

A API de subfluxo fornece métodos para executar subfluxos Workflow Studio publicados.

Esta API está obsoleta e foi substituída por [FlowAPI - com escopo, global](https://servicenow-prod.fluidtopics.net/goMTaG6ZJ5WfQv~SfF9SxA#ScriptableFlowAPI "A FlowAPI fornece métodos para executar ações, fluxos ou subfluxos em scripts do lado do servidor usando métodos de bloqueio ou de não bloqueio.").

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

Use o namespace `sn_fd` para acessar a API de subfluxo.

Antes de interagir com um subfluxo usando a API Subflow, você deve primeiro criar e publicar o subfluxo na interface Workflow Studio. Como a API de subfluxo só interage com subfluxos 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.

## Subfluxo - startAsync(cadeia de caracteres scopeName.subflowName, entradas de mapa) {#ariaid-title2}

Executa um subfluxo publicado 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 subfluxo.
{#SubflowScoped-startAsync_S_O__table_slq_v1v_ncb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| scopeName.subflowName | Cadeia de caracteres | O escopo da aplicação para o subfluxo e o nome interno do subfluxo 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 subfluxo usando a coluna Nome interno na página principal Workflow Studio. |
| entradas | Mapa | Pares de nome-valor que definem entradas de subfluxo. Se um subfluxo incluir entradas obrigatórias, elas deverão ser incluídas. Para entradas dos tipos de campo Referência ou ID do documento, use um objeto GlideRecord como o valor. |
[Tabela 1. Parâmetros]

{#SubflowScoped-startAsync_S_O__table_slq_v1v_ncb} {#SubflowScoped-startAsync_S_O__table_tlq_v1v_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 subfluxo executado. Acesse os detalhes da execução navegando até a guia Execuções de fluxo em Workflow Studio e filtrando por sys_id. {#SubflowScoped-startAsync_S_O__ul_bd2_k2v_ncb} Uma exceção ocorre quando o subfluxo: * Não existe no escopo da aplicação especificado ou o nome do subfluxo ou do escopo foi digitado incorretamente. * Não foi publicado. * Foi aprovado um objeto de entrada que não corresponde às entradas de subfluxo. * 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. {#SubflowScoped-startAsync_S_O__ul_ub3_n3t_pcb} |
[Tabela 2. Retorna]

{#SubflowScoped-startAsync_S_O__table_tlq_v1v_ncb}  

    //Run a subflow that takes two inputs: user, a sys_user record, and laptop_welcome_message, a string.
    (function startSubflowAsync() {

      try {
        var userToProvisionFor = new GlideRecord('sys_user');
        userToProvisionFor.get('62826bf03710200044e0bfc8bcbe5df1');

        var inputs = {};
        inputs['user'] = userToProvisionFor;
        inputs['laptop_welcome_message'] = 'Welcome Onboard!!';

        var result = sn_fd.Subflow.startAsync('sn_devstudio.provisionlaptop', inputs);

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

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

    })();


