Addons estándar / Extensión de datos FACe
Instalación y activación
El instalador despliega los ficheros, pero no deja el módulo funcionando. Faltan tres pasos que se hacen desde a3ERP y desde la base de datos, y que hay que repetir en cada empresa donde deba actuar. Si alguno se omite, el módulo no da ningún error: sencillamente no interviene, y las facturas salen como salían.
Antes de empezar#
| Requisito | Comprobación |
|---|---|
| a3ERP | Probado sobre 14.6.2 |
| .NET Framework 4.8 | En cada puesto que emita facturas electrónicas |
| Licencia del módulo | Activa para la instalación del cliente |
| Acceso a la base de datos | Para el alta en DLLS y para la vista de consulta |
1. Desplegar la extensión#
El instalador crea la carpeta bajo la de extensiones de a3ERP:
Extensiones\Sofitec\SIT_FACE_EXT\
├── binarios\ la librería, sus dependencias y regDlls.ini
├── diccionarios\DSIT_FACE_EXT\
└── imagenes\
El registro COM de la librería lo hace a3ERP al arrancar el cliente, leyendo el regDlls.ini que va en binarios. No hay que ejecutar regasm a mano.
2. Registrar la DLL en la tabla DLLS#
Este paso es por empresa, y es el que más veces se olvida: una empresa nueva creada después de la instalación no hereda el registro, y el módulo no actuará en ella.
En la base de datos de cada empresa donde deba funcionar:
INSERT INTO DLLS (DLL, FABRICANTE, IDDLL, PRODUCTO)
VALUES ('Sit.FACe.Ext.Dll.Escuchador', 'Sofitec', <id>, 'SIT_FACE_EXT');
El valor de DLL es el nombre COM de la clase, no el nombre del fichero: para una librería .NET se registra en formato espacio de nombres más clase. FABRICANTE y PRODUCTO deben coincidir exactamente con los nombres de las carpetas creadas bajo Extensiones. IDDLL es un identificador numérico que no debe chocar con el de otra extensión ya registrada en esa empresa.
3. Aplicar el diccionario#
Desde a3ERP, aplicar el diccionario DSIT_FACE_EXT a cada empresa. Eso crea las tres tablas del módulo, la vista de incidencias, los índices y las columnas que se añaden a las cabeceras y a las líneas de factura.
Al actualizar el módulo
a3ERP compara la versión del diccionario con la que ya tiene aplicada y, si no es superior, da por hecho que los cambios ya están y los omite sin avisar. Si tras aplicar una actualización no aparece algo que se esperaba, y no ha salido ningún mensaje de error, lo primero que hay que mirar es la versión del diccionario entregado frente a la instalada.
Si la carga de diccionarios falla —y puede fallar por causa de otro módulo presente en la carpeta de extensiones, no necesariamente por éste—, es posible que queden objetos declarados sin crear. La forma de materializarlos es lanzar la comprobación de la estructura de base de datos de la empresa desde a3ERP, que crea lo que falta a partir de lo declarado en los diccionarios.
4. Dar de alta la vista de consulta de errores#
El diccionario crea la vista SIT_FACE_EXT_V_INCIDENCIAS en la base de datos, pero para que el usuario pueda consultarla hay que darla de alta como vista SQL dentro de a3ERP. Este paso es manual y no lo hace el instalador.
| Campo | Valor |
|---|---|
| Nombre | Errores XML FACe (Ext) |
| Sentencia | select * from SIT_FACE_EXT_V_INCIDENCIAS where ESTADO='E' |
Sin este paso el módulo funciona igual, pero el usuario no tiene forma de ver qué facturas fallaron, que es justo lo que va a necesitar el primer día.
5. Cargar los mapeos por defecto#
En la carpeta sql de la extensión va un script con los ocho mapeos de serie, que se ejecuta sobre la base de datos de la empresa —no sobre la de sistema— después de aplicar el diccionario. Es idempotente y no pisa los mapeos que ya existan, así que puede repetirse sin problema en una actualización.
Sin este paso el módulo funciona, pero no añade nada al fichero: no tiene ninguna regla que aplicar. Los mapeos y cómo añadir otros están en el artículo de mapeos de referencia.
6. Configurar la empresa#
El diccionario deja creada una fila de configuración con valores por defecto razonables. Se revisa desde tablas adicionales, en la tabla de configuración del módulo, y los parámetros están descritos en el artículo de configuración.
Lo mínimo a decidir en la puesta en marcha son dos cosas: si el módulo debe estar activo en esa empresa, y qué debe pasar cuando un valor supera la longitud admitida por el nodo de destino.
Comprobar que ha quedado bien#
Emitir una factura electrónica de prueba y verificar tres cosas, en este orden:
Que el módulo se ha cargado. En el fichero de traza, por defecto en C:\Logs, debe aparecer una entrada de arranque con la versión, la ruta desde la que se cargó la librería y la configuración leída. Si no hay fichero, el módulo no se ha cargado: revisar el paso 2.
Que ha procesado la factura. En la tabla de resultado debe haber una fila para esa factura, con estado O.
Que el dato ha llegado al fichero. Abrir el XML generado y comprobar que el nodo configurado está presente y con el valor esperado.
Actualizar a una versión posterior#
- Cerrar a3ERP en los puestos, para que la librería no esté en uso.
- Ejecutar el instalador de la versión nueva.
- Aplicar el diccionario en cada empresa si la versión entregada es superior a la instalada.
- Arrancar a3ERP y comprobar en la traza que la versión que se carga es la nueva.
Desinstalar#
- Borrar la fila del módulo en la tabla
DLLSde cada empresa. - Retirar el diccionario
DSIT_FACE_EXTsiguiendo el procedimiento habitual de a3ERP. - Eliminar la carpeta
Extensiones\Sofitec\SIT_FACE_EXT.
Los datos registrados por el módulo desaparecen con las tablas del diccionario. Si interesa conservar el histórico de incidencias, hay que copiarlo antes de retirar el diccionario.