Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunas organizaciones manufactureras que utilizan Microsoft Dynamics 365 Supply Chain Management emplean la funcionalidad nativa en 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 administración de cadenas de suministros 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.
Prerequisites
Para integrarse con un sistema de ejecución de fabricación de terceros, la clave de licencia de Tiempo y Asistencia debe estar activada en administración de cadenas de suministros. Sigue estos pasos para comprobar si está activado y para activarlo si es necesario:
- 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
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 administración de cadenas de suministros 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 administración de cadenas de suministros 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 administración de cadenas de suministros 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 administración de cadenas de suministros 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 administración de cadenas de suministros información sobre el tiempo que se utiliza para una operación específica. |
| Finalizar pedido de producción | Este proceso informa a administración de cadenas de suministros 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 de una orden de producción específica se procesan en la secuencia en que se reciben. Sin embargo, los mensajes para diferentes órdenes de producción pueden no procesarse 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 información sobre cómo usar cualquiera de las páginas para revisar mensajes, encontrar y corregir mensajes fallidos, y más, consulte Monitorizar y controlar mensajes del procesador de mensajes.
Llamada 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 del campo | Situación | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | String |
StartedQuantity |
Opcional | Real |
StartedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Siempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | 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 del campo | Situación | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | String |
ReportFinishedLines |
Mandatory | Una lista de líneas (al menos una), cada una de las cuales contiene la carga útil que se describe en la siguiente tabla |
PrintLabel |
Opcional (Requiere administración de cadenas de suministros versión 10.0.45 o posterior) | Enum (Sí | No) |
La siguiente tabla muestra los campos que admite cada línea de la sección ReportFinishedLines del mensaje ProdProductionOrderReportFinished.
| Nombre del campo | Situación | Tipo |
|---|---|---|
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 (Ninguno | Material | Máquina | Personal operativo), extensible |
ExecutedDateTime |
Opcional | DateTime |
ReportAsFinishedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Siempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (Dependiente de la ruta | Siempre | Nunca) |
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 | String |
ProductVersionId |
Opcional | String |
ItemBatchNumber |
Opcional | String |
ProductSerialNumber |
Opcional | String |
GenerateLicensePlate |
Opcional (Requiere administración de cadenas de suministros versión 10.0.45 o posterior) | Enum (Sí | No) |
LicensePlateNumber |
Opcional | String |
InventoryStatusId |
Opcional | String |
ProductionWarehouseId |
Opcional | String |
ProductionSiteId |
Opcional | String |
ProductionWarehouseLocationId |
Opcional | String |
InventoryDimension1 a InventoryDimension12 |
Opcional | String |
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 del campo | Situación | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | String |
JournalNameId |
Opcional | String |
PickingListLines |
Mandatory | 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 del campo | Situación | Tipo |
|---|---|---|
ItemNumber |
Mandatory | String |
ConsumptionBOMQuantity |
Opcional | Real |
ProposalBOMQuantity |
Opcional | Real |
ScrapBOMQuantity |
Opcional | Real |
BOMUnitSymbol |
Opcional | String |
ConsumptionInventoryQuantity |
Opcional | Real |
ProposalInventoryQuantity |
Opcional | Real |
ConsumptionCatchWeightQuantity |
Opcional | Real |
ProposalCatchWeightQuantity |
Opcional | Real |
ConsumptionDate |
Opcional | Date |
OperationNumber |
Opcional | Entero |
LineNumber |
Opcional | Real |
PositionNumber |
Opcional | String |
IsConsumptionEnded |
Opcional | Enum (Sí | No) |
ErrorCause |
Opcional | Enum (Ninguno | Material | Máquina | Personal operativo), extensible |
InventoryLotId |
Opcional | String |
ProductColorId |
Opcional | String |
ProductConfigurationId |
Opcional | String |
ProductSizeId |
Opcional | String |
ProductStyleId |
Opcional | String |
ProductVersionId |
Opcional | String |
ItemBatchNumber |
Opcional | String |
ProductSerialNumber |
Opcional | String |
LicensePlateNumber |
Opcional | String |
InventoryStatusId |
Opcional | String |
ProductionWarehouseId |
Opcional | String |
ProductionSiteId |
Opcional | String |
ProductionWarehouseLocationId |
Opcional | String |
InventoryDimension1 a InventoryDimension12 |
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 del campo | Situación | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | String |
JournalNameId |
Opcional | String |
RouteCardLines |
Mandatory | 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 del campo | Situación | Tipo |
|---|---|---|
OperationNumber |
Mandatory | Entero |
OperationPriority |
Opcional | Enum (Primaria | Secundaria1 | Secundaria2 | ... | Secundaria20) |
OperationId |
Opcional | String |
OperationsResourceId |
Opcional | String |
Worker |
Opcional | String |
HoursRouteCostCategoryId |
Opcional | String |
QuantityRouteCostCategoryId |
Opcional | String |
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 | Date |
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 del campo | Situación | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | String |
ExecutedDateTime |
Opcional | DateTime |
EndedDate |
Opcional | Date |
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 utilizando 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 administración de cadenas de suministros, podría ser relevante para administración de cadenas de suministros 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:
- Nadie es responsable de supervisar constantemente la integración del 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 administración de cadenas de suministros. 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.
Limpiar mensajes procesados y cancelados del procesador de mensajes
Con el tiempo, los mensajes procesados y cancelados relacionados con sistemas MES de terceros pueden acumularse en el sistema, lo que puede afectar al rendimiento y a la gestión de datos. Por lo tanto, deberías limpiar periódicamente estos mensajes para mantener la eficiencia del sistema. Más información en Limpiar mensajes procesados y cancelados del procesador de mensajes.