Su Plantilla de Datos de Planificación de Producción
Su Plantilla de Datos de Planificación de Producción
- Atributos recomendados para el análisis de la planificación de la producción
- Actividades clave de planificación de la producción a rastrear
- Guía detallada de extracción de `data` para SAP S/4HANA
Atributos de Planificación de la Producción
| Nombre | Descripción | ||
|---|---|---|---|
| Actividad Activity | El nombre del evento o tarea específica que ocurrió en un momento dado dentro del proceso de planificación de la producción. | ||
| Descripción Este atributo registra los distintos pasos e hitos en el ciclo de vida de la orden de producción. Los ejemplos incluyen 'Production Order Created', 'Material Availability Checked', 'Production Started' y 'Order Financially Closed'. Cada actividad representa una acción específica o un cambio de estado documentado en el sistema. Analizar la secuencia y frecuencia de estas actividades es el núcleo del Process Mining. Ayuda a visualizar el flujo del proceso, identificar desviaciones del procedimiento estándar y señalar actividades que causan retrasos o requieren retrabajos frecuentes, como 'Production Plan Adjusted'. Por qué es importante Define los pasos del proceso, permitiendo el descubrimiento y la visualización del Dónde obtener Derivado de cambios de estado en tablas como JEST y JCDS, códigos de transacción utilizados (por ejemplo, CO01 para crear) o registros de confirmación específicos en AFRU. Ejemplos Orden de Producción CreadaOrden de Producción LiberadaProducción IniciadaConfirmación Final IngresadaEntrada de Mercancías Registrada | |||
| Hora de Inicio StartTime | El timestamp que indica cuándo comenzó una actividad o un evento específico. | ||
| Descripción Este atributo proporciona la fecha y hora para cada evento registrado en el proceso de producción. Es el fundamento temporal para todo análisis de procesos basado en el tiempo. La Hora de Inicio es crucial para calcular las duraciones entre actividades, medir el tiempo de ciclo total de una orden de producción y comprender la sincronización de los eventos. Permite el análisis de cuellos de botella, tiempos de espera y cumplimiento de los plazos comparando las marcas de tiempo reales con las fechas planificadas. Por qué es importante Proporciona el contexto cronológico para todos los Dónde obtener Esta información se encuentra típicamente en las tablas de documentos de cambio (CDHDR/CDPOS) para los cambios de estado, tablas de confirmación (AFRU) para los pasos de ejecución y tablas de cabecera (AFKO) para las fechas de creación. Ejemplos 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Orden de Producción ProductionOrder | El identificador único para una orden de producción, que sirve como identificador de caso principal para el proceso de planificación de la producción. | ||
| Descripción El número de Orden de Producción es una clave única generada por SAP S/4HANA para gestionar y rastrear todas las actividades relacionadas con la fabricación de una cantidad específica de producto. Vincula todos los eventos relacionados, desde la planificación y liberación hasta la ejecución y liquidación final. En el Process Mining, este atributo es esencial para agrupar todos los eventos relacionados en una única instancia de proceso de principio a fin. Analizar los procesos por Orden de Producción permite la medición de indicadores clave de rendimiento como el tiempo de ciclo, el cumplimiento del cronograma y la identificación de cuellos de botella que afectan a ejecuciones de producción específicas. Por qué es importante Es el Dónde obtener Este es el número de Orden de Producción, típicamente encontrado en tablas SAP como AFKO (campo AUFNR) y AFPO. Ejemplos 100056710008341001299 | |||
| Source System SourceSystem | El sistema del cual se extrajeron los datos de planificación de la producción. | ||
| Descripción Este atributo identifica el origen de los datos, lo cual es esencial en entornos con múltiples sistemas integrados. Para este proceso, típicamente será la instancia específica de SAP S/4HANA. En un contexto de análisis de datos más amplio, conocer el sistema de origen ayuda a asegurar la integridad de los datos y permite un contexto adecuado al fusionar datos de diferentes fuentes. Es una pieza fundamental de metadatos para la gobernanza y trazabilidad de los datos. Por qué es importante Proporciona Dónde obtener Este es típicamente un valor estático añadido durante el proceso de extracción de datos para identificar el cliente y el ID de sistema (SID) de SAP S/4HANA. Ejemplos S4P_100S4H_PRD_200S4Q_300 | |||
| Última actualización de datos LastDataUpdate | El timestamp que indica la última vez que se actualizaron o extrajeron los datos del sistema de origen. | ||
| Descripción Este atributo registra la fecha y hora de la extracción de datos más reciente. Es una pieza crítica de metadatos que informa a los usuarios sobre la frescura de los datos que están analizando. Conocer la hora de la última actualización es esencial para interpretar el análisis correctamente. Ayuda a los usuarios a comprender si están viendo información en tiempo real o una instantánea de un punto específico en el tiempo, lo que afecta la relevancia de cualquier hallazgo y las decisiones tomadas con base en los datos. Por qué es importante Asegura que los usuarios estén al tanto de la actualidad de los Dónde obtener Este Ejemplos 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Centro de trabajo WorkCenter | La máquina específica, grupo de máquinas o área de ensamblaje responsable de una operación. | ||
| Descripción Un Centro de Trabajo representa una unidad operativa específica dentro de una planta donde se realiza un paso de producción. Puede ser una sola máquina, una línea de producción o un grupo de empleados. Analizar los Por qué es importante Ayuda a identificar máquinas o líneas de producción específicas que son Dónde obtener Encontrado en los Ejemplos WC-ASSEMBLY-01WC-MILLING-05WC-PACKING | |||
| Estado del Pedido OrderStatus | El estado de procesamiento actual de la orden de producción, como Created, Released o Technically Completed. | ||
| Descripción El Estado de la Orden indica la etapa general de la orden de producción en su ciclo de vida. Es un resumen de los diversos estados del sistema y de usuario aplicados a la orden. Los estados comunes incluyen CRTD (Creada), REL (Liberada), CNF (Confirmada), TECO (Completada Técnicamente) y CLSD (Cerrada). Analizar el estado actual de las órdenes es útil para comprender el panorama del trabajo en curso. En el Process Mining, el seguimiento de las transiciones entre estos estados a lo largo del tiempo es lo que genera el registro de actividades y permite una vista detallada del flujo del proceso y las duraciones en cada etapa. Por qué es importante Ofrece una vista de alto nivel de la etapa del ciclo de vida de una orden y es fundamental para derivar la secuencia de actividades para Dónde obtener Derivado del estado del sistema almacenado en la tabla JEST, vinculado a través del número de objeto en AFKO (campo OBJNR). Ejemplos CRTDRELTECOCLSD | |||
| Fecha de Fin Planificada PlannedEndDate | La fecha de finalización programada para la orden de producción según el plan inicial. | ||
| Descripción La Fecha de Fin Planificada es la fecha objetivo en la que se espera que finalicen todas las actividades de producción para una orden. Esta fecha se determina durante la fase de programación de la planificación de la producción. Este atributo es esencial para medir el cumplimiento de los plazos. Al comparar la Fecha de Fin Planificada con la marca de tiempo de finalización real, las organizaciones pueden calcular el KPI de Tasa de Cumplimiento de Plazos de Producción e identificar las órdenes que están atrasadas. Este análisis es fundamental para mejorar la precisión de la planificación y la satisfacción del cliente. Por qué es importante Sirve como línea de base para medir la adherencia al cronograma, ayudando a evaluar la precisión de la planificación y la eficiencia de la ejecución. Dónde obtener Encontrado en la tabla de cabecera de la Orden de Producción AFKO (campo GLTRP). Ejemplos 2023-11-152023-12-012024-01-20 | |||
| Número de Material MaterialNumber | El identificador único para el producto que se fabrica en la orden de producción. | ||
| Descripción El Número de Material especifica el artículo que la orden de producción tiene como objetivo producir. Vincula el proceso de producción con los datos maestros del material, incluida su lista de materiales (BOM) y la información de la ruta. Analizar el proceso por Número de Material ayuda a identificar si ciertos productos son más propensos a retrasos, retrabajos o escasez de materiales. Esto permite la optimización de procesos específica del producto, como ajustar los parámetros de planificación o mejorar la cadena de suministro para componentes específicos. Por qué es importante Permite el filtrado y el análisis basados en el producto que se está fabricando, revelando ineficiencias o Dónde obtener Encontrado en la tabla de posición de la Orden de Producción AFPO (campo MATNR). Ejemplos RM-1001FG-2050SA-3100-B | |||
| Planta Plant | La instalación de fabricación o ubicación donde se está ejecutando la orden de producción. | ||
| Descripción La Planta es una unidad organizativa en SAP que representa un sitio o instalación de producción. Cada orden de producción se asigna a una planta específica donde se llevarán a cabo las actividades de fabricación. Este atributo es crítico para el análisis comparativo entre diferentes ubicaciones de fabricación. Al segmentar los datos del proceso por Planta, las organizaciones pueden comparar el rendimiento, identificar problemas o mejores prácticas específicas del sitio y comprender las variaciones regionales en la eficiencia, la capacidad o el cumplimiento de los estándares. Por qué es importante Permite la comparación de rendimiento entre diferentes sitios de producción, ayudando a identificar y compartir mejores prácticas o abordar problemas específicos de la ubicación. Dónde obtener Encontrado en la tabla de cabecera de la Orden de Producción AFKO (campo DWERK). Ejemplos 100017102000 | |||
| ¿Es Retrabajo? IsRework | Un indicador que señala si una orden de producción implicó retrabajo o ajustes significativos del plan después de su inicio. | ||
| Descripción Este atributo booleano se deriva para identificar órdenes de producción que fueron objeto de acciones correctivas o cambios de plan una vez iniciada la producción. Esto podría activarse por una actividad de retrabajo explícita o por un evento de 'Production Plan Adjusted' que ocurra después de 'Production Started'. Esta bandera es crucial para calcular el KPI de Tasa de Retrabajo de Producción y para el dashboard de Retrabajo y Revisiones de Producción. Permite un fácil filtrado y análisis de casos problemáticos, ayudando a descubrir las causas raíz de problemas de calidad o desviaciones de proceso que conducen a retrabajos costosos. Por qué es importante Aísla los Dónde obtener Campo calculado. Se establece en verdadero si una actividad 'Plan de Producción Ajustado' ocurre después de una actividad 'Producción Iniciada' dentro del mismo Ejemplos truefalse | |||
| A Tiempo IsOnTime | Un indicador que señala si la orden de producción se completó en o antes de su fecha de finalización planificada. | ||
| Descripción Este atributo booleano calculado mide directamente el cumplimiento de los plazos comparando la fecha de finalización real con la fecha de fin planificada. Proporciona un resultado claro y binario para la puntualidad de cada orden de producción. Este atributo es la base para el KPI de Tasa de Cumplimiento de Plazos de Producción. Simplifica el análisis al permitir una fácil segmentación de órdenes a tiempo versus órdenes atrasadas, ayudando a identificar características comunes o rutas de proceso asociadas con retrasos. Por qué es importante Proporciona una medida clara y sencilla de la adherencia al cronograma para cada orden, facilitando el análisis de las causas raíz de los retrasos. Dónde obtener Campo calculado. Se establece en verdadero si el Ejemplos truefalse | |||
| Cantidad Confirmada TotalConfirmedQuantity | La cantidad total del material que se ha confirmado como producido para la orden. | ||
| Descripción Este atributo representa la cantidad acumulada de productos terminados o semiterminados que se han reportado a través de las confirmaciones de producción. Rastrea el progreso de la orden hacia su objetivo de finalización. Comparar la cantidad confirmada con la cantidad planificada ayuda a monitorear el progreso de la producción e identificar problemas de rendimiento o discrepancias. Es una medida fundamental de producción y se utiliza en varios cálculos de rendimiento, incluidas las tasas de desperdicio y eficiencia. Por qué es importante Rastrea la producción real de la orden de producción, lo cual es esencial para monitorear el progreso, calcular el rendimiento e identificar discrepancias. Dónde obtener Agregado de registros de confirmación en AFRU (campo LMNGA para cantidad de rendimiento). Ejemplos 9801000501200 | |||
| Estado de Disponibilidad de Material MaterialAvailabilityStatus | Indica si todos los materiales requeridos para la orden de producción están disponibles. | ||
| Descripción Este estado refleja el resultado de la verificación de disponibilidad de material realizada para una orden de producción. Puede indicar que todos los materiales están disponibles, que algunos faltan o que la verificación no se ha realizado. Un estado de 'escasez' es un disparador clave para posibles retrasos. Este atributo es crítico para el dashboard de Análisis de Impacto de Escasez de Material. Ayuda a cuantificar los retrasos causados por la indisponibilidad de material correlacionando un estado de escasez con el tiempo entre la liberación de la orden y el inicio de la producción. Mejorar esta métrica es clave para un flujo de producción más fluido. Por qué es importante Explica directamente los retrasos entre la liberación de la orden y el inicio de la producción, ayudando a cuantificar el impacto de los problemas de la cadena de suministro en la fabricación. Dónde obtener Este es un estado, a menudo derivado del estado colectivo de los componentes del material. Se puede encontrar en el estado del sistema (JEST) con estados como 'MSPT' (Escasez de material). Ejemplos DisponibleEscasezNo Verificado | |||
| Fecha de Inicio Planificada PlannedStartDate | La fecha de inicio programada para la orden de producción según el plan inicial. | ||
| Descripción La Fecha de Inicio Planificada es la fecha objetivo en la que se espera que comiencen las actividades de producción para una orden. Este es un resultado clave del proceso de programación. Este atributo proporciona la línea base inicial para el análisis del cumplimiento de los plazos. Comparar la Fecha de Inicio Planificada con la hora de inicio real ayuda a comprender los retrasos iniciales, como los retrasos en la preparación de materiales o la liberación de órdenes, que pueden tener un efecto en cascada en toda la línea de tiempo de producción. Por qué es importante Proporciona una línea de base para medir la adherencia al tiempo de inicio, lo cual es crucial para identificar retrasos en las etapas de preproducción como la liberación de la orden y la disponibilidad de material. Dónde obtener Encontrado en la tabla de cabecera de la Orden de Producción AFKO (campo GSTRP). Ejemplos 2023-11-102023-11-252024-01-15 | |||
| Hora de Finalización EndTime | La marca de tiempo que indica cuándo se completó una actividad o evento específico. | ||
| Descripción Este atributo proporciona la fecha y hora de finalización para cada evento registrado. Complementa la Hora de Inicio para definir la duración de las actividades. La Hora de Fin es crucial para calcular el tiempo de procesamiento preciso de las actividades individuales, que es una entrada clave para el análisis de utilización de capacidad y recursos. Ayuda a diferenciar entre el tiempo de trabajo activo y el tiempo de inactividad o espera, lo que lleva a una identificación más precisa de los cuellos de botella. Por qué es importante Permite el cálculo de duraciones precisas de las actividades, lo cual es esencial para analizar la eficiencia de los recursos e identificar Dónde obtener Encontrado en tablas de confirmación (AFRU) para pasos de ejecución. Para otros Ejemplos 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Prioridad de Producción ProductionPriority | Un código o valor asignado a una orden de producción para indicar su urgencia o importancia. | ||
| Descripción La Prioridad de Producción es utilizada por planificadores y programadores para secuenciar y priorizar órdenes, especialmente cuando los recursos son limitados. Una orden de mayor prioridad debería procesarse idealmente antes que una de menor prioridad. Analizar este atributo ayuda a evaluar si las prioridades asignadas se están siguiendo en planta. El dashboard de Consistencia de Priorización de Producción compara la secuencia de procesamiento con la prioridad asignada para identificar inconsistencias, lo que puede llevar a una mejor disciplina de programación y a una mayor alineación entre la planificación y la ejecución. Por qué es importante Ayuda a determinar si la programación de la producción sigue las prioridades comerciales, asegurando que las órdenes críticas se aceleren según lo previsto. Dónde obtener Esto es a menudo un campo personalizado o basado en otros parámetros de la orden. Una ubicación específica depende de la configuración. Ejemplos AltoMedioBajo15 | |||
| Tiempo de Ciclo de Producción ProductionCycleTime | El tiempo total transcurrido desde la liberación de una orden de producción hasta su finalización técnica. | ||
| Descripción Esta métrica calculada mide la duración de principio a fin del ciclo de vida de una orden de producción en ejecución. Es un indicador clave de rendimiento que refleja la eficiencia general del proceso de producción. Este atributo es la medida principal para el dashboard de Resumen del Tiempo de Entrega de la Orden de Producción y el KPI de Tiempo Promedio del Ciclo de la Orden de Producción. Analizar sus componentes, como los tiempos de espera versus los tiempos de procesamiento, ayuda a identificar las mayores oportunidades para la aceleración del proceso y la reducción del tiempo de entrega. Por qué es importante Este es un KPI crítico para medir la eficiencia general de la producción e identificar oportunidades para acelerar el cumplimiento de las órdenes. Dónde obtener Calculado al encontrar la duración entre la actividad 'Orden de Producción Liberada' y la actividad 'Orden Técnicamente Completada' para cada Orden de Producción. Ejemplos P5DT12H30MP10DT2HP3D | |||
| Tipo de Pedido OrderType | Una clasificación de la orden de producción que define su propósito y controla su procesamiento. | ||
| Descripción El Tipo de Orden es un elemento de configuración clave en SAP PP que determina cómo el sistema maneja una orden de producción. Controla los rangos de números, la selección de datos maestros, los parámetros de costos y las reglas de liquidación. Los ejemplos incluyen órdenes de producción estándar, órdenes de retrabajo u órdenes de prototipo. Analizar el proceso por Tipo de Orden permite comparar el rendimiento y el flujo de diferentes tipos de procesos de producción. Esto puede revelar si las órdenes de retrabajo tardan significativamente más o si ciertos tipos de órdenes son más propensos a ajustes de planificación, proporcionando insights valiosos para la mejora de procesos dirigida. Por qué es importante Permite la segmentación del análisis por el propósito comercial de la orden, posibilitando la comparación entre producción estándar, retrabajo y otros procesos. Dónde obtener Encontrado en la tabla de cabecera de la Orden de Producción AFKO (campo AUART). Ejemplos PP01PP03ZP01 | |||
| Usuario User | El ID de sistema del usuario que creó, modificó o confirmó un evento de orden de producción. | ||
| Descripción Este atributo captura el ID de usuario de SAP asociado con una transacción o cambio de estado específico, como liberar una orden o registrar una confirmación. Proporciona trazabilidad para las acciones realizadas dentro del sistema. Analizar las actividades por Usuario ayuda a comprender la distribución de la carga de trabajo, identificar necesidades de capacitación y asegurar el cumplimiento de los procedimientos. Por ejemplo, puede resaltar si ciertos usuarios están frecuentemente involucrados en ajustes del plan o si los retrasos están asociados con equipos específicos. Por qué es importante Proporciona rendición de cuentas y permite el análisis de la carga de trabajo, el comportamiento específico del usuario y las posibles oportunidades de capacitación. Dónde obtener Típicamente encontrado en cabeceras de documentos de cambio (CDHDR, campo UNAME) o registros de confirmación (AFRU, campo PERNR para número de personal). Ejemplos CB9980000021JSMITHPLANNER01 | |||
Actividades de Planificación de la Producción
| Actividad | Descripción | ||
|---|---|---|---|
| Confirmación Final Ingresada | Esta actividad marca la confirmación de la última operación en el enrutamiento de la orden de producción. Significa que todos los pasos de fabricación planificados se han completado en planta. | ||
| Por qué es importante La confirmación final es un hito clave que indica el fin del trabajo de producción físico. A menudo se utiliza como un punto final más preciso para medir el tiempo del ciclo en planta antes de la recepción final de mercancías. Dónde obtener Inferido de los Capturar Encontrar la última confirmación de operación en AFRU con el indicador de confirmación final activado. Tipo de evento inferred | |||
| Entrada de Mercancías Registrada | Este evento registra la recepción del producto terminado de la línea de producción en el inventario. Aumenta formalmente el nivel de stock del material producido. | ||
| Por qué es importante Este es un hito crítico que representa la finalización de la producción. A menudo se considera el final del ciclo de producción para medir la entrega a tiempo y el tiempo de entrega general. Dónde obtener Esta es una contabilización financiera explícita registrada en las tablas de documentos de material MSEG (nivel de partida) y MKPF (nivel de cabecera), típicamente con tipo de movimiento 101. Estos documentos están vinculados a la orden de producción. Capturar Encontrar documento de material en MSEG vinculado a la orden con tipo de movimiento 101. Tipo de evento explicit | |||
| Orden Completada Técnicamente | Este es un paso de cierre administrativo que impide cambios logísticos adicionales en la orden, como movimientos de mercancías o confirmaciones. La orden se considera completa desde un punto de vista logístico. | ||
| Por qué es importante TECO es un punto final definitivo para el proceso de producción, crucial para calcular el tiempo total del ciclo de la orden de producción. Señala que todas las actividades logísticas han finalizado y que la orden está lista para la liquidación financiera. Dónde obtener Esto se activa cuando un usuario establece el estado en TECO (Completada Técnicamente). El evento se captura como un cambio de estado en la tabla JCDS con una marca de tiempo correspondiente. Capturar Marca de tiempo del cambio de estado a 'TECO' en la tabla JCDS. Tipo de evento inferred | |||
| Orden de Producción Creada | Esta es la creación inicial de la orden de producción en el sistema, que sirve como la solicitud formal para producir una cantidad específica de un producto. Este evento se captura explícitamente cuando un usuario guarda una nueva orden, estableciendo su estado inicial en CRTD (Creada). | ||
| Por qué es importante Marca el inicio del ciclo de vida de la orden de producción. Analizar el tiempo desde la creación hasta la liberación ayuda a identificar retrasos administrativos o de planificación antes de que la producción se programe formalmente. Dónde obtener Este evento se registra en la tabla AUFK (Datos Maestros de la Orden) con la fecha de creación (ERDAT). El estado de creación (CRTD) se registra en las tablas JEST y JCDS, vinculado a través del número de objeto de la orden (OBJNR). Capturar Marca de tiempo de AUFK-ERDAT o registro de cambio de estado a 'CRTD' en JCDS. Tipo de evento explicit | |||
| Orden de Producción Liberada | Este es un hito clave donde la orden de producción es aprobada y puesta a disposición para su ejecución en planta. La liberación permite que comiencen las salidas de mercancías, las confirmaciones y otros pasos de ejecución. | ||
| Por qué es importante Este evento marca el inicio oficial del proceso de producción ejecutable y es un punto crítico para medir los tiempos de entrega. El tiempo entre la creación y la liberación es un KPI clave para la eficiencia de preproducción. Dónde obtener La liberación es activada explícitamente por un usuario o una tarea del sistema, lo que resulta en el estado REL. Este cambio de estado se registra con una marca de tiempo en la tabla JCDS. La fecha de liberación también se suele almacenar en AFKO-FTRMI. Capturar Marca de tiempo del cambio de estado a 'REL' en la tabla JCDS. Tipo de evento inferred | |||
| Plan de Producción Ajustado | Representa un cambio significativo realizado en la orden de producción después de haber sido liberada, como un cambio en la cantidad, las fechas o la lista de materiales. Esto se captura analizando los documentos de cambio. | ||
| Por qué es importante Ajustes frecuentes pueden indicar inestabilidad en la planificación o demanda volátil. Esta actividad es la base para el KPI de Tasa de Revisión del Plan de Producción y ayuda a identificar fuentes de variabilidad del proceso. Dónde obtener Inferido de los registros de cambios grabados en las tablas CDHDR (Cabecera de documento de cambio) y CDPOS (Posiciones de documento de cambio) para el objeto de orden de producción (AUFK o AFPO). Los cambios realizados después de la fecha de liberación se consideran ajustes. Capturar Identificar cambios en CDHDR/CDPOS para campos clave (por ejemplo, cantidad, fechas) después del Tipo de evento inferred | |||
| Producción Iniciada | Indica el inicio de las actividades de producción física para la orden. Esto se infiere típicamente de la primera confirmación de planta o de la primera salida de mercancías de componentes contra la orden. | ||
| Por qué es importante Esta actividad marca la transición de la planificación a la ejecución. Es esencial para el seguimiento del cumplimiento de los plazos comparando la fecha de inicio real con la fecha de inicio planificada. Dónde obtener Este es un evento inferido. Típicamente se deriva de la marca de tiempo más temprana de una contabilización de movimiento de mercancías (tabla MSEG, tipo de movimiento 261) o una contabilización de confirmación de tiempo (tabla AFRU) asociada con la orden. Capturar El Tipo de evento inferred | |||
| Confirmación de Producción Registrada | Representa el registro del progreso de una operación específica dentro de la orden de producción. Esto incluye el registro de las cantidades producidas, el desperdicio y el tiempo empleado en un centro de trabajo. | ||
| Por qué es importante Las confirmaciones proporcionan visibilidad en tiempo real del progreso en planta y son vitales para rastrear el estado de la producción. Analizar la frecuencia y el momento de las confirmaciones ayuda a monitorear el flujo e identificar retrasos entre operaciones. Dónde obtener Cada confirmación se registra explícitamente como una entrada en la tabla AFRU (Confirmaciones de Finalización de Orden) con un Capturar Registrado como un documento en la tabla AFRU. Tipo de evento explicit | |||
| Disponibilidad de Material Verificada | Representa la acción del sistema o del usuario de verificar si todos los componentes requeridos para la orden de producción están disponibles en las cantidades necesarias y a tiempo. Esta es típicamente una verificación automatizada al crear o liberar una orden, o una verificación manual, que actualiza el estado de la orden. | ||
| Por qué es importante La identificación temprana de la escasez de materiales es crucial para una planificación proactiva. Rastrear esta actividad ayuda a comprender cómo la disponibilidad de materiales afecta la capacidad de liberar órdenes y comenzar la producción a tiempo. Dónde obtener Inferido del estado de la orden. Un estado como MACM (Material comprometido) o un cambio en la fecha de disponibilidad de material (AFKO-MSERF) indica que se ha realizado una verificación. La ausencia de un estado de escasez de material (MSPT) también puede inferir la disponibilidad. Capturar Inferido de cambios de estado relacionados con el compromiso de material o la ejecución de la transacción COMAC. Tipo de evento inferred | |||
| Material Shortage Occurred | Este evento indica que el proceso de producción se vio afectado o se detuvo debido a la indisponibilidad de uno o más componentes requeridos. El sistema establece un estado específico en la orden para reflejar esto. | ||
| Por qué es importante El seguimiento de la escasez de materiales es crítico para el Análisis de Impacto de la Escasez de Material. Ayuda a cuantificar los retrasos causados por problemas en la cadena de suministro y a mejorar la planificación de materiales. Dónde obtener Esto se infiere de la activación del estado 'MSPT' (Escasez de material) para la orden de producción. La marca de tiempo para este cambio de estado se puede encontrar en la tabla JCDS. Capturar Marca de tiempo del cambio de estado a 'MSPT' en la tabla JCDS. Tipo de evento inferred | |||
| Ocurrió una Parada No Planificada | Este evento calculado representa un período de inactividad significativo durante la fase de ejecución de la producción. No es un evento explícito del sistema, sino que se deriva identificando largos lapsos de tiempo entre confirmaciones de producción consecutivas. | ||
| Por qué es importante Ayuda a monitorear interrupciones no planificadas como averías de máquinas o problemas de calidad. Identificar paradas frecuentes o prolongadas es clave para mejorar la estabilidad y el rendimiento de la planta. Dónde obtener Esto se calcula analizando las marcas de tiempo de actividades consecutivas de 'Production Confirmation Entered' de la tabla AFRU. Una brecha que excede un umbral predefinido se marca como una detención imprevista. Capturar Calcular la diferencia de tiempo entre Tipo de evento calculated | |||
| Orden Cerrada Financieramente | El paso de cierre final donde la orden se liquida y no son posibles más contabilizaciones financieras. Esto significa el fin del ciclo de vida de la orden desde una perspectiva de control y contabilidad. | ||
| Por qué es importante Aunque a menudo fuera del alcance del análisis de producción puro, esta actividad proporciona una visión completa de principio a fin. Puede ayudar a analizar el tiempo entre la finalización logística (TECO) y el cierre financiero. Dónde obtener Esto se activa cuando un usuario establece el estado en CLSD (Cerrado). El evento se captura como un cambio de estado en la tabla JCDS con una marca de tiempo correspondiente. Capturar Marca de tiempo del cambio de estado a 'CLSD' en la tabla JCDS. Tipo de evento inferred | |||
| Orden de Producción Cancelada | Representa la cancelación de una orden de producción antes de su finalización. Este es un estado final alternativo y fallido para el proceso. | ||
| Por qué es importante Analizar órdenes canceladas puede revelar problemas en la planificación de la demanda, los Dónde obtener Esto se infiere del establecimiento del estado CACL (Cancelación) en la tabla JCDS. Alternativamente, un marcador de borrado (AUFK-LOEKZ) también puede significar cancelación. Capturar Marca de tiempo del cambio de estado a 'CACL' en JCDS o establecimiento de marcador de borrado en AUFK. Tipo de evento inferred | |||
| Requisitos de Capacidad Planificados | Esta actividad implica programar las operaciones de la orden de producción y verificar la disponibilidad de capacidad en los centros de trabajo requeridos. El sistema evalúa las cargas de capacidad de los centros de trabajo y las nivela si está configurado, determinando las fechas de producción. | ||
| Por qué es importante Este paso es crítico para asegurar un programa de producción factible. Analizar su duración y resultados ayuda a identificar cuellos de botella de capacidad y mejora la precisión de la planificación de recursos. Dónde obtener Esto se infiere generalmente del estado del sistema que indica que la orden ha sido programada, como SETC (Programación realizada). Las fechas de inicio y fin programadas (AUFK-GSTRP, AUFK-GLTRP) también señalan la finalización de esta actividad. Capturar Inferido de la población de fechas programadas en AUFK/AFKO o un estado relacionado con la programación en JEST. Tipo de evento inferred | |||
Guías de Extracción
Pasos
- Verificación de Prerrequisitos: Asegúrese de tener un usuario en SAP S/4HANA con las autorizaciones adecuadas para acceder a las vistas Core Data Services (CDS) requeridas. Las vistas necesarias incluyen
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. También se requiere acceso a un entorno de ejecución SQL conectado a la base de datos SAP HANA, como SAP HANA Studio, DBeaver o una herramienta ETL externa. - Identificar Detalles del Sistema: Anote el identificador del sistema de origen que utilizará para el
atributoSourceSystem. Este es un nombre lógico que usted define para identificar el origen de losdata, por ejemplo,S4H_PROD. - Establecer Parámetros de Extracción: Antes de ejecutar la consulta, defina los parámetros clave. Esto incluye las fechas de inicio y fin del período de extracción y cualquier filtro específico como
Plant(Centro) oProductionOrderType(Tipo de Orden de Producción) para limitar el alcance de losdata. - Preparar la Consulta SQL: Copie la consulta SQL completa proporcionada en la sección
queryen su cliente SQL o herramienta de extracción dedataelegida. - Configurar Marcadores de Posición: Reemplace los valores de los marcadores de posición en la consulta con sus parámetros específicos. Esto incluye
_StartDate,_EndDatey el identificador del sistema de origen. Ajuste el umbral para eleventUnplanned Halt Occurred(Parada No Planificada Ocurrida) (por ejemplo,'24:00:00') para que coincida con su contexto de negocio. - Ejecutar la Consulta de Extracción: Ejecute el script SQL configurado en la base de datos del sistema SAP S/4HANA. Para grandes conjuntos de
dataque cubren un período prolongado, considere ejecutar la extracción en fragmentos más pequeños, por ejemplo, mes a mes, para evitar problemas de rendimiento. - Revisión Inicial de
Data: Una vez completada la ejecución de la consulta, realice una revisión rápida de la salida. Verifique el recuento de filas, asegúrese de que todas las columnas estén presentes y verifique que la columnaActivitycontenga una variedad de loseventosesperados. - Validación de
Data: Siga los pasos descritos en la secciónvalidationStepspara realizar una validación más exhaustiva. Compare algunas órdenes de producción con sus detalles en el sistema SAP utilizando la transacciónCO03para confirmar la precisión delevent logextraído. - Exportar a CSV: Exporte el conjunto de resultados final a un archivo CSV. Asegúrese de que la codificación del archivo sea UTF-8 para evitar problemas de caracteres.
- Preparar para Carga: Confirme que los encabezados de columna del CSV coinciden con los nombres de
atributorequeridos:ProductionOrder,Activity,StartTime,SourceSystemyLastDataUpdate. Asegúrese de que la columnaStartTimeesté en un formato detimestampestándar, como ISO 8601 (YYYY-MM-DDTHH:MM:SS), antes de cargarla en la herramienta deProcess Mining.
Configuración
- Vistas CDS Centrales: La extracción se basa principalmente en un conjunto de vistas CDS estándar que ofrecen una visión estructurada y orientada al negocio de las tablas SAP subyacentes. Las vistas clave incluyen:
I_ProductionOrder: Para datos a nivel de cabecera yeventosde creación.I_ProdOrdConfirmation: Para todas las confirmaciones de operación.I_MaterialDocumentItem: Para movimientos de mercancías como salidas y entradas.I_ObjectStatus: Para leer los cambios de estado de la orden de producción.I_ChangeDocumenty vistas asociadas: Para capturar cambios en los campos clave de la orden.
- Filtrado por Rango de Fechas: Es fundamental aplicar un filtro por rango de fechas para gestionar el volumen de
data. La consulta proporcionada utiliza laCreationDatede la orden de producción. Un rango típico para un análisis inicial es de 3 a 6 meses dedata. - Filtros de Negocio Clave: Para refinar aún más el conjunto de
data, aplique filtros basados enatributosorganizativos o dedatamaestros clave. Los filtros comunes incluyen:Plant(Centro): Para analizar una instalación de fabricación específica.ProductionOrderType(Tipo de Orden de Producción): Para centrarse en producción estándar, retrabajo u otros tipos de órdenes.CompanyCode(Sociedad): Para restringir losdataa una entidad legal específica.
- Umbral de Parada No Planificada: La consulta incluye lógica para derivar
eventosdeUnplanned Halt Occurred(Parada No Planificada Ocurrida). Esta lógica requiere un umbral de tiempo para definir qué constituye una brecha significativa entre operaciones. Este valor debe configurarse en función de los tiempos de ciclo de producción típicos y las reglas de negocio. - Prerrequisitos de Autorización: El usuario SAP que ejecuta la consulta debe tener autorización de visualización para todas las vistas CDS y sus tablas subyacentes. La falta de autorizaciones dará como resultado un conjunto de resultados vacío o incompleto.
a Consulta de ejemplo sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate Pasos
- Verificación de Prerrequisitos: Asegúrese de tener un usuario en SAP S/4HANA con las autorizaciones adecuadas para acceder a las vistas Core Data Services (CDS) requeridas. Las vistas necesarias incluyen
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. También se requiere acceso a un entorno de ejecución SQL conectado a la base de datos SAP HANA, como SAP HANA Studio, DBeaver o una herramienta ETL externa. - Identificar Detalles del Sistema: Anote el identificador del sistema de origen que utilizará para el
atributoSourceSystem. Este es un nombre lógico que usted define para identificar el origen de losdata, por ejemplo,S4H_PROD. - Establecer Parámetros de Extracción: Antes de ejecutar la consulta, defina los parámetros clave. Esto incluye las fechas de inicio y fin del período de extracción y cualquier filtro específico como
Plant(Centro) oProductionOrderType(Tipo de Orden de Producción) para limitar el alcance de losdata. - Preparar la Consulta SQL: Copie la consulta SQL completa proporcionada en la sección
queryen su cliente SQL o herramienta de extracción dedataelegida. - Configurar Marcadores de Posición: Reemplace los valores de los marcadores de posición en la consulta con sus parámetros específicos. Esto incluye
_StartDate,_EndDatey el identificador del sistema de origen. Ajuste el umbral para eleventUnplanned Halt Occurred(Parada No Planificada Ocurrida) (por ejemplo,'24:00:00') para que coincida con su contexto de negocio. - Ejecutar la Consulta de Extracción: Ejecute el script SQL configurado en la base de datos del sistema SAP S/4HANA. Para grandes conjuntos de
dataque cubren un período prolongado, considere ejecutar la extracción en fragmentos más pequeños, por ejemplo, mes a mes, para evitar problemas de rendimiento. - Revisión Inicial de
Data: Una vez completada la ejecución de la consulta, realice una revisión rápida de la salida. Verifique el recuento de filas, asegúrese de que todas las columnas estén presentes y verifique que la columnaActivitycontenga una variedad de loseventosesperados. - Validación de
Data: Siga los pasos descritos en la secciónvalidationStepspara realizar una validación más exhaustiva. Compare algunas órdenes de producción con sus detalles en el sistema SAP utilizando la transacciónCO03para confirmar la precisión delevent logextraído. - Exportar a CSV: Exporte el conjunto de resultados final a un archivo CSV. Asegúrese de que la codificación del archivo sea UTF-8 para evitar problemas de caracteres.
- Preparar para Carga: Confirme que los encabezados de columna del CSV coinciden con los nombres de
atributorequeridos:ProductionOrder,Activity,StartTime,SourceSystemyLastDataUpdate. Asegúrese de que la columnaStartTimeesté en un formato detimestampestándar, como ISO 8601 (YYYY-MM-DDTHH:MM:SS), antes de cargarla en la herramienta deProcess Mining.
Configuración
- Vistas CDS Centrales: La extracción se basa principalmente en un conjunto de vistas CDS estándar que ofrecen una visión estructurada y orientada al negocio de las tablas SAP subyacentes. Las vistas clave incluyen:
I_ProductionOrder: Para datos a nivel de cabecera yeventosde creación.I_ProdOrdConfirmation: Para todas las confirmaciones de operación.I_MaterialDocumentItem: Para movimientos de mercancías como salidas y entradas.I_ObjectStatus: Para leer los cambios de estado de la orden de producción.I_ChangeDocumenty vistas asociadas: Para capturar cambios en los campos clave de la orden.
- Filtrado por Rango de Fechas: Es fundamental aplicar un filtro por rango de fechas para gestionar el volumen de
data. La consulta proporcionada utiliza laCreationDatede la orden de producción. Un rango típico para un análisis inicial es de 3 a 6 meses dedata. - Filtros de Negocio Clave: Para refinar aún más el conjunto de
data, aplique filtros basados enatributosorganizativos o dedatamaestros clave. Los filtros comunes incluyen:Plant(Centro): Para analizar una instalación de fabricación específica.ProductionOrderType(Tipo de Orden de Producción): Para centrarse en producción estándar, retrabajo u otros tipos de órdenes.CompanyCode(Sociedad): Para restringir losdataa una entidad legal específica.
- Umbral de Parada No Planificada: La consulta incluye lógica para derivar
eventosdeUnplanned Halt Occurred(Parada No Planificada Ocurrida). Esta lógica requiere un umbral de tiempo para definir qué constituye una brecha significativa entre operaciones. Este valor debe configurarse en función de los tiempos de ciclo de producción típicos y las reglas de negocio. - Prerrequisitos de Autorización: El usuario SAP que ejecuta la consulta debe tener autorización de visualización para todas las vistas CDS y sus tablas subyacentes. La falta de autorizaciones dará como resultado un conjunto de resultados vacío o incompleto.
a Consulta de ejemplo sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate