Cientos de distribuidores corren sus empresas sobre SAP Business One. Cuando llega el momento de conectarlo al B2B, las agencias web que solo conocen WordPress entran en pánico, intentan leer las bases de datos de SAP directo (prohibido) y el proyecto fracasa.

Las puertas de entrada a SAP B1

SAP B1 tiene reglas estrictas. Si tocás sus tablas SQL (OINV, ORDR, OITM) mediante consultas directas (UPDATE/INSERT), perdés el soporte oficial de SAP y corrés riesgo de corromper la base.

Para hablar con SAP tenés dos protocolos oficiales:

  1. DI-API: El método viejo. Corre sobre COM en Windows. Es pesado, lento y cada conexión consume una barbaridad de RAM. Evitalo a menos que corras versiones antediluvianas de SAP.
  2. Service Layer: El estándar moderno (disponible para HANA y SQL recientes). Es una API RESTful (OData). Es rápida, limpia y usa JSON. Esta es la puerta que tu ecommerce debe usar.

El problema del agotamiento de conexiones (Throttling)

El Service Layer es potente pero no es infinito. Si tenés 100 clientes navegando en tu B2B y la plataforma le envía una petición a SAP por cada página vista para saber el precio exacto de 50 ítems... el Service Layer colapsa (Timeouts, HTTP 500).

La solución arquitectónica: Asincronía

El flujo debe invertirse. No es el ecommerce el que "le pregunta" a SAP a cada segundo. Es SAP (mediante una tarea programada o add-on en el Integration Framework B1iF) el que "empuja" los cambios de stock y precio al middleware, y este los cachea en el ecommerce (Redis).

Las únicas llamadas síncronas que el ecommerce le debe hacer al Service Layer de SAP son dos:

Cuidado con las UDFs

En SAP B1 se usan mucho los Campos Definidos por el Usuario (UDF). Asegurate de que la plataforma B2B o el middleware sean lo suficientemente flexibles para leer el campo `U_Color` o `U_VendedorZona` sin tener que rehacer el código central de la integración.

Preguntas frecuentes

¿Es mejor usar Service Layer o DI-API para conectar SAP B1?
Service Layer es la opción moderna, basada en REST/OData, mucho más rápida y segura. DI-API es legacy, pesada y propensa a fugas de memoria, aunque a veces es necesaria para servidores SQL muy viejos.
¿Por qué el ecommerce tumba mi SAP?
Porque estás haciendo llamadas síncronas excesivas. Si el ecommerce le pregunta el stock a SAP por cada cliente que entra a la web, los \"worker threads\" del Service Layer se agotan y SAP se cae.