Valor indefinido en nodos de campos de edición

Hola,

En un flujo de trabajo, almaceno valores en un nodo “Edit fields” al inicio de la ejecución. El resto del flujo de trabajo se ejecuta durante aproximadamente dos minutos, y al final, recupero uno de los valores de ese nodo “Edit fields”. El problema es que recibo un mensaje “undefined” para el campo, como si el valor almacenado tuviera una vida útil limitada.

Información sobre tu configuración de n8n

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

¡Hola! Los valores no expiran en n8n, así que no es eso.

El verdadero problema es que probablemente estés perdiendo la referencia entre ramas o después de una fusión. Intenta cambiar tu expresión a:

{{ $('Edit Fields').first().json.yourField }}

.first() obliga a n8n a obtener siempre la salida original sin importar dónde estés en el flujo de trabajo. ¡Eso lo soluciona la mayoría de las veces!

Hola @flipflip
Si un nodo Wait está pausando la ejecución durante esos dos minutos, eso es lo que produce el undefined: n8n guarda la ejecución cuando llega al wait y la recarga al reanudar, por lo que una referencia hacia atrás como $('Edit Fields').item a un nodo anterior al wait no sobrevive de manera confiable a la recarga. El nodo Wait pasa su entrada directamente, así que lleva el campo en el elemento en lugar de hacer referencia hacia atrás a través del wait. Activa Include Other Input Fields en el nodo Edit Fields para que el valor viaje con los elementos hacia el nodo Wait, luego léelo después del wait con:

{{ $json.yourField }}

Hola, gracias por tu respuesta.

Aquí hay una versión simplificada de mi flujo de trabajo. El nodo “setVar” se instancia al principio sin errores. El flujo de trabajo se ejecuta sin problemas, y es solo en el nodo final que necesito el valor “mail” especificado en “setVar”. Los dos nodos anteriores a “setVar” se incluyen únicamente con fines ilustrativos.

Error

Problem in node 'Send an Email'

No recipients defined

Hola @flipflip
En el nodo Send an Email tienes {{ $('setVar').first().item.json.mail }}. .first() ya devuelve el elemento, así que encadenar .item a esto se resuelve a undefined, toEmail termina vacío y el nodo reporta “No recipients defined”. Elimina .item:

{{ $('setVar').first().json.mail }}

Si aún viene vacío, la dirección nunca llegó a setVar: su asignación mail lee {{ $json.mail }} de getMail, así que abre la salida de setVar y confirma que el campo realmente contiene la dirección allí.

Perfecto, gracias.