Pular para o conteúdo principal

Function

1. Visão Geral

O componente Function (function) marca o início de um sub-fluxo reutilizável, que pode ser chamado de qualquer outro ponto do mesmo fluxo através do componente Function Caller. É como criar uma "função" nomeada dentro da automação: você define a lógica uma vez e reaproveita em vários lugares.

Use quando uma mesma sequência de passos precisa ser executada a partir de diferentes pontos do fluxo (evitando duplicar a mesma lógica várias vezes). Não use para o ponto de entrada principal do fluxo (isso é papel de outros conectores de gatilho, como HTTP ou eventos).

2. Pré-requisitos

Não há credenciais ou acessos externos — é um componente interno da engine de fluxo.

3. Autenticação e Conexão

Não aplicável.

4. Configuração / Operações Suportadas

O Function funciona apenas como gatilho (ponto de entrada) de um sub-fluxo — ele não executa uma ação por si só, apenas se registra para ser chamado.

CampoObrigatórioTipoDescriçãoExemplo
nameSimTextoNome pelo qual esta função será conhecida e chamada pelo componente Function Caller. Não pode ser vazio."validarCliente"

Comportamento em caso de erro: se name não for informado ou estiver vazio, o fluxo falha ao iniciar, com o erro correspondente. Se já existir uma função com o mesmo nome registrada, a nova simplesmente substitui a anterior (é registrado um aviso no log, mas não é um erro).

Este componente recebe a entrada exatamente como enviada pelo Function Caller que o chamou — o corpo recebido é o corpo de saída da chamada.

5. Exemplos Práticos

Exemplo simples: uma função chamada "formatarEndereco" recebe um endereço bruto e devolve o endereço formatado. Ela fica disponível para ser chamada de qualquer lugar do fluxo pelo Function Caller usando esse nome.

Configuração do componente (início do sub-fluxo da função):

{
"componentName": "function",
"configurations": { "name": "formatarEndereco" }
}

Entrada recebida por esta função quando alguém a chama (vinda do Function Caller):

{
"logradouro": "av paulista",
"numero": "1000",
"cidade": "sao paulo"
}

Resposta produzida pelo sub-fluxo da função (depois de processada pelos componentes seguintes dentro dela):

{
"enderecoFormatado": "Av. Paulista, 1000 - São Paulo"
}

Exemplo avançado: várias partes de um fluxo grande (por exemplo, cadastro de cliente, atualização de cadastro e importação em lote) precisam validar o mesmo conjunto de regras de negócio. Em vez de repetir os mesmos componentes de validação três vezes, cria-se uma única função "validarCliente", e cada um dos três pontos do fluxo apenas chama essa função pelo Function Caller, garantindo que a regra de validação seja sempre a mesma.

Configuração do componente:

{
"componentName": "function",
"configurations": { "name": "validarCliente" }
}

Entrada recebida por esta função:

{
"nome": "Maria Silva",
"cpf": "123.456.789-00",
"email": "maria@exemplo.com"
}

Resposta produzida pelo sub-fluxo da função:

{
"valido": true,
"pendencias": []
}

6. Pontos de atenção

  • O nome da função é único dentro do contexto do fluxo — configurar o mesmo nome em dois componentes Function faz a mais recente substituir a anterior.
  • A função só existe enquanto o fluxo que a contém estiver ativo; ao parar o fluxo, ela deixa de poder ser chamada.
  • Funciona apenas como ponto de entrada (gatilho) — não serve para enviar dados para fora do fluxo.

7. Erros Comuns e Troubleshooting

Erro / SintomaCausa provávelComo resolver
"Function 'name' is required in configuration"O campo name não foi preenchido.Preencher o nome da função na configuração.
"Function 'name' cannot be empty"O campo name foi preenchido só com espaços em branco.Informar um nome válido, sem ficar vazio.
Function Caller não encontra a funçãoO nome usado no Function Caller não corresponde exatamente ao nome configurado aqui, ou a função ainda não foi iniciada.Conferir se os nomes são idênticos e se o fluxo que contém a função está ativo.