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.
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
name | Sim | Texto | Nome 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 / Sintoma | Causa provável | Como 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ção | O 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. |