¿Cómo capturar el evento de carga de un AddOn?

Hola expertos…
Estoy desarrollando un pequeño add-on para SAP B1, y necesito conectarme al DI API. Con mi código actual logro la conexión pero noto que cada vez que abro el formulario del add-on (o sea le doy click al form del addon en el B1, hace el procedimiento de conexión al DI API. ¿Esto es normal?, no sería lo correcto que haga la conexión una vez que el add-on es cargado, o sea cuando se inicia el SAP?, entonces cómo podría capturar el evento de que el add-on fue cargado exitosamente para luego a partir de ahí realizar el procedimiento de conexión.

He visto en otros add-on que muestran un mensaje de que fueron cargados exitosamente justo cuando uno inicia el SAP B1.

Este es el código que uso para realizar la conexión:

// Connect AddOn
{
this.oApp = Application.SBO_Application;
this.oCompany = ((SAPbobsCOM.Company)(this.oApp.Company.GetDICompany()));
Application.SBO_Application.StatusBar.SetText("Add-On connected: " + appName, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("Error connecting Add-On " + appName + " a SAB B1: " + ex.Message, "Error Connection", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
}

Gracias de antemano.

Estas desarrollando con la forma antigua o estas haciendo uso de SAP Business One Studio?

1 me gusta

Hola, se podría decir que de la forma antigua o sea en Visual Studio.
Solo usé el B1 Studio para diseñar el formulario.

Pero tiene sentido lo que expuse?, se puede hacer eso?

Antiguamente pasabas una cadena de conexion, el cual lo metias en un procedimiento SETAPPLICATION(), una vez realizado eso hacías la validacion con un procedimiento NEW(), dentro de este ultimo así como en la imagen.

1 me gusta

Hola jorge,

El inicio de los add-on es configurable por usuario, puedes hacer que estos se inicien automaticamente al loguearse el usuario, o que lo hagan de manera manual.

saludos,

1 me gusta

Técnicamente debes instanciar el objeto oCompany cuando inicies el AddOn, NO cuando abras el Formulario. Al abrir el form solo debes verificar si la conexión sigue activa, caso contrario vuelves a cargar el oCompany.

2 Me gusta

Hola Gabriel, eso es lo que no sé, cómo puedo instanciar el objeto cuando el AddOn cuando inicie?.
Qué evento debería capturar o en qué sección del proyecto se ubica la parte donde el add-on inicia?

Un AddOn se inicia al momento de ejecutar el Main (la clase “program.cs”), la cual se mantiene activa escuchando los eventos que genera SAP, los cuales se deben filtrar y capturar para realizar las acciones respectivas. Es allí, donde luego de instanciar el objeto oApp y el oCompany (Así como lo comento @juliancab ).

1 me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.