Repositorio: boilerplateservicelayer
Commit documentado: 53bbd3fe03b083957043911f46b59a04e31175f4
Este manual técnico explica cómo enlazar sucursales locales con sucursales de SAP Business One (OBPL) utilizando ODBC (eODBC) sobre SAP HANA, evitando el uso del Service Layer para consultas de alto rendimiento.
¿Qué problema resuelve esta implementación?
En muchos proyectos con SAP Business One, el uso del Service Layer para catálogos o consultas simples introduce latencia innecesaria. Este módulo soluciona ese problema permitiendo:
- Relacionar sucursales locales con sucursales SAP
- Consultar la tabla OBPL directamente desde SAP HANA
- Reducir tiempos de respuesta usando ODBC
- Eliminar dependencias innecesarias del Service Layer
¿Por qué usar ODBC en SAP Business One?
El uso de ODBC en SAP HANA es ideal para consultas de solo lectura, catálogos y validaciones rápidas.
| Característica | Service Layer | ODBC SAP HANA |
|---|---|---|
| Rendimiento | Medio | Alto |
| Latencia | Alta | Baja |
| Ideal para | CRUD complejo | Catálogos y consultas |
| Dependencia SAP | Alta | Media |
Estructura del módulo de enlace SAP
La solución se divide en cuatro componentes principales:
- Tabla de enlace entre sucursal local y SAP
- Controlador con consultas ODBC
- Vista con DataTables server-side
- Formulario con Select2 dinámico
Tabla link_sap_branchoffice
Esta tabla permite mantener la relación entre el sistema local y SAP Business One sin duplicar información de SAP.
| Campo | Descripción |
|---|---|
| id | ID interno |
| idEmpresa | Empresa local |
| idBranchOffice | Sucursal local |
| idBranchOfficeSAP | Sucursal SAP (OBPL.BPLId) |
| created_at | Fecha de creación |
| updated_at | Fecha de actualización |
| deleted_at | Borrado lógico |
Conexión a SAP HANA usando ODBC
La conexión ODBC se realiza directamente contra SAP HANA, lo que permite consultas rápidas y estables.
Conexión ODBC en PHP
$conn = odbc_connect(
$dataConect['nameODBC'],
$dataConect['userODBC'],
$dataConect['passwordODBC']
);
Fijar el schema en SAP HANA
SET SCHEMA "COMPANYDB"
Este paso es obligatorio para evitar errores como invalid table name en SAP HANA.
Consulta optimizada a la tabla OBPL
Para obtener una sucursal SAP se realiza una consulta directa a la tabla OBPL:
SELECT
"BPLId",
"BPLName"
FROM OBPL
WHERE "Disabled" <> 'Y'
AND "BPLId" = ?
- Consulta directa
- Sin bucles innecesarios
- Ideal para formularios y edición
Listado con DataTables server-side
El módulo utiliza DataTables en modo server-side para manejar grandes volúmenes de datos:
- Paginación eficiente
- Búsqueda global
- Ordenamiento dinámico
- Filtrado por empresa del usuario

Select2 dinámico para sucursales
Sucursal local
Se cargan las sucursales locales vía AJAX usando Select2.
Sucursal SAP (OBPL)
Las sucursales SAP se consultan directamente desde SAP HANA vía ODBC, sin Service Layer.

Beneficios clave de esta arquitectura
- Mayor rendimiento en SAP Business One
- Menor latencia en consultas
- Menos carga en el Service Layer
- Arquitectura escalable y mantenible
Buenas prácticas recomendadas
- Usar ODBC solo para consultas de lectura
- Usar Service Layer para escrituras en SAP
- Centralizar credenciales ODBC
- Siempre definir el schema en SAP HANA
Conclusión
Este enfoque permite integrar SAP Business One con sistemas locales de forma eficiente, utilizando ODBC sobre SAP HANA como alternativa rápida y estable al Service Layer.
Ideal para catálogos, validaciones, reportes y sistemas híbridos SAP.