Se conecta con sistemas ERP y MES como

Integraciones / ERP / SAP Business One

Guía de integración de SAP Business One con SkyPlanner APS para la programación de la producción

Esta guía explica a los partners de SAP Business One y a los equipos de TI cómo conectar B1 con SkyPlanner APS. Detalla qué API utilizar, qué objetos se transfieren en cada sentido y dónde suelen fallar los proyectos con B1. SkyPlanner se integra con SAP Business One en ambos sentidos a través de Service Layer:

  • Se importan órdenes de producción, etapas de las rutas de fabricación, recursos productivos, artículos y pedidos de compra.
  • Las fechas de inicio y vencimiento planificadas se actualizan en las órdenes de producción de B1.
  • Los registros de tiempo de los operarios se contabilizan como Receipt and Issue for Production.
  • Los webhooks de SkyPlanner envían los cambios de la programación en cuanto se producen.
Diagrama de Gantt de SkyPlanner APS con tareas programadas en distintas estaciones de trabajo y una lista de órdenes debajo.

SAP Business One sigue gestionando los artículos, las BOM, las órdenes de producción, el inventario y las finanzas, y su módulo de fabricación no cambia. El equipo de SkyPlanner configura la integración con los objetos estándar de B1 durante la puesta en marcha y ofrece soporte tras la entrada en producción. Cada base de datos de empresa tiene sus propias etapas de las rutas de fabricación, grupos de recursos, campos definidos por el usuario y complementos. La configuración establece las correspondencias para esas particularidades.

Laboratory & Allied utiliza SkyPlanner con SAP Business One sobre HANA. Para conocer los argumentos de negocio, consulte la página de programación de la producción con SAP Business One.

Opciones de integración de SAP Business One

SAP Business One ofrece tres interfaces de integración. Para un sistema de programación en la nube, Service Layer es la opción predeterminada.

OpciónQué esAdecuación para integrar un APS
Service LayerAPI REST/OData. /b1s/v1 utiliza OData v3 y /b1s/v2, OData v4. Funciona en la versión de SAP Business One para SAP HANA y en Microsoft SQL Server desde 10.0 PL01.Vía principal. Utiliza HTTP y JSON y funciona desde un servicio en la nube.
DI APIBiblioteca COM para Windows. Las órdenes de producción corresponden al objeto ProductionOrders, almacenado en la tabla OWOR (tipo de objeto 202).Para middleware heredado o instalado en local. Requiere un equipo con Windows.
Integration Framework (B1if)Middleware de SAP para escenarios de integración basados en documentos.Útil si el partner ya utiliza escenarios B1if.

Autenticación

Service Layer utiliza autenticación por sesión. Envíe una solicitud POST /b1s/v1/Login con CompanyDB, UserName y Password para recibir una cookie B1SESSION (y, opcionalmente, una ROUTEID en configuraciones con balanceo de carga). El valor predeterminado de SessionTimeout es de 30 minutos de inactividad. Llame a Logout de forma explícita al finalizar cada sincronización. Cree un usuario de B1 dedicado a la integración para poder rastrear en el registro de cambios todas las modificaciones realizadas desde SkyPlanner.

Entidades de Service Layer para la programación de la producción

DatosEntidad de Service Layer
Artículos y datos de planificaciónItems
Listas de materiales y etapas de la ruta de fabricaciónProductTrees (Lines, Stages)
Máquinas, mano de obra y otros recursos productivosResources, ResourceGroups
Órdenes de producciónProductionOrders (Lines, Stages)
Existencias por almacénDatos de inventario de Items, Warehouses
Pedidos de compra abiertos y fechas de entregaPurchaseOrders (DocumentLines: cantidad pendiente, ShipDate)
Entradas de mercancías vinculadas a pedidos de compraPurchaseDeliveryNotes (Goods Receipt PO, tipo de objeto 20)
Issue for ProductionInventoryGenExits
Receipt from ProductionInventoryGenEntries
Configuración de webhooksEventSubscriptions, EventNotifications

El tamaño de página predeterminado es de 20 registros. Auméntelo con la cabecera Prefer: odata.maxpagesize (o con PageSize en b1s.conf) y siga odata.nextLink. Utilice $expand para obtener las líneas y las etapas de las órdenes de producción en una sola llamada, y agrupe las solicitudes en lotes para actualizar de forma masiva los datos en el sistema de origen.

Eventos y webhooks

A partir de SAP Business One 10.0 FP 2602, Service Layer admite webhooks. Están desactivados de forma predeterminada. Se activan para cada sociedad mediante CompanyService_UpdateAdminInfo (EnableWebhook = tYES). Después, envíe una solicitud POST EventSubscriptions con tres elementos:

  • una WebhookURL
  • un AuthenticationType: None, Basic, HMAC u OAuth; HMAC es el valor predeterminado
  • una EventCollection con objetos de negocio y tipos de transacción

La WebhookURL debe utilizar HTTPS con un certificado que corresponda al host. EventSubscriptionsService_GetEventCatalog enumera los eventos a los que puede suscribirse. El servicio Webhook Messenger Service debe estar en ejecución.

En versiones anteriores, utilice consultas periódicas programadas (consulte más abajo el problema con UpdateDate). SBO_SP_TransactionNotification es un punto de validación a nivel de base de datos, no un canal de envío de notificaciones.

Correspondencia de datos: de SAP Business One a SkyPlanner

SAP Business One (Service Layer)Objeto de SkyPlannerSentidoFrecuencia
Items (artículos con Procurement Method establecido en Make)ProductosB1 → SkyPlannerCarga inicial y, después, a intervalos programados
Lines de ProductTrees (líneas de artículos)Materiales del productoB1 → SkyPlannerCarga inicial y, después, con cada cambio
Stages y líneas de recursos de ProductTreesEtapas del proceso y tiempos de ejecuciónB1 → SkyPlannerCarga inicial y, después, con cada cambio
Resources (Machine, Labor, Other)Estaciones de trabajo y personalB1 → SkyPlannerCarga inicial; cambios poco frecuentes
ResourceGroupsGrupos de estaciones de trabajoB1 → SkyPlannerCarga inicial
ProductionOrders (Planned, Released)Órdenes y tareasB1 → SkyPlannerWebhook (FP 2602+) o consultas periódicas cada pocos minutos
Stages de ProductionOrdersEtapas de las tareas con su secuenciaB1 → SkyPlannerJunto con la orden
Existencias de Items por WarehousesInventario de materialesB1 → SkyPlannerA intervalos programados, por ejemplo, cada hora
Líneas abiertas de PurchaseOrders (tipo de objeto 22) con fecha de entregaPedidos de compra / materiales pendientes de recibir con fecha de entrega previstaB1 → SkyPlannerA intervalos programados, por ejemplo, cada hora
Líneas de PurchaseDeliveryNotes (Goods Receipt PO) con BaseType 22Cantidad recibida en la línea del pedido de compra y existencias actualizadasB1 → SkyPlannerA intervalos programados, por ejemplo, cada hora
Inicio y fin programadosPATCH ProductionOrders({DocEntry}): StartDate, DueDate, y StartDate y EndDate de la línea de recursosSkyPlanner → B1Webhook de SkyPlanner al cambiar la programación
Cantidades registradasInventoryGenEntries (Receipt from Production)SkyPlanner → B1Al confirmar o por lotes
Horas y consumo de materiales registradosInventoryGenExits (Issue for Production)SkyPlanner → B1Al confirmar o por lotes

Los calendarios de turnos, el personal y las ausencias se gestionan en SkyPlanner. Las cifras de capacidad diaria de B1 quedan fuera del flujo de datos (consulte el primer error que se describe más abajo).

Patrones de integración

1. Carga inicial de datos maestros. Obtenga Resources, ResourceGroups, los Items con Procurement Method establecido en Make y sus ProductTrees con etapas. Asocie cada recurso de tipo máquina a una estación de trabajo de SkyPlanner. Revise la lista con los planificadores antes de la primera sincronización de órdenes.

2. Sincronización de órdenes. Lea las ProductionOrders con estado Planned y Released utilizando $expand para las líneas y las etapas. Las órdenes de producción de B1 incluyen las etapas de la ruta de fabricación tomadas de la lista de materiales, y los planificadores pueden modificar una orden una vez creada. Utilice las etapas de la orden, no las de la lista de materiales. Cada orden de producción fabrica un producto, por lo que un producto multinivel requiere una orden de producción por nivel. Vincúlelas para que SkyPlanner programe los productos de los niveles inferiores antes que el producto padre.

Sincronice también las líneas abiertas de PurchaseOrders, con su cantidad pendiente y su fecha de entrega, con los endpoints de pedidos de compra de SkyPlanner. SkyPlanner considera que el material pedido estará disponible en la fecha de entrega del pedido de compra. En B1, las existencias cambian cuando se contabiliza un documento Goods Receipt PO (PurchaseDeliveryNotes). La integración lee esas entradas, marca la cantidad recibida como entregada en SkyPlanner y mantiene abierta la cantidad restante. Las recepciones parciales se contabilizan una sola vez, y las comprobaciones de materiales abarcan tanto las existencias como los suministros pendientes de recibir.

3. Escritura de la programación en B1. Los webhooks de SkyPlanner se activan cuando cambia la programación. La integración envía PATCH /b1s/v1/ProductionOrders({DocEntry}) con los nuevos valores de StartDate y DueDate, además de StartDate y EndDate en las líneas de recursos de la orden (ProductionOrderLines), para que cada etapa tenga su intervalo programado. El cuerpo de la solicitud solo incluye los campos que gestiona SkyPlanner, y se envían varias órdenes en una sola solicitud $batch. Así, los usuarios de B1 ven las fechas programadas en la orden de producción y en la ventana Resource Capacity. En las instalaciones donde Service Layer no está disponible, un servicio local realiza la misma actualización mediante el objeto ProductionOrders de DI API (GetByKey, asignación de fechas, Update).

4. Confirmaciones en planta. Los operarios registran el trabajo en SkyPlanner con Mobile Confirmations o Production Timer. Cada registro de tiempo se convierte en una solicitud POST /b1s/v1/InventoryGenEntries para la cantidad terminada (Receipt from Production) y una solicitud POST /b1s/v1/InventoryGenExits para los componentes y el tiempo de los recursos productivos (Issue for Production).

Cada línea de documento lleva BaseType 202 y BaseEntry con el valor de DocEntry de la orden de producción; las líneas de salida incluyen además el BaseLine de la línea del componente o del recurso productivo. Las cantidades parciales se contabilizan a medida que se registran, y los artículos gestionados por lotes o números de serie deben incluir esos datos. La orden debe estar en estado Released.

El ID del registro de tiempo de SkyPlanner se guarda en el documento de B1, de modo que un evento reintentado nunca se contabiliza dos veces. Si una contabilización falla, se reintenta y se notifica en lugar de descartarse.

5. Reglas de control de datos y resolución de conflictos. Acuérdenlas antes de programar:

  • B1 controla los artículos, las BOM, las cantidades, los almacenes y la creación de órdenes.
  • SkyPlanner controla la secuencia, las horas de inicio y fin y la asignación de estaciones de trabajo.
  • Si ambos sistemas modifican las fechas de una orden, prevalece la siguiente ejecución de SkyPlanner, salvo que los planificadores hayan bloqueado la tarea en SkyPlanner.
  • Las órdenes con estado Closed o Cancelled en B1 eliminan la tarea de la programación.

Qué incluye el proyecto

La implantación suele completarse en unas semanas desde el inicio de la puesta en marcha. Antes, puede realizar la prueba gratuita de 30 días con sus propios datos. Exporte los artículos, los recursos productivos y las órdenes de producción abiertas de B1 a CSV o Excel y cárguelos con la función de importación de datos de SkyPlanner. Los planificadores ven una programación real antes de que se escriba una sola línea de código de integración.

Un proyecto típico de SAP Business One incluye:

  • Correspondencia de datos maestros. Los recursos y grupos de recursos de B1 se vinculan con estaciones de trabajo; las etapas de las rutas de fabricación, con pasos del proceso; y los artículos Make, con productos.
  • Carga inicial. Artículos, Product Trees con etapas y líneas de artículos, recursos productivos y existencias por almacén.
  • Sincronización de órdenes de producción y pedidos de compra. Órdenes de producción abiertas con sus líneas y etapas, además de pedidos de compra abiertos con sus fechas de entrega.
  • Escritura de la programación en B1. Fechas programadas de inicio y vencimiento en ProductionOrders.
  • Notificaciones de planta. Contabilización de Receipt and Issue for Production a partir de los registros de tiempo de SkyPlanner.
  • Pruebas en paralelo con el plan actual. Los planificadores comparan la programación de SkyPlanner con su forma actual de planificar.
  • Entrada en producción. La programación de SkyPlanner se convierte en el plan de referencia.

Disponer de recursos y etapas de las rutas de fabricación bien depurados en B1 agiliza la definición de correspondencias. En Laboratory & Allied, la integración fue una de las partes más sencillas del proyecto. El equipo interno de TI realizó la integración con SAP Business One sobre HANA en gran medida por su cuenta. El equipo de SkyPlanner intervino en los casos más complejos, como los productos que se combinan a lo largo de procesos de varias etapas.

Errores que conviene evitar con SAP Business One

La capacidad diaria no equivale a un modelo de turnos.

B1 almacena Daily Internal Capacity y Single Run Capacity por recurso y día («These capacities are defined on a daily basis,» (estas capacidades se definen por día), según SAP Learning). La guía de SAP indica que el cálculo de Required Days supone que «a single production order can be produced on a single machine» (una orden de producción puede fabricarse en una sola máquina) (guía práctica de SAP). No copie esas cifras como si representaran la capacidad real de máquinas y personal para programar la producción. Defina en SkyPlanner los turnos, el personal y las eficiencias de las estaciones de trabajo.

La ruta de fabricación forma parte de la BOM.

No existe un maestro de rutas de fabricación. Las líneas Route Stage de Product Tree contienen la secuencia, y Waiting Days se introduce a mano. Lea Stages de ProductTrees y Stages de ProductionOrders, y compruebe que cada línea de recursos pertenezca a una etapa. Las órdenes sin etapas no proporcionan al programador ninguna secuencia de operaciones.

Las cantidades de las líneas de recursos requieren conversión.

El campo Quantity de una línea de la BOM indica lo necesario para producir la cantidad de la cabecera de la BOM, no una unidad. Additional Quantity se suma al tiempo planificado «regardless of the quantity of the parent item produced» (independientemente de la cantidad producida del artículo principal) (guía práctica de SAP). Trátelo como un tiempo fijo por orden, como el de preparación. Divida por la cantidad de la cabecera antes de calcular los tiempos de ejecución por unidad; de lo contrario, todas las tareas tendrán un error de escala.

Los datos maestros de recursos rara vez están depurados.

Los recursos se clasifican como Machine, Labor u Other. Las máquinas pueden vincularse a activos fijos y la mano de obra a empleados. Además, un recurso puede tener asociado un artículo no inventariable para su compra o venta. Nada de esto indica qué recursos son máquinas reales que pueden programarse. Depure los grupos de recursos y los recursos duplicados antes de convertirlos en su lista de estaciones de trabajo.

Las reglas de inventario pueden impedir las notificaciones de producción.

Las entradas y las salidas son documentos de inventario. Los errores habituales son confundir InventoryGenEntries con InventoryGenExits, omitir los números de lote o de serie en los artículos que los requieren o contabilizar contra una orden en estado Planned.

Sesiones y paginación.

Una sesión caducada devuelve «Invalid session or session already timeout.» (Sesión no válida o ya caducada). Vuelva a iniciar sesión cuando aparezca ese error. La paginación predeterminada de 20 registros trunca sin aviso las sincronizaciones que no siguen odata.nextLink.

UpdateDate no incluye la hora.

En la tabla OWOR, UpdateDate es un campo de fecha; la hora de actualización se almacena por separado en UpdateTS. Una consulta periódica que filtre solo por UpdateDate recuperará en cada ejecución todas las órdenes modificadas durante el día. Combine ambos campos o elimine los duplicados en su integración.

Los webhooks se entregan al menos una vez.

Webhook Messenger reintenta una entrega fallida hasta cinco veces (2, 4, 8, 16 y 32 segundos) y después la marca como fallida. Los reintentos pueden generar duplicados y el orden solo está garantizado dentro de una misma empresa. Haga que los manejadores sean idempotentes mediante el ID del evento y mantenga una consulta nocturna de conciliación.

Quién configura la integración con SAP Business One

El trabajo incluye definir las correspondencias de sus etapas de las rutas de fabricación, recursos y configuración de B1, además de las restricciones que B1 no contempla al programar: matriz de tiempos de preparación, herramientas, número de operarios y recursos productivos alternativos.

  1. El equipo de SkyPlanner la configura durante la puesta en marcha y ofrece soporte tras la entrada en producción. Cada empresa utiliza B1 de forma distinta, y es aquí donde se aplica ese conocimiento. Esta es la opción predeterminada.
  2. Su partner de SAP Business One puede participar. Los partners que conocen su base de datos de empresa, sus complementos y sus campos definidos por el usuario pueden desarrollar la integración con Service Layer y la API REST de SkyPlanner (referencia de la API).
  3. Sus propios desarrolladores pueden crear la integración. La API REST de SkyPlanner permite leer y escribir órdenes, productos, materiales, pasos del proceso, pedidos de compra y registros de tiempo. Utiliza autenticación mediante tokens JWT de tipo bearer y está documentada en Swagger/OpenAPI, con documentación pública en la documentación de SkyPlanner. Los webhooks envían los cambios de programación y estado en tiempo real. Solo necesita una clave de API de SkyPlanner para empezar a desarrollar (tutorial de integración), y el equipo de SkyPlanner le ayuda cuando sea necesario. Esta fue la vía que eligió el equipo interno de TI de Laboratory & Allied.

Valide primero la programación durante la prueba gratuita de 30 días, para que la integración parta de una programación que ya se ajuste a la planta.

Por qué los equipos técnicos eligen SkyPlanner para B1

  • Elija SkyPlanner si busca una integración acotada y bien definida. Se importan objetos estándar de B1 (órdenes de producción, Product Trees, Resources, Items) y se devuelven fechas junto con Issue and Receipt from Production. Sin cambios en el módulo de fabricación de B1 ni migración de datos.
  • Elija SkyPlanner si el proyecto debe demostrar su valor desde el principio. La prueba gratuita de 30 días funciona con una exportación CSV y hasta 20 estaciones de trabajo, sin tarjeta de crédito. La empresa ve su propia programación antes de empezar la integración.
  • Elija SkyPlanner si la programación debe respetar las restricciones reales. SkyPlanner permite modelar los tiempos de cambio de formato, las herramientas compartidas, las tareas con varios operarios, los recursos productivos alternativos, las existencias y los pedidos de compra abiertos. La integración solo aporta los datos de B1.
  • Elija SkyPlanner si quiere un único sistema para planificadores y operarios. El motor Arcturus genera la programación en segundos y Autopilot la reajusta automáticamente cuando cambia la producción. Los operarios registran su trabajo en el móvil o la tableta, y la integración devuelve esas notificaciones a B1.
  • Elija SkyPlanner si necesita costes previsibles. Los precios parten de 199 € al mes con 5 estaciones de trabajo incluidas, facturación mensual y cancelación en cualquier momento. La integración se presupuesta de antemano según sus procesos y necesidades, junto con su plan, para que conozca el coste total antes de empezar.

Consulte el artículo sobre programación de la producción en SAP Business One para conocer las carencias de planificación. El concepto de programación que se explica consiste en ajustar el programa a la capacidad real disponible tanto de las máquinas como del personal. Para consultar otros ERP, visite la sección de integraciones con ERP.

Opiniones de fabricantes sobre SkyPlanner

Operarios con trajes de sala limpia en una línea de llenado de botellas de la planta farmacéutica de Laboratory & Allied en Nairobi

+90%de eficiencia en producción

“La eficiencia en producción ha aumentado un 90%.”

Abdul Rucyinga, responsable de TI
Laboratory & Allied · Fabricación farmacéutica

La eficiencia en producción ha aumentado un 90%, y crear un plan optimizado de tres meses para todas las estaciones de trabajo lleva menos de 30 minutos.

Leer la opinión de Laboratory & Allied

Kalle Kalliomäki, especialista en cadena de suministro de UTU, en la planta de fabricación de cuadros eléctricos de Ulvila

2 hde ahorro cada semana

“Con SkyPlanner hemos pasado de planificar la producción en hojas de Excel a optimizarla en tiempo real.”

Kalle Kalliomäki, especialista en cadena de suministro
UTU · Cuadros eléctricos y aparamenta

La planificación de la producción ahorra 2 horas de trabajo cada semana, y la nueva cola de trabajo llega a la línea en segundos.

Leer el testimonio de UTU

Anu Järvinen, responsable de producción de Fredman Operations, junto a una célula robotizada de paletizado en Rauma

6 mesesde capacidad disponible a la vista del equipo comercial

“SkyPlanner aporta la base y la fiabilidad necesarias para toda la planificación de la producción.”

Anu Järvinen, responsable de producción
Fredman Operations · Papeles para envases aptos para contacto alimentario

El equipo comercial puede ver la capacidad disponible con seis meses de antelación. Las solicitudes de cambios en la programación que antes tardaban una hora o más en responderse ahora reciben respuesta en segundos.

Leer el testimonio de Fredman Operations

Vista aérea de la fábrica de sistemas de seguridad para cubiertas de Piristeel en Kauhava

99,2%de cumplimiento de plazos de entrega

“SkyPlanner nos ha dado visibilidad para identificar los cuellos de botella y ha aportado claridad a la gestión de la producción.”

Toni Tuori, responsable de producción
Piristeel · Sistemas de seguridad para cubiertas y de evacuación de aguas pluviales

El cumplimiento de plazos de entrega alcanzó el 99,2% este año, y la programación permite ahorrar hasta cuatro horas de trabajo al día.

Leer el testimonio de Piristeel

Preguntas frecuentes

¿Quién desarrolla la integración con SAP Business One?

El equipo de SkyPlanner configura la integración bidireccional durante la puesta en marcha y ofrece soporte tras la entrada en producción. SkyPlanner recibe las órdenes de producción, las etapas de las rutas de fabricación, los recursos productivos, los pedidos de compra y las entradas de mercancías. A su vez, envía las fechas programadas y los documentos Issue and Receipt from Production. Su partner de B1 o sus propios desarrolladores también pueden crear la integración con Service Layer y la API REST de SkyPlanner. Basta con una clave de API para empezar.

¿Cuánto tarda la implantación de SkyPlanner con SAP Business One?

La implantación suele completarse en unas semanas desde el inicio de la puesta en marcha. El equipo define las correspondencias de los recursos productivos y de las etapas de las rutas de fabricación, conecta las órdenes de producción y los pedidos de compra, y contrasta la programación con su plan actual antes de la entrada en producción.

¿Service Layer o DI API?

Para nuevos desarrollos, Service Layer. Se basa en HTTP, funciona en HANA y SQL Server y resulta adecuado para un sistema de programación en la nube. Utilice DI API solo si el middleware existente ya depende de ella.

¿Necesito SAP Business One 10.0 FP 2602?

Solo para los webhooks. Las versiones anteriores de 10.0 se integran mediante consultas periódicas programadas.

¿Cómo se guardan las fechas programadas en SAP Business One?

Mediante PATCH /b1s/v1/ProductionOrders({DocEntry}), asignando StartDate y DueDate en la orden, y StartDate y EndDate en sus líneas de recursos. El envío lo activa el webhook de SkyPlanner que notifica los cambios de programación. Las cantidades producidas y los tiempos se devuelven como InventoryGenEntries e InventoryGenExits, vinculados a la orden mediante BaseType 202 y BaseEntry.

¿Necesitamos un complemento de fabricación en B1?

No. La integración solo utiliza objetos estándar de B1: órdenes de producción, Product Trees, Resources, Items, pedidos de compra y documentos de inventario. No se migra ningún dato a un nuevo modelo de datos de fabricación.

¿Podemos probar SkyPlanner con nuestros datos de B1 antes de integrarlo?

Sí. La prueba de 30 días incluye hasta 20 estaciones de trabajo y permite importar datos desde CSV o Excel, sin necesidad de tarjeta de crédito. Inicie la prueba gratuita o hable con el equipo comercial sobre su configuración de B1.