Integraciones / ERP / Microsoft Dynamics 365 Supply Chain Management
Guía de integración de Dynamics 365 Supply Chain Management para la programación de la producción con SkyPlanner APS
Esta guía de integración de Dynamics 365 Supply Chain Management muestra a partners y equipos de TI cómo conectar Microsoft Dynamics 365 Supply Chain Management con SkyPlanner APS. SkyPlanner se integra de forma bidireccional con Dynamics 365 Supply Chain Management a través de sus entidades de datos estándar:
- Se importan órdenes de producción, operaciones y tareas de ruta, líneas de BOM, recursos productivos, calendarios, productos liberados, existencias disponibles y líneas de pedidos de compra.
- Las fechas y horas de inicio y fin programadas y el recurso productivo elegido se escriben en la orden de producción y sus operaciones de ruta.
- Las horas de los operarios y las cantidades se devuelven a través del diario de tarjetas de ruta.
- Los webhooks de SkyPlanner envían los cambios de la programación en cuanto se producen.
Durante la puesta en marcha, el equipo de SkyPlanner adapta la integración a la configuración de Supply Chain Management y ofrece soporte tras la entrada en producción. Esta guía está dirigida a partners y desarrolladores que quieran participar o desarrollar por su cuenta sobre la REST API documentada de SkyPlanner (referencia de la API).
Opciones de integración con Dynamics 365 SCM
Supply Chain Management expone sus datos a través de entidades de datos. Hay cuatro opciones relevantes para la programación de la producción:
- Endpoint REST de OData v4.
[Your organization's root URL]/dataexpone todas las entidades de datos marcadas como IsPublic y permite crearlas, leerlas, actualizarlas y eliminarlas. Admite$filter,$count,$orderby,$skip,$top,$selecty$expandde primer nivel. El servidor controla la paginación, con un máximo de 10.000 registros, y las solicitudes por lotes permiten agrupar escrituras en conjuntos de cambios. OData es síncrono. (fuente) - API de datos por lotes. La Data management package REST API y las integraciones periódicas transfieren grandes volúmenes de datos de forma asíncrona. Microsoft indica: «If the volume is more than a few hundred thousand records, use the batch data API.» (Si el volumen supera unos cientos de miles de registros, utilice la API de datos por lotes). También es la API compatible con las instalaciones locales. (fuente)
- Eventos de negocio. Las aplicaciones de finanzas y operaciones publican eventos de negocio en Azure Service Bus, Event Grid, endpoints HTTPS o Power Automate. (fuente)
- Servicios personalizados y acciones de OData. Los servicios personalizados de X++ y las acciones vinculadas de OData ejecutan lógica de negocio bajo demanda.
La integración de SkyPlanner utiliza el endpoint de OData para el intercambio diario de datos y la API de datos por lotes cuando la carga inicial es grande. No se instala nada en Supply Chain Management.
Autenticación
Registre una aplicación en Microsoft Entra ID (entidad de servicio). En Supply Chain Management, asocie esa aplicación a un usuario con los roles de seguridad que necesita la integración. La integración lee datos de producción, recursos productivos e inventario, y escribe datos de programación de órdenes de producción y diarios. Los tokens se solicitan a Entra ID mediante credenciales de cliente.
Dos reglas determinan a qué datos accede la integración:
- Entidades jurídicas. OData devuelve los datos de la empresa predeterminada, salvo que se añada
?cross-company=truea la solicitud. En instalaciones con varias plantas, se filtra pordataAreaId. - Nombres públicos. Los nombres de entidad que aparecen a continuación son los de la gestión de datos. Los nombres públicos de las colecciones OData pueden ser distintos; consúltelos en
/data/$metadatade su entorno.
En SkyPlanner, la REST API se autentica mediante un token de API (SkyPlanner Settings > API) y está documentada en Swagger/OpenAPI. El tutorial de integración explica paso a paso las primeras llamadas.
Mapeo de datos
| Entidad de D365 SCM | Objeto de SkyPlanner | Sentido | Frecuencia |
|---|---|---|---|
| Productos liberados (ItemNumber) | Productos y materiales | SCM → SkyPlanner | Carga inicial y, después, solo los cambios |
| Líneas de BOM de producción (ProdProductionOrderBillOfMaterialsLineEntity), líneas de BOM | Estructura del producto, materiales por orden | SCM → SkyPlanner | En cada sincronización de órdenes |
| Ruta, versiones de ruta, operaciones de ruta, propiedades de las operaciones (RouteOperationPropertiesV2Entity) | Etapas del proceso con tiempos de preparación y ejecución | SCM → SkyPlanner | Carga inicial y, después, cuando haya cambios |
| Recursos productivos (OpResOperationsResourceEntity), grupos de recursos productivos, capacidades | Estaciones de trabajo, grupos de estaciones de trabajo, eficiencias | SCM → SkyPlanner | Carga inicial y, después, con poca frecuencia |
| Calendarios laborales, días e intervalos horarios de los calendarios, asignaciones de calendarios | Turnos | SCM → SkyPlanner | A diario, o gestión de los turnos en SkyPlanner |
| Cabeceras de órdenes de producción (ProdProductionOrderHeaderEntity) | Órdenes con fechas de entrega y estado | SCM → SkyPlanner | Cada pocos minutos o cuando se produzca un evento de negocio |
| Operaciones de ruta (ProdProductionOrderRouteOperationEntity), tareas de ruta (ProdProductionOrderRouteJobEntity) | Tareas con duraciones y requisitos de recursos productivos | SCM → SkyPlanner | En cada sincronización de órdenes |
| Existencias disponibles | Saldos de existencias | SCM → SkyPlanner | Cada hora o al ejecutar la programación |
| Líneas de pedidos de compra con fecha de entrega | Material pendiente de recibir; las existencias se actualizan cuando el pedido de compra se marca como Delivered | SCM → SkyPlanner | Cada hora o al ejecutar la programación |
| Fechas y horas de inicio y fin programadas y recurso productivo de cada operación de ruta | Inicio, fin y estación de trabajo planificados para cada operación | SkyPlanner → SCM | Cuando cambie la programación, mediante un webhook de SkyPlanner |
| Diario de tarjetas de ruta (ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity) | Registros de tiempo y cantidades | SkyPlanner → SCM | Por confirmación o por turno, si se elige esta opción |
| Configuración de restricciones en SkyPlanner | Matriz de tiempos de preparación, herramientas como recursos productivos de capacidad limitada, número de operarios, recursos productivos alternativos | Se mantiene en SkyPlanner | Se configura durante la puesta en marcha |
Patrones de integración
1. Carga inicial de datos maestros. Cargue los recursos productivos y sus grupos, los calendarios, los productos liberados, las rutas y las BOM. Utilice la API de datos por lotes cuando el volumen alcance los cientos de miles de registros; en los demás casos, utilice la paginación de OData. Asocie cada recurso productivo de SCM a una estación de trabajo de SkyPlanner. No se limite a asociar los grupos: la programación de operaciones reserva grupos, pero en planta se trabaja con recursos productivos concretos.
2. Sincronización de órdenes. Lea las órdenes de producción confirmadas que estén en los estados gestionados por SkyPlanner, normalmente Scheduled y Released, junto con sus operaciones de ruta, tareas de ruta y líneas de BOM. Lea también las líneas de pedidos de compra abiertos. SkyPlanner considera que el material pedido estará disponible en la fecha de entrega del pedido de compra y actualiza las existencias cuando este se marca como Delivered.
Excluya las órdenes de producción planificadas, salvo que se hayan incluido expresamente en el alcance. Planning Optimization las regenera en cada ejecución.
3. Escritura de la programación en SCM. Por cada operación que el motor haya programado o desplazado, SkyPlanner escribe las fechas y horas de inicio y fin programadas y el recurso productivo en la operación de ruta. Para ello utiliza los nombres de campo de /data/$metadata de su entorno. Los cambios se envían en conjuntos de cambios de lotes OData, de modo que cada ejecución de la programación se aplica como una única actualización coherente.
4. Confirmaciones en planta. Los operarios registran el trabajo con SkyPlanner Mobile Confirmations o Production Timer, y los registros de tiempo mantienen actualizada la programación. Las horas y las cantidades de unidades buenas pueden devolverse como líneas del diario de tarjetas de ruta. Report as finished se sigue ejecutando donde se utiliza actualmente, en SCM o en Production floor execution.
Elija un único canal para cada registro. Registrar las mismas horas desde SkyPlanner y Production floor execution las duplica.
5. Responsabilidad sobre los datos y reglas para resolver conflictos. Déjelas por escrito antes de la entrada en producción:
| Datos | Sistema responsable |
|---|---|
| Productos, BOM, rutas, cantidades, estado de las órdenes, cálculo de costes | Supply Chain Management |
| Órdenes de producción planificadas | Planning Optimization |
| Secuencia de operaciones, inicio y fin programados, asignación de recursos productivos | SkyPlanner |
| Matriz de tiempos de preparación, herramientas, número de operarios, recursos productivos alternativos | SkyPlanner |
| Turnos y ausencias | Un único sistema, elegido durante la definición del alcance |
| Registro de horas y producción | Supply Chain Management, a partir de los registros de tiempo de SkyPlanner si se elige esta opción |
La principal fuente de conflictos es la propia programación de tareas de SCM. Si un planificador reprograma una orden en SCM, se sobrescriben las fechas de SkyPlanner. Use IsProductionOrderSchedulingLocked en la cabecera de las órdenes de producción cuya programación controla SkyPlanner. Trate cualquier orden modificada en SCM como una nueva versión y vuelva a sincronizarla. Autopilot reprograma automáticamente cuando cambia la producción.
Qué incluye el proyecto
La implementación suele completarse en unas semanas desde el inicio de la incorporación. Antes, puede realizar la prueba gratuita de 30 días con sus propios datos. Exporte los recursos productivos, las rutas y las órdenes de producción abiertas mediante un proyecto de exportación de gestión de datos o el complemento de Excel. Impórtelos en formato CSV o Excel y valide la programación.
- Definición del alcance. Establezca la tabla de correspondencias, los estados en los que SkyPlanner controla la programación, las frecuencias de sincronización y el canal de registro.
- Acceso. Registre la aplicación de Entra ID, asóciela a un usuario de SCM con los roles mínimos necesarios y confirme los nombres públicos de las entidades en
/data/$metadata. Primero en el entorno de pruebas y después en producción. - Carga inicial. Recursos productivos, calendarios, productos liberados, rutas y listas de materiales (BOM).
- Sincronización de órdenes de producción y pedidos de compra. Consultas periódicas con
$filtersobre los registros modificados, más eventos de negocio cuando estén disponibles en su catálogo. - Configuración de restricciones en SkyPlanner. Matriz de tiempos de preparación, herramientas, número de operarios y máquinas o personal alternativos.
- Escritura de la programación en SCM. Actualizaciones por lotes de las operaciones de ruta y bloqueo de la programación en las órdenes que controla SkyPlanner.
- Pruebas en paralelo. Ejecute SkyPlanner en paralelo con el plan actual, compare las fechas y corrija los datos maestros.
- Puesta en marcha. Active la escritura en SCM cuando los datos coincidan.
Qué tener en cuenta al integrar Dynamics 365 SCM
- Eficiencia aplicada por duplicado. SCM calcula los tiempos así: «Scheduling time = Time x 100 / Efficiency percentage.» (El tiempo de programación se calcula ajustando el tiempo según el porcentaje de eficiencia). Traslade la eficiencia a la estación de trabajo de SkyPlanner una sola vez; no vuelva a aplicarla a tiempos ya ajustados.
- Calendarios asignados a grupos de recursos. Lea la asignación de calendario de cada grupo de recursos y de cada recurso productivo; de lo contrario, la capacidad no coincidirá.
- Programación de operaciones frente a programación de tareas. Las órdenes programadas por operaciones no tienen horas de inicio y fin ni un recurso productivo concreto. Sincronice las operaciones de ruta y los requisitos de recursos productivos, no solo las fechas.
- Indicadores de capacidad finita. Los recursos productivos con Finite capacity establecido en No pueden sobrecargarse en SCM. Modele en SkyPlanner cada restricción real con una capacidad limitada.
- 32 recursos productivos por operación. SCM limita la programación de tareas a 32 recursos productivos por operación. En SkyPlanner, las alternativas se definen mediante grupos de estaciones de trabajo y estaciones de trabajo alternativas.
- Paginación y volumen. OData devuelve páginas de 10.000 registros y admite un nivel de expansión. Para las cargas iniciales de gran volumen, utilice la API de datos por lotes.
- Entidades jurídicas. Sin
cross-company=truey los filtros dedataAreaId, una planta que trabaja con varias empresas solo sincroniza la empresa predeterminada.
Quién configura la integración
El trabajo incluye definir las correspondencias con sus rutas, recursos productivos y configuración de SCM, además de configurar las restricciones en SkyPlanner: matriz de tiempos de preparación, herramientas, número de operarios y recursos productivos alternativos.
- El equipo de SkyPlanner configura la integración durante la incorporación y presta soporte tras la puesta en marcha, tanto en SkyPlanner como en las entidades de datos de SCM acordadas. Cada planta utiliza D365 SCM de forma distinta, y es aquí donde se aplica ese conocimiento.
- Su partner de Dynamics puede participar. Conoce su configuración, extensiones y roles de seguridad, y puede configurar la aplicación de Entra ID y el acceso a las entidades. SkyPlanner proporciona la REST API, la documentación de Swagger/OpenAPI y los webhooks.
- Sus propios desarrolladores pueden ampliar la integración utilizando la misma REST API documentada y un token de API. Basta con un token de API para empezar, y el equipo de SkyPlanner ofrece ayuda cuando hace falta.
Una vez establecida la conexión, el motor Arcturus programa a partir de las órdenes de producción actualizadas de SCM y escribe las fechas programadas en las operaciones de ruta. SkyPlanner está disponible desde 199 € al mes, con 5 estaciones de trabajo incluidas y facturación mensual. 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.
Compare estas funciones con la planificación propia de SCM en Programación de la producción en Dynamics 365 SCM respetando la capacidad real de máquinas y personal. Encontrará una visión general en la página de Dynamics 365 SCM y otros ERP en la sección de integraciones con ERP.
Opiniones de fabricantes sobre SkyPlanner
2 hahorradas 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 línea recibe una nueva cola de trabajo en segundos.
+90%de eficiencia en la 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 preparar un plan optimizado de tres meses para todas las estaciones de trabajo lleva menos de 30 minutos.
100%de cumplimiento de plazos de entrega desde 2021
“SkyPlanner nos permite ver la capacidad disponible y hace que la planificación sea predecible.”
Dan Berglund, COO/CFO
Opes Corporation · Fabricación química y alimentaria
El cumplimiento de plazos de entrega ha sido del 100% durante todo el tiempo que se ha utilizado SkyPlanner, desde 2021.
1.000 y másórdenes de trabajo programadas automáticamente
“Ahora controlamos la producción de otra manera, y nuestro conocimiento de la capacidad está a un nivel completamente distinto.”
Hannu Ryynänen, director general
Mamec · Mezcladores industriales, bombas y fabricación de alta tecnología por contrato
Miles de órdenes de trabajo se programan automáticamente, y toda la organización dispone de una visión de la producción en tiempo real.
Preguntas frecuentes
¿Qué API de D365 SCM utiliza la integración?
El endpoint REST de OData v4 en /data, que expone todas las entidades de datos públicas y permite crearlas, leerlas, actualizarlas y eliminarlas. Las cargas iniciales de gran volumen utilizan la API de datos por lotes. Los eventos de negocio añaden desencadenadores casi en tiempo real cuando están disponibles en su catálogo.
¿Tenemos que instalar algo en Supply Chain Management?
No. La integración utiliza entidades de datos estándar a través de OData. Su administrador registra una aplicación de Microsoft Entra ID y la asocia a un usuario de SCM con los roles necesarios.
¿Cómo se escriben las fechas programadas en Supply Chain Management?
SkyPlanner escribe las fechas y horas de inicio y fin programadas y el recurso productivo de la operación en las operaciones de ruta de la orden de producción mediante conjuntos de cambios por lotes de OData. Las órdenes cuya programación controla SkyPlanner se protegen con IsProductionOrderSchedulingLocked.
¿Por qué conectar SkyPlanner en lugar de ajustar la programación de tareas de SCM?
Planning Optimization solo respeta la capacidad real dentro del horizonte de capacidad finita; fuera de él, planifica con capacidad infinita (fuente). La programación de tareas de SCM sitúa una orden de producción cada vez en los huecos que deja la capacidad ya reservada y contabiliza la preparación como tiempo de la operación (fuente). Además, Microsoft desaconseja la planificación maestra con capacidad finita cuando los turnos modifican la capacidad (fuente). SkyPlanner programa todas las órdenes confirmadas de forma conjunta con una matriz de tiempos de preparación, y Autopilot reprograma automáticamente ante cada cambio relevante. El equipo de SkyPlanner configura la integración bidireccional y presta soporte, y su partner de Dynamics puede encargarse de la parte de SCM.
¿Debe SkyPlanner programar las órdenes de producción planificadas?
Normalmente no. Planning Optimization regenera las órdenes de producción planificadas en cada ejecución. SkyPlanner programa las órdenes de producción confirmadas que se encuentran en los estados acordados durante la definición del alcance.
¿Funciona la integración con instalaciones locales de Supply Chain Management?
En las instalaciones locales, la integración utiliza la API de datos por lotes, que Microsoft admite en ese entorno. Por parte de SkyPlanner se utiliza la misma REST API en ambos casos, y la vía de integración se confirma durante la definición del alcance.
¿Podemos probar SkyPlanner antes de desarrollar la integración?
Sí. La prueba gratuita de 30 días admite hasta 20 estaciones de trabajo e importaciones en CSV o Excel desde Supply Chain Management, sin necesidad de tarjeta de crédito. Inicie la prueba o contacte con ventas para definir el alcance de la integración.