Corrige bug real: insert de log de envio (falha) quebrava por coluna 'erro' inexistente

Encontrado ao vivo durante o teste controlado de envio (secao 14): a Data
Table dev_glpi_v2_send_log tem schema fixo (imutavel apos criacao) sem
coluna 'erro'. O Code node 'Preparar Log de Envio (Falha)' incluia esse
campo, e o autoMapInputData tentava mapear para uma coluna que nao existe
-> 'Validation error with data table request: unknown column name erro'
(execucao 16724). O erro fica agora so no console.log do node, nao mais
no payload enviado a Data Table.

Confirmado no mesmo teste: nenhuma mensagem real chegou a ser enviada
(Slack node retornou channel_not_found e foi corretamente capturado pelo
onError:continueErrorOutput antes deste bug secundario aparecer).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Automacao GLPI
2026-08-25 09:34:58 -03:00
co-authored by Claude Sonnet 5
parent 64ddfb9b7b
commit f6f12c53d8
2 changed files with 15 additions and 7 deletions
+13 -5
View File
@@ -82,10 +82,13 @@ module.exports = function build(codeBodies) {
// ate a promocao explicita deste workflow para producao.
setAssignment('SEND_ENABLED', 'SEND_ENABLED', 'boolean', true),
setAssignment('FORCE_SEND', 'FORCE_SEND', 'boolean', false),
// Canal Slack de destino do Resumo Diario/Semanal. Vazio ate
// confirmacao explicita do usuario sobre qual canal deve receber
// (nao deve ser adivinhado — ver secao 6 da missao).
setAssignment('SLACK_DESTINATION', 'SLACK_DESTINATION', 'string', ''),
// Canal Slack de destino do Resumo Diario/Semanal. Confirmado
// explicitamente pelo usuario em 2026-08-25 (ver secao 6 da
// missao — nao foi adivinhado). D06JK4GEK8E: prefixo "D" indica
// uma conversa direta (DM)/IM, nao um canal publico/privado
// ("C"/"G") — comportamento identico via chat.postMessage, so
// registrando aqui para quem for auditar depois.
setAssignment('SLACK_DESTINATION', 'SLACK_DESTINATION', 'string', 'D06JK4GEK8E'),
setAssignment('EXTENDED_METRICS_ENABLED', 'EXTENDED_METRICS_ENABLED', 'boolean', false),
setAssignment('ANOMALY_MULTIPLIER', 'ANOMALY_MULTIPLIER', 'number', 2.0),
setAssignment('ANOMALY_MIN_DELTA', 'ANOMALY_MIN_DELTA', 'number', 3),
@@ -432,6 +435,12 @@ module.exports = function build(codeBodies) {
"const relatorio = $('Code - Motor V2: Relatorio Completo').first().json;\n" +
'const envio = relatorio.envio;\n' +
'const erro = $input.first().json.error || null;\n' +
'// erro NAO e persistido na Data Table (schema imutavel apos criacao, sem\n' +
"// coluna 'erro' — mandar esse campo quebra o insert com \"unknown column\n" +
'// name \'erro\'\", bug real encontrado e corrigido em 2026-08-25 no teste\n' +
'// controlado de envio). Fica so no console.log, visivel no log de\n' +
'// execucao do n8n.\n' +
'if (erro) console.log(\'Falha no envio Slack:\', erro);\n' +
'return [{ json: {\n' +
' send_key: envio.send_key,\n' +
' report_type: envio.report_type,\n' +
@@ -442,7 +451,6 @@ module.exports = function build(codeBodies) {
' trigger_type: envio.trigger_type,\n' +
" status: 'failed',\n" +
' sent_at: new Date().toISOString(),\n' +
' erro: erro ? String((erro && erro.message) || erro) : null,\n' +
'} }];\n',
},
},