Scripts em linha
Permita que usuários com experiência em codificação escrevam scripts em linha que definem e modificam valores de entrada durante a configuração de uma ação ou fluxo. Use scripts em linha para modificar valores de entrada que exigem pequenas conversões de formato, transformações de dados ou operações matemáticas.
Você também pode modificar valores de entrada sem script usando funções de transformação. Para obter uma lista de opções disponíveis, consulte Funções de transformação.
- Entradas de ação ao configurar a ação para um fluxo
- Saídas de ação ao configurar a ação para um fluxo
- Entradas da lógica de fluxo ao configurar a lógica de fluxo para um fluxo
- Saídas da lógica de fluxo ao configurar a lógica de fluxo para um fluxo
- Entradas de etapa ao configurar a etapa para uma ação.
- Entradas do subfluxo ao configurar o subfluxo para um fluxo.
- Saídas do subfluxo ao configurar o subfluxo para um fluxo.
Os scripts em linha devem retornar valores no mesmo tipo de dados que a entrada espera. Por exemplo, um script em linha para uma entrada Registro deve retornar um objeto GlideRecord e um script em linha para uma entrada Data deve retornar um valor de data e hora. Sempre teste as ações e os fluxos que contêm scripts em linha e verifique se não há erros de tempo de execução nos detalhes de execução do fluxo.
Os redatores de script devem estar familiarizados com estruturas de tabela Now Platform e tipos de campo. Além disso, eles devem saber como trabalhar com dados de registro e do sistema usando a API ServiceNow.
Benefícios
- Habilite a conversão ou transformação de dados simples sem precisar criar ações ou fluxos personalizados.
- Identifique quais dados de entrada são afetados por um script.
- Acesso restrito a recursos de script para usuários ou grupos que tenham conhecimento das APIs ServiceNow disponíveis.
Acesso ao script em linha
Você pode conceder aos usuários acesso a scripts online, concedendo a eles a função flow_designer_scripting ou a permissão de desenvolvimento delegado de Permitir script. A função e a permissão do desenvolvedor exibem um campo de botão de script para cada entrada Flow Designer.
Botão de script
Quando você permite que um usuário crie scripts em linha, Flow Designer exibe um botão de script ao lado das entradas de fluxo e etapa.
Clicar no botão Script abre o editor de scripts, que substitui a interface de entrada padrão. Insira um script para calcular o valor de entrada.
Certifique-se de que seu script inclua uma declaração de retorno com os resultados do script. Por exemplo, return shortDesc; retorna o valor da variável shortDesc.
Clicar no botão Recolher script oculta o editor de script e exibe uma versão somente leitura da entrada. Clicar no botão Expandir script exibe o editor de script e permite que você edite o script.
Objeto de dados Flow Designer
fd_data para acessar dados de ações e etapas anteriores. Use o objeto fd_data para fazer referência com pontos em uma saída específica do fluxo. Você pode usar as sugestões autocompletáveis do editor de script para selecionar um valor de saída específico. Por exemplo, insira fd_data e selecione _2__for_each.item nas sugestões de digitação autocompletáveis para criar uma referência com pontos para fd_data._2__for_each.item. Esta referência acessa dados da segunda saída do fluxo, que neste exemplo é um item de lógica de fluxo "for each".Flow Designer atualiza o objeto de dados sempre que você salva sua ação, fluxo ou subfluxo. Se as sugestões de digitação antecipada não incluírem seu destino, tente salvar a ação, o fluxo ou o subfluxo e redigitar o caractere de ponto final para atualizar a lista de sugestões.
| Destino de dados | Sintaxe de referência | Exemplo |
|---|---|---|
| Entrada de ação | fd_data.action_inputs.nome-de-entrada-de-ação | tarefa var = fd_data.action_inputs.task; |
| Variável de fluxo | fd_data.flow_var.nome-da-variável-fluxo | var shortDesc = fd_data.flow_var.short_description; |
| Saída da ação anterior, lógica de fluxo ou etapa | fd_data._output-target-step-number__output-target-name | var taskRecord = fd_data._2__create_task; |
| Entrada de subfluxo | fd_data.subflow_inputs.nome-de-entrada-de-subfluxo | var reqItem = fd_data.subflow_inputs.requested_item; |
| Gatilho | fd_data.trigger.gatilho-data-pill | var incidente = fd_data.trigger.current; |
Diretrizes gerais
Siga estas diretrizes gerais para criar scripts em linha reutilizáveis e de fácil manutenção.
- Gravar script em linha para lógica pequena não reutilizável
- Use o formato de script em linha ou modifique os dados para entradas e casos de uso específicos. Para conversões de dados de entrada padrão e reutilizáveis e operações de formatação, selecione uma função de transformação.
- Analisar as funções de transformação disponíveis
- Flow Designer fornece uma lista de funções de transformação padrão para conversões de dados e operações de formatação. Em vez de escrever e manter uma solução de script personalizada, selecione uma função de transformação existente, se houver uma disponível.
- Inclusões de script de chamada do script em linha
- Chame uma inclusão de script do seu script em linha para reduzir a quantidade de código que você grava e também para manter o código comum em um único local. Use o construtor de classe para chamar sua inclusão de script. Para obter mais informações sobre como criar uma inclusão de script, consulte Script includes.
var si = new MyScriptInclude(); si.functionOne(); - Crie ações personalizadas ou subfluxos para código reutilizável em vez de script em linha
- Crie ações ou subfluxos personalizados para lógica de dados reutilizável ou complexa, como mudança do tipo de dados de origem. Você também pode fornecer ações personalizadas ou subfluxos para designers de fluxo que não se sintam à vontade com o código.
- Evite duplicar a funcionalidade de ação e fluxo
- Evite escrever scripts em linha que dupliquem a ação e a funcionalidade de fluxo. Por exemplo, em vez de escrever um script em linha para executar operações de registro, use as ações de linha de base de criação e atualização de registro.
- Evitar mudanças de tipo de dados
- Evite erros de tempo de execução verificando se o script em linha fornece informações no mesmo tipo de dados que a entrada ou a saída espera.
- Crie variáveis declarando-as com a palavra-chave var
- Use a palavra-chave
varpara declarar variáveis para que elas permaneçam dentro do escopo JavaScript apropriado. Quando você cria uma variável atribuindo um valor a ela, o JavaScript pode anexá-la ao objeto global, o que pode fazer com que os valores de variável persistam fora do escopo local e causem erros. - Processar saídas de registros com a lógica de fluxo Para cada e o objeto de dados de fluxo
- O script em linha só pode acessar a saída de registros de uma ação Pesquisar registros da lógica de fluxo Para cada. Adicione uma ação Pesquisar registros ao fluxo para gerar a saída de registros. Adicione uma lógica de fluxo Para cada ao fluxo para processar cada registro na saída de registros. Crie uma referência de script em linha para a lógica de fluxo Para cada usando os objetos fd_data e item. Por exemplo, esta referência pressupõe que a lógica de fluxo Para cada é o segundo item no contorno do fluxo
fd_data._2__for_each.item. - Use sugestões de digitação antecipada para gerar referências a dados de fluxo e ação.
- Crie referências para dados de fluxo e ação usando o objeto fd_data. O editor de script exibe sugestões de digitação antecipada para dados de fluxo e ação existentes quando você digita fd_data. Selecione uma sugestão para criar referências para dados de fluxo e ação. Nota:Consulte os dados de registro em uma lógica de fluxo Para cada usando o objeto do item.
- Contadores de loop de escopo
-
Os loops de script não têm um número máximo de iterações, portanto, os loops são executados infinitamente quando não há uma condição de saída válida.
Para garantir que haja uma condição de saída válida, use contadores de loop de escopo em scripts em linha ou em etapas de script em uma ação. Adicionar
varapara (i=0; i< comprimento; i+ +)e obterpara (var i=0; i< comprimento; i + +)
Considerações sobre licenciamento
Scripts em linha que chamam APIs de integração estão sujeitos ao licenciamento de IntegrationHub.
Editor de código
O editor de código fornece suporte ao editor de texto para scripts em linha.
- Coloração de sintaxe, recuo, números de linha e criação automática de chaves e aspas de fechamento
- Sugestões e preenchimentos automáticos
Dicas de edição
- Para inserir um espaço fixo em qualquer lugar do seu código, pressione Tab.
- Para recuar uma única linha de código, clique no espaço em branco à esquerda da linha e pressione Tab.
- Para recuar uma ou mais linhas de código, selecione o código e pressione Tab. Para diminuir o recuo, pressione Shift + Tab.
- Para remover uma guia do início de uma linha de código, clique na linha e pressione Shift + Tab.
- Para declarar variáveis, use a palavra-chave
varpara que elas permaneçam dentro do escopo JavaScript apropriado.