Cuando conectas SAP Business One con otro sistema, una de las primeras decisiones técnicas es por dónde entra y sale la información. SAP ofrece dos caminos oficiales: Service Layer y DI API. Elegir bien define qué tan fácil será mantener la integración en el futuro.
Por qué no escribir directo en la base de datos
Antes de comparar, una regla importante: nunca se debe escribir directamente en las tablas de SAP Business One. Hacerlo se salta las validaciones del sistema, puede dejar documentos incompletos o descuadrados y deja tu instalación fuera del soporte de SAP.
Leer datos con consultas a la base de datos sí es válido para reportes y análisis. Para crear o modificar documentos, siempre se usa una de las interfaces oficiales.
Qué es DI API
DI API (Data Interface API) es la interfaz clásica de SAP Business One. Es una librería que se instala en una computadora con Windows y que los programas usan para conectarse a una compañía de SAP y crear, leer o actualizar objetos como clientes, artículos, pedidos o facturas.
Conviene cuando:
- Desarrollas un add-on que corre dentro del cliente de SAP Business One.
- Tienes un proceso de escritorio o un servicio de Windows en la misma red que SAP.
- Necesitas usar objetos o funciones que aún no están disponibles en Service Layer.
Considera que:
- Requiere instalar componentes en la máquina que hace la integración.
- No está pensada para ser consumida desde internet, apps móviles o servicios en la nube.
Qué es Service Layer
Service Layer es la interfaz web moderna de SAP Business One. Expone los objetos de SAP como un servicio REST basado en OData: los sistemas se comunican con peticiones HTTP y datos en JSON, desde cualquier lenguaje o plataforma.
Conviene cuando:
- Integras SAP con una tienda en línea, un CRM, una app móvil o cualquier sistema en la nube.
- Quieres una integración que no dependa de instalar nada en una computadora específica.
- Necesitas que varias aplicaciones se conecten al mismo tiempo de forma ordenada.
Considera que:
- Funciona con sesiones: la aplicación inicia sesión, trabaja y la cierra, por lo que conviene reutilizar sesiones en lugar de abrir una por cada operación.
- Permite agrupar varias operaciones en una sola petición (batch), algo útil cuando se cargan muchos documentos.
Comparación rápida
| DI API | Service Layer | |
|---|---|---|
| Tipo | Librería instalada en Windows | Servicio web REST (OData) |
| Formato | Objetos en código | HTTP y JSON |
| Ideal para | Add-ons y procesos locales | Integraciones web, móviles y en la nube |
| Se consume desde | La misma red, con componentes instalados | Cualquier sistema que haga peticiones HTTP |
¿Cuál elegimos nosotros?
En la mayoría de integraciones nuevas, especialmente las que conectan SAP con sistemas externos o apps, Service Layer es la primera opción por su flexibilidad y facilidad de mantenimiento. Usamos DI API cuando el proyecto vive dentro del ecosistema de escritorio de SAP o necesita algo que Service Layer todavía no ofrece.
Muchas veces la respuesta correcta combina ambas: Service Layer para el flujo principal y consultas directas de solo lectura para reportes rápidos.
En resumen
Service Layer y DI API no compiten: resuelven necesidades distintas. Lo importante es elegir la interfaz oficial correcta para tu caso y no tomar atajos con la base de datos. Si estás por conectar SAP con otro sistema, revisa cómo trabajamos las integraciones SAP Business One o cuéntanos tu proyecto de desarrollo a la medida.