cancel
Showing results for 
Search instead for 
Did you mean: 

Error al Conectar DIAPI

Former Member
0 Kudos

Hola.

Tengo un problema al conectar un AddOn al DIAPI, este es la porción de código.

SAPbobsCOM.Company oCompañiaSBO;

SAPbouiCOM.Application oAplicacionSBO;

try

{

     oCompañiaSBO = new SAPbobsCOM.Company();

     oCompañiaSBO = (SAPbobsCOM.Company)oAplicacionSBO.Company.GetDICompany();

     return true;

}

catch (Exception oError)

{

       return false;

}

El error me me arroja en la linea marcada es el siguiente:

System.Runtime.InteropServices.COMException (0xFFFFFF7D):

Se ha producido un error interno (-131)  [131-183] -  en SAPbouiCOM.ICompany.GetDICompany()

He leido en algunos otros post que el problema puede ser por el archivo b1-local-machine.xml que se encuentra

en C:\Program Files (x86)\SAP\SAP Business One DI API\Conf , es necesario cambiar la linea donde se indica

el servidor, por default tiene el valor de LocalHost y es necesario cambiarlo por el nombre o dirección IP del servidor

esto ya lo hice y no trabaja, cabe mencionar que este problema solo se da en el Cliente de SAP ya que en el servidor

el AddOn trabaja correctamente.

¿Alguien ha tenido este problema? Agradecería mucho me pudieran orientar. Saludos.

Accepted Solutions (0)

Answers (3)

Answers (3)

0 Kudos

Hola

En SAP B1 32 bits, ninguno de los addon levantaba e indicaban el error que indican aquí. Lo solucione revisando el archivo C:\Program Files (x86)\SAP\SAP Business One DI API\Conf\b1-local-machine, el archivo estaba totalmente vacío. Lo reemplacé por uno de otro equipo que funcionaba.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Si haces un debug de la conexión, el programa al llegar al Company.GetDICompany(), pasa o manda error?

Atte.

Former Member
0 Kudos

Que tal Felipe.

Me lanza el siguiente error

{System.Runtime.InteropServices.COMException (0xFFFFFF7D): Se ha producido un error interno (-131) [131-183] - en SAPbouiCOM.ICompany.GetDICompany ()

No se a que se deba, a decir verdad estoy bastante confundido ya que solo me ha dado este problema en mi maquina. En otras no sucede esto.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buen dìa

Estas usando la dll de 32 o 64 bits?

Recuerda que tienen direcciones distintas en el disco y que cada una tiene el archivo b1-local-machine.xml.

Saludos

FLR

Former Member
0 Kudos

Hola Felipe, ¿donde puedo ver que dll estoy usando? Lo que pasa es que mi ambiente ya estaba configurado.

Saludos y gracias.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Supongo que estás en visual studio.

Si es así, debes ir a Proyecto\Referencias, ahi aparecerán las versiones de DI API y UI API que estás usando y al lado la ruta en el disco en donde se encuentran.

Si dicen "Program Files" en vez de "Program Files(x86)" estás usando la de 64bits

Saludos

Former Member
0 Kudos

Bien, ya vi lo que me comentaste y en este caso la ruta esta haciendo referencia a mi proyecto por lo que no aplica el método, sin embargo, de donde se esta tomando es de la carpeta Program Files(x86) por lo que supongo que es de 32 bits, ahora en esta carpeta ya busque el archivo "b1-local-machine.xml" tanto de SAP Business One/Conf como del SAP Business One DI API/Conf y configuré el nombre correcto de mi servidor (ya que traía el valor localhost") pero aun así no funciona correctamente. Saludos

felipe_loyolarodriguez
Active Contributor
0 Kudos

OK, bien

Otra cosa, si estás usando la dll de 32 bits, tu aplicación debe estar compilada y se debe ejecutar para 32 bits, por defecto está el valor anyCPU y te dará error.

Cámbialo en las propiedades de la aplicación.

Saludos

Former Member
0 Kudos

Gracias por la respuesta, te comparto el resultado.

No funciono, no me lanza ningún error, solo no se conecta.

Seguiré tratando de averiguar el problema.

Gracias y saludos.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Podrías colocar el código completo de la conexión para revisarlo.

Saludos

FLR

former_member413321
Contributor
0 Kudos

Tuve un problema similar con la conexión al DI API,

en mi caso la solucion fue la siguiente:

1. En el caso de las maquinas que instalan el cliente de 64 bits, se debe instalar el DI API de 32 y 64 bit. Y luego configurar el archive que indicas en el config del DI API, en la parte de licenseserver.

2. En el caso de maquinas de 32 bits, configurar el archivo.

Lo mio era un Add On, por lo que estaba compilado desde visual studio en x86 y con este mismo funciona para las 2 versiones.

Espero esto te ayude.

Former Member
0 Kudos

Hola Raul, creo que esto no es problema de dll ni del ambiente de desarrollo, mas bien de infraestructura.

Pregunta 1: La red esta dentro de un dominio de windows?

Pregunta 2: Si 1 es si, entonces: El equipo desde donde te da problema esta dentro del dominio?

Pregunta 3: Si realizas un Tracert al servidor desde el equipo cliente, llegas sin problema?

agradeceré tus respuestas.

slds.

JEL

Former Member
0 Kudos

Hola Julio León.

Gracias por responder, te comento que en mi ambiente estoy utilizando una maquina virtual para simular el servidor y esta al estar conectada a la red la puedo ver desde el cliente sin problemas, el cliente de sap lo instale desde la maquina virtual (el servidor) no se si necesites algún dato mas para hacer un diagnostico.

Saludos.

Former Member
0 Kudos

Raul, debo decir que ninguna de las 3 preguntas anteriores me respondiste con claridad, asi que asumo que conocer poco de infraestructura.

Pero partamos haciendo puna prueba.
1.- ve a la siguiente ruta en tu disco de sistema en la maquina cliente

(C:\Windows\System32\drivers\etc)

2.- Ubica el archivo hosts y abrelo con el block de notas

3.- agrega una última linea al archivo con los siguiente:
SERVER_IP + [TABULADOR] + NOMBRE_SERVER

4.- Cierra y guarda los cambios.

5.- reinicia tu maquina cliente.

NOTAS:
* Todo el proceso debes hacerlo con la cuenta de administrador o algún usuario que sea administrador local de ella

* No borres ni modifiques nada más del archivo HOSTS, ya que es muy delicado y podrías comenzar a tener problemas de conectividad si algo queda mal.

* SERVER_IP es la IP interna del servidor.

* [TABULADOR] es presionar la tecla de tabulación.

* NOMBRE_SERVER es el nombre con el que aparece la maquina servidor en el Services Server de SAP B1

Si todo esto funciona, comunicamelo y te explicaré cual era el problema.

slds.

JEL

Former Member
0 Kudos

Gracias Julio.

Esto ya lo hice y sigue sin funcionar.

Saludos y gracias.