Cómo se conecta una sociedad SAP Business One a través de DI API

Abraham González
Abraham González
abrahamgonzalez@itop.es
Compartir

Para poder usar la DI API en SAP Business One y extraer o modificar la información de una base de datos SAP B1 desde nuestro programa, vamos a necesitar una conexión desde nuestro proyecto a la sociedad que deseemos.

Veamos los siguientes pasos para realizarlo:

Crear un nuevo proyecto en Visual Studio

Paso 1 Conexión a una sociedad SAP Business One a través de DI API

Seleccionar el tipo de proyecto

Aquí hacemos click en “Aplicación de Windows Forms” como podemos ver en la imagen y asignaremos el nombre “DI_API_1_CONEXIONBD”.

Paso 2 Conexión a una sociedad SAP Business One a través de DI API

Crear la estructura

Una vez tenemos nuestro proyecto creado, elaboraremos la estructura, la cual será similar a la siguiente:

Paso 3 Conexión a una sociedad SAP Business One a través de DI API

Si te has fijado, se ha cambiado el nombre por defecto del formulario inicial, de “Form1” a “ConnectionForm”, desde el “Explorador de soluciones” con el botón derecho del ratón:

Paso 4 Conexión a una sociedad SAP Business One a través de DI API

 

Agregar botón al formulario

Con el proyecto creado, agregaremos un botón a nuestro formulario “ConnectionForm.cs” de forma que su aspecto será:

Paso 5 Conexión a una sociedad SAP Business One a través de DI API

Asignar referencia

Para poder usar la DI API deberemos agregar la referencia correspondiente a nuestro proyecto. Esto lo haremos desde el explorador de soluciones con botón derecho sobre “References” y pulsando en “Agregar referencia”. Seleccionaremos la referencia desde la pestaña “COM” de la DI API correspondiente a la versión con la que trabajamos:

Paso 6 Conexión a una sociedad SAP Business One a través de DI API

Paso 7 Conexión a una sociedad SAP Business One a través de DI API

Añadir la cláusula

Una vez agregada la referencia, agregaremos una cláusula “Using” a nuestro código asociado al formulario “ConnectionForm.cs” de forma que podamos usar todas las clases contenidas en la librería sin necesidad de escribir continuamente el namespace al que pertenecen “SAPbobsCOM”:

Paso 8 Conexión a una sociedad SAP Business One a través de DI API

Crear un método privado

Para realizar la conexión crearemos un método privado que llamaremos “connectToSapB1DIAPI”. Este método devolverá un valor booleano que indicará si la conexión se ha realizado con éxito o no (true o false respectivamente). Además se definen dos parámetros de salida que devolverán el posible código de error procedente de SAP B1 (valor entero), así como el posible mensaje de error asociado a dicho código (cadena de caracteres).

Paso 9 Conexión a una sociedad SAP Business One a través de DI API

En este método se instancia un objeto de la clase “Company” (clase principal de la DI API) que será usado desde nuestro programa para realizar cualquier operación relativa a la base de datos, desde realizar la conexión inicial, hasta crear pedidos, albaranes, facturas o modificar datos maestros de algún artículo, cliente, etc.

Una vez que hemos creado nuestro método para realizar la conexión a la sociedad, haremos la llamada apropiada cuando se pulse en el botón creado en nuestro formulario. Para esto haremos doble click sobre nuestro botón y escribiremos el siguiente código:

Paso 10 Conexión a una sociedad SAP Business One a través de DI API

Con esto ya tendríamos nuestra primera aplicación que usa DI API, únicamente faltaría ejecutarla y comprobar que funciona correctamente.

¿Sigues teniendo dudas? Contacta con nosotros y te ayudaremos sin problema.

cursos-sap-business-one

¿Quieres ponerte en contacto con nosotros?
Si necesitas ayuda, más información o te gustaría realizar alguna consulta.

Artículos relacionados

SQL Server en SAP Business One
ERP y SAP Bussiness One

SQL Server en SAP Business One

Conoce qué es el SQL Server en SAP Business One, sus usos, ventajas y cómo usar el SQL Server para administrar sistemas en SAP Business One.

El SDK en SAP Business One
ERP y SAP Bussiness One

El SDK en SAP Business One

Conoce qué es el SDK de SAP Business One, su importancia, componentes y cómo usar el SDK para programar en SAP Business One.

Gestión Financiera SAP Business One
ERP y SAP Bussiness One

La Gestión Financiera en SAP Business One

Conoce qué es la gestión de informes y reportes, su importancia, buenas prácticas y cómo gestionar los informes en SAP Business One.

¡Mantente al día con nuestra newsletter!​

11 comentarios en «Cómo se conecta una sociedad SAP Business One a través de DI API»

  1. Buenas Juan!

    Respecto a tu consulta, lo que podemos decirte es que SAP en la documentación utiliza el usuario «sa» en las conexiones por DI API. Si te interesa saber más sobre por qué SAP lo hace de esta manera, te recomendamos consultarlo en el foro oficial de SAP.

    Esperamos haberte ayudado. Muchas gracias y te mandamos un saludo!

    Responder
  2. Excelente, muy útil. Consulta: El DBUsername que dobo usar, necesariamente tiene que ser un sysadmin para que pueda tener conexión con la base SBO_COMMON? Porque de otra forma como dbowner, datareader o datawriter me da error. El tema es que si es un sysadmin es como si fuera un user SA y no es buena practica. Cualquier comentario seria de mucha ayuda.

    Responder
  3. Excelente guia. Solo 2 observaciones:
    – Para VS2019 y sap 9.2 pl 08 falta agregar la definicion de oCompany.SLDServer = «SERVER:40000″ y ajustar oCompany.LicenseServer =»SERVER:30000»
    – Si pudieras colocar el código «Copiable» mejor.
    Gracias

    Responder
  4. Hola, me he encontrado con este artículo cuando estaba haciendo averiguaciones sobre las opciones que tendría para acceder para consultar/actualiar datos SAP B1 mediante una API, ya que en nuestro caso tenemos desarrollo interno para nuestro erp principal, (utilizamos una herramenta de desarrollo llamada Genexus que puede generar aplicaciones java, .net, etc) .
    Podemos acceder a sistemas externos mediante diversos mecanismos, acceso sql directo a bases de datos, mediante WebServices o mediante otros medios, como integrar directamente módulos .net o Java, según el entorno en que ejecute.
    En el caso de la integración con .net , mi sistema tiene una función llamada «.Net Assembly Import» , para enlazar con webservices tiene WDSL Import (esto último si que lo he utilizado para otras conexiones, como al SII de hacienda)
    No tenemos aquí muchos conocimientos de .net, casi ninguno, y poco de las opciones de conexión a los api de SAP. Con lo que he comentado, ¿Crees que es posible encontrar un camino para lograr un acceso a las funciones api de SAP B1? ¿Puedes recomendarme algo en este sentido?
    Un saludo, y gracias por adelantado.

    Responder

Deja un comentario

¿Quieres estar al día de nuestros cursos y formación en tecnología?

Anímate y únete a nuestra newsletter