UiPath Documentation
maestro-automate
latest
false
Guia do usuário do Maestro Automate

Script

O nó Script executa código JavaScript e retorna seu resultado, com a configuração, o ambiente JavaScript e exemplos.

O que faz​

Executa o código JavaScript e passa o valor de retorno para os nós depois dele.

Referência de configuração​

CampoRequiredPadrãoDescription
CódigoSimNenhumCódigo JavaScript a ser executado. Deve conter uma instrução return , e o valor retornado se torna a saída do nó.

O ambiente JavaScript​

Os scripts são executados em um runtime isolado e têm acesso a:

  • $vars escopo da variável do fluxo de trabalho. A saída de nós anteriores está disponível como $vars.<nodeName>.<property>.
  • $metadata: informações sobre a execução, como InstanceId.
  • Integrações padrão do JavaScript, como JSON, Math, Date, Array, Object, String, Number, RegExp, Error, Promise, URL, URLSearchParams e as funções de temporizador.

Por segurança, o runtime bloqueia APIs de rede (fetch, XMLHttpRequest, WebSocket), execução de código dinâmico (eval, Function) e APIs de armazenamento (indexedDB, caches). Para chamar uma API externa, o nó HTTP Request é a alternativa.

Os scripts são feitos para lógica rápida em memória: mantenha-os rápidos e evite processar cargas muito grandes, que podem exceder os limites de runtime ou o tempo limite.

Acesso à saída do nó anterior​

Os nós anteriores são lidos com $vars.<nodeName>.<property>, onde <nodeName> é o ID do nó, mostrado na guia Avançado do seu painel de propriedades:

// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

// Access a workflow variable
const count = $vars.myVariable;
// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

// Access a workflow variable
const count = $vars.myVariable;

RetornarValor​

O script deve retornar um valor. O valor retornado se torna a saída do nó, acessível subsequentemente como $vars.<nodeName>.output:

return {
  message: "Processed",
  count: items.length
};
return {
  message: "Processed",
  count: items.length
};

Entradas e saídas​

Entrada​

O nó do Script pode acessar qualquer variável anterior por meio de $vars. Ele não tem um esquema de entrada tipado — qualquer coisa em $vars está disponível.

Saída​

Em caso de sucesso, a saída é $vars.<nodeName>.output, que é o valor de retorno do script. Sua forma depende do que o script retorna.

Na falha, quando um identificador de erro está conectado, o erro é $vars.<nodeName>.error:

{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}
{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}

Gerar scripts com IA​

O ícone de flash acima do editor de código aceita uma descrição em linguagem simples do que você deseja e gera o JavaScript para você. Isso é útil para acessar a saída de um nó upstream ou escrever uma transformação rápida sem procurar a sintaxe $vars exata.

Exemplos​

Exemplo 1: calcular valores para nós posteriores​

// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};
// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};

Os nós subsequentes acessam os valores como $vars.script1.output.orderTotal e $vars.script1.output.currency.

Exemplo 2: Ler uma resposta HTTP​

const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};
const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};

Exemplo 3: lógica condicional​

const status = $vars.httpRequest1.output.code;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}
const status = $vars.httpRequest1.output.code;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}

Exemplo 4: transformar uma matriz​

const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};
const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};

Escolhendo entre Script e Transformação de dados​

Use o Script quando...Use a Transformação de Dados quando...
Você precisa de lógica completa de JavaScript — loops, condicionais, manipulação de stringVocê precisa de um mapeamento de campo simples ou transformação sem código.
Você deseja calcular algo a partir da saída do nó anterior.Você quer um mapeador visual sem escrever código
A transformação é complexa ou com estadoA transformação é apenas um redimensionamento simples

Próximas Etapas​

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte(opens in new window)

Quer aprender? Academia UiPath(opens in new window)

Tem perguntas? Fórum do UiPath(opens in new window)

Fique por dentro das novidades