Introdução às saídas dinâmicas

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 11 min. de leitura
  • Crie uma ação de amostra que cria objetos dinâmicos para uso em um fluxo.

    Antes de Iniciar

    Função necessária: action_designer ou admin

    Por Que e Quando Desempenhar Esta Tarefa

    Nesta tarefa, você cria duas ações de coleta de dados: uma que coleta o esquema de um registro em sua instância e outra que coleta o esquema de vários registros na mesma tabela em sua instância. O objetivo é criar um objeto complexo e uma matriz de objetos complexos para usar como saídas dinâmicas. Cada ação de coleta de dados consistirá no seguinte:
    • Uma etapa REST para coletar dados de esquema de tabela da sua instância.
    • Uma etapa de script para construir a carga do corpo da resposta da etapa REST.
    • Uma variável de saída chamada saída do tipo JSON.
    Você usa essas ações de coleta de dados para criar dois objetos dinâmicos. Em seguida, você cria uma ação personalizada que chama as ações de coleta de dados durante o design de fluxo.
    Nota:
    Esta tarefa recria as ações de demonstração que são instaladas quando você Solicitar um IntegrationHub plug-in para sua instância.

    Procedimento

    1. Navegar até Todos > Automação de Processo > Flow Designer.
    2. Clique em Novo e selecione Nova ação.
      1. Na tela Propriedades da ação, no campo Nome, insira Obter esquema de objeto da ServiceNow (dinâmico).
      2. Clique em Enviar.
    3. No Contorno da ação, clique em Entradas.
      1. No cabeçalho de Entrada de ação, clique em Criar entrada.
      2. Nos campos Rótulo e Nome, insira Tabela.
      3. No campo Tipo, selecione Cadeia de caracteres.
      4. Para tornar esta entrada obrigatória, alterne o controle deslizante Obrigatório para que ele fique ativo.
    4. No Contorno da ação, clique no ícone adicionar uma nova etapa (ícone Adicionar uma nova etapa) em Entradas e selecione Etapa REST.
    5. No cabeçalho da etapa REST, preencha os seguintes campos.
      Campo Valor
      Conexão Deixe a opção Usar alias de conexão selecionada.
      Alias de conexão Clique no ícone Criar novo registro (ícone Criar novo registro) para criar uma nova conexão Criar uma conexão HTTP(s)ou use uma conexão existente para sua instância. A credencial da conexão HTTP(s) deve usar credenciais de autenticação básica. Além disso, o URL de conexão deve ser o URL base da sua instância, incluindo a barra no final. Para obter mais informações sobre conexões e credenciais, consulte Introdução a conexões e Introdução a credenciais.
      Criar solicitação Deixe a opção Manualmente selecionada.
      Caminho do Recurso Insira api/now/processflow/table/ e clique no seletor de cápsula de dados ( Selecionador de cápsula de dados). Selecionar Entradas > Tabela. Em seguida, insira /schema.
      Método HTTP Inserir GET
      Parâmetros de Consulta Clique no ícone de adição (ícone de adição) para adicionar um novo parâmetro de consulta. Em seguida, no campo Nome, insira get_choices e verdadeiro no campo Valor.
    6. No Contorno da ação, clique no ícone adicionar uma nova etapa (ícone Adicionar uma nova etapa) na etapa REST e selecione a etapa Script.
      1. Na seção Variáveis de entrada, clique em Criar variável.
      2. No campo Nome, insira carga útil.
      3. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa REST > Corpo da Resposta.
      4. No campo Script, insira o código a seguir.
        
        (function execute(inputs, outputs) {
          var payload = JSON.parse(inputs.payload);
          
          var columns = payload.result.data.columns;
          var schema = columns.map(function(column) {
            var value = {
              label: column.label,
              name: column.name,
              type: getCOType(column.definition.base_type),
            };
            if (column.definition.type === 'choice') {
              value.type = 'choice';
              value.choices = column.definition.choices;
            } 
            if (column.definition.base_type === 'GUID') {
              value.children = [
                { label: 'Link', name: 'link', type: 'string' },
                { label: 'Value', name: 'value', type: 'string' },
              ];
            }
            return value;
          });
          outputs.schema = { 
            data: {
              type: 'object',
              children: schema,
            },
          };
          
          function getCOType(type) {
            if (type === 'GUID') return 'reference';
            return type;
          }
        })(inputs, outputs);
      5. Na seção Variáveis de saída, clique em Criar variável.
      6. Nos campos Rótulo e Nome, insira esquema.
      7. No campo Tipo, selecione JSON.
    7. No Contorno da ação, clique em Saídas.
      1. No cabeçalho Saída da ação, clique em Criar saída.
      2. Nos campos Rótulo e Nome, insira a saída.
      3. No campo Tipo, selecione JSON.
      4. No cabeçalho Saída da ação, clique em Sair do modo de edição.
      5. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa de script > esquema.
    8. No cabeçalho Ação, clique em Salvar e em Testar para testar a ação.
      1. Na tela Ação de teste, insira o incidente para a entrada Tabela.
      2. Clique em Executar teste.
      3. Verifique os detalhes de execução da ação.
      Sua ação de coleta de dados será executada com sucesso se o valor de tempo de execução dos campos for um objeto complexo em um formato semelhante ao exemplo abreviado a seguir.
      {
             "data": {
                 "type": "object",
                 "children": [
                     {
                         "name": "active",
                         "label": "Active",
                         "type": "boolean"
                     },
                     {
                         "name": "activity_due",
                         "label": "Activity due",
                         "type": "datetime"
                     }, ...
    9. No cabeçalho Ação, clique em Publicar para disponibilizar a ação Get ServiceNow Object Schema (Dynamic) para outros fluxos e ações no escopo Global.

    Criar a ação Obter esquema Array.Object da ServiceNow (dinâmico)

    Crie uma ação de coleta de dados de amostra para gerar uma matriz de objetos.

    Antes de Iniciar

    Função necessária: action_designer ou admin

    Procedimento

    1. No cabeçalho principal, clique no ícone Criar fluxo, subfluxo ou ação (ícone Criar fluxo, subfluxo ou ação) e selecione Ação.
      1. Na tela Propriedades da ação, no campo Nome, insira Obter esquema Array.Object da ServiceNow (dinâmico).
      2. Clique em Enviar.
    2. No Contorno da ação, clique em Entradas.
      1. No cabeçalho de Entrada de ação, clique em Criar entrada.
      2. Nos campos Rótulo e Nome, insira Tabela.
      3. No campo Tipo, selecione Cadeia de caracteres.
      4. Para tornar a entrada obrigatória, alterne o controle deslizante Obrigatório para que ele fique ativo.
    3. No Contorno da ação, clique no ícone adicionar uma nova etapa (ícone Nova etapa) em Entradas e selecione a etapa REST.
    4. No cabeçalho da etapa REST, preencha os seguintes campos.
      Campo Valor
      Conexão Deixe Usar Alias de Conexão selecionado.
      Alias de conexão Clique no ícone Criar novo registro (ícone Criar novo registro) para criar uma nova conexão Criar uma conexão HTTP(s)ou use uma conexão existente para sua instância. A credencial da conexão HTTP(s) deve usar credenciais de autenticação básica. Além disso, o URL de conexão deve ser o URL base da sua instância, incluindo a barra no final.
      Criar solicitação Deixe selecionado manualmente.
      Caminho do Recurso Insira api/now/processflow/table/ e clique no seletor de cápsula de dados ( Selecionador de cápsula de dados). Selecionar Entradas > Tabela. Por fim, insira /schema
      Método HTTP Inserir GET
      Parâmetros de Consulta Clique no ícone de adição (ícone de adição) para adicionar um novo parâmetro de consulta. Em seguida, no campo Nome, insira get_choices e verdadeirono campo Valor.
    5. No Contorno da ação, clique no ícone Adicionar uma nova etapa( ícone Nova etapa) na etapa REST e selecione a etapa Script.
      1. Na seção Variáveis de entrada, clique em Criar variável.
      2. No campo Nome, insira carga útil.
      3. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa REST > Corpo da Resposta.
      4. No campo Script, insira o código a seguir.
        
        (function execute(inputs, outputs) {
          var payload = JSON.parse(inputs.payload);
          
          var columns = payload.result.data.columns;
          var schema = columns.map(function(column) {
            var value = {
              label: column.label,
              name: column.name,
              type: getCOType(column.definition.base_type),
            };
            if (column.definition.type === 'choice') {
              value.type = 'choice';
              value.choices = column.definition.choices;
            }
            return value;
          });
          outputs.schema = { 
            data: {
              type: 'array.object',
              attributes: {
                child_type: 'object',
              },
              children: schema,
            },
          };
          
          function getCOType(type) {
            if (type === 'GUID') return 'string';
            return type;
          }
        })(inputs, outputs);
      5. Na seção Variáveis de saída, clique em Criar variável.
      6. Nos campos Rótulo e Nome, insira esquema.
      7. No campo Tipo, selecione JSON.
    6. No Contorno da ação, clique em Saídas.
      1. No cabeçalho Saída da ação, clique em Criar saída.
      2. Insira a saída no campo Rótulo e no campo Nome.
      3. Selecione JSON para o campo Tipo.
      4. Clique em Sair do modo de edição.
      5. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa de script > esquema.
    7. No cabeçalho Ação, clique em Salvar e em Testar para testar a ação.
      1. Na tela Ação de teste, no campo Tabela, insira incidente.
      2. Clique em Executar teste.
      3. Verifique os detalhes de execução da ação.
        Sua ação de coleta de dados será executada com sucesso se o valor de tempo de execução da saída de campos for um objeto complexo que contém uma matriz de pares de chave-valor para rótulo, nomee valor, conforme mostrado no exemplo abreviado a seguir.
        {
               "data": {
                   "type": "array.object",
                   "children": [
                       {
                           "name": "active",
                           "label": "Active",
                           "type": "boolean"
                       },
                       {
                           "name": "activity_due",
                           "label": "Activity due",
                           "type": "datetime"
                       }, ...
        
    8. No cabeçalho Ação, clique em Publicar para disponibilizar a ação Get ServiceNow Array.Object Schema (Dynamic) para outras ações no escopo Global.

    Criar a ação Obter registros da ServiceNow (dinâmico)

    Crie uma ação de amostra para gerar dinamicamente duas saídas de ação, Registro e Registros, que são atualizadas dinamicamente quando o valor da entrada Tabela muda.

    Antes de Iniciar

    Função necessária: action_designer ou admin

    Procedimento

    1. No cabeçalho principal, clique no ícone Criar fluxo, subfluxo ou ação (ícone Criar fluxo, subfluxo ou ação) e selecione Ação.
      1. No modal Propriedades da ação, no campo Nome, insira Obter registros da ServiceNow (dinâmicos).
      2. Clique em Enviar.
    2. No Contorno da ação, clique em Entradas.
      1. No cabeçalho de Entrada de ação, clique em Criar entrada.
      2. Nos campos Rótulo e Nome, insira Tabela.
      3. No campo Tipo, selecione Opção dinâmica.
      4. Para tornar a entrada obrigatória, alterne o controle deslizante Obrigatório para que ele fique ativo.
      5. Clique no ícone Alternar entradas avançadas (ícone Alternar entradas avançadas para exibir as opções avançadas da entrada Tabela.
      6. No campo Valor padrão, insira incidente.
      7. Em Opções dinâmicas, no campo Ação, selecione Obter tabelas da ServiceNow - Dinâmicas.
      8. Clique em Criar entrada para criar outra entrada de ação.
      9. Nos campos Rótulo e Nome, insira NumberOfRecords.
      10. No campo Tipo, selecione Inteiro.
      11. Para tornar a entrada obrigatória, alterne o controle deslizante Obrigatório para que ele fique ativo.
      12. Clique no ícone Alternar entradas avançadas (ícone Alternar entradas avançadas para exibir as opções avançadas da entrada Tabela.
      13. No campo Valor padrão, insira 3.
    3. No Contorno da ação, clique no ícone adicionar uma nova etapa (ícone Nova etapa) em Entradas e selecione a etapa REST.
    4. No cabeçalho da etapa REST, preencha os seguintes campos.
      Campo Valor
      Conexão Deixe Usar Alias de Conexão selecionado.
      Alias de conexão Clique no ícone Criar novo registro (ícone Criar novo registro) para criar uma nova conexão Criar uma conexão HTTP(s)ou use uma conexão existente para sua instância. A credencial da conexão HTTP(s) deve usar credenciais de autenticação básica. Além disso, o URL de conexão deve ser o URL base da sua instância, incluindo a barra no final.
      Criar solicitação Deixar selecionado manualmente
      Caminho do Recurso Insira api/now/table/ e clique no seletor de cápsula de dados ( Selecionador de cápsula de dados). Selecionar Entradas > Tabela.
      Método HTTP Inserir GET
      Parâmetros de Consulta Clique no ícone de adição (ícone de adição) para adicionar um novo parâmetro de consulta. Em seguida, insira sysparm_limit no campo Nome. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Entradas > Número de registros.
    5. No Contorno da ação, clique no ícone adicionar uma nova etapa (ícone Nova etapa) em Entradas e selecione a etapa Script.
      1. Na seção Variáveis de entrada, clique em Criar variável.
      2. No campo Nome, insira carga útil.
      3. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa REST > Corpo da Resposta.
      4. No campo Script, insira o código a seguir.
        
        (function execute(inputs, outputs) {
          var response = JSON.parse(inputs.payload);
          var records = response.result;
          outputs.record = records[0];
          outputs.records = JSON.stringify(records);
        })(inputs, outputs);
      5. Na seção Variáveis de saída, clique em Criar variável.
      6. Nos campos Rótulo e Nome, insira registro.
      7. Selecione JSON para o campo Tipo.
      8. Alterne o controle deslizante Obrigatório para que ele fique ativo.
      9. Clique em Criar variável para criar outra variável de saída para a etapa de script.
      10. Nos campos Rótulo e Nome, insira registros.
      11. No campo Tipo, selecione JSON.
      12. Para tornar a entrada obrigatória, alterne o controle deslizante Obrigatório para que ele fique ativo.
    6. No Contorno da ação, clique em Saídas.
      1. No cabeçalho Saída da ação, clique em Criar saída.
      2. Nos campos Rótulo e Nome, insira Registros.
      3. No campo Tipo, selecione Objeto dinâmico.
      4. Clique no ícone Alternar entradas avançadas ( Ícone Alternar entradas avançadas para exibir as opções avançadas da saída de registros.
      5. Em Opções dinâmicas, selecione Obter esquema Array.Object da ServiceNow (dinâmico) como a Ação.
      6. Para tornar a entrada Tabela dependente de outra entrada, alterne o controle deslizante Depende de outra entrada para torná-lo ativo.
      7. No campo Tabelae, selecione Tabela.
      8. No cabeçalho Saída da ação, clique em Sair do modo de edição.
      9. Ao lado do campo Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa de script > registros.
      10. No cabeçalho de Saída da ação, clique em Editar saídas > Criar Saída para criar outra saída de ação.
      11. Nos campos Rótulo e Nome, insira Registro.
      12. No campo Tipo, selecione Objeto dinâmico.
      13. Clique no ícone Alternar entradas avançadas (ícone Alternar entradas avançadas para exibir as opções avançadas da saída Registro.
      14. Em Opções dinâmicas, no campo Ação, selecione Obter esquema de objeto da ServiceNow (dinâmico).
      15. Para tornar a entrada Tabela dependente de outra entrada, alterne o controle deslizante Depende de outra entrada para torná-lo ativo.
      16. No campo Tabela, selecione Tabela.
      17. No cabeçalho Saída da ação, clique em Sair do modo de edição.
      18. Para o Valor, clique no seletor de cápsula de dados ( Selecionador de cápsula de dados) e selecione Etapa de script > registro.
    7. No cabeçalho Ação, clique em Salvar e em Testar para testar a ação.
      1. Na tela Ação de teste, selecione qualquer valor de opção gerado dinamicamente para a entrada Tabela.
      2. Clique em Executar teste.
      3. Verifique os detalhes de execução da ação.
        Sua ação será executada com sucesso se o valor de tempo de execução de Registro for um objeto complexo formatado corretamente e o valor de tempo de execução de Registros for uma matriz de objeto complexo formatado corretamente.
    8. No cabeçalho Ação, clique em Publicar para disponibilizar a ação Get ServiceNow Records (Dynamic) para fluxos no escopo Global.

    Resultado

    Agora você pode adicionar a ação Get ServiceNow Records (Dynamic) a um fluxo em Flow Designer. Esta ação de amostra gera dinamicamente duas saídas de ação, Registro e Registros, que podem ser acessadas como cápsulas de dados no painel de dados. As cápsulas de dados são atualizadas dinamicamente quando o valor da entrada Tabela muda.Use a ação de amostra Obter registros da ServiceNow (dinâmicos) em um fluxo.