Integración con sistemas de ejecución de fabricación de terceros
Algunas organizaciones de fabricación que utilizan Microsoft Dynamics 365 Supply Chain Management utilizan la funcionalidad nativa de Dynamics 365 para controlar sus actividades de fabricación de máquinas, equipos y personal. Sin embargo, otras organizaciones de fabricación, especialmente aquellas que tienen requisitos de fabricación avanzados, utilizan en su lugar un sistema de ejecución de fabricación (MES) de terceros. Las organizaciones pueden elegir una solución MES de terceros porque, por ejemplo, se adapta específicamente a su industria vertical.
En la solución integrada, el intercambio de datos está completamente automatizado y ocurre casi en tiempo real. Por lo tanto, los datos se mantienen actualizados en ambos sistemas y no se requiere entrada de datos manual. Por ejemplo, cuando se registra el consumo de material en el MES, la integración garantiza que el mismo consumo también se registre en Dynamics 365. Por lo tanto, los registros de inventario actualizados están disponibles para otros procesos importantes, como la planificación y las ventas.
La solución hace que sea más rápido, más fácil y más económico para los usuarios de Supply Chain Management integrarse con MES de terceros. Ofrece las siguientes características:
- Eventos e interfaces empresariales que admiten procesos clave de ejecución de fabricación
- Un panel de control centralizado donde puede realizar un seguimiento del historial de procesamiento de eventos y solucionar problemas y corregir los procesos que fallan
La siguiente ilustración muestra una colección típica de eventos, procesos y mensajes comerciales que se intercambian en una solución integrada.
Activar la función de integración MES
Antes de poder usar esta característica, un administrador debe activarla en su sistema como se describe en el procedimiento siguiente.
- Vaya a Administración del sistema > Configuración > Configuración de licencias.
- Asegúrese de que la clave de licencia Tiempo y asistencia está habilitada (muestra una marca de verificación). Esta clave de licencia es necesaria porque controla la funcionalidad y los datos del sistema de ejecución de fabricación. Si no está habilitada, siga los siguientes pasos:
- Coloque su sistema en modo de mantenimiento como se describe en Modo de mantenimiento.
- En la página Configuración de licencia, seleccione la casilla de verificación Tiempo y asistencia.
- Desactive el modo de mantenimiento como se describe en Modo de mantenimiento
- Vaya a Administración del sistema > Espacios de trabajo > Administración de características.
- Utilice el espacio de trabajo Gestión de características para activar la característica Integración del sistema de ejecución de fabricación. (A partir de la versión 10.0.29 de Supply Chain Management, esta característica está activada de manera predeterminada. A partir de la versión 10.0.32 de Supply Chain Management, es obligatoria y no se puede desactivar).
Procesos disponibles para la integración de MES
Puede habilitar cualquiera o todos los siguientes procesos para la integración.
Nombre del proceso | Description |
---|---|
Eventos de negocio de liberación de pedidos de producción y cambio del estado de pedidos de producción | Este proceso proporciona un evento de negocio que el MES puede escuchar para obtener información sobre los pedidos de producción que deben producirse. Se espera que los datos de referencia relacionados con el pedido de producción se compartan desde Supply Chain Management hasta el MES a través del protocolo de datos abiertos (OData) o entidades de datos. |
Iniciar pedido de producción | Este proceso proporciona a Supply Chain Management información sobre los pedidos de producción que se están iniciando mediante el MES. Garantiza que ambos sistemas tengan una vista actualizada de todas las actividades de fabricación. |
Informe de cantidad producida o convertida en residuos | Este proceso proporciona a Supply Chain Management información sobre las cantidades de productos y errores que se generan en un trabajo de producción mediante el MES. Garantiza que los supervisores de planta tengan una visión actualizada del progreso del plan de producción. |
Informe de consumo de materias primas | Este proceso proporciona a Supply Chain Management información del MES sobre las cantidades de materias primas que se consumen. Pone registros de inventario actualizados a disposición de otros procesos importantes, como la planificación y las ventas. |
Informe de tiempo consumido por la operación | Este proceso proporciona a Supply Chain Management información sobre el tiempo que se utiliza para una operación específica. |
Finalizar pedido de producción | Este proceso informa a Supply Chain Management de que el MES ha actualizado un pedido de producción a su estado final de Terminado. Este estado indica que no se producirán más cantidades en el pedido de producción. |
Supervisar mensajes entrantes
Para monitorear los mensajes MES entrantes al sistema, vaya a Control de producción > Configuración > Ejecución de fabricación > Integración de sistemas de ejecución de fabricación.
Todos los mensajes para un pedido de producción específico se procesan en la secuencia en que se reciben. Sin embargo, es posible que los mensajes para diferentes pedidos de producción no se procesen en la secuencia recibida porque los trabajos por lotes se procesan en paralelo. En caso de error, el trabajo por lotes intentará procesar cada mensaje tres veces antes de establecerlo en el estado Con errores.
La página Integración de sistemas de ejecución de fabricación funciona de la misma manera que la página Mensajes del procesador de mensajes y representa una funcionalidad muy similar. (Incluso muestra mensajes MES además de otros tipos de mensajes). Para obtener información sobre cómo usar cualquiera de las páginas para revisar mensajes, buscar y corregir mensajes fallidos, y más, consulte Página de mensajes del procesador de mensajes
Llamar a la API
Para llamar a la API de integración de MES, envíe una solicitud POST
a la siguiente URL de punto final:
/api/services/SysMessageServices/SysMessageService/SendMessage
El cuerpo de la solicitud que envíe debe parecerse al siguiente ejemplo. Reemplace los valores de _companyId
, _messageType
y _messageContent
según sea necesario. Para obtener información sobre los distintos tipos de mensajes que admite la API y cómo diseñar su contenido, consulte la siguiente sección.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Tipos y contenido de mensajes de API
Esta sección describe cada tipo de mensaje que se puede intercambiar a través de la API de integración de MES.
Mensaje Iniciar pedido de producción
Para el mensaje iniciar orden de producción, el valor de _messageType
es ProdProductionOrderStart
. La siguiente tabla muestra los campos que admite este mensaje.
Nombre de campo | Status | Tipo |
---|---|---|
ProductionOrderNumber |
Obligatoria | Cadena |
StartedQuantity |
Opcional | Real |
StartedDate |
Opcional | Fecha |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Always | Never) |
Mensaje Notificar como terminado
Para el mensaje notificar como terminado, el valor de _messageType
es ProdProductionOrderReportFinished
. La siguiente tabla muestra los campos que admite este mensaje.
Nombre de campo | Status | Tipo |
---|---|---|
ProductionOrderNumber |
Obligatoria | Cadena |
ReportFinishedLines |
Obligatoria | Una lista de líneas (al menos una), cada una de las cuales contiene la carga útil que se describe en la siguiente tabla |
La siguiente tabla muestra los campos que admite cada línea de la sección ReportFinishedLines
del mensaje ProdProductionOrderReportFinished
.
Nombre de campo | Status | Escriba |
---|---|---|
LineNumber |
Opcional | Real |
ItemNumber |
Opcional | String |
ProductionType |
Opcional | Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensible |
ReportedErrorQuantity |
Opcional | Real |
ReportedGoodQuantity |
Opcional | Real |
ReportedErrorCatchWeightQuantity |
Opcional | Real |
ReportedGoodCatchWeightQuantity |
Opcional | Real |
AcceptError |
Opcional | Enum (Sí | No) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
ExecutedDateTime |
Opcional | Fecha y hora |
ReportAsFinishedDate |
Opcional | Fecha |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Always | Never) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Always | Never) |
RespectFlushingPrincipleDuringOverproduction |
Opcional | Enum (Sí | No) |
JournalNameId |
Opcional | String |
PickingListJournalNameId |
Opcional | String |
RouteCardJournalNameId |
Opcional | String |
FromOperationNumber |
Opcional | Entero |
ToOperationNumber |
Opcional | Entero |
InventoryLotId |
Opcional | String |
BaseValue |
Opcional | String |
EndJob |
Opcional | Enum (Sí | No) |
EndPickingList |
Opcional | Enum (Sí | No) |
EndRouteCard |
Opcional | Enum (Sí | No) |
PostNow |
Opcional | Enum (Sí | No) |
AutoUpdate |
Opcional | Enum (Sí | No) |
ProductColorId |
Opcional | String |
ProductConfigurationId |
Opcional | String |
ProductSizeId |
Opcional | String |
ProductStyleId |
Opcional | Cadena |
ProductVersionId |
Opcional | Cadena |
ItemBatchNumber |
Opcional | Cadena |
ProductSerialNumber |
Opcional | Cadena |
LicensePlateNumber |
Opcional | Cadena |
InventoryStatusId |
Opcional | Cadena |
ProductionWarehouseId |
Opcional | Cadena |
ProductionSiteId |
Opcional | Cadena |
ProductionWarehouseLocationId |
Opcional | Cadena |
InventoryDimension1 a InventoryDimension12 |
Opcional | Cadena |
Las 12 dimensiones extensibles (de InventoryDimension1
a InventoryDimension12
) requieren personalización y no siempre se utilizan. Para obtener más información sobre ellas, consulte Agregar nuevas dimensiones de inventario a través de la extensión.
Mensaje Consumo de material (lista de selección)
Para el mensje consumo de material (lista de selección), el valor de _messageType
es ProdProductionOrderPickingList
. La siguiente tabla muestra los campos que admite este mensaje.
Nombre de campo | Status | Tipo |
---|---|---|
ProductionOrderNumber |
Obligatoria | Cadena |
JournalNameId |
Opcional | Cadena |
PickingListLines |
Obligatoria | Una lista de líneas (al menos una), cada una de las cuales contiene la carga útil que se describe en la siguiente tabla |
La siguiente tabla muestra los campos que admite cada línea de la sección PickingListLines
del mensaje ProdProductionOrderPickingList
.
Nombre de campo | Status | Tipo |
---|---|---|
ItemNumber |
Obligatoria | Cadena |
ConsumptionBOMQuantity |
Opcional | Real |
ProposalBOMQuantity |
Opcional | Real |
ScrapBOMQuantity |
Opcional | Real |
BOMUnitSymbol |
Opcional | Cadena |
ConsumptionInventoryQuantity |
Opcional | Real |
ProposalInventoryQuantity |
Opcional | Real |
ConsumptionCatchWeightQuantity |
Opcional | Real |
ProposalCatchWeightQuantity |
Opcional | Real |
ConsumptionDate |
Opcional | Fecha |
OperationNumber |
Opcional | Entero |
LineNumber |
Opcional | Real |
PositionNumber |
Opcional | String |
IsConsumptionEnded |
Opcional | Enum (Sí | No) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
InventoryLotId |
Opcional | String |
Mensaje Tiempo utilizado para la operación (tarjeta de ruta)
Para el mensaje tiempo utilizado para la operación (tarjeta de ruta), el valor de _messageType
es ProdProductionOrderRouteCard
. La siguiente tabla muestra los campos que admite este mensaje.
Nombre de campo | Status | Tipo |
---|---|---|
ProductionOrderNumber |
Obligatoria | Cadena |
JournalNameId |
Opcional | Cadena |
RouteCardLines |
Obligatoria | Una lista de líneas (al menos una), cada una de las cuales contiene la carga útil que se describe en la siguiente tabla |
La siguiente tabla muestra los campos que admite cada línea de la sección RouteCardLines
del mensaje ProdProductionOrderRouteCard
.
Nombre de campo | Status | Escriba |
---|---|---|
OperationNumber |
Obligatoria | Entero |
OperationPriority |
Opcional | Enum (Primary | Secondary1 | Secondary2 | ... | Secondary20) |
OperationId |
Opcional | String |
OperationsResourceId |
Opcional | String |
Worker |
Opcional | String |
HoursRouteCostCategoryId |
Opcional | Cadena |
QuantityRouteCostCategoryId |
Opcional | Cadena |
HourlyRate |
Opcional | Real |
Hours |
Opcional | Real |
GoodQuantity |
Opcional | Real |
ErrorQuantity |
Opcional | Real |
CatchWeightGoodQuantity |
Opcional | Real |
CatchWeightErrorQuantity |
Opcional | Real |
QuantityPrice |
Opcional | Real |
ProcessingPercentage |
Opcional | Real |
ConsumptionDate |
Opcional | Fecha |
TaskType |
Opcional | Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
OperationCompleted |
Opcional | Enum (Sí | No) |
BOMConsumption |
Opcional | Enum (Sí | No) |
ReportAsFinished |
Opcional | Enum (Sí | No) |
Mensaje Finalizar pedido de producción
Para el mensaje finalziar pedido de producción, el valor de _messageType
es ProdProductionOrderEnd
. La siguiente tabla muestra los campos que admite este mensaje.
Nombre de campo | Status | Tipo |
---|---|---|
ProductionOrderNumber |
Obligatoria | String |
ExecutedDateTime |
Opcional | Fecha y hora |
EndedDate |
Opcional | Fecha |
UseTimeAndAttendanceCost |
Opcional | Enum (Sí | No) |
AutoReportAsFinished |
Opcional | Enum (Sí | No) |
AutoUpdate |
Opcional | Enum (Sí | No) |
Otra información de producción
Los mensajes respaldan acciones o eventos que ocurren en la planta. Se procesan mediante el marco de integración MES descrito en este artículo. El diseño asume que otra información de referencia que se compartirá con el MES (como la información relacionada con el producto o la lista de materiales o la ruta (con sus tiempos de instalación y configuración específicos) utilizada en una orden de producción específica) se extraerá del sistema utilizando entidades de datos mediante transferencia de archivos u OData.
Recibir comentarios sobre el estado de un mensaje
Después de que el MES haya enviado un mensaje a Supply Chain Management, podría ser relevante para Supply Chain Management devolver comentarios sobre el estado del mensaje. A continuación se muestran algunos ejemplos de casos en los que este comportamiento podría ser relevante:
- No hay ninguna persona que se encargue de supervisar constantemente la integración de MES.
- La persona que se encarga de supervisar la integración de MES quiere que se le notifique por correo electrónico cuando falla un mensaje, para que sepa que tiene que actuar.
- El MES debe mostrar un mensaje de error para informar al operador de la planta o alguien del departamento de TI que deben tomar medidas.
- El MES debe volver a calcular la programación de la orden después de recibir un mensaje de falla (por ejemplo, porque una orden de producción no se inició).
En estos casos, puede aprovechar la función de alerta estándar en Supply Chain Management. Para obtener información sobre cómo funcionan las alertas estándar, consulte los siguientes recursos:
- Artículo de ayuda: Resumen de alertas
- Vídeo: Opciones de regla de alerta en finanzas y operaciones
Por ejemplo, puede configurar las siguientes alertas para proporcionar comentarios sobre el estado de un mensaje:
- Crear un evento empresarial ("Enviar externamente") que se utiliza cuando un mensaje es Fallido.
- Envíe una notificación y un correo electrónico al administrador de TI o al gerente de la planta de producción.