HubfiscalLogSageBatch
Descripción
Sección titulada «Descripción»Se coloca después del nodo SageX3Soap (operación save). Guarda en el lote la respuesta de Sage y el número de la factura agrupada (VCRNUM), y copia ese número a cada documento del lote. Así, desde un pedido se ve en qué factura de Sage está y, desde una factura de Sage, qué pedidos la componen.
Forma parte del proceso de contabilización diaria Hub Fiscal → Sage X3, junto con HubfiscalAggregateSales.
Características principales:
- Trazabilidad en los dos sentidos: guarda
sage_vcrnumy la fecha de contabilización en el lote y en cada documento. - Idempotente: si el lote ya está registrado, no pisa el número guardado.
- Gestión de fallos: si Sage devolvió error, el lote queda como
failedcon el motivo, incluido el mensaje de negocio de Sage. - Aviso si falta el número: si Sage responde OK pero sin
VCRNUM, el lote quedasentcon una advertencia para completarlo a mano.
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Sí | Credencial Hub Fiscal MySQL/MariaDB (tipo sqlQuery) |
| batch_id | text | No | Id del lote. Por defecto {{item.batch_id}}; dentro de un Iterator sobre batches puede usarse {{batch_id}} |
Entrada
Sección titulada «Entrada»Los datos del paso anterior, que deben incluir:
- El identificador del lote (
batch_id), que viene de HubfiscalAggregateSales. - La respuesta de Sage (
sage_response), que añade el nodo SageX3Soap.
El número de factura se busca en cualquier nivel de la respuesta, tanto si Sage devuelve JSON como XML.
{ "logged": true, "batch_id": 102, "batch_status": "sent", "sage_vcrnum": "FTC0000123", "message": "Lote 102 enviado a Sage (FTC0000123)"}| Campo | Descripción |
|---|---|
logged | true si se escribió; false si el lote ya estaba registrado o era una simulación |
batch_status | sent o failed |
sage_vcrnum | Número de la factura agrupada en Sage |
warning | Solo si Sage respondió OK sin número de factura |
Qué se guarda
Sección titulada «Qué se guarda»En el lote: estado, respuesta de Sage, número de factura agrupada, motivo del error si falló y fecha de envío. En cada documento del lote: el número de factura de Sage y la fecha en la que se contabilizó.
Consulta de trazabilidad (ejemplo):
-- ¿En qué factura de Sage está el pedido 17513?SELECT order_number, fiscal_doc_number, sage_vcrnum, sage_posted_at FROM documents WHERE order_number = '17513';- En simulación no registra nada: si el asiento viene marcado como simulado, el nodo termina sin escribir.
- Cuando el nodo SageX3Soap falla, el flujo de ese asiento se corta y este nodo no llega a ejecutarse: el lote queda pendiente y se reenvía en la siguiente ejecución del mismo día.
- Un lote que no existe devuelve un error claro (
Lote N no encontrado).
Nodos Relacionados
Sección titulada «Nodos Relacionados»- HubfiscalAggregateSales - Agrupa las ventas del día y crea los lotes
- SageX3Soap - Envía el asiento a Sage X3
- HubfiscalGetDocuments - Consultar documentos en Hub Fiscal