← Volver al blog

Paginación OData de SAP en n8n: limita y concilia los pedidos de Business One

Planifica la paginación OData de Orders en Business One 10.0: revisa enlaces de continuación, limita solicitudes y comprueba recuentos antes de enviar registros.

Paginación OData de SAP representada por hojas de pedidos que atraviesan una barrera hacia una balanza de conciliación.

Comprobado con las fuentes citadas el .

Define el objetivo y los requisitos de la paginación OData de SAP

Un armario de servicio, un llavero y un cuaderno representan los requisitos para extraer Orders de Business One.
Empieza con una implementación identificada y acceso autenticado.

Este tutorial aborda la paginación OData de SAP para extraer Orders en modo de solo lectura desde una implementación existente de SAP Business One 10.0 Service Layer. El objetivo es seguir los enlaces de continuación con límites explícitos de solicitudes y después comprobar las filas y las claves de documento antes del procesamiento posterior. La documentación proporcionada respalda los controles individuales, pero no un flujo de trabajo completo y ejecutable que cubra autenticación, resolución de enlaces relativos, configuración de finalización y bloqueo del procesamiento posterior; esos detalles requieren una verificación específica de cada implementación.

Anota el nivel de parche real de Business One, la modalidad de alojamiento, el endpoint de Service Layer y la versión del nodo HTTP Request de n8n. La referencia de SAP Business One 10.0 indica que OData V3 está obsoleto desde FP 2405 y mantiene las indicaciones para OData V4. SAP muestra la recuperación de Orders mediante /b1s/v2/Orders.

Parte de una solicitud de lectura aprobada y autenticada que ya funcione en n8n. SAP documenta HTTPS y la continuidad de sesión mediante las cookies SessionID y ROUTEID; n8n requiere el método de autenticación que espere el servicio de destino. Este tutorial da por hecho que esa continuidad ya está establecida para las solicitudes sucesivas.

Sources: Service Layer API Reference, Logging In and Out Using Basic Authentication with Service Layer, n8n-docs/docs/integrations/builtin/credentials/httprequest.md at main · n8n-io/n8n-docs · GitHub, Exploring Various Data Retrieval Options Using GET request

Elige la consulta e inspecciona una respuesta de Orders

Plantillas de filtro idénticas cubren registros de pedidos y fichas de recuento para la consulta de extracción.
Utiliza el mismo filtro para la extracción de Orders y su recuento en origen.

Para este ejemplo de paginación OData de SAP, utiliza un contrato de extracción propuesto para este tutorial: un filtro aprobado de Orders, DocEntry junto con los campos necesarios para el procesamiento posterior, ordenación por DocEntry y una solicitud de recuento independiente con el mismo filtro. SAP documenta $select, $orderby y los recuentos de colecciones mediante /Orders/$count.

Sigue estos pasos de preparación antes de habilitar las solicitudes repetidas. La documentación de SAP Business One 10.0 DI API identifica DocEntry como una clave de documento única; por su parte, la lección de SAP sobre Service Layer muestra cómo acceder a un pedido mediante esa clave. Confirma que esté presente en tu respuesta real de Orders.

  1. Anota el filtro de extracción y reutilízalo sin cambios en las solicitudes de datos y de recuento.
  2. Selecciona DocEntry y los campos necesarios para el procesamiento posterior; ordena la extracción por DocEntry.
  3. Obtén una página de Orders con una solicitud aprobada e inspecciona su array value y su anotación de continuación.
  4. Registra el recuento correspondiente en origen y la estructura de respuesta observada para la conciliación.

Inspecciona la anotación de continuación en lugar de copiar su nombre de un ejemplo. Las indicaciones de SAP para cada protocolo utilizan @odata.nextLink para V4 y odata.nextLink para V3, mientras que su lección sobre recuperación emplea una terminología inconsistente. Consideramos que inspeccionar el contenido devuelto es un mejor punto de partida que adaptar una plantilla de paginación conocida.

Sources: Exploring Various Data Retrieval Options Using GET request, Paginate the Selected Orders | SAP Help Portal, Query Options | SAP Help Portal, Documents Object Members - SAP B1 SDK Help

Configura una paginación por enlaces de continuación con límites

Paquetes de páginas y cintas de continuación llegan a un tope junto a un reloj de arena que representa la paginación con límites.
Un límite máximo de solicitudes acota el trabajo aunque quede otra página.

En HTTP Request, activa Pagination y elige Response Contains Next URL. Introduce una expresión en Next URL que lea el campo de continuación observado en tu respuesta. Conserva los parámetros de consulta de continuación proporcionados por el servidor. Si el enlace es relativo, verifica cómo se resuelve en tu implementación antes de continuar; la documentación proporcionada no establece cómo gestionar tanto los enlaces relativos a la raíz como los relativos al servicio.

Para una página final con datos pero sin anotación de continuación, la referencia de n8n recomienda una condición de finalización personalizada basada en la ausencia de ese campo. Esa misma referencia ofrece indicaciones contradictorias sobre la finalización automática cuando la siguiente URL tiene un valor falsy. Verifica la configuración de finalización en la versión del nodo que tienes instalada, en lugar de considerar suficiente una siguiente URL vacía.

Establece límites explícitos con los controles siguientes. Acuerda sus valores con el responsable del servicio SAP. Nuestra preferencia práctica es detener e investigar una ejecución que haya alcanzado el límite en lugar de enviar su salida parcial al procesamiento posterior.

Controles de solicitudes documentados y sus limitaciones
ControlPropósitoLimitación
limitPagesFetched y maxRequestsHabilitar un límite máximo de solicitudesNo demuestra que la extracción haya finalizado
requestIntervalIntroducir una espera entre solicitudesNo está documentado como comprobación de finalización
TimeoutLimitar la espera de las cabeceras de respuestaNo es un plazo máximo para todo el flujo de trabajo

Conserva las evidencias de cada página antes de separar sus registros: si queda un enlace de continuación, qué valores de continuación se han observado y si se ha alcanzado el límite configurado.

Sources: Paginate the Selected Orders | SAP Help Portal, n8n-docs/docs/build/code-in-n8n/cookbook/http-request-node/pagination.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-loops-official/references/HTTP_PAGINATION.md at main · n8n-io/skills · GitHub, HTTP Request | Nodes | n8n Docs

Concilia los pedidos y resuelve los problemas antes de enviarlos

Hojas de registros, fichas de claves únicas y cuentas de recuento ante una barrera para conciliar los pedidos antes de enviarlos.
Compara las filas, las claves únicas y el recuento correspondiente en origen antes de enviar los pedidos.

Tras conservar las evidencias de paginación, utiliza Split Out con Field to Split Out establecido en value para separar el array de pedidos de cada página. Las respuestas envueltas en un objeto requieren este tratamiento explícito. El nodo Code de n8n admite JavaScript y Run Once for All Items, por lo que puede ser un lugar adecuado para implementar lógica de conciliación personalizada; la documentación proporcionada no establece una implementación completa para recopilar los datos, gestionar resultados vacíos y bloquear el procesamiento posterior.

Utiliza esta regla de aceptación propuesta para este tutorial sobre paginación OData de SAP: envía los datos al procesamiento posterior solo cuando la paginación haya finalizado, todas las filas tengan DocEntry, el número de filas recuperadas coincida con el de valores distintos de DocEntry y ambos coincidan con el recuento correspondiente en origen. Superar estas comprobaciones no demuestra que se haya obtenido una instantánea transaccionalmente coherente. Consideramos la conciliación una condición para enviar los datos, no una garantía de integridad de la extracción.

Las siguientes son comprobaciones sugeridas para resolver problemas, no resultados probados. Si la extracción está vacía, exige una finalización explícita de la paginación y un recuento correspondiente de cero en origen antes de aceptarla.

Sources: Paginate the Selected Orders | SAP Help Portal, Query Options | SAP Help Portal, skills/skills/n8n-loops-official/references/HTTP_PAGINATION.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.splitout.md at main · n8n-io/n8n-docs · GitHub, Documents Object Members - SAP B1 SDK Help, Using the Code node | Build | n8n Docs

Ponlo en práctica

Retos prácticos de n8n

Elige un reto y construye un workflow que funcione en tu propio entorno de n8n, con cinco pistas progresivas por reto.

Prueba un reto práctico

Para tu equipo

Programas de formación en n8n a medida para un equipo o departamento, en tu propia instancia de n8n y con tus herramientas y datos.

Formación para tu equipo

Evaluación de habilidades de n8n

Un cuestionario gratuito de unos 20 minutos, en inglés: 30 preguntas en 10 áreas y un nivel de principiante a experto. En AI Adoption Score, otro proyecto del autor de este sitio.

Descubre tu nivel de n8n