Fundamentos

¿Qué es el Service Layer de SAP Business One?

El Service Layer es la API REST oficial de SAP Business One (desde la versión 9.1). Expone prácticamente todos los objetos de negocio del sistema — clientes, artículos, pedidos, facturas, listas de precios, almacenes — como recursos web que se pueden leer y modificar mediante peticiones HTTP estándar.

En una frase

Es la puerta de entrada moderna a los datos de tu SAP B1: lo mismo que hace un usuario desde el cliente SAP con el ratón, se puede hacer con una petición HTTP — de forma más rápida, filtrable y automatizable.

🌐

REST + OData

Usa el protocolo OData v4 sobre HTTPS. Cada objeto de SAP (BusinessPartners, Items, Orders...) es un "endpoint" que soporta las operaciones estándar de la web.

🔑

Autenticación por sesión

Te identificas una vez contra /Login con tu compañía, usuario y contraseña; SAP te devuelve una cookie de sesión que reutilizas en las siguientes llamadas.

📦

Mismos objetos que conoces

Los mismos campos que ves en las pantallas de SAP B1 (CardCode, ItemCode, DocDate, U_camposPropios...) son los que manejas por API.

Cómo funciona una llamada, paso a paso

1

Inicias sesión una vez

POST https://servidor:50000/b1s/v2/Login
{
  "CompanyDB": "MIEMPRESA_PRD",
  "UserName": "integracion_api",
  "Password": "••••••••"
}

SAP responde con una cookie B1SESSION válida durante un tiempo (por defecto 30 minutos de inactividad). Esa cookie es tu "pase" para el resto de peticiones.

2

Consultas los datos que necesitas, ya filtrados

GET /b1s/v2/BusinessPartners
    ?$select=CardCode,CardName,ShippingType
    &$filter=BPAddresses/any(a:a/State eq 'V')

OData permite filtrar, ordenar y seleccionar solo los campos que te interesan — nada de exportar todo y filtrar luego en Excel.

3

Actualizas o creas con una sola petición

PATCH /b1s/v2/BusinessPartners('C20045')
{ "ShippingType": 3 }

// 204 No Content → cambio aplicado al instante

PATCH actualiza solo los campos indicados (no hace falta reenviar toda la ficha). POST crea registros nuevos y DELETE los elimina.

4

Cierras sesión (o dejas que caduque)

POST /b1s/v2/Logout

Buena práctica en integraciones que corren de forma periódica, para no acumular sesiones abiertas.

Service Layer vs. DTW vs. SDK clásico

Los tres siguen siendo herramientas válidas de SAP B1 — la clave es usar cada una para lo que mejor resuelve.

Herramienta Mejor para Requiere
DTW Cargas masivas puntuales (migraciones, importaciones iniciales) Cliente SAP instalado, plantillas oficiales, ejecución manual
SDK (DI API / UI API) Add-ons que corren integrados dentro del cliente SAP Windows Instalación local, conocimientos de COM/.NET, licencia por puesto
Service Layer Consultas y actualizaciones puntuales, recurrentes o automatizadas, desde cualquier sistema Acceso HTTPS al servidor de Service Layer y credenciales de un usuario SAP
Si trabajas con varios clientes locales y por RDP, como es habitual en instalaciones de SAP B1, el Service Layer tiene una ventaja añadida: solo necesita conectividad HTTPS al servidor — no depende de tener el cliente de SAP abierto en cada sesión de RDP.

¿Listo para ver ejemplos aplicados a casos reales?

En la sección de casos prácticos verás cinco tutoriales completos, con peticiones reales y explicación de cada campo.

Ver casos prácticos