Pular para o conteúdo principal

Function Caller

1. Visão Geral

O componente Function Caller (function-caller) chama uma função previamente registrada pelo componente Function, passando um corpo de dados e recebendo o resultado da execução dela. É o "botão de chamar" da função criada com o componente Function.

Use sempre que precisar reaproveitar uma lógica já definida como função em outro ponto do fluxo. Não use se a função ainda não foi registrada em algum lugar do mesmo fluxo com o componente Function — a chamada vai falhar.

2. Pré-requisitos

  • Deve existir, no mesmo fluxo, um componente Function já registrado com o nome que será chamado.
  • Não há credenciais externas envolvidas.

3. Autenticação e Conexão

Não aplicável.

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

O Function Caller tem uma única operação: invocar a função pelo nome e devolver o resultado dela.

CampoObrigatórioTipoDescriçãoExemplo
functionNameSimExpressãoNome da função a ser chamada (deve corresponder ao nome configurado no componente Function correspondente)."validarCliente"
bodyNãoExpressãoCorpo de dados a ser enviado para a função. Se não informado, o corpo atual da mensagem é usado como está.Uma expressão que monta um objeto customizado para a função

Comportamento em caso de erro:

  • Se functionName não for informado, vazio, ou não resolver para nenhum valor, a execução falha com erro.
  • Se a função com o nome resolvido não estiver registrada, a execução falha com o erro "Function '[nome]' not found. Make sure it is registered."
  • Se ocorrer qualquer falha durante a execução da função chamada, o erro é propagado com a mensagem "Failed to execute function '[nome]': [detalhe]".

Ao final, o resultado (corpo e status de sucesso) devolvido pela função chamada substitui o corpo e o status da mensagem atual.

5. Exemplos Práticos

Exemplo simples: um fluxo de cadastro de cliente chama a função "validarCliente" (previamente registrada) sem informar body, ou seja, repassando o corpo atual da mensagem como entrada da validação.

Entrada:

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

Configuração do componente:

{
"componentName": "function-caller",
"configurations": { "functionName": "validarCliente" }
}

Resposta (o corpo devolvido pela função validarCliente substitui o corpo atual da mensagem):

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

Exemplo avançado: um fluxo de importação em lote monta, para cada item, um corpo customizado no campo body (contendo apenas os campos necessários para a validação), chama a função "validarCliente" e usa o resultado dela para decidir os próximos passos — por exemplo, combinando com um componente Choice logo em seguida para tratar separadamente os itens válidos e inválidos.

Entrada:

{
"linha": { "nomeCompleto": "João Souza", "documento": "987.654.321-00", "contato": "joao@exemplo.com" }
}

Configuração do componente:

{
"componentName": "function-caller",
"configurations": {
"functionName": "validarCliente",
"body": "{ \"nome\": \"{$.body.linha.nomeCompleto}\", \"cpf\": \"{$.body.linha.documento}\", \"email\": \"{$.body.linha.contato}\" }"
}
}

Resposta:

{
"valido": false,
"pendencias": ["CPF inválido"]
}

6. Pontos de atenção

  • A função chamada precisa estar registrada e ativa no momento da chamada.
  • A chamada é sempre síncrona — o Function Caller espera a função terminar antes de seguir.
  • Erros dentro da função chamada interrompem a execução do Function Caller (não há opção de "continuar mesmo com erro" neste componente).

7. Erros Comuns e Troubleshooting

Erro / SintomaCausa provávelComo resolver
"Function name is required in configuration"O campo functionName não foi preenchido ou não resolveu para nenhum valor.Preencher functionName com um valor válido.
"Function '[nome]' not found. Make sure it is registered."Não existe nenhum componente Function ativo com esse nome no fluxo.Verificar se o nome está correto e se o componente Function correspondente está ativo.
"Failed to execute function '[nome]': [detalhe]"A função chamada lançou um erro durante sua execução.Investigar a causa do erro dentro da lógica da função chamada, usando o detalhe da mensagem.