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:
co-authored by
Claude Sonnet 5
parent
64ddfb9b7b
commit
f6f12c53d8
@@ -144,7 +144,7 @@
|
||||
"id": "SLACK_DESTINATION",
|
||||
"name": "SLACK_DESTINATION",
|
||||
"type": "string",
|
||||
"value": ""
|
||||
"value": "D06JK4GEK8E"
|
||||
},
|
||||
{
|
||||
"id": "EXTENDED_METRICS_ENABLED",
|
||||
@@ -767,7 +767,7 @@
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "const relatorio = $('Code - Motor V2: Relatorio Completo').first().json;\nconst envio = relatorio.envio;\nconst erro = $input.first().json.error || null;\nreturn [{ json: {\n send_key: envio.send_key,\n report_type: envio.report_type,\n period_start: envio.period_start,\n period_end: envio.period_end,\n destination: envio.destino,\n message_hash: envio.message_hash,\n 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"
|
||||
"jsCode": "const relatorio = $('Code - Motor V2: Relatorio Completo').first().json;\nconst envio = relatorio.envio;\nconst 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.\nif (erro) console.log('Falha no envio Slack:', erro);\nreturn [{ json: {\n send_key: envio.send_key,\n report_type: envio.report_type,\n period_start: envio.period_start,\n period_end: envio.period_end,\n destination: envio.destino,\n message_hash: envio.message_hash,\n trigger_type: envio.trigger_type,\n status: 'failed',\n sent_at: new Date().toISOString(),\n} }];\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user