Su Template de datos de planificación de la producción
Su Template de datos de planificación de la producción
- Atributos recomendados para analizar la planificación de la producción
- Actividades clave de planificación de la producción que debe supervisar
- Indicaciones detalladas para extraer datos de SAP S/4HANA
Atributos de la planificación de la producción
| Nombre | Descripción | ||
|---|---|---|---|
| Actividad Activity | Nombre del evento o la tarea específicos que tuvieron lugar en un momento determinado dentro del proceso de planificación de la producción. | ||
| Descripción Este atributo registra los distintos pasos e hitos del ciclo de vida del pedido de producción. Algunos ejemplos son «Pedido de producción creado», «Disponibilidad de materiales comprobada», «Producción iniciada» y «Pedido cerrado financieramente». Cada actividad representa una acción específica o un cambio de estado documentado en el sistema. Analizar la secuencia y la frecuencia de estas actividades es la base de Process Mining. Esto ayuda a visualizar el flujo del proceso, identificar desviaciones respecto al procedimiento estándar y localizar actividades que provocan retrasos o requieren reprocesos frecuentes, como «Plan de producción ajustado». Por qué es importante Define los pasos del proceso y permite descubrir y visualizar el Workflow real de producción y sus variaciones. Dónde obtenerlo Se obtiene de los cambios de estado en tablas como JEST y JCDS, de los códigos de transacción utilizados, por ejemplo, CO01 para la creación, o de registros de confirmación específicos en AFRU. Ejemplos Orden de producción creadaOrden de producción liberadaProducción iniciadaConfirmación final introducidaEntrada de mercancías registrada | |||
| Hora de inicio StartTime | Marca de tiempo que indica cuándo comenzó una actividad o un evento específicos. | ||
| Descripción Este atributo proporciona la fecha y la hora de cada evento registrado en el proceso de producción. Constituye la base temporal de todos los análisis de procesos basados en el tiempo. La hora de inicio es fundamental para calcular la duración entre actividades, medir el tiempo de ciclo total de un pedido de producción y comprender el momento en que tienen lugar los eventos. Permite analizar cuellos de botella, tiempos de espera y cumplimiento del programa al comparar las marcas de tiempo reales con las fechas planificadas. Por qué es importante Proporciona el contexto cronológico de todos los eventos y permite analizar el rendimiento del proceso, las duraciones y los cuellos de botella. Dónde obtenerlo Esta información suele encontrarse en las tablas de documentos de modificación (CDHDR/CDPOS) para los cambios de estado, en las tablas de confirmación (AFRU) para los pasos de ejecución y en las tablas de cabecera (AFKO) para las fechas de creación. Ejemplos 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Pedido de producción ProductionOrder | Identificador único de un pedido de producción, que actúa como identificador principal del caso para el proceso de planificación de la producción. | ||
| Descripción El número de pedido de producción es una clave única generada por SAP S/4HANA para gestionar y realizar el seguimiento de 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 la liquidación final. En 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 pedido de producción permite medir indicadores clave de rendimiento, como el tiempo de ciclo y el cumplimiento del programa, así como identificar cuellos de botella que afectan a determinadas ejecuciones de producción. Por qué es importante Es el atributo fundamental que conecta todos los pasos del proceso y permite analizar completamente el ciclo de vida de la producción a nivel de caso, desde el inicio hasta el final. Dónde obtenerlo Es el número de pedido de producción, que normalmente se encuentra en tablas de SAP como AFKO (campo AUFNR) y AFPO. Ejemplos 100056710008341001299 | |||
| Sistema de origen SourceSystem | Sistema del que se extrajeron los datos de planificación de la producción. | ||
| Descripción Este atributo identifica el origen de los datos, algo esencial en entornos con varios sistemas integrados. Para este proceso, normalmente será la instancia específica de SAP S/4HANA. En un contexto más amplio de análisis de datos, conocer el sistema de origen ayuda a garantizar la integridad de los datos y proporciona el contexto adecuado al combinar datos de distintas fuentes. Es un elemento fundamental de los metadatos para la gobernanza y la trazabilidad de los datos. Por qué es importante Proporciona metadatos esenciales para la gobernanza de los datos y garantiza que el origen y el contexto de los datos del proceso sean claros. Dónde obtenerlo Normalmente es un valor estático que se añade durante la extracción de datos para identificar el cliente y el ID del sistema (SID) de SAP S/4HANA. Ejemplos S4P_100S4H_PRD_200S4Q_300 | |||
| Última actualización de datos LastDataUpdate | Marca de tiempo que indica cuándo se actualizaron o extrajeron por última vez los datos del sistema de origen. | ||
| Descripción Este atributo registra la fecha y la hora de la extracción de datos más reciente. Es un elemento de metadatos fundamental que informa sobre la actualidad de los datos analizados. Conocer la hora de la última actualización es esencial para interpretar correctamente el análisis. Ayuda a saber si se está consultando información en tiempo real o una instantánea de un momento concreto, lo que afecta a la relevancia de los resultados y de las decisiones basadas en los datos. Por qué es importante Garantiza que los usuarios conozcan la actualidad de los datos, un aspecto fundamental para tomar decisiones empresariales precisas y pertinentes. Dónde obtenerlo Esta marca de tiempo se genera y se añade durante el proceso de extracción, transformación y carga (ETL) de datos. Ejemplos 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Centro Plant | Instalación o ubicación de fabricación donde se ejecuta el pedido de producción. | ||
| Descripción El centro es una unidad organizativa de SAP que representa un sitio o una instalación de producción. Cada pedido de producción se asigna a un centro específico donde se llevarán a cabo las actividades de fabricación. Este atributo es fundamental para comparar distintas ubicaciones de fabricación. Al segmentar los datos del proceso por centro, las organizaciones pueden comparar el rendimiento, identificar problemas o buenas prácticas específicos de cada sitio y comprender las variaciones regionales en eficiencia, capacidad o cumplimiento de los estándares. Por qué es importante Permite comparar el rendimiento de distintos sitios de producción, identificar y compartir buenas prácticas y abordar problemas específicos de cada ubicación. Dónde obtenerlo Se encuentra en la tabla de cabecera del pedido de producción AFKO (campo DWERK). Ejemplos 100017102000 | |||
| Estado del pedido OrderStatus | Estado actual de procesamiento del pedido de producción, como Creado, Liberado o Completado técnicamente. | ||
| Descripción El estado del pedido indica la fase general del ciclo de vida del pedido de producción. Es un resumen de los distintos estados del sistema y del usuario aplicados al pedido. Entre los estados habituales se incluyen CRTD (Creado), REL (Liberado), CNF (Confirmado), TECO (Completado técnicamente) y CLSD (Cerrado). Analizar el estado actual de los pedidos resulta útil para comprender el trabajo en curso. En Process Mining, el seguimiento de las transiciones entre estos estados a lo largo del tiempo genera el registro de actividades y permite obtener una visión detallada del flujo del proceso y del tiempo empleado en cada fase. Por qué es importante Proporciona una visión general de la fase del ciclo de vida del pedido y es fundamental para obtener la secuencia de actividades de Process Mining. Dónde obtenerlo Se obtiene del estado del sistema almacenado en la tabla JEST, vinculada mediante el número de objeto de AFKO (campo OBJNR). Ejemplos CRTDRELTECOCLSD | |||
| Fecha de finalización planificada PlannedEndDate | Fecha de finalización programada para el pedido de producción según el plan inicial. | ||
| Descripción La fecha de finalización planificada es la fecha objetivo en la que se espera que terminen todas las actividades de producción de un pedido. 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 del programa. Al comparar la fecha de finalización planificada con la marca de tiempo real de finalización, las organizaciones pueden calcular el KPI de tasa de cumplimiento del programa de producción e identificar los pedidos retrasados. 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 referencia para medir el cumplimiento del programa y ayuda a evaluar la precisión de la planificación y la eficiencia de la ejecución. Dónde obtenerlo Se encuentra en la tabla de cabecera del pedido de producción AFKO (campo GLTRP). Ejemplos 2023-11-152023-12-012024-01-20 | |||
| Número de material MaterialNumber | Identificador único del producto que se fabrica en el pedido de producción. | ||
| Descripción El número de material especifica el artículo que el pedido de producción debe fabricar. Vincula el proceso de producción con los datos maestros del material, incluida su lista de materiales (BOM) y la información de la hoja de ruta. Analizar el proceso por número de material ayuda a identificar si determinados productos son más propensos a sufrir retrasos, reprocesos o escasez de materiales. Esto permite optimizar el proceso para cada producto, por ejemplo, ajustando los parámetros de planificación o mejorando la cadena de suministro de componentes específicos. Por qué es importante Permite filtrar y analizar los datos según el producto fabricado, lo que revela ineficiencias o cuellos de botella específicos de cada producto. Dónde obtenerlo Se encuentra en la tabla de posiciones del pedido de producción AFPO (campo MATNR). Ejemplos RM-1001FG-2050SA-3100-B | |||
| Puesto de trabajo WorkCenter | Máquina específica, grupo de máquinas o área de montaje responsable de una operación. | ||
| Descripción Un puesto de trabajo representa una unidad operativa específica dentro de un centro donde se ejecuta un paso de producción. Puede ser una máquina individual, una línea de producción o un grupo de empleados. Analizar los datos del proceso por puesto de trabajo es clave para identificar cuellos de botella de capacidad y optimizar la asignación de recursos. Ayuda a determinar qué puestos están sobrecargados, cuáles están infrautilizados y dónde se producen retrasos con mayor frecuencia durante la fase de ejecución de la producción. Esto resulta esencial para el Dashboard de identificación de cuellos de botella de capacidad. Por qué es importante Ayuda a localizar las máquinas o líneas de producción que actúan como cuellos de botella y permite mejorar de forma específica la capacidad y la utilización de los recursos. Dónde obtenerlo Se encuentra en los datos de operaciones de un pedido de producción, en la tabla AFVC (campo ARBPL). Ejemplos WC-ASSEMBLY-01WC-MILLING-05WC-PACKING | |||
| Cantidad confirmada TotalConfirmedQuantity | Cantidad total del material cuya producción se ha confirmado para el pedido. | ||
| Descripción Este atributo representa la cantidad acumulada de productos terminados o semiterminados notificada mediante confirmaciones de producción. Permite realizar el seguimiento del avance del pedido hacia su objetivo de finalización. Comparar la cantidad confirmada con la cantidad planificada ayuda a supervisar el progreso de la producción e identificar problemas o discrepancias de rendimiento. Es una medida fundamental de la producción y se utiliza en diversos cálculos de rendimiento, incluidos los índices de desperdicio y eficiencia. Por qué es importante Registra la producción real del pedido de producción, algo esencial para supervisar el progreso, calcular el rendimiento e identificar discrepancias. Dónde obtenerlo Se agrega a partir de los registros de confirmación de AFRU (campo LMNGA para la cantidad de rendimiento). Ejemplos 9801000501200 | |||
| Es reproceso IsRework | Indicador que señala si un pedido de producción implicó reprocesos o ajustes importantes del plan después de su inicio. | ||
| Descripción Este atributo booleano se obtiene para identificar los pedidos de producción que requirieron acciones correctivas o cambios de planificación una vez iniciada la producción. Puede activarse mediante una actividad explícita de reproceso o un evento «Plan de producción ajustado» posterior a «Producción iniciada». Este indicador es fundamental para calcular el KPI de tasa de reproceso de producción y para el Dashboard de reprocesos y revisiones de producción. Permite filtrar y analizar fácilmente los casos problemáticos, lo que ayuda a descubrir las causas raíz de los problemas de calidad o las desviaciones del proceso que provocan reprocesos costosos. Por qué es importante Aísla los casos con reprocesos y permite analizar de forma específica cómo comprender y reducir los problemas de calidad, las desviaciones del proceso y los costes asociados. Dónde obtenerlo Campo calculado. Se establece en true si una actividad «Plan de producción ajustado» ocurre después de una actividad «Producción iniciada» dentro del mismo caso, o si se utiliza un tipo de pedido de reproceso específico. Ejemplos truefalse | |||
| Está a tiempo IsOnTime | Indicador que señala si el pedido de producción se completó en la fecha de finalización planificada o antes. | ||
| Descripción Este atributo booleano calculado mide directamente el cumplimiento del programa al comparar la fecha real de finalización con la fecha de finalización planificada. Proporciona un resultado binario claro sobre la puntualidad de cada pedido de producción. Este atributo constituye la base del KPI de tasa de cumplimiento del programa de producción. Simplifica el análisis al permitir segmentar fácilmente los pedidos puntuales y retrasados, así como identificar características o rutas de proceso habituales asociadas a los retrasos. Por qué es importante Proporciona una medida clara y sencilla del cumplimiento del programa para cada pedido y facilita el análisis de las causas raíz de los retrasos. Dónde obtenerlo Campo calculado. Se establece en true si la marca de tiempo de la actividad «Pedido completado técnicamente» es menor o igual que el atributo «Fecha de finalización planificada». Ejemplos truefalse | |||
| Estado de disponibilidad de materiales MaterialAvailabilityStatus | Indica si están disponibles todos los materiales necesarios para el pedido de producción. | ||
| Descripción Este estado refleja el resultado de la comprobación de disponibilidad de materiales realizada para un pedido de producción. Puede indicar que todos los materiales están disponibles, que faltan algunos o que la comprobación aún no se ha realizado. Un estado de «escasez» es un indicador clave de posibles retrasos. Este atributo es fundamental para el Dashboard de análisis del impacto de la escasez de materiales. Ayuda a cuantificar los retrasos causados por la falta de materiales al relacionar el estado de escasez con el tiempo transcurrido entre la liberación del pedido y el inicio de la producción. Mejorar esta métrica es clave para lograr un flujo de producción más fluido. Por qué es importante Explica directamente los retrasos entre la liberación del pedido y el inicio de la producción, y ayuda a cuantificar el impacto de los problemas de la cadena de suministro en la fabricación. Dónde obtenerlo Es un estado que suele derivarse del estado colectivo de los componentes materiales. Puede encontrarse en el estado del sistema (JEST), con estados como «MSPT» (escasez de materiales). Ejemplos DisponibleFaltanteNo comprobada | |||
| Fecha de inicio planificada PlannedStartDate | Fecha de inicio programada para el pedido 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 de un pedido. Es un resultado clave del proceso de programación. Este atributo proporciona la referencia inicial para analizar el cumplimiento del programa. Comparar la fecha de inicio planificada con la hora de inicio real ayuda a comprender los retrasos iniciales, como los provocados por la preparación de materiales o la liberación del pedido, que pueden repercutir en todo el calendario de producción. Por qué es importante Proporciona una referencia para medir el cumplimiento de la hora de inicio y resulta esencial para identificar retrasos en las fases previas a la producción, como la liberación del pedido y la disponibilidad de materiales. Dónde obtenerlo Se encuentra en la tabla de cabecera del pedido de producción AFKO (campo GSTRP). Ejemplos 2023-11-102023-11-252024-01-15 | |||
| Hora de finalización EndTime | Marca de tiempo que indica cuándo se completó una actividad o un evento específicos. | ||
| Descripción Este atributo proporciona la fecha y la hora de finalización de cada evento registrado. Complementa la hora de inicio para definir la duración de las actividades. La hora de finalización es fundamental para calcular el tiempo de procesamiento preciso de cada actividad, un dato clave para analizar la capacidad y la utilización de los recursos. Ayuda a diferenciar el tiempo de trabajo activo del tiempo de inactividad o espera, lo que permite identificar los cuellos de botella con mayor precisión. Por qué es importante Permite calcular la duración precisa de las actividades, algo esencial para analizar la eficiencia de los recursos e identificar cuellos de botella en el proceso. Dónde obtenerlo Se encuentra en las tablas de confirmación (AFRU) para los pasos de ejecución. En otros eventos, puede coincidir con la hora de inicio si el evento es instantáneo. Ejemplos 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Prioridad de producción ProductionPriority | Código o valor asignado a un pedido de producción para indicar su urgencia o importancia. | ||
| Descripción Los planificadores y programadores utilizan la prioridad de producción para ordenar y priorizar los pedidos, especialmente cuando los recursos son limitados. En condiciones ideales, un pedido de mayor prioridad debe procesarse antes que uno de menor prioridad. Analizar este atributo ayuda a evaluar si se respetan las prioridades asignadas en la planta. El Dashboard de coherencia de la priorización de la producción compara la secuencia de procesamiento con la prioridad asignada para identificar incoherencias, lo que puede mejorar la disciplina de programación y la 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 empresariales y garantiza que los pedidos críticos se aceleren según lo previsto. Dónde obtenerlo Suele ser un campo personalizado o basarse en otros parámetros del pedido. Su ubicación específica depende de la configuración. Ejemplos AltaMediaBaja15 | |||
| Tipo de pedido OrderType | Clasificación del pedido de producción que define su finalidad y controla su procesamiento. | ||
| Descripción El tipo de pedido es un elemento clave de configuración de SAP PP que determina cómo gestiona el sistema un pedido de producción. Controla los rangos de numeración, la selección de datos maestros, los parámetros de cálculo de costes y las reglas de liquidación. Algunos ejemplos son los pedidos de producción estándar, los pedidos de reproceso y los pedidos de prototipo. Analizar el proceso por tipo de pedido permite comparar el rendimiento y el flujo de distintos tipos de procesos de producción. Esto puede revelar si los pedidos de reproceso tardan mucho más o si determinados tipos de pedido son más propensos a ajustes de planificación, lo que proporciona información valiosa para mejorar el proceso de forma específica. Por qué es importante Permite segmentar el análisis según la finalidad empresarial del pedido y comparar la producción estándar, el reproceso y otros procesos. Dónde obtenerlo Se encuentra en la tabla de cabecera del pedido de producción AFKO (campo AUART). Ejemplos PP01PP03ZP01 | |||
| Usuario User | ID del sistema del usuario que creó, modificó o confirmó un evento del pedido de producción. | ||
| Descripción Este atributo captura el ID de usuario de SAP asociado a una transacción o un cambio de estado específicos, como liberar un pedido o introducir una confirmación. Proporciona trazabilidad de las acciones realizadas en el sistema. Analizar las actividades por usuario ayuda a comprender la distribución de la carga de trabajo, identificar necesidades de formación y garantizar el cumplimiento de los procedimientos. Por ejemplo, puede mostrar si determinados usuarios participan con frecuencia en ajustes del plan o si los retrasos están asociados a equipos específicos. Por qué es importante Proporciona responsabilidad y permite analizar la carga de trabajo, el comportamiento de cada usuario y posibles oportunidades de formación. Dónde obtenerlo Normalmente se encuentra en las cabeceras de los documentos de modificación (CDHDR, campo UNAME) o en los registros de confirmación (AFRU, campo PERNR para el número de personal). Ejemplos CB9980000021JSMITHPLANNER01 | |||
Actividades de la planificación de la producción
| Actividad | Descripción | ||
|---|---|---|---|
| Confirmación final introducida | Esta actividad marca la confirmación de la última operación de la ruta de la orden de producción. Indica que se han completado en planta todos los pasos de fabricación planificados. | ||
| Por qué es importante La confirmación final es un hito clave que indica el final del trabajo físico de producción. A menudo se utiliza como punto final más preciso para medir el tiempo de ciclo en planta antes de la entrada final de mercancías. Dónde obtenerlo Se infiere a partir de los datos de confirmación de la tabla AFRU. Se identifica como el registro de confirmación de la última secuencia de operación (AFVC-VPLNR) que tiene activado el indicador de «confirmación final» (AFRUD-AUERU). Recopilar Busque en AFRU la última confirmación de operación 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 existencias del material producido. | ||
| Por qué es importante 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 las entregas a tiempo y el plazo total. Dónde obtenerlo Es un registro financiero explícito almacenado en las tablas de documentos de material MSEG (nivel de posición) y MKPF (nivel de cabecera), normalmente con la clase de movimiento 101. Estos documentos están vinculados a la orden de producción. Recopilar Busque en MSEG el documento de material vinculado a la orden con la clase de movimiento 101. Tipo de evento explicit | |||
| Orden completada técnicamente | Es un paso administrativo de cierre que impide realizar más cambios logísticos en la orden, como movimientos de mercancías o confirmaciones. Desde el punto de vista logístico, la orden se considera completada. | ||
| Por qué es importante TECO es el punto final definitivo del proceso de producción y resulta fundamental para calcular el tiempo total de ciclo de la orden de producción. Indica que todas las actividades logísticas han finalizado y que la orden está lista para la liquidación financiera. Dónde obtenerlo Se activa cuando un usuario establece el estado TECO (Technically Completed). El evento se captura como un cambio de estado en la tabla JCDS con la marca de tiempo correspondiente. Recopilar Marca de tiempo del cambio de estado a «TECO» en la tabla JCDS. Tipo de evento inferred | |||
| Orden de producción creada | Es la creación inicial de la orden de producción en el sistema, que constituye la solicitud formal para fabricar una cantidad determinada de un producto. Este evento se captura explícitamente cuando un usuario guarda una orden nueva y establece su estado inicial en CRTD (Created). | ||
| Por qué es importante Marca el inicio del ciclo de vida de la orden de producción. Analizar el tiempo transcurrido desde la creación hasta la liberación ayuda a identificar retrasos administrativos o de planificación antes de programar formalmente la producción. Dónde obtenerlo 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, vinculadas mediante el número de objeto (OBJNR) de la orden. Recopilar Marca de tiempo de AUFK-ERDAT o del registro del cambio de estado a «CRTD» en JCDS. Tipo de evento explicit | |||
| Orden de producción liberada | Es un hito clave en el que se aprueba la orden de producción y se pone a disposición para su ejecución en planta. La liberación permite iniciar 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 plazos. El tiempo entre la creación y la liberación es un KPI clave de la eficiencia previa a la producción. Dónde obtenerlo La liberación se activa explícitamente mediante un usuario o un trabajo del sistema y da lugar al estado REL. Este cambio de estado se registra con una marca de tiempo en la tabla JCDS. La fecha de liberación también suele almacenarse en AFKO-FTRMI. Recopilar 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 su liberación, como una modificación de la cantidad, las fechas o la lista de materiales. Se captura mediante el análisis de los documentos de modificación. | ||
| Por qué es importante Los ajustes frecuentes pueden indicar inestabilidad de la planificación o una demanda volátil. Esta actividad constituye la base del KPI de tasa de revisión del plan de producción y ayuda a identificar las fuentes de variabilidad del proceso. Dónde obtenerlo Se infiere a partir de los registros de modificaciones de las tablas CDHDR (cabecera del documento de modificación) y CDPOS (posiciones del documento de modificación) para el objeto de la orden de producción (AUFK o AFPO). Los cambios realizados después de la fecha de liberación se consideran ajustes. Recopilar Identifique los cambios en CDHDR/CDPOS de campos clave, como cantidades o fechas, posteriores al evento de liberación. Tipo de evento inferred | |||
| Producción iniciada | Indica el inicio de las actividades de producción física de la orden. Normalmente se infiere a partir de la primera confirmación en 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 realizar el seguimiento del cumplimiento del programa comparando la fecha de inicio real con la fecha de inicio planificada. Dónde obtenerlo Es un evento inferido. Normalmente se obtiene de la primera marca de tiempo de un registro de movimiento de mercancías (tabla MSEG, clase de movimiento 261) o de un registro de confirmación de tiempo (tabla AFRU) asociado a la orden. Recopilar Primera marca de tiempo de AFRU (confirmaciones) o MSEG (movimientos de mercancías) correspondiente a la orden. Tipo de evento inferred | |||
| Confirmación de producción introducida | Representa el registro del progreso de una operación concreta dentro de la orden de producción. Incluye el registro de las cantidades producidas, los desperdicios 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 fundamentales para realizar el seguimiento del estado de la producción. Analizar su frecuencia y momento ayuda a supervisar el flujo e identificar retrasos entre operaciones. Dónde obtenerlo Cada confirmación se registra explícitamente como una entrada en la tabla AFRU (confirmaciones de finalización de órdenes), con una marca de tiempo (BUDAT, UZEIT) y detalles de la operación. Recopilar Registrada como un documento en la tabla AFRU. Tipo de evento explicit | |||
| Disponibilidad de materiales comprobada | Representa la acción del sistema o del usuario de comprobar si todos los componentes necesarios para la orden de producción están disponibles en las cantidades requeridas y a tiempo. Normalmente se trata de una comprobación automática al crear o liberar la orden, o de una comprobación manual que actualiza el estado de la orden. | ||
| Por qué es importante La identificación temprana de la falta de materiales es crucial para una planificación proactiva. El seguimiento de esta actividad ayuda a comprender cómo afecta la disponibilidad de materiales a la capacidad de liberar las órdenes e iniciar la producción a tiempo. Dónde obtenerlo Se infiere a partir del estado de la orden. Un estado como MACM (Material committed) o un cambio en la fecha de disponibilidad de materiales (AFKO-MSERF) indica que se ha realizado una comprobación. La ausencia del estado de falta de materiales (MSPT) también puede indicar disponibilidad. Recopilar Se infiere a partir de los cambios de estado relacionados con el compromiso de materiales o de la ejecución de la transacción COMAC. Tipo de evento inferred | |||
| Falta de materiales detectada | Este evento indica que el proceso de producción se vio afectado o se detuvo debido a la falta de uno o más componentes necesarios. El sistema establece un estado específico en la orden para reflejarlo. | ||
| Por qué es importante El seguimiento de la falta de materiales es fundamental para el análisis del impacto de la falta de materiales. Ayuda a cuantificar los retrasos causados por problemas de la cadena de suministro y a mejorar la planificación de materiales. Dónde obtenerlo Se infiere a partir de la activación del estado «MSPT» (Material shortage) para la orden de producción. La marca de tiempo de este cambio de estado se encuentra en la tabla JCDS. Recopilar Marca de tiempo del cambio de estado a «MSPT» en la tabla JCDS. Tipo de evento inferred | |||
| Necesidades de capacidad planificadas | Esta actividad consiste en programar las operaciones de la orden de producción y comprobar la disponibilidad de capacidad en los centros de trabajo necesarios. El sistema evalúa las cargas de capacidad de los centros de trabajo y las nivela si está configurado para ello, determinando las fechas de producción. | ||
| Por qué es importante Este paso es fundamental para garantizar un programa de producción viable. Analizar su duración y sus resultados ayuda a identificar cuellos de botella de capacidad y mejora la precisión de la planificación de recursos. Dónde obtenerlo Generalmente se infiere a partir del estado del sistema que indica que la orden se ha programado, como SETC (Scheduling carried out). La cumplimentación de las fechas de inicio y finalización programadas (AUFK-GSTRP, AUFK-GLTRP) también indica que esta actividad ha finalizado. Recopilar Se infiere a partir de la cumplimentación de las fechas programadas en AUFK/AFKO o de un estado relacionado con la programación en JEST. Tipo de evento inferred | |||
| Orden cerrada financieramente | Es el paso final de cierre, en el que se liquida la orden y ya no son posibles más registros financieros. Indica el final del ciclo de vida de la orden desde la perspectiva del controlling y la contabilidad. | ||
| Por qué es importante Aunque a menudo queda fuera del alcance del análisis de producción puro, esta actividad proporciona una visión completa de extremo a extremo. Puede ayudar a analizar el tiempo transcurrido entre la finalización logística (TECO) y el cierre financiero. Dónde obtenerlo Se activa cuando un usuario establece el estado CLSD (Closed). El evento se captura como un cambio de estado en la tabla JCDS con la marca de tiempo correspondiente. Recopilar 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. Es un estado final alternativo y no satisfactorio del proceso. | ||
| Por qué es importante Analizar las órdenes canceladas puede revelar problemas de planificación de la demanda, datos maestros o procesos de ventas. Unas tasas de cancelación elevadas pueden indicar problemas sistémicos que deben abordarse. Dónde obtenerlo Se infiere a partir del estado del sistema CACL (Cancellation) establecido en la tabla JCDS. Como alternativa, un indicador de borrado (AUFK-LOEKZ) también puede señalar una cancelación. Recopilar Marca de tiempo del cambio de estado a «CACL» en JCDS o del establecimiento del indicador de borrado en AUFK. Tipo de evento inferred | |||
| Parada imprevista detectada | Este evento calculado representa un periodo significativo de inactividad durante la fase de ejecución de la producción. No es un evento explícito del sistema, sino que se obtiene identificando grandes intervalos de tiempo entre confirmaciones de producción consecutivas. | ||
| Por qué es importante Ayuda a supervisar interrupciones imprevistas, como averías de máquinas o problemas de calidad. Identificar paradas frecuentes o prolongadas es clave para mejorar la estabilidad y el rendimiento en planta. Dónde obtenerlo Se calcula analizando las marcas de tiempo de actividades consecutivas de «Confirmación de producción introducida» de la tabla AFRU. Un intervalo superior a un umbral predefinido se marca como parada imprevista. Recopilar Calcule la diferencia de tiempo entre las marcas de tiempo de confirmaciones consecutivas (AFRU-BUDAT/UZEIT). Tipo de evento calculated | |||
Guías de extracción
Pasos
- Verifique los requisitos previos: Asegúrese de tener un usuario en SAP S/4HANA con las autorizaciones adecuadas para acceder a las vistas Core Data Services (CDS) necesarias. Las vistas requeridas incluyen
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. También necesita 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. - Identifique los detalles del sistema: Anote el identificador del sistema de origen que utilizará para el atributo
SourceSystem. Se trata de un nombre lógico que define para identificar el origen de los datos, por ejemplo,S4H_PROD. - Defina los parámetros de extracción: Antes de ejecutar la consulta, defina los parámetros clave. Incluya las fechas de inicio y fin del periodo de extracción y los filtros específicos, como
PlantoProductionOrderType, para limitar el alcance de los datos. - Prepare la consulta SQL: Copie la consulta SQL completa proporcionada en la sección
queryen el cliente SQL o la herramienta de extracción de datos que haya elegido. - Configure los valores de ejemplo: Sustituya los valores de ejemplo de la consulta por sus parámetros específicos. Esto incluye
_StartDate,_EndDatey el identificador del sistema de origen. Ajuste el umbral del evento «Parada no planificada ocurrida», por ejemplo,'24:00:00', para adaptarlo a su contexto empresarial. - Ejecute la consulta de extracción: Ejecute el script SQL configurado en la base de datos del sistema SAP S/4HANA. Para grandes volúmenes de datos que cubran periodos extensos, considere realizar la extracción en bloques más pequeños, por ejemplo, mes a mes, para evitar problemas de rendimiento.
- Revise inicialmente los datos: Cuando finalice la ejecución de la consulta, revise rápidamente el resultado. Compruebe el número de filas, asegúrese de que estén presentes todas las columnas y verifique que la columna
Actividadcontenga distintos eventos esperados. - Valide los datos: Siga los pasos descritos en la sección
validationStepspara realizar una validación más exhaustiva. Compare varias órdenes de producción con sus detalles en el sistema SAP mediante la transacciónCO03para confirmar la exactitud del Registro de eventos extraído. - Exporte 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 con los caracteres.
- Prepare la carga: Confirme que las cabeceras de las columnas CSV coincidan con los nombres de atributos necesarios:
ProductionOrder,Actividad,StartTime,SourceSystemyLastDataUpdate. Asegúrese de que la columnaStartTimeutilice un formato de marca de tiempo estándar, como ISO 8601 (YYYY-MM-DDTHH:MM:SS), antes de cargar el archivo en la herramienta de Process Mining.
Configuración
- Vistas CDS principales: 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. Entre las vistas clave se incluyen:
I_ProductionOrder: para los datos de cabecera y los eventos de creación.I_ProdOrdConfirmation: para todas las confirmaciones de operaciones.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 las vistas asociadas: para capturar cambios en los campos clave de la orden.
- Filtrado por intervalo de fechas: Es fundamental aplicar un filtro de intervalo de fechas para gestionar el volumen de datos. La consulta proporcionada utiliza la
CreationDatede la orden de producción. Para un análisis inicial, suele recomendarse un periodo de 3 a 6 meses de datos. - Filtros empresariales clave: Para delimitar aún más el conjunto de datos, aplique filtros basados en atributos organizativos o de datos maestros clave. Entre los filtros habituales se incluyen:
Plant: para analizar una planta de fabricación específica.ProductionOrderType: para centrarse en órdenes estándar de producción, retrabajo u otros tipos de orden.CompanyCode: para limitar los datos a una entidad jurídica específica.
- Umbral de parada no planificada: La consulta incluye lógica para derivar eventos
Unplanned Halt Occurred. Esta lógica requiere un umbral de tiempo que defina qué se considera una interrupción significativa entre operaciones. Configure este valor según los tiempos habituales del ciclo de producción y las reglas empresariales. - Requisitos de autorización: El usuario de SAP que ejecute la consulta debe disponer de autorización de visualización para todas las vistas CDS y sus tablas subyacentes. La falta de autorizaciones generará 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
- Confirme que dispone de acceso de lectura directo al esquema SAP HANA que contiene los datos de las órdenes de producción e identifique el propietario del esquema, la gestión del cliente, las convenciones de fecha y hora y el modelo de autorizaciones. Utilice SAP HANA Database Explorer o un cliente SQL aprobado. Valide la versión correspondiente de SAP S/4HANA y el alcance de planificación de la producción activado antes de finalizar la consulta.
- Configure la cadena de conexión, las credenciales, el nombre del esquema, el valor del cliente, las fechas inicial y final de extracción y los filtros específicos de la empresa. La consulta siguiente utiliza AUFK, AFPO, JEST y JCDS, y también hace referencia a AFKO, AFVC, AFRU, RESB, MSEG, CDHDR y CDPOS. Confirme la disponibilidad y las definiciones de los campos de estos objetos en su sistema antes de ejecutarla, ya que pueden existir extensiones, vistas de compatibilidad y diferencias entre versiones.
- Ejecute la consulta en SAP HANA Database Explorer o en su herramienta aprobada de ejecución SQL. La consulta crea una fila por cada actividad extraída explícitamente y combina las filas de actividades mediante UNION ALL. No depende de ProcessMind para inferir eventos.
- Revise los datos de origen y adapte, cuando sea necesario, las expresiones marcadas específicas de su sistema. En particular, confirme los códigos de estado utilizados para la disponibilidad de materiales, la planificación de capacidad, la finalización técnica, el cierre financiero y la cancelación. Confirme el objeto de documento de modificación y los nombres de los campos utilizados para identificar los ajustes del plan de producción.
- Valide la conversión de fechas y horas y el filtrado por cliente. Los sistemas SAP pueden almacenar las fechas y las horas en campos separados, y algunas instalaciones utilizan UTC mientras que otras utilizan la hora local de la planta o del sistema. Asegúrese de que los valores resultantes de StartTime utilicen una única zona horaria coherente y de excluir las fechas SAP no válidas o iniciales.
- Exporte el resultado como un archivo plano compatible con ProcessMind, preferiblemente CSV o texto delimitado en UTF-8. Conserve exactamente los nombres de las columnas de salida ProductionOrder, Activity, StartTime, SourceSystem, LastDataUpdate, MaterialNumber, Plant, WorkCenter, PlannedEndDate y OrderStatus.
- Ordene las filas exportadas por ProductionOrder y StartTime, con un orden secundario determinista para las marcas de tiempo iguales si su proceso de carga lo admite. Mantenga una fila por evento, incluidas las confirmaciones y los cambios de estado repetidos cuando representen registros de origen independientes.
- Cargue el archivo en ProcessMind y asigne ProductionOrder como identificador del caso, Activity como actividad y StartTime como marca de tiempo del evento. Asigne las columnas restantes como atributos de evento o de caso según la configuración de importación de ProcessMind. Confirme que las 14 etiquetas de actividad se conserven exactamente como las produce la consulta.
Configuración
- Intervalo de fechas: Comience con un periodo móvil de tres a seis meses. Utilice un periodo más corto para las pruebas iniciales y amplíelo solo después de validar el número de filas y el rendimiento de la consulta.
- Parámetros de extracción: Sustituya [Your schema name], [Your client], [Extraction start date], [Extraction end date] y [Your source system name] por los valores de su entorno. Aplique filtros específicos de la empresa solo después de confirmar los campos y valores organizativos pertinentes.
- Configuración de estados: Verifique los códigos de estado SAP exactos y los identificadores de objetos de estado utilizados en su sistema para CRTD, liberación, disponibilidad de materiales, planificación de capacidad, finalización técnica, cierre financiero y cancelación. Los perfiles de estado y las ampliaciones personalizadas pueden modificar los códigos disponibles.
- Documentos de modificación: Confirme el objeto de documento de modificación de las órdenes de producción, los nombres de las tablas y los campos y los formatos de valores utilizados para los cambios de cantidad, fechas, lista de materiales y operaciones. La consulta considera los registros coincidentes de CDHDR y CDPOS como evidencia de ajustes del plan.
- Gestión de fechas y horas: Estandarice todas las marcas de tiempo de origen en una única zona horaria. Confirme si los campos de fecha y hora se almacenan por separado, si las marcas de tiempo corresponden a la hora local o a UTC y cómo se representan las fechas iniciales.
- Rendimiento: Limite la extracción por fecha de creación de la orden u otra fecha indexada de la orden de producción, filtre por cliente, seleccione solo las columnas necesarias y ejecute el proceso durante una ventana de generación de informes adecuada. Para conjuntos de datos grandes, extraiga por mes o por intervalo de órdenes de producción y conserve los resultados de forma incremental.
- Objetos de base de datos: Confirme que AUFK, AFPO, JEST, JCDS, AFKO, AFVC, AFRU, RESB, MSEG, CDHDR y CDPOS estén disponibles y sean legibles en el esquema seleccionado. Si una vista o un campo difiere en su versión, sustitúyalo por el objeto publicado o aprobado correspondiente.
- Autorizaciones: El acceso necesario incluye autorización de lectura al esquema y los objetos SAP HANA seleccionados, además de permiso para ejecutar SQL. El proceso de gobierno de su organización también puede exigir autorizaciones de la aplicación SAP.
- Alcance funcional: Los datos de planificación y ejecución de la producción, los movimientos de inventario, el historial de estados y los documentos de modificación deben conservarse durante el periodo seleccionado. Los registros archivados o eliminados no se devolverán.
- Asignación en ProcessMind: Configure ProductionOrder como identificador del caso, Activity como actividad y StartTime como marca de tiempo del evento. No espere que ProcessMind derive actividades ausentes a partir de los atributos.
a Consulta de ejemplo sql
WITH
params AS (
SELECT
'[Your client]' AS mandt,
TO_DATE('[Extraction start date]', 'YYYY-MM-DD') AS date_from,
TO_DATE('[Extraction end date]', 'YYYY-MM-DD') AS date_to,
'[Your source system name]' AS source_system,
CURRENT_UTCTIMESTAMP AS last_data_update
FROM DUMMY
),
orders AS (
SELECT
a.mandt,
LTRIM(a.aufnr, '0') AS production_order,
a.aufnr AS production_order_raw,
a.erdat AS order_created_date,
a.erfzeit AS order_created_time,
a.auart AS order_type,
a.werks AS plant,
a.objnr AS object_number,
a.ktext AS order_text,
p.matnr AS material_number,
p.psmng AS planned_quantity,
p.wemng AS delivered_quantity,
k.gstrp AS planned_start_date,
k.gltrp AS planned_end_date,
k.ftrmi AS release_date,
k.ftrmp AS release_time,
k.gamng AS total_order_quantity,
k.plnbez AS header_material_number,
k.plnty AS task_list_type,
k.plnnr AS task_list_group,
k.plnal AS task_list_group_counter
FROM [Your schema name].AUFK a
LEFT JOIN [Your schema name].AFPO p
ON p.mandt = a.mandt
AND p.aufnr = a.aufnr
LEFT JOIN [Your schema name].AFKO k
ON k.mandt = a.mandt
AND k.aufnr = a.aufnr
CROSS JOIN params x
WHERE a.mandt = x.mandt
AND a.erdat >= x.date_from
AND a.erdat < ADD_DAYS(x.date_to, 1)
),
status_history AS (
SELECT
o.*,
j.stat,
j.inact,
j.chgnr,
j.udate AS status_date,
j.utime AS status_time,
c.usnam AS status_user,
c.chind AS status_change_indicator
FROM orders o
INNER JOIN [Your schema name].JEST j
ON j.mandt = o.mandt
AND j.objnr = o.object_number
LEFT JOIN [Your schema name].JCDS c
ON c.mandt = j.mandt
AND c.objnr = j.objnr
AND c.stat = j.stat
AND c.chgnr = j.chgnr
WHERE COALESCE(j.inact, '') <> 'X'
),
operations AS (
SELECT
o.production_order,
o.mandt,
v.vornr,
v.arbid,
v.steus,
v.ltxa1,
v.aufpl,
v.aplzl,
cr.name1 AS work_center
FROM orders o
LEFT JOIN [Your schema name].AFVC v
ON v.mandt = o.mandt
AND v.aufpl = (SELECT MAX(k2.aufpl) FROM [Your schema name].AFKO k2 WHERE k2.mandt = o.mandt AND k2.aufnr = o.production_order_raw)
LEFT JOIN [Your schema name].CRHD cr
ON cr.mandt = v.mandt
AND cr.objty = 'A'
AND cr.objid = v.arbid
),
confirmations AS (
SELECT
o.production_order,
o.mandt,
r.rmzhl,
r.vornr,
r.budat AS confirmation_date,
r.ersda AS entry_date,
r.erzet AS entry_time,
r.ism01,
r.ism02,
r.ism03,
r.ism04,
r.ism05,
r.ism06,
r.xmnga,
r.stzhl,
r.stzhl AS reversal_counter,
r.lmnga AS confirmed_quantity,
r.xmnge AS scrap_quantity,
r.aufpl,
r.aplzl,
op.work_center
FROM orders o
INNER JOIN [Your schema name].AFRU r
ON r.mandt = o.mandt
AND r.aufnr = o.production_order_raw
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.mandt = r.mandt
AND op.vornr = r.vornr
),
first_confirmation AS (
SELECT production_order, MIN(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM confirmations
GROUP BY production_order
),
last_confirmation AS (
SELECT production_order, MAX(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS final_time
FROM confirmations
GROUP BY production_order
),
first_goods_issue AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('261', '262')
GROUP BY o.production_order
),
first_receipt AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(m.budat_mkpf, 'YYYYMMDD') || LPAD(TO_VARCHAR(m.cputm_mkpf), 6, '0'), 'YYYYMMDDHH24MISS')) AS receipt_time
FROM orders o
INNER JOIN [Your schema name].MSEG m
ON m.mandt = o.mandt
AND m.aufnr = o.production_order_raw
AND m.bwart IN ('101', '102')
GROUP BY o.production_order
),
plan_changes AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(h.udate, 'YYYYMMDD') || LPAD(TO_VARCHAR(h.utime), 6, '0'), 'YYYYMMDDHH24MISS')) AS adjustment_time
FROM orders o
INNER JOIN [Your schema name].CDHDR h
ON h.mandant = o.mandt
AND h.objectid = o.production_order_raw
INNER JOIN [Your schema name].CDPOS p
ON p.mandant = h.mandant
AND p.objectclas = h.objectclas
AND p.objectid = h.objectid
AND p.changenr = h.changenr
WHERE h.objectclas IN ('ORDER', 'PP_ORDER')
AND p.tabname IN ('AFKO', 'AFPO', 'AFVC', 'RESB')
AND p.fname IN ('GAMNG', 'PSMNG', 'GSTRP', 'GLTRP', 'MATNR', 'BDMNG', 'VORNR')
GROUP BY o.production_order
),
status_times AS (
SELECT
production_order,
MIN(CASE WHEN stat IN ('I0001', 'CRTD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS created_status_time,
MIN(CASE WHEN stat IN ('I0002', 'REL') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS released_time,
MIN(CASE WHEN stat IN ('I0003', 'MATC', 'MANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS material_available_time,
MIN(CASE WHEN stat IN ('I0004', 'CAPC', 'CAPA') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS capacity_planned_time,
MIN(CASE WHEN stat IN ('I0045', 'TECO') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS technically_completed_time,
MIN(CASE WHEN stat IN ('I0046', 'CLSD') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS financially_closed_time,
MIN(CASE WHEN stat IN ('I0076', 'DLFL', 'CANC') THEN TO_TIMESTAMP(TO_VARCHAR(status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(status_time), 6, '0'), 'YYYYMMDDHH24MISS') END) AS cancelled_time
FROM status_history
GROUP BY production_order
),
material_shortages AS (
SELECT
o.production_order,
MIN(TO_TIMESTAMP(TO_VARCHAR(j.status_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(j.status_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS shortage_time
FROM status_history j
INNER JOIN orders o
ON o.production_order = j.production_order
WHERE j.stat IN ('I0042', 'MANC', 'MSHT')
GROUP BY o.production_order
),
capacity_times AS (
SELECT
production_order,
MIN(COALESCE(released_time, created_status_time)) AS capacity_time
FROM status_times
GROUP BY production_order
),
base_attributes AS (
SELECT
o.production_order,
o.material_number,
o.plant,
COALESCE(op.work_center, '') AS work_center,
o.planned_end_date,
COALESCE(st.stat, '') AS current_status
FROM orders o
LEFT JOIN status_history st
ON st.production_order = o.production_order
AND st.inact = ''
LEFT JOIN operations op
ON op.production_order = o.production_order
AND op.vornr = (SELECT MIN(op2.vornr) FROM operations op2 WHERE op2.production_order = o.production_order)
),
events AS (
SELECT o.production_order, 'Production Order Created' AS activity, COALESCE(st.created_status_time, TO_TIMESTAMP(TO_VARCHAR(o.order_created_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(o.order_created_time), 6, '0'), 'YYYYMMDDHH24MISS')) AS start_time FROM orders o LEFT JOIN status_times st ON st.production_order = o.production_order
UNION ALL
SELECT production_order, 'Material Availability Checked', material_available_time FROM status_times WHERE material_available_time IS NOT NULL
UNION ALL
SELECT production_order, 'Capacity Requirements Planned', capacity_time FROM capacity_times WHERE capacity_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Released', released_time FROM status_times WHERE released_time IS NOT NULL
UNION ALL
SELECT o.production_order, 'Production Started', LEAST(COALESCE(fc.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS')), COALESCE(fg.start_time, TO_TIMESTAMP('99991231235959', 'YYYYMMDDHH24MISS'))) FROM orders o LEFT JOIN first_confirmation fc ON fc.production_order = o.production_order LEFT JOIN first_goods_issue fg ON fg.production_order = o.production_order WHERE fc.start_time IS NOT NULL OR fg.start_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Confirmation Entered', TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') FROM confirmations
UNION ALL
SELECT production_order, 'Material Shortage Occurred', shortage_time FROM material_shortages WHERE shortage_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Plan Adjusted', adjustment_time FROM plan_changes WHERE adjustment_time IS NOT NULL
UNION ALL
SELECT c.production_order, 'Unplanned Halt Occurred', ADD_SECONDS(c.confirmation_time, 1) FROM (SELECT production_order, TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS') AS confirmation_time, LEAD(TO_TIMESTAMP(TO_VARCHAR(entry_date, 'YYYYMMDD') || LPAD(TO_VARCHAR(entry_time), 6, '0'), 'YYYYMMDDHH24MISS')) OVER (PARTITION BY production_order ORDER BY entry_date, entry_time, rmzhl) AS next_confirmation_time FROM confirmations) c WHERE c.next_confirmation_time IS NOT NULL AND SECONDS_BETWEEN(c.confirmation_time, c.next_confirmation_time) >= 86400
UNION ALL
SELECT production_order, 'Final Confirmation Entered', final_time FROM last_confirmation WHERE final_time IS NOT NULL
UNION ALL
SELECT production_order, 'Goods Receipt Posted', receipt_time FROM first_receipt WHERE receipt_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Technically Completed', technically_completed_time FROM status_times WHERE technically_completed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Order Financially Closed', financially_closed_time FROM status_times WHERE financially_closed_time IS NOT NULL
UNION ALL
SELECT production_order, 'Production Order Cancelled', cancelled_time FROM status_times WHERE cancelled_time IS NOT NULL
)
SELECT
e.production_order AS "ProductionOrder",
e.activity AS "Activity",
e.start_time AS "StartTime",
p.source_system AS "SourceSystem",
p.last_data_update AS "LastDataUpdate",
b.material_number AS "MaterialNumber",
b.plant AS "Plant",
NULLIF(b.work_center, '') AS "WorkCenter",
b.planned_end_date AS "PlannedEndDate",
b.current_status AS "OrderStatus"
FROM events e
INNER JOIN base_attributes b
ON b.production_order = e.production_order
CROSS JOIN params p
WHERE e.start_time IS NOT NULL
ORDER BY e.production_order, e.start_time, e.activity; ¿Listo para comenzar?
Dé el primer paso para transformar la eficiencia de su planificación de la producción. Prepare sus datos con esta Template y obtenga información valiosa para optimizarla.
Comience hoy a optimizar su planificación de la producción
Identifique y elimine los cuellos de botella y reduzca un 30 % el tiempo del ciclo de producción.
No se requiere tarjeta de crédito