esofitec. CoreDocs

esofitec. CoreDocs

Addons estándar / Extensión de datos FACe

Diagnóstico

Qué mirar, en qué orden, y qué significa cada síntoma. La mayoría de las incidencias de este módulo no producen ningún error visible: el fichero sale, pero sin el dato esperado. Por eso conviene empezar siempre por el mismo sitio.

Los tres sitios donde mirar#

La tabla de resultado y su vista. El módulo registra una fila por factura procesada, con estado O si fue bien y E si hubo error, y el motivo. La vista SIT_FACE_EXT_V_INCIDENCIAS traduce los identificadores internos a tipo, serie, número, fecha y cliente, que es lo que permite localizar la factura.

La traza. Por defecto en C:\Logs, con un fichero por módulo, fecha, usuario de Windows e identificador de proceso. Registra el arranque, la configuración leída, cada factura procesada y el detalle de cada decisión cuando el nivel está en Debug.

La traza del propio a3ERP, sólo cuando haya dudas de si el ERP está llamando al módulo. Se activa con Log=1 en la sección [DLLS] del CONFIGURACION.INI de %APPDATA%\A3 y escribe en %APPDATA%\A3\LOGS\DLLS.

Subir el nivel de traza#

El nivel útil para diagnosticar es 1 (Debug): registra qué mapeo se aplicó, cuál se omitió y por qué.

UPDATE SIT_FACE_EXT_CONFIG SET SIT_FACE_EXT_NIVELTRAZA = 1;

Hay que salir y volver a entrar en la empresa para que el cambio surta efecto, y conviene devolverlo a 2 al terminar.

Catálogo de síntomas#

No se genera ningún fichero de traza#

El módulo no se ha cargado. Por orden de probabilidad:

  1. No está registrado en DLLS para esa empresa. El registro es por empresa; una empresa creada después de la instalación no lo hereda.
  2. El nombre de FABRICANTE o PRODUCTO en DLLS no coincide con las carpetas reales bajo Extensiones.
  3. La librería no ha llegado a registrarse en el puesto. Activar la traza de a3ERP y comprobar si el ERP intenta cargarla.

Falta una tabla, una columna o la vista#

El diccionario las declara, pero su aplicación puede haberse quedado a medias, y eso ocurre con más facilidad de la que parece: basta con que la carga de diccionarios falle por causa de otro módulo presente en la carpeta de extensiones.

La solución es lanzar la comprobación de la estructura de base de datos de la empresa desde a3ERP, que crea a partir de lo declarado todo lo que falte. Comprobado en campo con la vista de incidencias.

Si lo que falta es un campo y la comprobación no lo crea, mira si otro diccionario declara una columna con el mismo nombre sobre la misma tabla, cosa que puede impedir que llegue a registrarse:

SELECT * FROM A3ERP$SISTEMA.dbo.columnas WHERE COLUMNA LIKE 'SIT_FACE_EXT%';

La traza existe, pero no hay fila de resultado para la factura#

El módulo arrancó pero no recibió el evento de generación de la factura electrónica, o no llegó a procesar el documento. Comprobar en la traza si el arranque terminó correctamente y si hay algún mensaje de licencia.

La factura se procesa pero el nodo no aparece#

Es el caso más frecuente y no da error. Con la traza en Debug, el módulo dice exactamente por qué omitió el mapeo. Las causas habituales:

Causa Qué se ve en la traza
El valor de origen está vacío Mapeo omitido por valor vacío
El mapeo está desactivado No llega a evaluarse
El nodo ya existía y el comportamiento es rellenar sólo si está vacío Mapeo omitido por nodo existente no vacío
La versión de Facturae queda fuera del rango del mapeo Mapeo omitido por versión
El campo de origen no existe en la tabla Incidencia de configuración al entrar en la empresa
El nodo de destino está vetado por relevancia fiscal Incidencia de configuración al entrar en la empresa

Las dos últimas se detectan al entrar en la empresa, no al facturar: si nadie miró el aviso de arranque, el síntoma aparece mucho después.

La emisión se cancela con un mensaje sobre la longitud#

Es el comportamiento previsto cuando el parámetro de truncado está a F y un valor excede el límite del nodo. El mensaje indica la factura, el campo, el valor, su longitud y el límite.

Las salidas son tres: acortar el dato de origen, cambiar el destino a un nodo que admita más longitud, o poner el parámetro de truncado a T asumiendo que el valor se recorta.

El módulo avisa de que no hay licencia#

El módulo se desactiva, avisa una vez y a3ERP sigue funcionando con normalidad, emitiendo los ficheros sin tratar. No es un bloqueo de la facturación. Se resuelve activando la licencia del módulo para esa instalación.

Un dato aparece en la línea equivocada, o no aparece en ninguna#

Si el módulo detecta que el número de líneas de la factura no coincide con el de líneas del fichero, no aplica nada en las líneas y lo registra, en lugar de arriesgarse a colocar el dato en la línea equivocada.

La causa habitual son los kits: a3ERP escribe una línea de cabecera de kit y una por componente, pero al fichero sólo emite la del kit. El módulo descarta los componentes. Si aun así no cuadra, la traza indica cuántas líneas se leyeron, cuántas se descartaron y cuántas quedaron.

El fichero no valida contra el esquema#

Con la validación activada, el módulo comprueba el resultado contra el esquema de la versión detectada. Un fallo aquí apunta casi siempre a un nodo colocado en una posición que el esquema no admite: revisar la ruta del nodo padre del mapeo implicado.

Qué adjuntar al escalar a soporte#

Con esto se puede diagnosticar sin acceso a la máquina:

  • El fichero de traza del día, con el nivel en Debug si es reproducible.
  • El XML generado, o el mensaje de error si no llegó a generarse.
  • Las filas de la tabla de mapeos y la de configuración de esa empresa.
  • La versión del módulo y la del diccionario aplicado, que constan en el arranque de la traza.

Antes de enviar nada

La traza y el XML contienen datos de facturas reales. Comprobar qué se envía y a quién, y no pegar su contenido en artículos, tickets públicos ni documentación.