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:
- 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.
- 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:
- Validación de Límite de Crédito: En el instante que el cliente presiona "Confirmar Pedido".
- Creación de Orden (Draft/Pedido): El POST final para inyectar la
Orders(ORDR) en SAP.
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.