Iniciar proyecto

Service Layer, DI API, UI API, B1if o API Gateway en SAP Business One: ¿cuál usar?

Por Zain Abbas, Kodenova · Actualizado el

Respuesta cortaUse el Service Layer (REST/OData) para todo lo que corre fuera del cliente de escritorio: portales, apps móviles, e-commerce y extensiones del Web client. Use la UI API, con la DI API para los datos, solo para pantallas dentro del cliente de Windows. B1if sirve para los escenarios empaquetados de SAP, y el API Gateway sobre todo para Crystal Reports.

SAP Business One ofrece cinco puertas de entrada para desarrolladores, y no son intercambiables. Esta guía resume en qué se diferencian, con datos de la documentación oficial de SAP.

¿Qué API de SAP Business One debe usar?

Use el Service Layer para todo lo que corre fuera del cliente de escritorio: portales, apps, sincronización con tiendas y bancos, procesos y el Web client. Use la UI API solo para cambiar pantallas del cliente de Windows, con la DI API para sus datos. Use B1if cuando SAP ya entrega el escenario, y el API Gateway para Crystal Reports.

¿En qué se diferencian?

Service LayerDI APIUI APIB1ifAPI Gateway
ProtocoloHTTPS, OData v3/v4, JSONCOM (DLL en proceso)COM/DCOM al cliente en ejecuciónPaquetes de escenarios en un servidorGateway HTTPS a servicios de back end
Dónde correServidor de aplicaciones en SUSE Linux o WindowsCualquier Windows con la DI API instaladaEn el PC del usuario, dentro del clienteServidor de integración; en SQL Server necesita la DI APIServidor de SAP Business One (puertos 60010 y 60020 por defecto)
SAP HANA / SQL ServerAmbos (SQL Server desde 10.0 PL01)AmbosAmbos (mismo cliente de escritorio)AmbosAmbos
RendimientoMultiproceso; escala con varias instancias tras un balanceadorSin salto de red, pero sin soporte de multithreadingLigado a la pantalla del usuarioBasado en escenarios y mensajesLimitado a informes
Uso típicoPortales, apps, e-commerce, procesos programadosDatos de add-ons de escritorio, servicios WindowsMenús, formularios y validaciones en el clienteEscenarios de SAP o de proveedoresSalida de Crystal Reports
Web clientSí: lo requiere y sus extensiones lo llamanNo desde el navegadorNoNo es tecnología de interfazNo es tecnología de interfaz

El Service Layer usa el mismo DI Core y la misma lógica de negocio (OBServer) que la DI API. Por eso los nombres de objetos coinciden y ambos aplican las mismas reglas. El tipo de licencia que necesita cada usuario lo fijan las condiciones de licencia de SAP; confírmelo con su partner de SAP antes de dimensionar un proyecto.

¿Cómo decidir?

  1. ¿El cambio aparece en el cliente de escritorio? UI API para la pantalla y DI API para los datos. Vea la guía de desarrollo de add-ons.
  2. ¿Aparece en el Web client? Extensión del Web client (UI API del Web client desde FP 2405, o una app tile), con datos por el Service Layer.
  3. ¿Corre sin usuario o desde otro sistema? Service Layer.
  4. ¿Necesita un Crystal Report como servicio? API Gateway.
  5. ¿El escenario ya existe como paquete de B1if? Use B1if.
  6. ¿Necesita algo que el Service Layer no hace? DI API en un servidor Windows: objeto RecordSet, importación y exportación XML, o transacciones entre varias llamadas (StartTransaction y EndTransaction).

¿Qué errores son frecuentes?

  • Los UDF y UDT nuevos no aparecen en el Service Layer hasta que se reinicia, según SAP.
  • No hay transacciones entre llamadas del Service Layer: cada solicitud, incluido un batch de OData, tiene la suya.
  • La DI API no admite multithreading. Use una conexión por proceso.
  • Los nombres de campos no son columnas SQL. Consulte la referencia de tablas de SAP B1 y arme la solicitud con el generador de solicitudes del Service Layer. La guía del Service Layer explica las cookies de sesión.
  • Escribir en tablas de SAP con SQL se salta la lógica de OBServer. Escriba siempre por una API.

Kodenova construye integraciones sobre el Service Layer y add-ons nativos con UI API y DI API, en SQL Server y SAP HANA. Vea integración por API con SAP Business One, desarrollo de add-ons a medida o contacte con Kodenova indicando su versión de SAP Business One.

Fuentes

Servicios relacionados

Preguntas frecuentes

Preguntas frecuentes

¿La DI API está obsoleta?

No. La DI API sigue en el SDK de SAP Business One 10.0, documentada para .NET, C++ y Visual Basic, y admite SAP HANA y Microsoft SQL Server. SAP describe el Service Layer como su nueva generación de API de extensión, por eso las integraciones nuevas que corren fuera del cliente suelen empezar ahí.

¿El Service Layer funciona con Microsoft SQL Server?

Sí. Nació en la versión para SAP HANA. La guía del Service Layer añadió el soporte para SAP Business One 10.0 PL01 sobre Microsoft SQL Server en enero de 2020, y se ejecuta en Windows además de SUSE Linux.

¿Mi add-on con UI API funciona en el Web client?

No. La UI API clásica es una interfaz COM al cliente de escritorio de Windows en ejecución, así que sus menús, formularios y eventos solo existen ahí. El Web client tiene su propia UI API en JavaScript (desde 10.0 FP 2405) y extensiones de tipo tile. La lógica con DI API puede pasar a un servidor y servir a ambos clientes.

¿Para qué sirve el API Gateway de SAP Business One?

El API Gateway Service, disponible desde 10.0 FP 2105, autentica a los usuarios de SAP Business One y reenvía las solicitudes a servicios de back end, sobre todo al Reporting Service de Crystal Reports. No sustituye a los objetos de negocio del Service Layer.

¿Una integración nueva debe usar B1if o el Service Layer?

Si SAP o un proveedor ya entrega el escenario como paquete del integration framework, use B1if. Para una conexión a medida con una tienda, un banco, un portal o una app, lo habitual hoy es un servicio pequeño sobre el Service Layer, con HTTPS y JSON.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.