esofitec. CoreDocs

esofitec. CoreDocs

Base técnica de addons

Registro manual de DLLs o librerías en a3ERP

Síntoma#

A veces, las librerías de programación a medida no quedan registradas correctamente y, al entrar en la empresa que usa esa librería, aparece un error como este:

Error [EOLE SysError] cargando biblioteca de terceros: El sistema no puede encontrar el archivo especificado, ProgID: "Nombre.Libreria.Com.Escuchador.Dll" Si continúa, perderá la funcionalidad de este módulo. Informe al autor de dicho módulo.

Además, a partir de la versión 14 el sistema puede impedir el acceso a la base de datos hasta que se resuelva el problema.

Problema#

Si la DLL o librería no se registra correctamente en la estación, a3ERP no puede cargarla y se produce el error.

Solución#

Ejecuta en la consola de Windows como Administrador las siguientes instrucciones en cada terminal afectado:

cd c:\windows\microsoft.net\framework\v4.0.30319
regasm /codebase "C:\Program Files (x86)\A3\A3Erp\Extensiones\Sofitec\<ruta_y_nombre_dll>"

Validación rápida#

Después del registro:

  • la DLL debe existir en la ruta indicada
  • el comando debe haberse ejecutado con permisos de administrador
  • a3ERP debe permitir abrir la empresa sin mostrar el EOLE SysError
  • la funcionalidad del módulo debe volver a estar disponible

Cuándo aplicar este procedimiento#

  • tras copiar manualmente una DLL en la estación
  • cuando un instalador no ha completado correctamente el registro COM
  • después de migraciones o reinstalaciones de terminal
  • cuando aparece el error de carga de biblioteca de terceros al abrir la empresa

Qué revisar si sigue fallando#

  • la ruta real de la DLL
  • el ProgID mostrado en el error
  • que la consola se haya ejecutado como Administrador
  • que se haya repetido el registro en todos los terminales afectados
  • si el módulo depende de más librerías adicionales

Nota operativa#

En la mayoría de casos, el problema no está en la base de datos, sino en la estación concreta donde la librería no ha quedado registrada correctamente.