Expresiones indefinidas

¿Por qué mi expresión devuelve undefined aunque el campo existe

Describe el problema/error/pregunta

¿Cuál es el mensaje de error (si lo hay)?

Por favor, comparte tu flujo de trabajo

(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el flujo de trabajo.)

Comparte el resultado devuelto por el último nodo

Información sobre tu configuración de n8n

  • Versión de n8n:
  • Base de datos (predeterminado: SQLite):
  • Configuración EXECUTIONS_PROCESS de n8n (predeterminado: own, main):
  • Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
  • Sistema operativo:

@Oscar_Abaleke nueve de cada diez veces esto es el path de la expresión que no coincide con la forma real del json, la notación de punto como {{ $json.field }} solo alcanza un hijo realmente anidado, así que si tu clave tiene un espacio o un punto en el nombre mismo devuelve undefined y necesitas notación de corchetes con la clave exacta, {{ $json[‘your field’] }}. el otro común es que el campo esté realmente en un nodo anterior en lugar de la entrada inmediata, así que $json apunta al paso incorrecto. ¿puedes pegar la expresión exacta que estás usando y una captura de pantalla del panel de entrada para ese nodo para que pueda ver la clave real?

Hola @Oscar_Abaleke

La causa principal es que el campo puede haber sido eliminado o modificado por un nodo Set, Edit Fields o Code anterior.

Verifica la salida de datos del nodo anterior, si está habilitada la opción “Keep Only Set Fields” y asegúrate siempre de que se esté haciendo referencia a la ruta JSON exacta

si la expresión es válida el nombre del nodo todo, usa

first().json en lugar de item.json

Una cosa más que verificar: si el campo existe en un nodo que no está directamente conectado al nodo actual en la cadena, el $json.fieldName o $item().json.fieldName predeterminado no lo alcanzarán. Necesitarías $('Node Name').item.json.fieldName para extraer datos de un nodo ascendente específico por nombre.

Además, si la vista previa de la expresión en el editor muestra undefined pero el flujo de trabajo se ejecuta correctamente (o muestra un valor en la salida de ejecución), generalmente significa que el editor está usando datos de una ejecución anterior. Ejecuta manualmente el nodo ascendente nuevamente para que el editor tenga datos frescos para evaluar.