Su Plantilla de Datos de Planificación de la Producción
Su Plantilla de Datos de Planificación de la Producción
- Atributos recomendados para recopilar
- Actividades clave para el seguimiento
- Guía de extracción para Microsoft Dynamics 365 Manufacturing
Atributos de Planificación de Producción
| Nombre | Descripción | ||
|---|---|---|---|
| Pedido de Producción ProductionOrderNumber | El identificador único de un pedido de producción, que sirve como ID de caso principal para el seguimiento de todas las actividades de planificación y ejecución relacionadas. | ||
| Descripción El Número de Pedido de Producción, a menudo referido como ProdId en Microsoft Dynamics 365, es el identificador central que vincula todos los eventos, materiales, recursos y costos asociados con un trabajo de fabricación específico. Permite un análisis completo de extremo a extremo del ciclo de vida de planificación y ejecución de la producción para una única unidad de trabajo. En el process mining, este atributo es esencial para agrupar eventos relacionados en un único caso. Analizar los procesos por Número de Pedido de Producción ayuda a identificar cuellos de botella, retrasos y desviaciones en el flujo de producción estándar, desde la creación inicial y la programación hasta la finalización y la contabilización de costos. Por qué es importante Este es el identificador de caso fundamental, que es crítico para agrupar todos los eventos relacionados y reconstruir el proceso de planificación de producción de principio a fin para su análisis. Dónde obtener Este es el campo 'ProdId' en la tabla 'ProdTable' de Microsoft Dynamics 365 Manufacturing. Ejemplos WO-000456WO-000457WO-000458 | |||
| Hora del Evento EventTime | La marca de tiempo precisa que indica cuándo ocurrió la actividad. | ||
| Descripción La Marca de Tiempo del Evento, o timestamp, registra la fecha y hora exactas en que tuvo lugar una actividad específica. Estos datos son fundamentales para todo análisis de process mining basado en el tiempo, incluyendo el cálculo de tiempos de ciclo, la identificación de retrasos entre pasos y la comprensión del rendimiento del proceso a lo largo del tiempo. En el contexto de la planificación de la producción, este atributo se utiliza para medir duraciones como el tiempo de entrega de la planificación, los retrasos en el inicio de la producción y el tiempo total de cumplimiento del pedido. Las marcas de tiempo precisas y cronológicas son esenciales para construir un modelo de proceso correcto y significativo. Por qué es importante Esta marca de tiempo es esencial para ordenar eventos, calcular duraciones entre actividades y realizar cualquier análisis basado en el tiempo, como el tiempo de ciclo y la identificación de cuellos de botella. Dónde obtener Se encuentra en varias tablas de transacciones, como 'createdDateTime' en 'ProdTable', o campos de fecha de transacción en 'ProdRouteTrans', 'ProdJournalRoute' y 'ProdJournalBOM'. Ejemplos 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Nombre de la Actividad ActivityName | El nombre del evento de negocio o paso específico que ocurrió dentro del proceso de planificación de producción. | ||
| Descripción El Nombre de la Actividad describe un solo paso en el ciclo de vida de la planificación de producción, como 'Pedido de Producción Creado', 'Materiales Recogidos para Producción' o 'Producción Iniciada'. Estas actividades son los componentes básicos del mapa de procesos. Analizar la secuencia y duración de estas actividades permite la visualización del flujo del proceso, la identificación de rutas comunes, la detección de bucles de retrabajo y la medición del tiempo empleado en las diferentes etapas. Este atributo es crucial para comprender lo que ocurre en cada punto del proceso. Por qué es importante Este atributo define los pasos del proceso, permitiendo la construcción de un mapa de procesos y el análisis del flujo, variaciones y cuellos de botella del mismo. Dónde obtener Este valor se deriva típicamente de los registros de eventos o mediante el mapeo de diferentes cambios de estado y tipos de transacción en tablas como 'ProdRouteTrans', 'ProdJournalBOM' y cambios en los campos de estado de 'ProdTable'. Ejemplos Pedido de Producción CreadoPedido de Producción LiberadoProducción IniciadaProducción Reportada como Terminada | |||
| Source System SourceSystem | El sistema de registro del que se extrajeron los `datos`. | ||
| Descripción Este atributo identifica el sistema de información de origen donde se originaron los datos de eventos. Para esta vista de proceso, el valor sería consistentemente 'Microsoft Dynamics 365 Manufacturing'. En entornos con múltiples sistemas integrados, este campo es crucial para la trazabilidad de los datos, la resolución de problemas de calidad de los datos y la comprensión de cómo los diferentes sistemas contribuyen al proceso general. Asegura la claridad sobre el origen de los datos que se analizan. Por qué es importante Proporciona un contexto crucial sobre el origen de los datos, lo cual es esencial para la gobernanza de datos, la validación y la gestión de pipelines de datos de múltiples sistemas empresariales. Dónde obtener Este es un valor estático que debe agregarse durante el proceso de extracción y transformación de datos para etiquetar el origen del conjunto de datos. Ejemplos Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Última actualización de datos LastDataUpdate | El `timestamp` que indica cuándo los `datos` de este `evento` fueron actualizados o extraídos por última vez del sistema de origen. | ||
| Descripción Este atributo proporciona la fecha y hora de la extracción de datos más reciente del sistema de origen. Es un campo de metadatos crítico para comprender la actualidad y vigencia del análisis. Saber cuándo se actualizaron por última vez los datos ayuda a los analistas y usuarios de negocio a confiar en los insights derivados de la herramienta de process mining. Aclara si los dashboards reflejan información en tiempo real o datos de un punto temporal anterior, lo cual es importante para la toma de decisiones operativas. Por qué es importante Este atributo es vital para la gobernanza de datos, asegurando que los usuarios comprendan la actualidad de los datos y puedan confiar en la puntualidad de los insights del proceso. Dónde obtener Esta marca de tiempo se genera y se estampa en cada registro durante el proceso de extracción, transformación y carga (ETL) de datos. Ejemplos 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Cantidad Real ActualQuantity | La cantidad de bienes producidos y reportados como terminados con éxito para el pedido. | ||
| Descripción La Cantidad Real representa el número de unidades completadas y que pasaron los controles de calidad para un pedido de producción determinado. Este valor se registra cuando la producción se 'Reporta 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 componente clave del análisis de rendimiento y de los dashboards de utilización de capacidad. Por qué es importante Es esencial para calcular el rendimiento de la producción, las tasas de desecho y el rendimiento real, proporcionando información sobre la eficiencia y el rendimiento de la fabricación. Dónde obtener Este valor a menudo proviene del campo 'QtyGood' en la tabla 'ProdTable' o tablas relacionadas de registro de diarios cuando un pedido se reporta como terminado. Ejemplos 100985000 | |||
| Estado del Pedido de Producción ProductionOrderStatus | Indica el estado actual del ciclo de vida de la orden de producción. | ||
| Descripción El Estado del Pedido de Producción refleja el progreso del pedido a lo largo del ciclo de vida de fabricación. Los estados comunes en Dynamics 365 incluyen Creado, Estimado, Programado, Liberado, Iniciado, Reportado como terminado y Finalizado. Este atributo proporciona una instantánea de dónde se encuentra cada pedido en un momento dado. En el process mining, analizar los cambios de estado es una forma principal de definir actividades y comprender el flujo del proceso. Puede utilizarse para filtrar pedidos en un estado específico, analizar el tiempo transcurrido en cada estado e identificar pedidos que están atascados o retrasados. Por qué es importante Este atributo proporciona una visión general de alto nivel del progreso de un pedido y es crucial para el filtrado, la verificación de conformidad y el análisis del tiempo empleado en diferentes fases de producción. Dónde obtener Este es el campo 'ProdStatus' en la tabla 'ProdTable'. Ejemplos ProgramadoLiberadoIniciadoTerminado | |||
| Fecha de Fin Planificada PlannedEndDate | La fecha y hora en que se programa la finalización del pedido de producción. | ||
| Descripción La Fecha de Finalización Planificada es el tiempo objetivo de finalización para un pedido de producción, según lo determinado por el motor de programación. Considera los tiempos de operación, los calendarios de recursos y los plazos de entrega para pronosticar cuándo estarán listos los productos terminados. En el análisis de procesos, este atributo es crítico para evaluar el rendimiento de finalización a tiempo. Comparar la Fecha de Finalización Planificada con la marca de tiempo de finalización real (de la actividad 'Producción Reportada como Terminada' o 'Pedido de Producción Finalizado') permite el cálculo del KPI de Tasa de Finalización de Producción a Tiempo y ayuda a identificar las razones sistémicas de los retrasos en las entregas. Por qué es importante Este atributo es el punto de referencia para medir las tasas de finalización a tiempo y analizar la precisión de la programación de producción. Dónde obtener Este es el campo 'SchedEnd' en 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 en que se programa el inicio del pedido de producción. | ||
| Descripción La Fecha de Inicio Planificada es un resultado clave del proceso de programación, que representa el tiempo objetivo para comenzar las actividades de producción de un pedido. Esta fecha se determina en función de la disponibilidad de materiales, la capacidad de los recursos y los plazos de la demanda. Este atributo es esencial para el análisis de la adhesión al cronograma. Al comparar la Fecha de Inicio Planificada con la hora de inicio real de la producción (a partir de la marca de tiempo de la actividad 'Producción Iniciada'), las organizaciones pueden medir la puntualidad, identificar las causas de los retrasos y calcular KPIs como la Tasa de Adhesión al Cronograma de Producción. Por qué es importante Sirve como línea base para medir la adherencia al cronograma e identificar retrasos entre la planificación y el inicio real de la producción. Dónde obtener Este es el campo 'SchedStart' en la tabla 'ProdTable'. Ejemplos 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Número de Producto ProductNumber | El identificador único del artículo que se está fabricando. | ||
| Descripción El Número de Producto, o ID de Artículo, especifica el producto terminado que el pedido de producción pretende crear. Vincula el proceso de producción con el producto específico que se está fabricando, junto con su lista de materiales asociada y las instrucciones de enrutamiento. Analizar el proceso por Número de Producto ayuda a descubrir variaciones específicas del producto en el ciclo de vida de la fabricación. Puede revelar que ciertos productos tienen tiempos de ciclo más largos, requieren más retrabajos o experimentan retrasos más frecuentes, proporcionando información valiosa para los ingenieros de producto y de proceso. Por qué es importante Permite el análisis de variaciones del proceso basadas en el producto que se fabrica, ayudando a identificar cuellos de botella o problemas de calidad específicos del producto. Dónde obtener Este es el campo 'ItemId' en la tabla 'ProdTable'. Ejemplos FG-1001FG-2050ASSY-500B | |||
| Planta de Producción ProductionPlant | El sitio o planta de fabricación donde se ejecuta el pedido 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 organizacional clave para segmentar y comparar el rendimiento de la producción. En el process mining, este atributo permite comparar el rendimiento entre diferentes plantas. Los analistas pueden comparar tiempos de ciclo, utilización de recursos y adhesión a procesos estándar entre sitios para identificar mejores prácticas o localizar instalaciones que puedan requerir mejoras operativas. Es esencial para el análisis de utilización de la capacidad. Por qué es importante Esto permite la comparación de rendimiento y el benchmarking entre diferentes sitios de fabricación, ayudando a identificar mejores prácticas y problemas específicos de cada área. Dónde obtener Este es el campo 'InventSiteId' en la tabla 'ProdTable'. Ejemplos SITE-ASITE-BMain-WH | |||
| Prioridad de Producción ProductionPriority | Una calificación que indica la urgencia o prioridad de la orden de producción. | ||
| Descripción La Prioridad de Producción es un campo utilizado por planificadores y programadores para gestionar la secuencia de trabajo en la planta. Los pedidos con mayor prioridad pueden ser acelerados, interrumpiendo potencialmente el programa planificado para otros pedidos. Analizar este atributo ayuda a comprender con qué frecuencia los planes de producción son alterados por pedidos de alta prioridad o urgentes. El seguimiento de los cambios de prioridad a lo largo del ciclo de vida de un pedido puede poner de manifiesto la inestabilidad de la demanda o de la planificación. Esto es clave para el dashboard de 'Tendencias de Producción Urgente' y el KPI de 'Tasa de Producción Urgente'. Por qué es importante Esto ayuda a identificar la frecuencia y el impacto de los pedidos urgentes, lo que puede indicar inestabilidad en la planificación o una gestión operativa reactiva. Dónde obtener Este puede ser un campo estándar o personalizado en la tabla 'ProdTable'. La configuración suele ser específica de cada empresa. Ejemplos NormalAltoUrgente | |||
| Tipo de Producción ProductionType | La clasificación del pedido de producción, como estándar, retrabajo o basado en proyectos. | ||
| Descripción El Tipo de Producción categoriza el pedido según su propósito. Por ejemplo, un pedido 'Estándar' es para la producción regular en stock, un pedido de 'Retrabajo' es para corregir defectos en un artículo producido previamente, y un pedido de 'Proyecto' está vinculado a un proyecto de cliente específico. Este atributo es importante para crear vistas de análisis comparables. El proceso para un pedido de retrabajo es intrínsecamente diferente de uno estándar. Segmentar el análisis del proceso por Tipo de Producción asegura que las comparaciones sean significativas y ayuda a comprender los desafíos y flujos únicos de cada tipo. Por qué es importante Este atributo permite la segmentación del análisis, ya que diferentes tipos de pedidos como 'Estándar' y 'Retrabajo' siguen naturalmente procesos distintos y tienen diferentes expectativas de rendimiento. Dónde obtener Este es el campo 'ProdType' en la tabla 'ProdTable'. Ejemplos EstándarRetrabajoProyecto | |||
| Usuario UserId | El identificador del usuario que realizó o es responsable de la actividad. | ||
| Descripción El ID de Usuario identifica al empleado o la cuenta del sistema que ejecutó un paso de proceso particular, como liberar un pedido o reportar su finalización. Esta información proporciona visibilidad sobre quién está realizando el trabajo dentro del proceso. Analizar el proceso por usuario ayuda a comprender la distribución de la carga de trabajo, identificar oportunidades de capacitación, comparar el rendimiento entre individuos o equipos e investigar desviaciones realizadas por usuarios específicos. También es importante para fines de cumplimiento y auditoría. Por qué es importante Permite el análisis del rendimiento del proceso por usuario o equipo, ayuda a identificar oportunidades de automatización y proporciona una pista de auditoría para las actividades clave del proceso. Dónde obtener Se encuentra en campos como 'modifiedBy' o 'createdBy' en varias tablas, o campos de usuario en tablas de registro de transacciones como 'ProdJournalTable'. Ejemplos j.smithm.jonesAX_BATCH_SVC | |||
| Cantidad Planificada PlannedQuantity | La cantidad del artículo que se planea producir. | ||
| Descripción La Cantidad Planificada es el número objetivo de unidades a fabricar para un pedido de producción determinado. Esta cantidad suele estar impulsada por la demanda de pedidos de venta, los requisitos de stock de seguridad o la planificación maestra. Este atributo sirve como base para métricas de rendimiento como el rendimiento y el desperdicio. Al comparar la Cantidad Planificada con la Cantidad Real de bienes producidos, los planificadores pueden monitorear la eficiencia de la producción y la varianza de materiales. Es un punto de datos fundamental para la planificación de la capacidad y los requisitos de materiales. Por qué es importante Esta es la cantidad base utilizada para medir el rendimiento de producción y las tasas de desperdicio comparándola con la cantidad real producida. Dónde obtener Este es el campo 'QtySched' en la tabla 'ProdTable'. Ejemplos 1005000250 | |||
| Disponibilidad de Materiales MaterialAvailabilityStatus | Indica si las materias primas requeridas para la orden de producción están disponibles. | ||
| Descripción Este atributo rastrea la disponibilidad de los componentes necesarios para la producción. Podría reflejar estados como 'Disponible', 'En Pedido' o 'Escasez'. Esta información es crítica para que los programadores entiendan si un pedido de producción puede realmente comenzar según lo planeado. En el process mining, este atributo es crucial para diagnosticar las causas raíz de los retrasos en el inicio de la producción. Al correlacionar este estado con el tiempo entre 'Pedido de Producción Liberado' y 'Producción Iniciada', los analistas pueden cuantificar el impacto de la escasez de materiales en la adhesión al cronograma y el tiempo de ciclo general. Esto apoya directamente el dashboard de 'Impacto del Retraso por Disponibilidad de Materiales'. Por qué es importante Esto es clave para comprender y cuantificar los retrasos en el inicio de la producción causados por la escasez de materiales, vinculando el rendimiento de la cadena de suministro con la eficiencia de fabricación. Dónde obtener Este estado a menudo no es un solo campo, sino que se deriva comprobando los niveles de inventario disponible para todos los artículos en la Lista de Materiales (BOM) del pedido de producción a través de la tabla 'InventSum'. Ejemplos Totalmente DisponibleEscasez ParcialNo Disponible | |||
| Hora de Finalización EndTime | La marca de tiempo precisa que indica cuándo se completó la actividad. | ||
| Descripción La Hora de Finalización marca la culminación de una actividad específica. Mientras que la Hora de Inicio indica el comienzo, la Hora de Finalización es necesaria para comprender la duración real o el tiempo de procesamiento de ese único paso. En el process mining, tener tanto una Hora de Inicio como una Hora de Finalización para las actividades permite un análisis más granular del tiempo de espera versus el tiempo de procesamiento. Ayuda a distinguir entre el tiempo que se trabajó activamente en una actividad y el tiempo que se esperó para que comenzara el siguiente paso, lo cual es crucial para un análisis detallado de los cuellos de botella. Por qué es importante Permite el cálculo del tiempo de procesamiento de la actividad, distinguiéndolo del tiempo de espera, lo que posibilita un análisis de cuello de botella más preciso. Dónde obtener Esto a menudo se deriva. Por ejemplo, la hora de finalización de 'Producción Iniciada' podría ser la hora de inicio de 'Operación Completada'. En algunos logs, una marca de tiempo de finalización puede registrarse explícitamente. Ejemplos 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Inicio a Tiempo ProductionScheduleAdherence | Un indicador booleano que es verdadero si la orden de producción comenzó en o antes de su fecha de inicio planificada. | ||
| Descripción Este atributo calculado proporciona un indicador binario simple de adhesión al cronograma para el inicio de la producción. Compara la marca de tiempo de inicio real (evento 'Producción Iniciada') con el atributo 'PlannedStartDate'. Este indicador es extremadamente útil para crear dashboards y KPIs claros y concisos, como la 'Tasa de Adhesión al Cronograma de Producción'. Permite un fácil filtrado y agregación para ver qué porcentaje de pedidos comienzan a tiempo y analizar las características de aquellos que se retrasan, sin necesidad de realizar comparaciones de fechas directamente en la herramienta de análisis. Por qué es importante Esto simplifica la elaboración de informes y el cálculo de KPIs para la adhesión al cronograma, permitiendo un fácil filtrado y agregación de pedidos a tiempo versus pedidos retrasados. Dónde obtener Esta es una métrica calculada. La lógica es: 'Production Started' EventTime <= PlannedStartDate. Ejemplos truefalse | |||
| Línea de Producción ProductionLine | La línea de producción, centro de trabajo o grupo de recursos específico asignado al pedido de producción. | ||
| Descripción La Línea de Producción identifica la máquina, celda o grupo de recursos específicos que realizarán las operaciones de fabricación. Esto proporciona un nivel de detalle más granular que la Planta de Producción. Analizar el proceso por Línea de Producción es crítico para un análisis detallado de la capacidad y la utilización. Ayuda a identificar centros de trabajo sobrecargados, comparar la eficiencia de diferentes líneas que producen el mismo producto y señalar cuellos de botella específicos de recursos que pueden no ser visibles a nivel de planta. Por qué es importante Esto permite un análisis granular de la utilización y el rendimiento de los recursos, ayudando a identificar centros de trabajo sobrecargados o líneas ineficientes. Dónde obtener Esta información se encuentra a menudo en el campo 'WrkCtrId' en las transacciones de ruta de producción (tablas 'ProdRoute' o 'ProdRouteTrans'). Ejemplos LINE-01LINE-02CNC-A | |||
| Número de Orden de Calidad QualityOrderNumber | El identificador de una orden de control de calidad vinculada al pedido de producción. | ||
| Descripción Cuando se requiere una inspección de calidad, a menudo se genera un Pedido de Calidad en Dynamics 365. Este atributo vincula el proceso de producción con el proceso de aseguramiento de la calidad, capturando el ID del pedido de calidad asociado. Este vínculo permite una visión más completa del proceso de principio a fin, que incluye los pasos de gestión de calidad. Ayuda a analizar cómo las inspecciones de calidad impactan los tiempos de entrega de producción, identificar retrasos en el proceso de calidad y comprender la frecuencia de los controles de calidad para diferentes productos o líneas de producción. Por qué es importante Conecta el proceso de producción con el proceso de aseguramiento de la calidad, permitiendo analizar cómo las inspecciones de calidad impactan en los tiempos de entrega generales. Dónde obtener Esta información se almacena en tablas de gestión de calidad (ej., 'InventQualityOrderTable') y debe vincularse al pedido de producción. Ejemplos OC-00123OC-00124OC-00125 | |||
| Número de Revisión ProductionOrderRevisionNumber | Un recuento de cuántas veces se ha ajustado un plan de producción después de su creación inicial. | ||
| Descripción Este atributo rastrea el número de revisiones o cambios significativos realizados en un pedido de producción, como cambios en la cantidad, fechas o enrutamiento, después de haber sido programado o liberado. Un número mayor indica una mayor inestabilidad en el plan. Esta es una medida directa para el KPI de 'Tasa de Revisión del Plan de Producción'. Analizar esto ayuda a identificar fuentes de inestabilidad en la planificación, como cambios frecuentes en la demanda o una planificación inicial inexacta. Cuantifica la cantidad de retrabajo y esfuerzo de reprogramación, lo que a menudo conduce a ineficiencias. Por qué es importante Esto mide directamente la estabilidad de la planificación y apoya el KPI de 'Tasa de Revisión del Plan de Producción', destacando los procesos con cambios excesivos y retrabajo. Dónde obtener Este es un atributo derivado que requiere contar las ocurrencias de las actividades de 'Pedido de Producción Ajustado' para cada caso. Ejemplos 012 | |||
| Retraso en el Inicio de Producción ProductionStartDelay | El tiempo transcurrido entre la liberación del pedido y el inicio real de la producción. | ||
| Descripción Esta duración calculada mide el tiempo de espera o el tiempo en cola en la planta. Es la diferencia de tiempo entre la actividad 'Pedido de Producción Liberado' y la actividad 'Producción Iniciada'. Este KPI es vital para el dashboard de 'Análisis de Retrasos en la Asignación de Recursos', ya que identifica los retrasos que ocurren después de que la planificación está completa y el pedido está listo para su ejecución. Los valores altos pueden indicar problemas con la disponibilidad de recursos, la preparación de materiales o el flujo de información a la planta, proporcionando un objetivo claro para mejoras operativas. Por qué es importante Mide con precisión el retraso 'listo para comenzar', ayudando a identificar cuellos de botella relacionados con la disponibilidad de recursos o la preparación del taller. Dónde obtener Esta es una métrica calculada: Marca de tiempo ('Producción Iniciada') - Marca de tiempo ('Pedido de Producción Liberado'). Ejemplos 0d 4h 15m1d 2h 0m0d 1h 30m | |||
| Tiempo de Ciclo de Producción ProductionCycleTime | La duración total del pedido de producción desde su creación hasta su finalización. | ||
| Descripción Esta métrica mide el tiempo de ciclo de principio a fin para un solo pedido de producción. Se calcula como la diferencia de tiempo entre el primer evento (típicamente 'Pedido de Producción Creado') y el último evento (por ejemplo, 'Pedido de Producción Finalizado') para el caso. El Tiempo de Ciclo de Producción es un KPI fundamental para evaluar la eficiencia general del proceso. Analizar esta métrica ayuda a identificar pedidos de larga duración, comprender el tiempo promedio para fabricar productos y rastrear las mejoras de rendimiento a lo largo del tiempo. Es una medida clave para el dashboard de 'Visión General del Rendimiento de Producción'. Por qué es importante Este es un KPI crítico para medir la eficiencia general del proceso e identificar tendencias o valores atípicos en el tiempo que lleva completar un pedido de producción. Dónde obtener Esta es una métrica calculada, obtenida restando la marca de tiempo del primer evento de la marca de tiempo del último evento para cada Número de Pedido de Producción. Ejemplos 7d 4h 30m10d 2h 15m5d 8h 0m | |||
Actividades de Planificación de Producción
| Actividad | Descripción | ||
|---|---|---|---|
| Pedido de Producción Creado | Esta actividad marca la creación de un pedido de producción, que formaliza la demanda de una cantidad específica de un producto. Esto se captura típicamente cuando un pedido de producción planificado se confirma, creando un registro oficial en el sistema con un ID único. | ||
| Por qué es importante Este es el evento de inicio principal para el proceso de producción. Analizar el tiempo desde esta creación hasta los pasos subsiguientes ayuda a medir el plazo de entrega y la eficiencia general de la planificación. Dónde obtener Este evento se infiere de la marca de tiempo de creación del registro del pedido de producción en la tabla ProdTable. El estado inicial es típicamente 'Creado'. Capturar Captura la marca de tiempo de creación de una nueva entrada en ProdTable donde el ProdStatus es 'Created'. Tipo de evento inferred | |||
| Pedido de Producción Finalizado | Esta es la actividad final, que representa el cierre financiero del pedido de producción. Todos los costos han sido calculados y contabilizados, y no se pueden realizar más transacciones contra el pedido. | ||
| Por qué es importante Esto marca la verdadera finalización del pedido desde una perspectiva tanto física como financiera. Los retrasos entre 'Reportado como Terminado' y 'Finalizado' pueden señalar problemas en la contabilidad de costos o en los procesos de cierre financiero. Dónde obtener Este es el cambio de estado final capturado cuando el campo 'ProdStatus' en la tabla 'ProdTable' se establece en 'Finalizado'. Esto se activa al ejecutar el cálculo de costos y finalizar el pedido. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Ended' (Terminado). Tipo de evento inferred | |||
| Pedido de Producción Liberado | Esta actividad significa que el pedido de producción ha sido aprobado y autorizado para su ejecución en la planta. Este es un hito clave que libera documentos como tarjetas de trabajo y 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 retrasos en la aprobación o comprobaciones finales, mientras que el tiempo desde 'Liberado' hasta 'Iniciado' mide la preparación de la planta. Dónde obtener Esto se captura cuando el estado del pedido de producción en la tabla ProdTable cambia a 'Liberado'. Esta es una acción de usuario manual o automatizada. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Released' (Liberado). Tipo de evento inferred | |||
| Pedido de Producción Programado | Esta actividad marca la programación del pedido de producción, que asigna recursos, fechas y horas específicos para sus operaciones. Este paso puede implicar la programación de operaciones o una programación de trabajos más detallada. | ||
| Por qué es importante La programación es crucial para la planificación de capacidad y la gestión de recursos. Analizar el tiempo que se tarda en programar los pedidos y el lapso antes de la liberación revela limitaciones de planificación y capacidad. Dónde obtener Capturado cuando el estado de la orden de producción en ProdTable cambia a 'Scheduled' (Programado). Esto se activa cuando un usuario ejecuta una función de programación. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Scheduled' (Programado). Tipo de evento inferred | |||
| Producción Iniciada | Marca el inicio del trabajo de producción físico para el pedido en el taller. Esto a menudo se registra cuando la primera operación o trabajo se inicia a través de un terminal de taller o una contabilización de diario. | ||
| Por qué es importante Esta actividad proporciona la hora de inicio real de la producción, lo cual es crucial para calcular los retrasos de inicio, la adhesión al cronograma y los plazos de entrega reales. Dónde obtener Capturado cuando el estado de la orden de producción en ProdTable cambia a 'Started' (Iniciado). Esto a menudo se activa al contabilizar una tarjeta de trabajo o un diario de tarjeta de ruta para la primera operación. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Started' (Iniciado). Tipo de evento inferred | |||
| Producción Reportada como Terminada | Indica que el proceso de fabricación para la cantidad especificada del producto está físicamente completo y los bienes terminados ahora están en inventario. Esta es una actualización de estado crítica que activa las transacciones de inventario. | ||
| Por qué es importante Esto marca el final de la producción física. Es esencial para calcular las tasas de finalización a tiempo, la duración real de la producción y el rendimiento. Dónde obtener Capturado cuando el estado de la orden de producción en ProdTable cambia a 'Reported as finished' (Reportado como terminado). Esto se activa al contabilizar un diario de Reporte como Terminado. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Reported as finished' (Reportado como terminado). Tipo de evento inferred | |||
| Inspección de Calidad Aprobada | Representa la finalización y validación exitosa de una orden de calidad asociada con la ejecución de la producción. Esto confirma que los artículos producidos cumplen con los estándares de calidad requeridos. | ||
| Por qué es importante Este es un hito clave en el proceso de calidad. La duración entre la generación de la orden de calidad y la aprobación de la inspección resalta la eficiencia del equipo de QA. Dónde obtener Inferido a partir de un cambio de estado en el registro InventQualityOrderTable a un estado de 'Pass' (Aprobado). El valor de estado específico puede variar. Capturar Detectar la marca de tiempo cuando el estado en el registro asociado InventQualityOrderTable se actualiza a 'Pass' (Aprobado). Tipo de evento inferred | |||
| Materiales Recogidos Para Producción | Indica que las materias primas requeridas para la orden de producción han sido recogidas del almacén y están listas para el consumo. Este evento se registra al finalizar un trabajo de picking de materia prima o la contabilización de un diario de lista de picking. | ||
| Por qué es importante Esta actividad es una puerta crítica para iniciar la producción. Los retrasos entre la programación y la recogida de materiales ponen de manifiesto problemas en las operaciones de almacén o en la disponibilidad de materiales. Dónde obtener Este es típicamente un evento explícito registrado en tablas de gestión de almacén (WHSWorkTable) o diarios de inventario (InventJournalTrans) vinculados al pedido de producción. Capturar Captura la marca de tiempo de contabilización del diario de la lista de picking asociado a la orden de producción. Tipo de evento explicit | |||
| Operación Completada | Esta actividad significa la finalización de una operación de fabricación individual o un paso en la ruta de producción. Un pedido de producción típicamente tendrá múltiples de estos eventos. | ||
| Por qué es importante Analizar el tiempo entre operaciones ayuda a identificar cuellos de botella dentro del propio proceso de producción. Proporciona una visión más granular del flujo en el taller. Dónde obtener Este es un evento explícito capturado del registro de diarios de tarjetas de ruta (ProdJournalRoute) para cada operación, indicando la finalización de ese paso. Capturar Captura la marca de tiempo de contabilización de cada registro 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 la producción de la orden de producción. Este evento significa el inicio del proceso de aseguramiento de la calidad para los bienes producidos. | ||
| Por qué es importante Monitorear el proceso de calidad es crucial para comprender el tiempo total de ciclo. Los retrasos en la inspección de calidad pueden impedir que los productos se envíen o se utilicen en procesos posteriores. Dónde obtener Este es un evento explícito basado en la creación de un registro en la tabla InventQualityOrderTable que hace referencia al pedido de producción de origen. Capturar Captura 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 | |||
| Pedido de Producción Ajustado | Representa un cambio significativo realizado en el pedido de producción después de su liberación, como una modificación de cantidad o de fecha. Este evento se infiere comparando los campos clave antes y después de un cambio. | ||
| Por qué es importante Los ajustes frecuentes indican inestabilidad en la planificación o demanda volátil, lo que lleva a ineficiencias y retrabajos. Esto ayuda a cuantificar la tasa y el impacto de dichos cambios. Dónde obtener Inferido al analizar registros de cambios o comparar instantáneas del registro ProdTable para campos como 'QtySched' o 'SchedEnd' después de que el estado del pedido sea 'Released'. Capturar Identificar cambios en campos clave (por ejemplo, cantidad, fechas) en ProdTable después de la marca de tiempo del evento 'Released'. Tipo de evento calculated | |||
| Pedido de Producción Cancelado | Representa la cancelación de un pedido de producción antes de su finalización. Este es un fin alternativo y no exitoso del proceso. | ||
| Por qué es importante El seguimiento de las cancelaciones ayuda a identificar las causas de fallos en el proceso, como cambios en la demanda o errores de planificación. Las altas tasas de cancelación pueden indicar problemas sistémicos. Dónde obtener Este es un estado final alternativo inferido de un cambio de estado. El estado exacto puede variar, pero a menudo implica restablecer el estado del pedido a un estado anterior y marcarlo como cancelado. Capturar Detectar un cambio de estado que indique cancelación. Esto puede requerir un análisis de sistema específico para identificarlo. Tipo de evento inferred | |||
| Pedido de Producción Estimado | Representa el cálculo del consumo estimado de material y costos para el pedido de producción. Este es un paso de planificación crítico para asegurar que los requisitos financieros y de materiales se comprendan antes de proceder. | ||
| Por qué es importante Los retrasos en la estimación pueden ser un cuello de botella significativo en la fase de planificación. El seguimiento de esta actividad ayuda a identificar ineficiencias en el proceso de planificación de costos y materiales. Dónde obtener Esto se captura cuando el estado del pedido de producción en la tabla ProdTable cambia a 'Estimado'. Esto se activa cuando un usuario ejecuta la función 'Estimar' en el pedido. Capturar Detectar la marca de tiempo cuando el campo ProdStatus en ProdTable cambia a 'Estimated' (Estimado). Tipo de evento inferred | |||
Guías de Extracción
Pasos
- Navegar al Espacio de Trabajo de Gestión de Datos: Inicie sesión en Microsoft Dynamics 365 Finance and Operations. Utilice la barra de búsqueda para encontrar y navegar al espacio de trabajo
Data management. - Crear un Nuevo Proyecto de Exportación: Dentro del espacio de trabajo, seleccione el mosaico
Exportpara crear un nuevo proyecto de exportación de datos. Proporcione un nombre descriptivo para el proyecto, comoProcessMind_Production_Orders. - Seleccionar Formato de Archivo de Exportación: En la configuración del proyecto, elija el formato de datos deseado para la exportación, como CSV o Excel. Configure la opción
Entityy especifique los detalles del formato. Se recomienda CSV para rendimiento y compatibilidad. - Agregar Entidades de Datos Requeridas: Agregue las entidades de datos necesarias al proyecto para capturar todos los eventos de la orden de producción. Deberá agregar cada una de las siguientes entidades:
Órdenes de producción,Transacciones de ruta de órdenes de producción,Órdenes de calidad de inventarioyLíneas de diario de lista de picking de producción. Para cada entidad, asegúrese de seleccionar todos los campos relevantes como se describe en la sección de consulta. - Aplicar Filtros de Datos: Para cada entidad, utilice la opción
Filterpara definir el alcance de la exportación de datos. Como mínimo, filtre porCompanypara seleccionar la entidad legal correcta. Es altamente recomendable aplicar un filtro de rango de fechas en un campo de fecha clave, comoFecha de creaciónen la entidadÓrdenes de producción, para limitar el volumen de datos a un período manejable, por ejemplo, los últimos 6 meses. - Configurar Exportaciones Incrementales (Opcional): Para un análisis continuo, configure el proyecto para exportaciones incrementales. Esto se puede hacer mediante el seguimiento de cambios en las entidades de origen, lo que le permite extraer solo registros nuevos o modificados desde la última exportación, reduciendo significativamente el tiempo de exportación.
- Ejecutar el Trabajo de Exportación: Una vez configurado el proyecto, inicie la exportación haciendo clic en
Exporten el panel de acciones. Puede ejecutarlo inmediatamente o programarlo como un trabajo por lotes recurrente. - Descargar los Archivos Exportados: Una vez que el trabajo de exportación se complete con éxito, navegue al historial de trabajos. Descargue el paquete, que será un archivo ZIP que contiene archivos de datos separados para cada entidad que incluyó.
- Transformar Datos en un Registro de Eventos: Los archivos exportados representan datos de tabla en bruto, no un registro de eventos formateado. Debe utilizar una herramienta externa (como un script de Python, Power Query en Excel/Power BI o una herramienta ETL) para procesar y combinar los datos de estos archivos. La lógica de transformación descrita en la sección de consulta debe aplicarse para pivotar los campos de fecha y estado de las diversas entidades en un único archivo de registro de eventos con una fila por actividad.
- Estructurar el Registro de Eventos Final: Asegúrese de que el archivo CSV transformado final contenga las columnas requeridas:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemyLastDataUpdate, junto con cualquier atributo recomendado. El archivo debe tener un encabezado y estar listo para cargar en ProcessMind.
Configuración
- Entidades de Datos Clave: El núcleo de esta extracción se basa en exportar varias entidades y unirlas posteriormente. Las entidades principales son
Órdenes de producción(ProdTable),Transacciones de ruta de órdenes de producción(ProdRouteTrans) yÓrdenes de calidad de inventario(InventQualityOrderTable). - Filtrado por Rango de Fechas: Para gestionar el volumen de datos, aplique siempre un filtro de fecha. Una buena práctica es filtrar la entidad
Órdenes de producciónpor laFecha de creación(CREATEDDATETIME) de los últimos 3 a 6 meses. Esto asegura que capture procesos completos y recientes sin sobrecargar el sistema. - Filtro de Empresa: Es fundamental establecer un filtro para la empresa o entidad legal específica que desea analizar. Esto se realiza mediante la opción
Filteren cada entidad dentro del proyecto de exportación. - Carga Completa vs. Incremental: Para la extracción inicial, es necesaria una carga completa (full push). Para actualizaciones posteriores, es altamente recomendable configurar el seguimiento de cambios en las entidades y realizar exportaciones incrementales para mejorar el rendimiento y reducir la carga de datos.
- Requisitos Previos: El usuario que ejecuta la exportación debe tener los roles de seguridad adecuados, típicamente incluyendo
Data management administratoro un rol con permisos para acceder a las entidades de datos requeridas.
a Consulta de ejemplo config
/*
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
- Configurar BYOD en Dynamics 365: Asegúrese de que la función 'Bring your own database' esté configurada en su entorno de Dynamics 365 for Finance and Operations. Esto implica configurar una Base de Datos SQL de Azure y la exportación de datos desde Dynamics 365.
- Publicar Entidades Requeridas: Desde el espacio de trabajo 'Data management', navegue a 'Data entities'. Busque y publique las siguientes entidades clave en su base de datos BYOD: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Asegúrese de que estén configuradas para la exportación recurrente.
- Verificar Sincronización de Datos: Confirme que los datos de las entidades publicadas se están sincronizando de forma exitosa y regular con su Base de Datos SQL de Azure de destino. Revise el historial del trabajo de exportación en busca de errores.
- Conectarse 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 SQL de Azure donde residen sus datos de Dynamics 365.
- Preparar la Consulta SQL: Abra una nueva ventana de consulta. Copie la consulta SQL completa proporcionada en este documento.
- Configurar Parámetros de Consulta: En la consulta, localice las variables de marcador de posición. Reemplace '{StartDate}', '{EndDate}' y '{CompanyCode}' con el rango de fechas deseado y el DataAreaId de la empresa específica que desea analizar.
- Ejecutar la Consulta: Ejecute la consulta SQL modificada en la base de datos BYOD. El tiempo de ejecución variará según el volumen de datos y el rango de fechas especificado.
- Revisar los Resultados: Una vez que la consulta finalice, revise la salida para asegurarse de que contiene las columnas y los datos esperados para todas las actividades extraídas. El conjunto de resultados es el registro de eventos.
- Exportar el Registro de Eventos: Exporte los resultados de la consulta a un archivo CSV. La mayoría de los clientes SQL tienen una función incorporada para guardar los resultados directamente en un archivo.
- Formato 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 requeridos por ProcessMind, como CaseId, Activity y Timestamp. La consulta proporcionada ya utiliza los alias correctos.
Configuración
- Entidades de Datos Clave: La consulta se basa principalmente en la exportación de las siguientes entidades a su instancia BYOD:
PRODTABLE: Contiene la información principal del encabezado y el estado de la orden de producción.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: Rastrea las órdenes de control de calidad vinculadas a la producción.
- Rango de Fechas: Se recomienda comenzar con un rango de fechas limitado, por ejemplo, de 3 a 6 meses de datos, para asegurar un rendimiento de consulta manejable. La consulta utiliza la fecha de creación de la orden de producción (
CREATEDDATETIMEdePRODTABLE) para el filtrado. - Filtro de Código de Empresa: El campo
DATAREAIDse utiliza para filtrar datos para una entidad legal o empresa específica. Debe reemplazar el marcador de posición'{CompanyCode}'por el ID relevante, por ejemplo, 'usmf'. - Requisitos Previos: Este método requiere acceso de administrador del sistema tanto a Dynamics 365 Finance and Operations para configurar BYOD como permisos de Colaborador en la Base de Datos SQL de Azure para ejecutar consultas.
- Rendimiento: Para conjuntos de datos muy grandes que abarcan varios años o empresas, considere ejecutar la consulta durante las horas de menor actividad. También puede dividir la extracción en períodos de tiempo más pequeños y combinar los resultados posteriormente.
a 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
- Navegar al Espacio de Trabajo de Gestión de Datos: Inicie sesión en Microsoft Dynamics 365 Finance and Operations. Utilice la barra de búsqueda para encontrar y navegar al espacio de trabajo
Data management. - Crear un Nuevo Proyecto de Exportación: Dentro del espacio de trabajo, seleccione el mosaico
Exportpara crear un nuevo proyecto de exportación de datos. Proporcione un nombre descriptivo para el proyecto, comoProcessMind_Production_Orders. - Seleccionar Formato de Archivo de Exportación: En la configuración del proyecto, elija el formato de datos deseado para la exportación, como CSV o Excel. Configure la opción
Entityy especifique los detalles del formato. Se recomienda CSV para rendimiento y compatibilidad. - Agregar Entidades de Datos Requeridas: Agregue las entidades de datos necesarias al proyecto para capturar todos los eventos de la orden de producción. Deberá agregar cada una de las siguientes entidades:
Órdenes de producción,Transacciones de ruta de órdenes de producción,Órdenes de calidad de inventarioyLíneas de diario de lista de picking de producción. Para cada entidad, asegúrese de seleccionar todos los campos relevantes como se describe en la sección de consulta. - Aplicar Filtros de Datos: Para cada entidad, utilice la opción
Filterpara definir el alcance de la exportación de datos. Como mínimo, filtre porCompanypara seleccionar la entidad legal correcta. Es altamente recomendable aplicar un filtro de rango de fechas en un campo de fecha clave, comoFecha de creaciónen la entidadÓrdenes de producción, para limitar el volumen de datos a un período manejable, por ejemplo, los últimos 6 meses. - Configurar Exportaciones Incrementales (Opcional): Para un análisis continuo, configure el proyecto para exportaciones incrementales. Esto se puede hacer mediante el seguimiento de cambios en las entidades de origen, lo que le permite extraer solo registros nuevos o modificados desde la última exportación, reduciendo significativamente el tiempo de exportación.
- Ejecutar el Trabajo de Exportación: Una vez configurado el proyecto, inicie la exportación haciendo clic en
Exporten el panel de acciones. Puede ejecutarlo inmediatamente o programarlo como un trabajo por lotes recurrente. - Descargar los Archivos Exportados: Una vez que el trabajo de exportación se complete con éxito, navegue al historial de trabajos. Descargue el paquete, que será un archivo ZIP que contiene archivos de datos separados para cada entidad que incluyó.
- Transformar Datos en un Registro de Eventos: Los archivos exportados representan datos de tabla en bruto, no un registro de eventos formateado. Debe utilizar una herramienta externa (como un script de Python, Power Query en Excel/Power BI o una herramienta ETL) para procesar y combinar los datos de estos archivos. La lógica de transformación descrita en la sección de consulta debe aplicarse para pivotar los campos de fecha y estado de las diversas entidades en un único archivo de registro de eventos con una fila por actividad.
- Estructurar el Registro de Eventos Final: Asegúrese de que el archivo CSV transformado final contenga las columnas requeridas:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemyLastDataUpdate, junto con cualquier atributo recomendado. El archivo debe tener un encabezado y estar listo para cargar en ProcessMind.
Configuración
- Entidades de Datos Clave: El núcleo de esta extracción se basa en exportar varias entidades y unirlas posteriormente. Las entidades principales son
Órdenes de producción(ProdTable),Transacciones de ruta de órdenes de producción(ProdRouteTrans) yÓrdenes de calidad de inventario(InventQualityOrderTable). - Filtrado por Rango de Fechas: Para gestionar el volumen de datos, aplique siempre un filtro de fecha. Una buena práctica es filtrar la entidad
Órdenes de producciónpor laFecha de creación(CREATEDDATETIME) de los últimos 3 a 6 meses. Esto asegura que capture procesos completos y recientes sin sobrecargar el sistema. - Filtro de Empresa: Es fundamental establecer un filtro para la empresa o entidad legal específica que desea analizar. Esto se realiza mediante la opción
Filteren cada entidad dentro del proyecto de exportación. - Carga Completa vs. Incremental: Para la extracción inicial, es necesaria una carga completa (full push). Para actualizaciones posteriores, es altamente recomendable configurar el seguimiento de cambios en las entidades y realizar exportaciones incrementales para mejorar el rendimiento y reducir la carga de datos.
- Requisitos Previos: El usuario que ejecuta la exportación debe tener los roles de seguridad adecuados, típicamente incluyendo
Data management administratoro un rol con permisos para acceder a las entidades de datos requeridas.
a Consulta de ejemplo config
/*
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