SAP BO. SAP Business One. Ejemplo básico del uso del SDK

     Lo prometido es deuda y ya hace algún tiempo que no actualizaba pero ahora si ya estamos en el tema y espero que les ayude a encaminar su curiosidad hacia el SDK de SAP Business One.

     Y para este ejemplo vamos hacer algo sencillo pero practico en nuestro caso. Y nuestro ejemplo tratara que mediante unas tablas de SAP Business One y su SDK llevemos el registro de quien entra a nuestro sistema. Y para no hacernos bolas esto lo vamos a ver en dos partes; y lo haremos así para poder ver las dos partes en las que se divide el SDK de SAP, el UI API, que es el encargado de las partes gráficas (ventanas, grids, etc) y el DI API, que nos brinda la interacción con los datos de SAP Business One. 

     Este ejemplo lo haré en Visual C# 2008, se pueden usar otros como Java o Visual Basic .Net. Pero me siento mas cómodo en explicarlo en este lenguaje. Lo primero que vamos hacer es abrir nuestro C# y crear una nueva aplicación de consola. 


     Una vez que se ha creado el proyecto lo que vamos hacer es agregar las referencias necesarias de SAP Business One. 


     Una vez hecho esto empecemos con el ejemplo mas básico este ejemplo solo nos hará brincar un mensaje con el nombre del usuario que este conectado en ese momento. Asi que primero antes de esta linea "static void Main(string[] args)" agregaremos el siguiente código: 


  static SAPbouiCOM.Application SBO_Application;
        static SAPbouiCOM.Form oForm;

        public static void SetApplication()
        {
//***************************************************************
// Usamo el objeto SboGuiApi para establecer nuestra conexión
// Con una aplicación abierta de SAP Business One application, la cual
// nos dara nuestro objeto inicializado
//*******************************************************************

            SAPbouiCOM.SboGuiApi SboGuiApi = null;
            string sConnectionString = null;

            SboGuiApi = new SAPbouiCOM.SboGuiApi();

            // inicializamos sConnectionString con una cadena que especifica que se usen los parametros actuales

            sConnectionString = "0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056”;
// intentar conectarse a la aplicacion abierta de SAP Business One

            try
            {
                // Si no existe una aplicacion abierta mandara un error
                SboGuiApi.Connect(sConnectionString);
            }
            catch
            {   //  Si la conexion falla
                System.Windows.Forms.MessageBox.Show("No SAP Business One Application was found");
                System.Environment.Exit(0);
            }
            // inicializamos nuestro objeto
            SBO_Application = SboGuiApi.GetApplication(-1);
        }

     El código anterior lo que hace es intentar inicializar el objeto SBO_Application y este solo se inicializara si existe una aplcacion de SAP Business One abierta. Una vez hecho este paso vamos a poner el siguiente código dentro del proceso "static void Main(string[] args)": 

     //hacemos un llamado al procedimiento que hmos creado

     SetApplication();
     //creamos una variable de texto de SAP y una variable tipo string
     SAPbouiCOM.StaticText oStatic;
     string LoggedUser;

     //mediante UI API tomamos la forma 169
     //esta forma es la que contiene el menu de SAP Bancos, Inventarios, etc...
     oForm = SBO_Application.Forms.GetForm("169", 0);
     //tomamos un objeto especifico en este caso la parte en la que aparece el nombre
     //del usuario
     oStatic = (SAPbouiCOM.StaticText) oForm.Items.Item("8").Specific ;
     //pasamos a nuestra variable string el nombre del usuario
     LoggedUser = oStatic.Caption;
     //mostramos el nombre del usuario...
     System.Windows.Forms.MessageBox.Show("User logging is " + LoggedUser);


     Con esta parte de código podemos ver que mediante el UI API podemos tomar una forma en este caso donde se encuentra el menú principal de SAP Business One y tomamos el valor en donde se encuentra el nombre del usuario conectado al sistema. Este es un ejemplo muy básico y no profundizo mucho en aspectos de programación porque habrá muchos que sea su primer acercamiento a lo que es la programación. Ahora bien como bonus también ahí una manera diferente de hacer algo parecido y es mediante una búsqueda formateada que contenga esta consulta: "SELECT T0.U_NAME FROM OUSR T0 WHERE INTERNAL_K = $[USER]". Ahora bien esto solo fue un prueba de como funciona el UI API de SAP y vimos un ejemplo de una de tantas cosas que se pueden lograr con dicha herramienta. En el siguiente post veremos el ejemplo mediante el DI API en donde si estaremos capturando y almacenando cada vez que alguien entre al sistema.

     Saludos y aprovecho para desearles felices fiestas. 

Posted in |

7 comentarios:

  1. Lui Says:

    Estimado intente hacer el primer ejemplo, pero me manda el siguiente error: Error 1 El tipo o el nombre del espacio de nombres 'Windows' no existe en el espacio de nombres 'System' (¿falta una referencia de ensamblado?)

  2. Edgar Avena Vázquez Says:

    Hola Lui no se en qeu lenguaja si en Basic o c# lo este probando pero ese error es cuando no pones el import System.Windows puedes cambiar ese mmesagebox por un console.write para que termines el ejemplo

  3. DCErick Says:

    ¿Donde puedo bajar el SDK?

  4. Unknown Says:

    Que bien, la verdad no tengo mucha experiencia en programacion pero la poca que tengo la puedo complementar con informacion como esta. Tengo que hacer un minidesarrolo que no seria gran cosa si no fuera por que lo requiere SAP, gracias por el aporte en mi primer iteraccion SAP-codigo.

  5. Helio Says:

    Encontraste el SDK free ?

  6. Anónimo Says:

    ¿Y como le haces para meter este desarrollo dentro de SAP BO?

  7. Unknown Says:

    Gracias

Related Posts with Thumbnails