domingo, 26 de marzo de 2023
Inventarios - Lotes en Transferencias de Stock, Facturas. Etc. (Histórico)
This SqlTransaction has completed; it is no longer usable
lunes, 13 de marzo de 2023
Incorrect sintaxis near the keyword for
Hola!; ¿Qué tal?,
Les traigo ahora un error "incorrect sintaxis near the keyword for" el cual se me presento al utilizar el SAPbobsCOM.Recordset, lo problemático de esto sucede por que en apariencia la consulta estaba bien y me corría perfectamente en SQL Server, investigando supe que este objeto no reconoce la sintaxis tal cual la hacemos para el motor de la BD, en mi caso fue el punto y coma que estaba de màs, ejemplo: oRecordSet.DoQuery("SELECT * from OCRD;");
En conclusión veremos este error cuando algo en nuestra consulta no lo este interpretando de manera correcta el DoQuery, así que cuidado con eso.
¡Saludos!
domingo, 12 de marzo de 2023
Method not found: 'Void SAPConector.DTO.DTOIncomingPayments.set_ObjectType(SAPbobsCOM.BoObjectTypes)'
¿Cómo están?, les traigo el error siguiente que me dio por un rato dolor de cabeza: Method not found: 'Void SAPConector.DTO.DTOIncomingPayments.set_ObjectType(SAPbobsCOM.BoObjectTypes)'.
Este apareció una vez que mi aplicación la pase desde mi ambiente de desarrollo a mi ambiente de pruebas, este error se mostraba en tiempo de ejecución, a la mitad del proceso lo enviaba y no terminaba la tarea.
La solución después de investigar y ver varios portales que no me dieron la respuesta especifica pero si el camino a seguir para resolverlo fue esta:
ANTES Entremos en contexto:
Mi proyecto hace referencia a una dll que ocupa la misma dll que también ocupo en mi proyecto principal en mi caso la de SAP B1 SAPbobsCOM.
1er Error: Los tipos de datos de mi librería cambiaban a Object al hacer referencia a ella desde mi proyecto principal, tipos de datos que comentamos al inicio pertenecen a la dll SAPbobsCOM, de hecho el error muestra un ejemplo: SAPbobsCOM.BoObjectTypes.
esto hacía que cuando llamaba la librería (dll) a mi proyecto principal los tipos de algunos atributos no se mantuvieran en su forma original si no que se convirtieran en tipos object por lo que mi proyecto principal no los reconocía y me marcaba error de compilación.
Solución al 1er error: Coloque en False Embed Interop Types en las propiedades de la referencia de mi proyecto de librería.
Solución al 2do error: De igual manera en que coloque Embed en Interop Types de mi librería, también debí colocarlo en false en mi proyecto principal:
3er. Error: al hacer esto me marcaba el siguiente error al ejecutar mi programa: Retrieving the COM class factory for component with CLSID {632F4591-AA62-4219-8FB6-22BCF5F60100} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) .
Solución al 3er. Error: Debi quitar el check en Prefer 32-bit y tomar la opción de x64 en Platform target, esto por que inicialmente estaba chequeado y el target estaba en Any, cabe mencionar que el servidor donde ejecutaba mi solución era de 64 bits.
jueves, 9 de marzo de 2023
Retrieving the COM class factory for component with CLSID {XXXX} Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
El siguiente error se me presento al pasar del ambiente de desarrollo (donde todo funcionaba correctamente) al ambiente de pruebas: Retrieving the COM class factory for component with CLSID {632F4591-AA62-4219-8FB6-22BCF5F60100} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Después de tanto buscar el error lo solucione quitando el siguiente check del proyecto en Visual Studio, ya que esto hacia que le diera preferencia a 32bits al compilar y donde llevaba mi desarrollo era a un ambiente de 64bits.
Saludos.