Episódio 21 – Parâmetros Dinâmicos no Workflow: personalização sem limites
O interpretador baseado em JSON já percorreu um bom caminho. Mas até agora, ele executa ações estáticas, pré-definidas, quase como comandos rígidos. E se pudéssemos tornar isso mais flexível? E se cada ação recebesse parâmetros específicos, como:
{
"acao": "EnviarEmail",
"para": "cliente@exemplo.com",
"assunto": "Promoção",
"mensagem": "Desconto especial para você!"
}
Ou ainda:
{
"acao": "AtualizarStatus",
"idPedido": 12345,
"status": "Enviado"
}
Bem-vindo ao poder dos parâmetros dinâmicos.
🧠 O que muda?
Até aqui, nossas ações seguiam um formato fixo:
{"acao": "GerarRelatorio"}
Agora, cada ação poderá receber seus próprios argumentos, acessíveis dentro do callback.
Essa abordagem:
- Elimina a necessidade de múltiplos
ifs internos - Transforma o JSON em uma DSL leve e poderosa
- Permite reutilizar ações com diferentes configurações
🔧 Como implementar?
Vamos alterar a estrutura do nosso RegisterAction para permitir o uso de TJSONObject:
FActionMap.AddOrSetValue('EnviarEmail',
procedure(const Params: TJSONObject)
var
Para, Assunto, Mensagem: string;
begin
Para := Params.GetValue('para').Value;
Assunto := Params.GetValue('assunto').Value;
Mensagem := Params.GetValue('mensagem').Value;
// Lógica de envio de email aqui
end);
Simples. Poderoso. Flexível.
🔄 Evolução do interpretador
Agora, o JSON é mais do que um conjunto de comandos. Ele virou um script de fluxo de trabalho parametrizado.
Você pode criar:
- Regras de automação
- Processos ajustáveis sem recompilação
- Ações reutilizáveis que respondem a configurações
🧩 Benefícios para sistemas reais
- Backoffice configurável: adicione novos comportamentos sem mudar o código.
- Automação comercial: crie regras de envio, notificações ou validações em tempo real.
- Integração com IA: respostas da IA podem gerar novos fluxos JSON parametrizados.
Próximos passos
No episódio 22, vamos tratar de:
- Validação automática de parâmetros obrigatórios
- Tipagem leve para evitar erros de tempo de execução
- Sugestão de parâmetros default para simplificar configurações
Agora que temos ações com argumentos, o céu é o limite.
Um interpretador com parâmetros é como um verbo com sujeito, predicado e intenção. Começamos a falar uma linguagem completa.