Expressões indefinidas

Por que minha expressão está retornando undefined mesmo que o campo exista

Descrever o problema/erro/pergunta

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu workflow

(Selecione os nós no seu canvas e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o workflow.)

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração n8n

  • versão do n8n:
  • Banco de dados (padrão: SQLite):
  • configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, desktop app):
  • Sistema operacional:

@Oscar_Abaleke nove em cada dez vezes isso é o caminho da expressão não correspondendo à forma JSON real, notação de ponto como {{ $json.field }} só alcança um filho verdadeiramente aninhado, então se sua chave tem um espaço ou um ponto no próprio nome, retorna undefined e você precisa de notação de colchetes com a chave exata, {{ $json[‘your field’] }}. o outro comum é o campo realmente estar em um nó anterior em vez da entrada imediata, então $json aponta para o passo errado. você pode colar a expressão exata que está usando e uma captura de tela do painel de entrada para esse nó para que eu possa ver a chave real?

Oi @Oscar_Abaleke

A causa principal é que o campo pode ter sido removido ou modificado por um nó Set, Edit Fields ou Code anterior.

Verifique a saída de dados do nó anterior, se “Keep Only Set Fields” está ativado e sempre certifique-se de que o caminho JSON exato está sendo referenciado

se a expressão for válida, o nome do nó será tudo, use

first().json em vez de item.json

Uma coisa a mais para verificar: se o campo existe em um nó que não está diretamente conectado ao nó atual na cadeia, o padrão $json.fieldName ou $item().json.fieldName não conseguirá alcançá-lo. Você precisaria usar $('Node Name').item.json.fieldName para extrair dados de um nó específico anterior pelo nome.

Além disso - se a visualização da expressão no editor mostrar undefined mas o workflow funcionar normalmente (ou mostrar um valor na saída de execução), geralmente significa que o editor está usando dados de uma execução anterior. Execute novamente o nó anterior manualmente para que o editor tenha dados atualizados para avaliar.