Su Template de datos para la planificación de la producción
Su Template de datos para la planificación de la producción
- Atributos recomendados para recopilar
- Actividades clave que conviene seguir
- Guías de extracción para Microsoft Dynamics 365 Manufacturing
Atributos de planificación de la producción
| Nombre | Descripción | ||
|---|---|---|---|
| Orden de producción ProductionOrderNumber | Identificador único de una orden de producción, que sirve como ID del caso principal para hacer seguimiento de todas las actividades de planificación y ejecución relacionadas. | ||
| Descripción El número de orden de producción, denominado a menudo ProdId en Microsoft Dynamics 365, es el identificador central que vincula todos los eventos, materiales, recursos y costes asociados a un trabajo de fabricación específico. Permite analizar de principio a fin el ciclo de vida de la planificación y ejecución de una unidad de trabajo. En Process Mining, este atributo es esencial para agrupar los eventos relacionados en un solo caso. Analizar los procesos por número de orden de producción ayuda a identificar cuellos de botella, demoras y desviaciones del flujo de producción estándar, desde la creación y programación iniciales hasta la finalización y el cálculo de costes. Por qué es importante Este es el identificador fundamental del caso, necesario para agrupar todos los eventos relacionados y reconstruir el proceso de planificación de la producción de principio a fin para su análisis. Dónde obtenerlo Es el campo «ProdId» de la tabla «ProdTable» en Microsoft Dynamics 365 Manufacturing. Ejemplos WO-000456WO-000457WO-000458 | |||
| Hora del evento EventTime | Marca de tiempo precisa que indica cuándo ocurrió la actividad. | ||
| Descripción La hora del evento, o marca de tiempo, registra la fecha y hora exactas en que tuvo lugar una actividad específica. Estos datos son fundamentales para los análisis de Process Mining basados en el tiempo, como calcular los tiempos de ciclo, identificar demoras entre pasos y entender el rendimiento del proceso a lo largo del tiempo. En la planificación de la producción, este atributo permite medir duraciones como el tiempo de entrega de la planificación, las demoras en el inicio de la producción y el tiempo total de cumplimiento de las órdenes. Las marcas de tiempo precisas y ordenadas cronológicamente son esenciales para crear un modelo de proceso correcto y útil. Por qué es importante Esta marca de tiempo es esencial para ordenar los eventos, calcular la duración entre actividades y realizar análisis basados en el tiempo, como el cálculo del tiempo de ciclo y la identificación de cuellos de botella. Dónde obtenerlo Se encuentra en varias tablas de transacciones, por ejemplo, en «createdDateTime» de «ProdTable» o en los campos de fecha de transacción de «ProdRouteTrans», «ProdJournalRoute» y «ProdJournalBOM». Ejemplos 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Nombre de la actividad ActivityName | Nombre del evento o paso de negocio específico que tuvo lugar en el proceso de planificación de la producción. | ||
| Descripción El nombre de la actividad describe un paso del ciclo de vida de la planificación de la producción, como «Orden de producción creada», «Materiales recogidos para la producción» o «Producción iniciada». Estas actividades son los componentes básicos del mapa de procesos. Analizar la secuencia y la duración de estas actividades permite visualizar el flujo del proceso, identificar las rutas habituales, detectar ciclos de retrabajo y medir el tiempo dedicado a las distintas etapas. Este atributo es fundamental para entender qué ocurre en cada punto del proceso. Por qué es importante Este atributo define los pasos del proceso y permite crear un mapa de procesos y analizar el flujo, las variaciones y los cuellos de botella. Dónde obtenerlo Este valor suele obtenerse de los registros de eventos o mediante la correspondencia entre distintos cambios de estado y tipos de transacción en tablas como «ProdRouteTrans» y «ProdJournalBOM», así como de los cambios en los campos de estado de «ProdTable». Ejemplos Orden de producción creadaOrden de producción liberadaProducción iniciadaProducción notificada como terminada | |||
| Sistema de origen SourceSystem | Sistema de registro del que se extrajeron los datos. | ||
| Descripción Este atributo identifica el sistema de información de origen del que proceden los datos del evento. En esta vista del proceso, el valor sería siempre «Microsoft Dynamics 365 Manufacturing». En entornos con varios sistemas integrados, este campo es fundamental para conocer el linaje de los datos, resolver problemas de calidad y entender cómo contribuye cada sistema al proceso general. Permite saber con claridad de dónde proceden los datos analizados. Por qué es importante Aporta un contexto fundamental sobre el origen de los datos, necesario para la gobernanza de datos, la validación y la gestión de flujos de datos procedentes de varios sistemas empresariales. Dónde obtenerlo Es un valor estático que debe añadirse durante la extracción y transformación de los datos para indicar el origen del conjunto de datos. Ejemplos Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Última actualización de los datos LastDataUpdate | Marca de tiempo que indica cuándo se actualizaron o extrajeron por última vez del sistema de origen los datos de este evento. | ||
| Descripción Este atributo indica la fecha y hora de la extracción más reciente de datos del sistema de origen. Es un campo de metadatos fundamental para conocer la actualidad de los datos y del análisis. Saber cuándo se actualizaron los datos por última vez ayuda a analistas y usuarios de negocio a confiar en la información obtenida con la herramienta de Process Mining. También permite saber si los Dashboards muestran información en tiempo real o datos de un momento anterior, algo importante para tomar decisiones operativas. Por qué es importante Este atributo es fundamental para la gobernanza de datos, ya que permite a las personas usuarias conocer su actualidad y confiar en que la información del proceso es oportuna. Dónde obtenerlo Esta marca de tiempo se genera y se añade a cada registro durante el proceso de extracción, transformación y carga (ETL) de los datos. Ejemplos 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Cantidad real ActualQuantity | Cantidad de productos fabricados correctamente y notificados como terminados para la orden. | ||
| Descripción La cantidad real representa el número de unidades completadas que superaron los controles de calidad para una orden de producción determinada. Este valor se registra cuando la producción se notifica como terminada. Este atributo se utiliza para analizar el rendimiento y la eficiencia de la producción. Comparar la cantidad real con la cantidad planificada ayuda a calcular las tasas de desperdicio y a comprender las pérdidas de producción. También es un dato clave para analizar el rendimiento de producción y los Dashboards de utilización de la capacidad. Por qué es importante Es esencial para calcular el rendimiento de producción, las tasas de desperdicio y el rendimiento real, y permite conocer la eficiencia y el desempeño de la fabricación. Dónde obtenerlo Este valor suele proceder del campo 'QtyGood' de la tabla 'ProdTable' o de tablas relacionadas de registro de diarios, cuando se notifica una orden como terminada. Ejemplos 100985000 | |||
| Estado de la orden de producción ProductionOrderStatus | Indica el estado actual de la orden de producción en su ciclo de vida. | ||
| Descripción El estado de la orden de producción refleja su avance a lo largo del ciclo de fabricación. Entre los estados habituales de Dynamics 365 se encuentran Creado, Estimado, Programado, Liberado, Iniciado, Notificado como terminado y Finalizado. Este atributo muestra en qué punto se encuentra cada orden en un momento determinado. En Process Mining, analizar los cambios de estado es una de las principales formas de definir actividades y entender el flujo del proceso. Permite filtrar las órdenes que se encuentran en un estado específico, analizar el tiempo que pasan en cada estado e identificar las que están bloqueadas o retrasadas. Por qué es importante Este atributo ofrece una visión general del avance de una orden y es fundamental para filtrar, realizar comprobaciones de conformidad y analizar el tiempo dedicado a las distintas fases de producción. Dónde obtenerlo Es el campo «ProdStatus» de la tabla «ProdTable». Ejemplos ProgramadoLiberadoIniciadoFinalizado | |||
| Fecha de finalización planificada PlannedEndDate | La fecha y hora previstas para completar la orden de producción. | ||
| Descripción La fecha de finalización planificada es la hora prevista para completar una orden de producción, según la determina el motor de programación. Tiene en cuenta los tiempos de operación, los calendarios de los recursos y los tiempos de entrega para estimar cuándo estarán listos los productos terminados. En el análisis de procesos, este atributo es fundamental para evaluar el cumplimiento de las fechas de finalización. Comparar la fecha de finalización planificada con la marca de tiempo de finalización real (de la actividad «Producción notificada como terminada» o «Orden de producción finalizada») permite calcular el KPI de tasa de finalización puntual de la producción y ayuda a identificar las causas sistémicas de las entregas tardías. Por qué es importante Este atributo sirve de referencia para medir las tasas de finalización puntual y analizar la precisión de la programación de la producción. Dónde obtenerlo Corresponde al campo 'SchedEnd' de la tabla 'ProdTable'. Ejemplos 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Fecha de inicio planificada PlannedStartDate | La fecha y hora previstas para el inicio de la orden de producción. | ||
| Descripción La fecha de inicio planificada es un resultado clave del proceso de programación y representa la hora prevista para comenzar las actividades de producción de una orden. Se determina en función de la disponibilidad de materiales, la capacidad de los recursos y las fechas límite de la demanda. Este atributo es esencial para analizar el cumplimiento del programa. Al comparar la fecha de inicio planificada con la hora real de inicio de la producción (según la marca de tiempo de la actividad «Producción iniciada»), las organizaciones pueden medir la puntualidad, identificar las causas de los retrasos y calcular KPI como la tasa de cumplimiento del programa de producción. Por qué es importante Sirve como referencia para medir el cumplimiento del programa e identificar los retrasos entre la planificación y el inicio real de la producción. Dónde obtenerlo Corresponde al campo 'SchedStart' de la tabla 'ProdTable'. Ejemplos 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Número de producto ProductNumber | Identificador único del artículo que se fabrica. | ||
| Descripción El número de producto, o ID de artículo, especifica el producto terminado que se fabricará mediante la orden de producción. Vincula el proceso de producción con el producto correspondiente, así como con su lista de materiales y sus instrucciones de ruta. Analizar el proceso por número de producto ayuda a descubrir variaciones específicas de cada producto en el ciclo de fabricación. Puede revelar que ciertos productos tienen tiempos de ciclo más largos, requieren más retrabajo o sufren retrasos con mayor frecuencia. Esta información resulta útil para los equipos de ingeniería de productos y procesos. Por qué es importante Permite analizar las variaciones del proceso según el producto fabricado y ayuda a identificar cuellos de botella o problemas de calidad específicos de cada producto. Dónde obtenerlo Corresponde al campo 'ItemId' de la tabla 'ProdTable'. Ejemplos FG-1001FG-2050ASSY-500B | |||
| Planta de producción ProductionPlant | Instalación o planta donde se ejecuta la orden de producción. | ||
| Descripción La planta de producción identifica la ubicación física o instalación responsable del proceso de fabricación. Es una dimensión organizativa clave para segmentar y comparar el desempeño de la producción. En Process Mining, este atributo permite comparar el desempeño de distintas plantas. Los analistas pueden comparar los tiempos de ciclo, la utilización de los recursos y el cumplimiento de los procesos estándar entre instalaciones para identificar buenas prácticas o detectar cuáles podrían necesitar mejoras operativas. Es esencial para analizar la utilización de la capacidad. Por qué es importante Permite comparar y evaluar el desempeño de distintas instalaciones de fabricación, lo que ayuda a identificar buenas prácticas y problemas específicos de cada área. Dónde obtenerlo Corresponde al campo 'InventSiteId' de la tabla 'ProdTable'. Ejemplos SITE-ASITE-BMain-WH | |||
| Prioridad de producción ProductionPriority | Valor que indica la urgencia o prioridad de la orden de producción. | ||
| Descripción Los planificadores utilizan la prioridad de producción para gestionar la secuencia de trabajo en la planta. Las órdenes de mayor prioridad pueden acelerarse, lo que podría alterar el programa previsto para otras órdenes. Analizar este atributo ayuda a comprender con qué frecuencia las órdenes urgentes o de alta prioridad alteran los planes de producción. Seguir los cambios de prioridad durante el ciclo de vida de una orden puede revelar inestabilidad en la demanda o en la planificación. Este dato es clave para el Dashboard «Tendencias de producción acelerada» y el KPI «Tasa de producción acelerada». Por qué es importante Ayuda a identificar la frecuencia y el impacto de las órdenes aceleradas, que pueden indicar inestabilidad en la planificación o una gestión operativa reactiva. Dónde obtenerlo Puede ser un campo estándar o personalizado de 'ProdTable'. La configuración suele variar según la empresa. Ejemplos NormalAltaUrgente | |||
| Tipo de producción ProductionType | Clasificación de la orden de producción, por ejemplo, estándar, retrabajo o vinculada a un proyecto. | ||
| Descripción El tipo de producción clasifica la orden según su finalidad. Por ejemplo, una orden «Estándar» corresponde a la producción habitual para inventario; una orden de «Retrabajo» sirve para corregir defectos de un artículo fabricado anteriormente; y una orden de «Proyecto» está vinculada a un proyecto específico de un cliente. Este atributo es importante para crear vistas de análisis comparables. El proceso de una orden de retrabajo es, por naturaleza, distinto del de una orden estándar. Segmentar el análisis del proceso por tipo de producción permite hacer comparaciones pertinentes y comprender los retos y flujos propios de cada tipo. Por qué es importante Este atributo permite segmentar el análisis, ya que los distintos tipos de orden, como «Estándar» y «Retrabajo», siguen procesos diferentes y tienen distintas expectativas de desempeño. Dónde obtenerlo Corresponde al campo 'ProdType' de la tabla 'ProdTable'. Ejemplos EstándarRetrabajoProyecto | |||
| Usuario UserId | Identificador del usuario que realizó la actividad o es responsable de ella. | ||
| Descripción El ID de usuario identifica al empleado o a la cuenta del sistema que ejecutó un paso del proceso, como liberar una orden o notificar que se completó. Esta información permite saber quién realiza el trabajo dentro del proceso. Analizar el proceso por usuario ayuda a comprender cómo se distribuye la carga de trabajo, detectar necesidades de formación, comparar el desempeño de distintas personas o equipos e investigar las desviaciones asociadas a usuarios específicos. También es importante para el cumplimiento y la trazabilidad de auditoría. Por qué es importante Permite analizar el desempeño del proceso por usuario o equipo, ayuda a detectar oportunidades de automatización y proporciona un registro de auditoría de las actividades clave. Dónde obtenerlo Se encuentra en campos como 'modifiedBy' o 'createdBy' de distintas tablas, o en campos de usuario de tablas de registro de transacciones como 'ProdJournalTable'. Ejemplos j.smithm.jonesAX_BATCH_SVC | |||
| Cantidad planificada PlannedQuantity | Cantidad del artículo que se prevé producir. | ||
| Descripción La cantidad planificada es el número de unidades que se prevé fabricar para una orden de producción determinada. Por lo general, esta cantidad depende de la demanda de los pedidos de venta, los requisitos de stock de seguridad o la planificación maestra. Este atributo sirve de referencia para métricas de desempeño como el rendimiento y el desperdicio. Al comparar la cantidad planificada con la cantidad real producida, los planificadores pueden supervisar la eficiencia de la producción y las variaciones en el consumo de materiales. Es un dato fundamental para planificar la capacidad y los requisitos de materiales. Por qué es importante Es la cantidad de referencia para medir el rendimiento de producción y las tasas de desperdicio, comparándola con la cantidad real producida. Dónde obtenerlo Corresponde al campo 'QtySched' de la tabla 'ProdTable'. Ejemplos 1005000250 | |||
| Disponibilidad de materiales MaterialAvailabilityStatus | Indica si están disponibles las materias primas necesarias para la orden de producción. | ||
| Descripción Este atributo registra si están listos los componentes necesarios para la producción. Puede reflejar estados como «Disponible», «Pedido» o «Faltante». Esta información es fundamental para que los planificadores determinen si una orden de producción puede comenzar según lo previsto. En Process Mining, este atributo es clave para diagnosticar las causas de los retrasos en el inicio de la producción. Al relacionar este estado con el tiempo transcurrido entre «Orden de producción liberada» y «Producción iniciada», los analistas pueden cuantificar el impacto de la escasez de materiales en el cumplimiento del programa y el tiempo de ciclo general. Esto contribuye directamente al Dashboard «Impacto de los retrasos por disponibilidad de materiales». Por qué es importante Es clave para comprender y cuantificar los retrasos en el inicio de la producción causados por la escasez de materiales, y relaciona el desempeño de la cadena de suministro con la eficiencia de fabricación. Dónde obtenerlo Este estado no suele corresponder a un único campo. Se calcula comprobando las existencias disponibles de todos los artículos de la lista de materiales (BOM) de la orden de producción mediante la tabla 'InventSum'. Ejemplos Totalmente disponibleFaltante parcialNo disponible | |||
| Hora de finalización EndTime | Marca de tiempo precisa que indica cuándo se completó la actividad. | ||
| Descripción La hora de finalización marca cuándo concluye una actividad específica. La Hora de inicio indica cuándo comienza; la hora de finalización permite conocer la duración real o el tiempo de procesamiento de ese paso. En Process Mining, disponer de la hora de inicio y la hora de finalización de las actividades permite analizar con más detalle los tiempos de espera y de procesamiento. Ayuda a distinguir el tiempo dedicado activamente a una actividad del tiempo de espera hasta que comienza el siguiente paso, algo fundamental para analizar los cuellos de botella en detalle. Por qué es importante Permite calcular el tiempo de procesamiento de una actividad y distinguirlo del tiempo de espera, lo que facilita un análisis más preciso de los cuellos de botella. Dónde obtenerlo A menudo se calcula a partir de otros datos. Por ejemplo, la hora de finalización de «Producción iniciada» podría corresponder a la hora de inicio de «Operación completada». Algunos registros incluyen una marca de tiempo de finalización explícita. Ejemplos 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Inicio puntual ProductionScheduleAdherence | Indicador booleano que es verdadero si la orden de producción comenzó en la fecha de inicio planificada o antes. | ||
| Descripción Este atributo calculado ofrece un indicador binario sencillo del cumplimiento del programa al inicio de la producción. Compara la marca de tiempo del inicio real (evento «Producción iniciada») con el atributo 'PlannedStartDate'. Este indicador resulta muy útil para crear Dashboards y KPI claros y concisos, como la «Tasa de cumplimiento del programa de producción». Permite filtrar y agregar datos fácilmente para conocer qué porcentaje de las órdenes comienza a tiempo y analizar las características de las que sufren retrasos, sin tener que comparar fechas directamente en la herramienta de análisis. Por qué es importante Simplifica los informes y el cálculo del KPI de cumplimiento del programa, y facilita filtrar y agregar las órdenes puntuales y las retrasadas. Dónde obtenerlo Es una métrica calculada. La lógica es: EventTime de «Producción iniciada» <= PlannedStartDate. Ejemplos truefalse | |||
| Línea de producción ProductionLine | Línea de producción, centro de trabajo o grupo de recursos específico asignado a la orden de producción. | ||
| Descripción La línea de producción identifica la máquina, celda o grupo de recursos específico que realizará las operaciones de fabricación. Ofrece un nivel de detalle mayor que la planta de producción. Analizar el proceso por línea de producción es fundamental para estudiar en detalle la capacidad y la utilización de los recursos. Ayuda a detectar centros de trabajo sobrecargados, comparar la eficiencia de distintas líneas que fabrican el mismo producto e identificar cuellos de botella asociados a recursos concretos que podrían pasar inadvertidos al analizar la planta en conjunto. Por qué es importante Permite analizar en detalle la utilización y el desempeño de los recursos, y ayuda a detectar centros de trabajo sobrecargados o líneas ineficientes. Dónde obtenerlo Esta información suele encontrarse en el campo 'WrkCtrId' de las transacciones de ruta de producción (tablas 'ProdRoute' o 'ProdRouteTrans'). Ejemplos LINE-01LINE-02CNC-A | |||
| Número de orden de calidad QualityOrderNumber | Identificador de una orden de control de calidad vinculada a la orden de producción. | ||
| Descripción Cuando se requiere una inspección de calidad, Dynamics 365 suele generar una orden de calidad. Este atributo vincula el proceso de producción con el de aseguramiento de la calidad y registra el ID de la orden de calidad asociada. Este vínculo ofrece una vista más completa del proceso de principio a fin, que incluye los pasos de gestión de calidad. Ayuda a analizar cómo afectan las inspecciones de calidad a los tiempos de entrega de producción, identificar retrasos en el proceso de calidad y comprender la frecuencia de las inspecciones para distintos productos o líneas de producción. Por qué es importante Vincula el proceso de producción con el de aseguramiento de la calidad y permite analizar cómo afectan las inspecciones de calidad a los tiempos de entrega generales. Dónde obtenerlo Esta información se almacena en tablas de gestión de calidad, como 'InventQualityOrderTable', y debe vincularse con la orden de producción. Ejemplos QO-00123QO-00124QO-00125 | |||
| Número de revisiones ProductionOrderRevisionNumber | Número de veces que se ha ajustado un plan de producción desde su creación inicial. | ||
| Descripción Este atributo registra el número de revisiones o cambios importantes realizados en una orden de producción después de programarla o liberarla, como cambios en la cantidad, las fechas o la ruta. Un valor alto indica una mayor inestabilidad del plan. Es una medida directa del KPI «Tasa de revisión del plan de producción». Su análisis ayuda a identificar las causas de la inestabilidad en la planificación, como los cambios frecuentes en la demanda o una planificación inicial imprecisa. Cuantifica el retrabajo y el esfuerzo de reprogramación, que suelen generar ineficiencias. Por qué es importante Mide directamente la estabilidad de la planificación y contribuye al KPI «Tasa de revisión del plan de producción», al destacar los procesos con cambios y retrabajo excesivos. Dónde obtenerlo Es un atributo calculado que requiere contar las veces que se produce la actividad «Orden de producción ajustada» en cada caso. Ejemplos 012 | |||
| Retraso en el inicio de la producción ProductionStartDelay | Tiempo transcurrido entre la liberación de la orden y el inicio real de la producción. | ||
| Descripción Esta duración calculada mide el tiempo de espera o de cola en la planta. Es la diferencia entre la actividad «Orden de producción liberada» y la actividad «Producción iniciada». Este KPI es fundamental para el Dashboard «Análisis de retrasos en la asignación de recursos», ya que señala los retrasos que se producen una vez terminada la planificación y lista la orden para su ejecución. Los valores altos pueden indicar problemas de disponibilidad de recursos, preparación de materiales o flujo de información hacia la planta, y ofrecen un objetivo claro para las mejoras operativas. Por qué es importante Mide con precisión el retraso entre la disponibilidad de la orden y el inicio de la producción, y ayuda a identificar cuellos de botella relacionados con la disponibilidad de recursos o la preparación de la planta. Dónde obtenerlo Es una métrica calculada: Timestamp('Producción iniciada') - Timestamp('Orden de producción liberada'). Ejemplos 0d 4h 15m1d 2h 0m0d 1h 30m | |||
Actividades de planificación de la producción
| Actividad | Descripción | ||
|---|---|---|---|
| Orden de producción creada | Esta actividad marca la creación de una orden de producción, que formaliza la demanda de una cantidad específica de un producto. Suele registrarse cuando se confirma una orden de producción planificada y se crea en el sistema un registro oficial con un ID único. | ||
| Por qué es importante Este es el evento de inicio principal del proceso de producción. Analizar el tiempo transcurrido desde su creación hasta los pasos posteriores permite medir el tiempo de entrega y la eficiencia de la planificación general. Dónde obtenerlo Este evento se infiere a partir de la marca de tiempo de creación del registro de la orden de producción en ProdTable. El estado inicial suele ser «Creado». Capturar Registre la marca de tiempo de creación de una nueva entrada en ProdTable cuyo ProdStatus sea «Creado». Tipo de evento inferred | |||
| Orden de producción finalizada | Esta es la actividad final y representa el cierre financiero de la orden de producción. Se han calculado y contabilizado todos los costes, y ya no se pueden registrar más transacciones en la orden. | ||
| Por qué es importante Marca la finalización real de la orden, tanto desde el punto de vista físico como financiero. Las demoras entre «Notificado como terminado» y «Finalizado» pueden indicar problemas en la contabilidad de costes o en los procesos de cierre financiero. Dónde obtenerlo Este es el cambio de estado final que se registra cuando el campo «ProdStatus» de «ProdTable» se establece en «Finalizado». Se produce al ejecutar el cálculo de costes y finalizar la orden. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Finalizado». Tipo de evento inferred | |||
| Orden de producción liberada | Esta actividad indica que la orden de producción se ha aprobado y autorizado para ejecutarse en la planta. Es un hito clave que libera documentos como las tarjetas de trabajo y las tarjetas de ruta. | ||
| Por qué es importante Este es el traspaso oficial de la planificación a la ejecución. El tiempo entre «Programado» y «Liberado» puede indicar demoras en las aprobaciones o las comprobaciones finales, mientras que el tiempo entre «Liberado» e «Iniciado» mide la preparación de la planta. Dónde obtenerlo Se registra cuando el estado de la orden de producción en ProdTable cambia a «Liberado». El cambio se produce por una acción manual o automatizada de una persona usuaria. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Liberado». Tipo de evento inferred | |||
| Orden de producción programada | Esta actividad marca la programación de la orden de producción, que asigna recursos, fechas y horas específicos a sus operaciones. Puede incluir la programación de operaciones o una programación más detallada de los trabajos. | ||
| Por qué es importante La programación es fundamental para planificar la capacidad y gestionar los recursos. Analizar cuánto se tarda en programar las órdenes y el intervalo hasta su liberación permite detectar limitaciones de planificación y capacidad. Dónde obtenerlo Se registra cuando el estado de la orden de producción en ProdTable cambia a «Programado». El cambio se produce cuando una persona ejecuta una función de programación. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Programado». Tipo de evento inferred | |||
| Producción iniciada | Marca el inicio del trabajo físico de producción de la orden en la planta. Suele registrarse cuando se inicia la primera operación o trabajo desde un terminal de planta o mediante la contabilización de un diario. | ||
| Por qué es importante Esta actividad proporciona la hora real de inicio de la producción, un dato clave para calcular las demoras de inicio, el cumplimiento del programa y los tiempos de entrega reales. Dónde obtenerlo Se registra cuando el estado de la orden de producción en ProdTable cambia a «Iniciado». A menudo, el cambio se produce al contabilizar un diario de tarjeta de trabajo o de tarjeta de ruta para la primera operación. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Iniciado». Tipo de evento inferred | |||
| Producción notificada como terminada | Indica que el proceso de fabricación de la cantidad especificada del producto ha finalizado físicamente y que los productos terminados ya están en el inventario. Esta actualización de estado clave activa transacciones de inventario. | ||
| Por qué es importante Marca el fin de la producción física. Es fundamental para calcular el porcentaje de órdenes terminadas a tiempo, la duración real de la producción y el rendimiento. Dónde obtenerlo Se registra cuando el estado de la orden de producción en ProdTable cambia a «Notificado como terminado». El cambio se produce al contabilizar un diario de notificación de producto terminado. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Notificado como terminado». Tipo de evento inferred | |||
| Inspección de calidad aprobada | Representa la finalización y validación satisfactorias de una orden de calidad asociada a la ejecución de producción. Confirma que los artículos fabricados cumplen los estándares de calidad requeridos. | ||
| Por qué es importante Este es un hito clave del proceso de calidad. El tiempo entre la generación de la orden de calidad y la aprobación de la inspección permite evaluar la eficiencia del equipo de aseguramiento de la calidad. Dónde obtenerlo Se infiere a partir de un cambio de estado del registro de InventQualityOrderTable a «Aprobado». El valor de estado específico puede variar. Capturar Detecte la marca de tiempo en que el estado del registro asociado de InventQualityOrderTable se actualiza a «Aprobado». Tipo de evento inferred | |||
| Materiales recogidos para la producción | Indica que las materias primas necesarias para la orden de producción se han recogido del almacén y están listas para su consumo. Este evento se registra al completar un trabajo de recogida de materias primas o al contabilizar un diario de lista de selección. | ||
| Por qué es importante Esta actividad es un paso clave para iniciar la producción. Las demoras entre la programación y la recogida de materiales ponen de manifiesto problemas en las operaciones del almacén o en la disponibilidad de materiales. Dónde obtenerlo Suele ser un evento explícito registrado en las tablas de gestión de almacenes (WHSWorkTable) o en los diarios de inventario (InventJournalTrans) vinculados a la orden de producción. Capturar Registre la marca de tiempo de contabilización del diario de la lista de selección asociado a la orden de producción. Tipo de evento explicit | |||
| Operación completada | Esta actividad indica que se ha completado una operación o un paso de la ruta de producción. Por lo general, una orden de producción incluye varios eventos de este tipo. | ||
| Por qué es importante Analizar el tiempo entre operaciones ayuda a identificar cuellos de botella en el propio proceso de producción y ofrece una visión más detallada del flujo en la planta. Dónde obtenerlo Es un evento explícito que se registra al contabilizar los diarios de tarjetas de ruta (ProdJournalRoute) de cada operación e indica que ese paso se ha completado. Capturar Registre la marca de tiempo de contabilización de cada registro de ProdJournalRoute asociado a la orden de producción. Tipo de evento explicit | |||
| Orden de calidad generada | Se ha creado una orden de calidad para inspeccionar el resultado de la orden de producción. Este evento marca el inicio del proceso de aseguramiento de la calidad de los productos fabricados. | ||
| Por qué es importante El seguimiento del proceso de calidad es importante para conocer el tiempo de entrega total. Las demoras en la inspección pueden impedir que los productos se envíen o se utilicen en procesos posteriores. Dónde obtenerlo Es un evento explícito basado en la creación de un registro en InventQualityOrderTable que hace referencia a la orden de producción de origen. Capturar Registre la marca de tiempo de creación de la orden de calidad en InventQualityOrderTable, vinculada al ID de la orden de producción. Tipo de evento explicit | |||
| Orden de producción ajustada | Representa un cambio importante en la orden de producción después de su liberación, como una modificación de la cantidad o de la fecha. Este evento se infiere al comparar campos clave antes y después del cambio. | ||
| Por qué es importante Los ajustes frecuentes indican inestabilidad en la planificación o una demanda volátil, lo que genera ineficiencias y retrabajo. Su seguimiento permite cuantificar la frecuencia y el impacto de estos cambios. Dónde obtenerlo Se infiere mediante el análisis de los registros de cambios o la comparación de instantáneas del registro de ProdTable en campos como «QtySched» o «SchedEnd», una vez que el estado de la orden es «Liberado». Capturar Identifique los cambios en campos clave de ProdTable, como la cantidad o las fechas, posteriores a la marca de tiempo del evento «Liberado». Tipo de evento calculated | |||
| Orden de producción cancelada | Representa la cancelación de una orden de producción antes de completarla. Es un final alternativo no satisfactorio del proceso. | ||
| Por qué es importante El seguimiento de las cancelaciones ayuda a identificar las causas de los fallos del proceso, como cambios en la demanda o errores de planificación. Una tasa elevada de cancelaciones puede indicar problemas sistémicos. Dónde obtenerlo Este es un estado final alternativo que se infiere a partir de un cambio de estado. El estado exacto puede variar, pero suele implicar restablecer el estado de la orden a uno anterior y marcarla como cancelada. Capturar Detecte un cambio de estado que indique una cancelación. Puede ser necesario analizar el sistema para identificarlo. Tipo de evento inferred | |||
| Orden de producción estimada | Representa el cálculo del consumo estimado de materiales y costes de la orden de producción. Es un paso clave de planificación para conocer los requisitos financieros y de materiales antes de continuar. | ||
| Por qué es importante Las demoras en la estimación pueden convertirse en un cuello de botella importante durante la planificación. El seguimiento de esta actividad ayuda a detectar ineficiencias en la planificación de costes y materiales. Dónde obtenerlo Se registra cuando el estado de la orden de producción en ProdTable cambia a «Estimado». El cambio se produce cuando una persona ejecuta la función «Estimar» en la orden. Capturar Detecte la marca de tiempo en que el campo ProdStatus de ProdTable cambia a «Estimado». Tipo de evento inferred | |||
Guías de extracción
Pasos
- Abra el espacio de trabajo Data Management: Inicie sesión en Microsoft Dynamics 365 Finance and Operations. Utilice la barra de búsqueda para encontrar y abrir el espacio de trabajo
Data management. - Cree un proyecto de exportación: En el espacio de trabajo, seleccione el mosaico
Exportpara crear un proyecto de exportación de datos. Asígnele un nombre descriptivo, comoProcessMind_Production_Orders. - Seleccione el formato del archivo de exportación: En la configuración del proyecto, elija el formato de datos que desea exportar, como CSV o Excel. Configure la opción
Entityy especifique los detalles del formato. Se recomienda CSV por su rendimiento y compatibilidad. - Añada las entidades de datos necesarias: Añada al proyecto las entidades de datos necesarias para capturar todos los eventos de las órdenes de producción. Debe incluir cada una de estas entidades:
Órdenes de producción,Production order route transactions,Inventory quality ordersyProduction picking list journal lines. En cada entidad, seleccione todos los campos pertinentes indicados en la sección de consultas. - Aplique filtros a los datos: En cada entidad, utilice la opción
Filtrarpara delimitar la exportación. Como mínimo, filtre porCompanypara seleccionar la entidad jurídica correcta. Se recomienda encarecidamente aplicar un filtro de fechas en un campo clave, comoCreation datede la entidadÓrdenes de producción, para limitar el volumen de datos a un período manejable, por ejemplo, los últimos 6 meses. - Configure exportaciones incrementales (opcional): Para realizar análisis continuos, configure el proyecto para exportar datos de forma incremental. Puede hacerlo mediante el seguimiento de cambios en las entidades de origen, lo que permite extraer solo los registros nuevos o modificados desde la última exportación y reducir considerablemente el tiempo necesario.
- Ejecute la tarea de exportación: Cuando haya configurado el proyecto, inicie la exportación haciendo clic en
Exporten el panel de acciones. Puede ejecutarla de inmediato o programarla como una tarea por lotes recurrente. - Descargue los archivos exportados: Cuando la tarea de exportación termine correctamente, abra el historial de tareas. Descargue el paquete ZIP, que contiene archivos de datos independientes para cada entidad incluida.
- Transforme los datos en un Registro de eventos: Los archivos exportados contienen datos sin procesar de las tablas, no un Registro de eventos con formato. Debe utilizar una herramienta externa, como un script de Python, Power Query en Excel o Power BI, o una herramienta ETL, para procesar y combinar los datos de estos archivos. Aplique la lógica de transformación descrita en la sección de consultas para convertir los campos de fecha y estado de las distintas entidades en un único archivo de Registro de eventos, con una fila por actividad.
- Estructure el Registro de eventos final: Asegúrese de que el archivo CSV transformado incluya las columnas obligatorias:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemyLastDataUpdate, además de los atributos recomendados. El archivo debe tener una fila de encabezados y estar listo para cargarse en ProcessMind.
Configuración
- Entidades de datos clave: Esta extracción requiere exportar varias entidades y combinarlas posteriormente. Las principales son
Órdenes de producción(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtro de período: Para controlar el volumen de datos, aplique siempre un filtro de fechas. Se recomienda filtrar la entidad
Órdenes de producciónporCreation date(CREATEDDATETIME) y limitar el período a los últimos 3 a 6 meses. Así podrá capturar procesos recientes y completos sin sobrecargar el sistema. - Filtro de empresa: Es fundamental filtrar por la empresa o entidad jurídica que desea analizar. Para ello, utilice la opción
Filtraren cada entidad del proyecto de exportación. - Carga completa o incremental: La extracción inicial debe ser completa. Para las actualizaciones posteriores, se recomienda configurar el seguimiento de cambios en las entidades y realizar exportaciones incrementales, con el fin de mejorar el rendimiento y reducir la carga de datos.
- Requisitos previos: La persona que ejecute la exportación debe tener los roles de seguridad adecuados, que suelen incluir
Data management administratoro un rol con permisos para acceder a las entidades de datos necesarias.
Consulta de ejemplo sql
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Pasos
- Configure BYOD en Dynamics 365: Asegúrese de que la función «Bring your own database» esté configurada en su entorno de Dynamics 365 Finance and Operations. Para ello, debe configurar una base de datos Azure SQL y la exportación de datos desde Dynamics 365.
- Publique las entidades necesarias: En el espacio de trabajo «Data management», abra «Data entities». Busque y publique en su base de datos BYOD estas entidades clave: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Asegúrese de configurarlas para la exportación recurrente.
- Verifique la sincronización de datos: Confirme que los datos de las entidades publicadas se sincronicen correctamente y de forma periódica con la base de datos Azure SQL de destino. Revise el historial de tareas de exportación para detectar errores.
- Conéctese a la base de datos BYOD: Utilice un cliente SQL, como SQL Server Management Studio (SSMS) o Azure Data Studio, para conectarse a la base de datos Azure SQL donde se encuentran sus datos de Dynamics 365.
- Prepare la consulta SQL: Abra una ventana de consulta nueva y copie la consulta SQL completa incluida en este documento.
- Configure los parámetros de la consulta: Busque las variables de marcador de posición en la consulta. Sustituya '{StartDate}', '{EndDate}' y '{CompanyCode}' por el período deseado y el DataAreaId de la empresa específica que desea analizar.
- Ejecute la consulta: Ejecute la consulta SQL modificada en la base de datos BYOD. El tiempo de ejecución dependerá del volumen de datos y del período especificado.
- Revise los resultados: Cuando termine la consulta, compruebe que los resultados incluyan las columnas y los datos esperados para todas las actividades extraídas. El conjunto de resultados constituye el Registro de eventos.
- Exporte el Registro de eventos: Exporte los resultados de la consulta a un archivo CSV. La mayoría de los clientes SQL incluyen una función para guardar los resultados directamente en un archivo.
- Prepare el archivo para ProcessMind: Asegúrese de que el archivo CSV exportado tenga codificación UTF-8 y que los encabezados de columna coincidan con los nombres de atributos que requiere ProcessMind, como CaseId, Activity y Timestamp. La consulta incluida ya utiliza los alias correctos.
Configuración
- Entidades de datos clave: La consulta requiere que las siguientes entidades se hayan exportado a su instancia BYOD:
PRODTABLE: Contiene la información principal de las órdenes de producción y su estado.PRODROUTETRANS: Proporciona detalles sobre las operaciones de producción individuales y su finalización.INVENTPICKINGLISTJOUR: Registra la preparación de materiales para las órdenes de producción.INVENTQUALITYORDERTABLE: Registra las órdenes de control de calidad vinculadas a la producción.
- Período: Se recomienda empezar con un período limitado, por ejemplo, entre 3 y 6 meses de datos, para que el rendimiento de la consulta sea manejable. La consulta filtra por la fecha de creación de la orden de producción (
CREATEDDATETIMEdePRODTABLE). - Filtro por código de empresa: El campo
DATAREAIDpermite filtrar los datos de una empresa o entidad jurídica específica. Debe sustituir el marcador de posición'{CompanyCode}'por el ID correspondiente, por ejemplo, 'usmf'. - Requisitos previos: Este método requiere acceso de administrador del sistema a Dynamics 365 Finance and Operations para configurar BYOD, así como permisos de colaborador en la base de datos Azure SQL para ejecutar consultas.
- Rendimiento: Si trabaja con conjuntos de datos muy grandes que abarcan varios años o empresas, considere ejecutar la consulta fuera de las horas de mayor actividad. También puede dividir la extracción en períodos más cortos y combinar los resultados posteriormente.
Consulta de ejemplo sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; Pasos
- Confirme que Power BI Desktop u otra herramienta aprobada que incluya Power Query esté disponible y que la persona usuaria tenga autorización para leer las entidades de datos necesarias de Microsoft Dynamics 365 Manufacturing. Confirme la URL del entorno, el alcance de la entidad jurídica o empresa y el método de autenticación aprobado.
- En Power BI Desktop, seleccione Get data y elija el conector aprobado de Dynamics 365 o la conexión OData o Dataverse específica de su organización. Utilice [Your Dynamics 365 environment connection] y [Your credentials] según la configuración del administrador. No dé por sentado que una entidad, un punto de conexión o una ruta de menú determinados están disponibles en todas las implementaciones.
- Seleccione la entidad de encabezado de órdenes de producción, la entidad de operaciones o rutas de órdenes de producción, la entidad de preparación de materiales o listas de preparación, las entidades de contabilización de producción, la entidad de órdenes de calidad y cualquier entidad aprobada de auditoría, historial o seguimiento de cambios necesaria para identificar cambios de estado. Sustituya cada referencia de origen de la consulta por la entidad o consulta correspondiente disponible en su entorno.
- Configure el alcance de la extracción. Aplique [Start date parameter], [End date parameter] y [Your company or legal entity filter]. Limite la consulta a las órdenes de producción de las plantas, los productos, los tipos de orden y los estados necesarios. Conserve las marcas de tiempo de origen que permitan distinguir la creación, la estimación, la programación, la preparación, la liberación, el ajuste, el inicio, la finalización de operaciones, el registro como terminado, los controles de calidad, el cierre y la cancelación.
- En Power Query, estandarice los nombres de las columnas de origen y los tipos de datos. Convierta las marcas de tiempo de los eventos a un tipo de fecha y hora uniforme y normalice los identificadores, los valores de estado, empresa y planta, los números de producto, las personas usuarias, las cantidades y las prioridades. Si un campo de origen no está disponible, devuelva un valor nulo en lugar de inventar uno. Utilice el número de orden de producción como identificador del caso.
- Cree una tabla de eventos por actividad. Cada tabla debe devolver ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity y ProductionPriority. El nombre de la actividad debe ser un valor fijo que coincida con uno de los 13 nombres obligatorios.
- Identifique Production Order Adjusted únicamente a partir de una fuente aprobada de historial anterior y posterior, auditoría o seguimiento de cambios. Compare campos pertinentes, como la cantidad, las fechas planificadas, el estado, la planta, el producto y la prioridad. Genere una fila de ajuste por cada cambio que cumpla los criterios y utilice la marca de tiempo registrada del cambio. No deduzca un ajuste basándose únicamente en la instantánea actual de la orden de producción.
- Combine las 13 tablas de actividades con UNION ALL. Elimine las filas sin número de orden de producción o sin marca de tiempo del evento, pero no elimine duplicados legítimos de finalizaciones de operaciones, ajustes o eventos de calidad. Ordene por ProductionOrderNumber y EventTime, con un criterio secundario determinista cuando esté disponible.
- Cargue la tabla resultante en Power BI o expórtela como CSV u otro formato de Registro de eventos compatible con ProcessMind. Asegúrese de que los encabezados exportados sean exactamente ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity y ProductionPriority.
- Antes de cargar los datos en ProcessMind, valide que cada actividad obligatoria aparezca como una fila explícita del Registro de eventos, que las marcas de tiempo utilicen una zona horaria uniforme, que ProductionOrderNumber tenga un valor y que LastDataUpdate indique la actualización de la extracción. ProcessMind lee el Registro de eventos tal como está y no genera los eventos que falten.
Configuración
- Conexión: Utilice el conector de Power Query y el método de autenticación aprobados para el entorno de Dynamics 365. Sustituya [Your Dynamics 365 environment connection] y [Your credentials] por los valores aprobados por su organización.
- Entidades de origen: Seleccione las entidades de encabezado de órdenes de producción, operaciones o rutas, preparación de materiales o listas de preparación, contabilización de producción y órdenes de calidad, así como las entidades aprobadas de auditoría o seguimiento de cambios disponibles en el entorno. Los nombres y la disponibilidad de las entidades varían según la implementación; confírmelos en el explorador de metadatos.
- Período: Empiece con un período de entre 3 y 6 meses. Cuando sea posible, aplique filtros de EventTime en el origen y amplíe el período al validar órdenes de producción de larga duración o transiciones de estado históricas.
- Filtros de empresa y planta: Aplique [Your company or legal entity filter] y, cuando corresponda, el filtro de planta de producción necesario. No utilice un filtro de empresa genérico si el entorno contiene varias entidades jurídicas con números de orden coincidentes.
- Filtros de órdenes de producción: Filtre por los tipos de orden de producción, productos, plantas, estados y rangos de números de orden necesarios. No excluya las órdenes canceladas o cerradas si esos resultados son necesarios para analizar el proceso.
- Inclusión de eventos: Conserve los eventos repetidos de finalización de operaciones, preparación de materiales, calidad y ajustes. No reduzca el Registro de eventos a una fila por orden de producción.
- Zona horaria: Convierta todas las marcas de tiempo de origen a una única zona horaria documentada. Conserve la marca de tiempo de origen o el desfase de zona horaria cuando el origen los proporcione.
- Metadatos de actualización: Rellene LastDataUpdate con la marca de tiempo de actualización o extracción en cada fila. Si todo el conjunto de datos se extrae en una sola actualización, puede utilizar la misma marca de tiempo para todas las filas.
- Rendimiento: Aplique los filtros de fecha, empresa, planta y orden en el origen. Seleccione solo las columnas necesarias, evite combinaciones innecesarias, prepare las consultas de origen reutilizables y considere la actualización incremental para conjuntos de datos grandes.
- Requisitos previos: Power BI Desktop o un entorno aprobado para Power Query, acceso de red al entorno de Dynamics 365, permisos de lectura válidos para todas las entidades seleccionadas y cualquier acceso necesario a Dynamics 365 Manufacturing, almacén, calidad, auditoría o seguimiento de cambios.
- Datos que dependen de la configuración: Si un origen necesario para un evento no está habilitado, utilice [Configure based on your system] y documente el origen que falta. No sustituya eventos históricos por una instantánea del estado actual.
Consulta de ejemplo sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted ¿Listo para empezar?
Con este Template completo, dispone de todo lo necesario para empezar a extraer y analizar los datos de planificación de la producción. Empiece hoy mismo a optimizar sus operaciones para alcanzar la máxima eficiencia.
Alcance la máxima eficiencia: agilice hoy la planificación de la producción
Localice los cuellos de botella y reduzca un 30 % o más el tiempo de ciclo de producción.
No se requiere tarjeta de crédito. La configuración lleva solo unos minutos.