Cómo eliminar la dependencia de drivers de pago y configurar una conexión profesional, gratuita y permanente.
Introducción
En el desarrollo de aplicaciones que interactúan con SAP Business One, la conectividad desde entornos Linux suele ser un desafío técnico. Muchos desarrolladores optan por drivers de terceros que, si bien son funcionales, requieren licencias costosas o expiran tras periodos de prueba.
Esta publicación detalla el proceso paso a paso para instalar el HDB Client oficial de SAP y configurar el gestor unixODBC para lograr una integración transparente con PHP, manteniendo la compatibilidad total con servidores Windows.
1. Preparación del Entorno
Antes de comenzar, debemos instalar las dependencias necesarias para que Linux pueda gestionar conexiones ODBC y para que PHP pueda comunicarse con ellas.
sudo apt-get update
sudo apt-get install unixodbc unixodbc-dev php-odbcTras la instalación, es vital reiniciar el servidor web para cargar el módulo ODBC:
sudo systemctl restart apache22. Instalación del SAP HANA Client (HDBClient)
El driver nativo de SAP es una librería de alto rendimiento (libodbcHDB.so). No busques un instalador .deb; SAP proporciona un script de instalación propio.
- Descarga el paquete HDB CLIENT LINUX X86_64.
- Descomprime y entra en la carpeta mediante la terminal.
- Ejecuta el instalador con privilegios de superusuario:
sudo ./hdbinstPor defecto, el software se ubicará en /usr/sap/hdbclient/. Esta ruta será nuestra referencia para la configuración.
3. Registro del Driver en el Sistema
Linux utiliza el archivo /etc/odbcinst.ini para saber qué drivers están disponibles. Aquí es donde solucionaremos de forma global los problemas de certificados SSL y X.509.
Edita el archivo: sudo nano /etc/odbcinst.ini y pega lo siguiente:
[SAP_HANA_NATIVE]
Description = SAP HANA Driver Oficial
Driver = /usr/sap/hdbclient/libodbcHDB.so
Setup = /usr/sap/hdbclient/libodbcHDB.so
UsageCount = 1
# Desactivación de cifrado para evitar errores de comunicación
encrypt = false
sslValidateCertificate = false4. Configuración del DSN (Data Source Name)
El DSN es el alias que usará tu código PHP. Al definirlo en /etc/odbc.ini, abstraes la dirección IP y el puerto de tu código fuente.
Edita el archivo: sudo nano /etc/odbc.ini:
[MI_DSN_SAPHANA]
Driver = SAP_HANA_NATIVO
ServerNode = 192.168.x.x:30015
User = TU_USUARIO_DB
Password = TU_CONTRASEÑA_DBImportante: Borra cualquier archivo oculto en tu carpeta personal (~/.odbc.ini) para asegurar que el sistema lea la configuración global de /etc/.
5. Prueba de Fuego desde Terminal
Antes de probar en la web, usamos la herramienta isql. Esta prueba valida que los archivos INI son correctos y que el firewall permite la conexión.
isql -v MI_DSN_SAPHANA TU_USUARIO_DB 'TU_CONTRASEÑA'Si observas el mensaje + Connected! +, tu sistema operativo ya está hablando con SAP HANA.
6. Implementación en PHP
Gracias a esta configuración, tu código PHP se mantiene limpio y profesional. No necesitas strings de conexión kilométricos, solo el nombre del DSN.
<?php
$dsn = "MI_DSN_SAPHANA";
$usuario = "TU_USUARIO_DB";
$password = 'TU_CONTRASEÑA_COMPLEJA'; // Usar comillas simples para evitar errores con caracteres especiales
$conexion = odbc_connect($dsn, $usuario, $password);
if ($conexion) {
echo "Conexión establecida con éxito a SAP HANA.";
// Ejemplo de consulta
$result = odbc_exec($conexion, "SELECT 'Conexión Exitosa' FROM DUMMY");
print_r(odbc_fetch_array($result));
} else {
echo "Error de conexión: " . odbc_errormsg();
}
?>7. Mantenimiento de Compatibilidad con Windows
Una de las mayores ventajas de este método es la portabilidad. Si tu servidor de producción es Windows y tu entorno de desarrollo es Linux:
- En Windows: Crea un DSN de Sistema con el nombre
MI_DSN_SAPHANAdesde el Administrador de Datos ODBC. - En Linux: Mantén el DSN con el mismo nombre en
/etc/odbc.ini.
Resultado: El mismo archivo PHP funcionará en ambos sistemas sin modificar una sola línea de código.
Conclusión
Configurar drivers nativos requiere un poco más de trabajo manual que usar instaladores automáticos de pago, pero los beneficios son claros: estabilidad, gratuidad y control total sobre la seguridad de la conexión. Al centralizar la configuración en los archivos del sistema, permitimos que nuestras aplicaciones PHP sean más robustas y fáciles de mantener.
Deja un comentario