Su Template de datos para la gestión de almacenes
Su Template de datos para la gestión de almacenes
- Atributos recomendados para un análisis completo
- Actividades clave que debe seguir en todo el proceso
- Orientación para extraer datos de SAP EWM
Atributos de gestión de almacenes
| Nombre | Descripción | ||
|---|---|---|---|
| Warehouse Order WarehouseOrder | Identificador único de una orden de almacén que agrupa un conjunto de tareas que debe realizar un recurso. | ||
| Descripción La Warehouse Order es el identificador principal del caso para hacer un seguimiento integral del proceso de manipulación de mercancías en el almacén. Representa un paquete de trabajo, como recoger artículos para una entrega saliente o ubicar mercancías recibidas. Cada Warehouse Order contiene una o más tareas de almacén. En Process Mining, analizar los datos por Warehouse Order permite obtener una visión completa del ciclo de vida de un paquete de trabajo específico. Esto ayuda a identificar cuellos de botella, medir los tiempos de ciclo totales desde la creación hasta la finalización y comprender el flujo completo de actividades asociado a una única instrucción logística. Por qué es importante Este es el identificador principal que conecta todas las actividades relacionadas del almacén y permite analizar el proceso de principio a fin y medir el tiempo de ciclo de una unidad de trabajo. Dónde obtenerlo Este identificador suele encontrarse en la tabla de cabecera de órdenes de almacén de SAP EWM, como /SCWM/WHO. Ejemplos 200000145200000146200000147 | |||
| Hora de inicio EventTime | Marca de tiempo que indica cuándo comenzó la actividad o el evento. | ||
| Descripción Este atributo registra la fecha y hora exactas en que tuvo lugar una actividad específica del almacén. Es el principal dato temporal para ordenar los eventos y calcular el tiempo transcurrido entre ellos. En Process Mining, la hora de inicio es esencial para construir la secuencia cronológica de eventos de cada caso. Se utiliza para calcular los tiempos de ciclo, de espera y de procesamiento, fundamentales para analizar el rendimiento, identificar cuellos de botella y supervisar los SLA. Por qué es importante Esta marca de tiempo es fundamental para ordenar cronológicamente los eventos y calcular todas las métricas de rendimiento basadas en el tiempo, como los tiempos de ciclo y las duraciones. Dónde obtenerlo Suele encontrarse en tablas de eventos o confirmaciones, como /SCWM/ORDIM_C (por ejemplo, en el campo CONF_TIMESTAMP), o en registros de cambios de estado asociados a órdenes y tareas de almacén. Ejemplos 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Nombre de la actividad ActivityName | Nombre de la actividad o el evento específico de gestión de almacenes que tuvo lugar, como «Tarea de picking creada» o «Salida de mercancías contabilizada». | ||
| Descripción Este atributo describe un paso o evento concreto del proceso de gestión de almacenes. Estas actividades son los componentes básicos del mapa de procesos y representan tareas como la creación, la confirmación, el embalaje, la carga y los movimientos de mercancías. Analizar la secuencia y la frecuencia de estas actividades es fundamental en Process Mining. Permite visualizar el flujo del proceso, identificar las rutas habituales y poco frecuentes, detectar desviaciones del procedimiento estándar y localizar los pasos concretos que provocan demoras o reprocesos. Por qué es importante Define los pasos del proceso, constituye la base del mapa de procesos y permite analizar el flujo, las desviaciones y los cuellos de botella. Dónde obtenerlo Se obtiene de los cambios de estado, los mensajes de eventos o los registros de transacciones relacionados con las órdenes y tareas de almacén en tablas como /SCWM/ORDIM_C (confirmaciones), o mediante la interpretación de los campos de estado en /SCWM/WHO y /SCWM/ORDIM_O. Ejemplos Tarea de picking confirmadaTarea de ubicación creadaEntrada de mercancías contabilizadaWarehouse Order completada | |||
| Sistema de origen SourceSystem | Identifica el sistema de origen del que se extrajeron los datos, por ejemplo, la instancia de producción de SAP EWM. | ||
| Descripción Este atributo especifica el sistema de registro del que proceden los datos de gestión de almacenes. En una empresa con varios sistemas, es fundamental indicar el origen de los datos para garantizar su trazabilidad y aportar contexto. En el análisis, esto ayuda a distinguir procesos que pueden abarcar varios sistemas o a comparar procesos de distintas instancias, como sistemas separados para diferentes regiones. Así se garantiza que el linaje de los datos sea claro y auditable. Por qué es importante Aporta trazabilidad y contexto, especialmente en entornos con varias instancias de SAP o sistemas integrados, y permite mantener claro el linaje de los datos. Dónde obtenerlo Suele ser un valor estático que se añade durante el proceso de extracción, transformación y carga (ETL) para identificar la instancia específica de SAP S/4HANA o EWM. Ejemplos SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Última actualización de los datos LastDataUpdate | Marca de tiempo que indica cuándo se actualizaron por última vez los datos de este registro desde el sistema de origen. | ||
| Descripción Este atributo registra cuándo se extrajeron por última vez los datos del sistema de origen. Aporta contexto esencial sobre la actualidad de los datos analizados. En cualquier análisis o Dashboard, es fundamental saber qué tan recientes son los datos para tomar decisiones informadas. Esta marca de tiempo permite saber si se está consultando información en tiempo real o una instantánea de un momento concreto, y ajustar las expectativas sobre su vigencia. Por qué es importante Indica la actualidad de los datos, un aspecto fundamental para saber qué tan recientes son los análisis de procesos. Dónde obtenerlo Este campo de metadatos suele generarse y añadirse durante el proceso de extracción de datos (ETL). Refleja la marca de tiempo de la carga de datos. Ejemplos 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Estado de Warehouse Order WarehouseOrderStatus | Estado actual o final de la orden de almacén, como «Completado» o «Cancelado». | ||
| Descripción Este atributo indica el resultado final de una orden de almacén. Saber si se completó correctamente o se canceló es fundamental para analizar las tasas de éxito del proceso e identificar los motivos por los que algunas órdenes no se completan. Es un filtro clave para muchos análisis. Por ejemplo, al calcular el tiempo de ciclo integral del almacén, normalmente solo se analizan las órdenes completadas. También permite identificar e investigar la frecuencia y las causas de las cancelaciones. Por qué es importante Indica el resultado de un caso y permite filtrar las órdenes completadas y las canceladas, algo fundamental para analizar con precisión el tiempo de ciclo y el rendimiento. Dónde obtenerlo El campo de estado suele encontrarse en la tabla de cabecera de órdenes de almacén, /SCWM/WHO. Ejemplos CompletadaEn cursoCancelada | |||
| Hora de fin EventEndTime | Marca de tiempo que indica cuándo se completó una actividad o un evento. | ||
| Descripción Este atributo registra la fecha y hora en que finalizó una actividad específica del almacén. A menudo coincide con la hora de inicio en eventos puntuales, pero puede ser distinta en actividades con una duración medible, como el embalaje o la carga. Contar con una hora de fin independiente permite calcular con precisión el tiempo de procesamiento de cada actividad. Esto es fundamental para los Dashboards de rendimiento que analizan la duración de pasos específicos, como la eficiencia del picking y el embalaje, y ayudan a identificar qué tareas consumen más tiempo. Por qué es importante Permite calcular con precisión la duración de cada actividad, algo clave para identificar los pasos que consumen más tiempo y las tareas que requieren más recursos. Dónde obtenerlo A menudo coincide con la marca de tiempo de inicio en eventos puntuales. En tareas de larga duración, puede registrarse en un campo independiente de tablas como /SCWM/ORDIM_C o deducirse de un cambio de estado posterior. Ejemplos 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| ID de usuario User | Identificador del operario o usuario del almacén que confirmó o ejecutó la actividad. | ||
| Descripción Este atributo registra el ID de usuario de la persona responsable de realizar una tarea de almacén. Puede ser quien confirmó el picking, quien embaló los productos en una estación o quien confirmó su ubicación con una carretilla elevadora. Estos datos son esenciales para el Dashboard de utilización de recursos y equipos. Permiten analizar el rendimiento individual o del equipo, identificar necesidades de formación y distribuir mejor la carga de trabajo entre el personal del almacén. Por qué es importante Asocia el trabajo a una persona concreta, permite analizar el rendimiento por usuario o equipo y facilita la gestión de recursos y el equilibrio de la carga de trabajo. Dónde obtenerlo Suele encontrarse en los datos de confirmación de una tarea de almacén, por ejemplo, en el campo UNAME de la tabla /SCWM/ORDIM_C. Ejemplos JSMITHARODRIGUEZOPERATOR_05 | |||
| Número de material MaterialNumber | Identificador único del producto o material que se manipula en la tarea de almacén. | ||
| Descripción Este atributo especifica el material que se traslada, recoge, embala o recibe. Es una dimensión clave para segmentar y analizar el rendimiento del almacén según las características del producto. Analizar los datos por número de material permite responder preguntas como qué productos tardan más en ubicarse, cuáles suelen estar implicados en errores de picking o cuáles requieren inspecciones de calidad. Esto es esencial para los Dashboards de rendimiento de recepción y ubicación de mercancías y de tiempo de entrega de la inspección de calidad. Por qué es importante Permite filtrar y segmentar los datos del proceso por producto, algo fundamental para identificar problemas específicos en la manipulación, el almacenamiento o el control de calidad. Dónde obtenerlo Esta información suele estar disponible en tablas de tareas de almacén como /SCWM/ORDIM_O, vinculada a los datos maestros de materiales. Ejemplos FIN-1001RAW-2050SFIN-300-A | |||
| Prioridad Priority | Nivel de prioridad asignado a la orden de almacén, que indica su urgencia (por ejemplo, alta, media o baja). | ||
| Descripción Este atributo clasifica las órdenes de almacén según su importancia para el negocio o su urgencia. Por ejemplo, las órdenes de prioridad alta pueden corresponder a envíos exprés o al suministro de componentes esenciales para la producción, por lo que requieren una gestión más rápida. La prioridad es una dimensión clave para el Dashboard y el KPI «Cumplimiento de órdenes prioritarias». Permite filtrar y segmentar el rendimiento para comprobar que las órdenes más urgentes se procesen dentro de los plazos previstos y que las operaciones del almacén estén alineadas con los objetivos del negocio. Por qué es importante Permite priorizar el análisis y el seguimiento para comprobar que las órdenes más urgentes cumplan los niveles de servicio, lo que repercute directamente en la satisfacción del cliente. Dónde obtenerlo La prioridad puede definirse en el documento de entrega correspondiente y transferirse a la orden de almacén. Puede encontrarse en tablas como /SCWM/WHO. Ejemplos AltaMediaBaja | |||
| Tipo de Warehouse Order WarehouseOrderType | Clasifica la orden de almacén según su finalidad, como ubicación, picking o reposición interna. | ||
| Descripción El tipo de Warehouse Order clasifica las órdenes según la función logística que cumplen. Esta distinción es fundamental porque cada tipo sigue un flujo de proceso distinto y tiene expectativas de rendimiento diferentes. En el análisis, este atributo es una dimensión principal para filtrar y comparar. Por ejemplo, el Dashboard de volumen y rendimiento de las órdenes de almacén lo utiliza para segmentar el rendimiento de los procesos de entrada (ubicación) y salida (picking), y ofrecer una visión más útil de las operaciones del almacén. Por qué es importante Permite segmentar el análisis por categoría de proceso, por ejemplo, de entrada o de salida, y realizar comparaciones y obtener conclusiones más pertinentes. Dónde obtenerlo Se determina según el tipo de proceso de almacén y suele encontrarse en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Ejemplos PICKPUTWREPLSTGE | |||
| A tiempo IsOnTime | Indicador booleano que señala si una orden de almacén se completó en la fecha de finalización solicitada o antes. | ||
| Descripción Este indicador ofrece un resultado binario sencillo sobre el cumplimiento del SLA. Comprueba si el evento final de una orden de almacén se produjo en la fecha de finalización solicitada o antes. Este atributo es esencial para el Dashboard «Cumplimiento de órdenes prioritarias». Simplifica la creación de KPI y visualizaciones, ya que permite contar y filtrar fácilmente las órdenes completadas a tiempo y las retrasadas. Así, se puede evaluar rápidamente el rendimiento frente a los objetivos de nivel de servicio sin realizar cálculos complejos de fechas en la capa de análisis. Por qué es importante Simplifica el análisis del rendimiento del SLA al ofrecer un indicador binario claro de si cada orden se completó a tiempo o con retraso. Dónde obtenerlo Este atributo se calcula comparando la marca de tiempo de la actividad «Orden de almacén completada» con el atributo «RequestedCompletionDate». Ejemplos truefalse | |||
| Cantidad planificada PlannedQuantity | Cantidad prevista de un material para una tarea de almacén determinada. | ||
| Descripción Este atributo representa la cantidad objetivo de un material que debe trasladarse, recogerse o recibirse según las instrucciones de la tarea de almacén. Es la referencia con la que se compara la cantidad realmente ejecutada. La cantidad planificada es esencial para el Dashboard «Análisis de discrepancias de inventario» y el KPI «Tasa de precisión del inventario». Al compararla con la cantidad real, el sistema puede detectar discrepancias que podrían deberse a errores de picking, recepción o registro de datos, y ayudar a mejorar la precisión del inventario. Por qué es importante Sirve de referencia para calcular la precisión del inventario e identificar discrepancias, algo fundamental para mantener niveles de existencias correctos. Dónde obtenerlo Se encuentra en los datos de tareas de almacén, por ejemplo, en la tabla /SCWM/ORDIM_O, a menudo en un campo como NISTA (cantidad objetivo). Ejemplos 10050250 | |||
| Cantidad real ActualQuantity | Cantidad real de un material confirmada por el usuario para una tarea de almacén. | ||
| Descripción Este atributo indica la cantidad que el operario del almacén manipuló y confirmó físicamente. Puede ser la cantidad recogida de una ubicación, la cantidad almacenada o la cantidad contabilizada durante la recepción de mercancías. Comparar la cantidad real con la cantidad planificada es fundamental para el «Análisis de discrepancias de inventario». La diferencia entre ambos valores señala directamente una excepción del proceso que requiere investigación. Es una medida directa de la precisión operativa y un dato clave para los KPI «Tasa de precisión del inventario» y «Tasa de errores de picking». Por qué es importante Es el dato de referencia sobre lo que se manipuló físicamente. Compararlo con la cantidad planificada permite medir directamente la precisión operativa e identificar errores. Dónde obtenerlo Se encuentra en los datos de confirmación de tareas de almacén, por ejemplo, en la tabla /SCWM/ORDIM_C, a menudo en un campo como NDIFF (cantidad de diferencia) o se obtiene a partir de las cantidades confirmadas. Ejemplos 10049250 | |||
| Diferencia de cantidad QuantityVariance | Diferencia entre la cantidad planificada y la cantidad real confirmada para una tarea. | ||
| Descripción Esta métrica calculada cuantifica la discrepancia detectada durante una tarea de almacén. Un valor distinto de cero indica que la realidad física no coincide con el registro del sistema y puede señalar un problema, como un error de picking o de recepción, o un artículo dañado. Este atributo contribuye directamente al Dashboard «Análisis de discrepancias de inventario», ya que muestra la magnitud de los errores. Analizar la frecuencia y el tamaño de estas diferencias ayuda a detectar problemas sistémicos en la gestión del inventario y la ejecución operativa, y orienta las iniciativas para mejorar la precisión. Por qué es importante Cuantifica directamente las imprecisiones del inventario y de las operaciones, lo que facilita detectar y analizar la magnitud de las discrepancias. Dónde obtenerlo Se calcula restando PlannedQuantity de ActualQuantity para cada tarea pertinente. Ejemplos 0-15 | |||
| Equipo utilizado EquipmentUsed | Identificador del equipo, como una carretilla elevadora o una transpaleta, utilizado para realizar la tarea de almacén. | ||
| Descripción Este atributo especifica el equipo de manutención asignado a una tarea de almacén o utilizado para realizarla. Puede tratarse de una carretilla elevadora concreta, un vehículo de guiado automático (AGV) o un tipo específico de carro. Estos datos son la base del Dashboard «Utilización de recursos y equipos» y del KPI «Tasa de utilización de equipos». Al registrar qué equipos se utilizan para cada tarea y durante cuánto tiempo, los responsables pueden analizar los patrones de uso, programar el mantenimiento y tomar decisiones fundamentadas sobre el tamaño y la composición de la flota. Por qué es importante Permite analizar el uso y la eficiencia de los equipos, optimizar la gestión de la flota e identificar limitaciones de recursos. Dónde obtenerlo Esta información puede almacenarse en los detalles de la tarea o de la orden de almacén si la gestión de recursos está configurada en SAP EWM. Consulte la documentación de SAP Extended Warehouse Management. Ejemplos CARRETILLA-07AGV-02CARRO-15 | |||
| Fecha de finalización solicitada RequestedCompletionDate | Fecha límite solicitada para completar una orden de almacén de prioridad alta. | ||
| Descripción Este atributo define el acuerdo de nivel de servicio (SLA) o la fecha objetivo de finalización de una orden de almacén. Es la fecha límite con la que se compara el tiempo real de finalización para determinar si la orden se completó a tiempo. Esta fecha es esencial para calcular el KPI «Tasa de cumplimiento de órdenes prioritarias». Al comparar la marca de tiempo de finalización real con la fecha solicitada, el análisis permite medir el cumplimiento de los niveles de servicio e identificar las órdenes que corren el riesgo de retrasarse o que ya están demoradas. Por qué es importante Define el SLA de una orden y sirve de referencia para medir el cumplimiento puntual, especialmente en el caso de los artículos de prioridad alta. Dónde obtenerlo Esta fecha suele derivarse de la fecha planificada de salida de mercancías o de entrega de la orden de entrega saliente que originó la orden de almacén. Consulte la documentación de SAP Extended Warehouse Management. Ejemplos 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Hora de salida planificada PlannedDepartureTime | Hora programada para la salida del envío del almacén. | ||
| Descripción Este atributo representa la hora objetivo de despacho de un envío, una vez completadas las actividades de picking, empaquetado y carga. Sirve de referencia para medir el cumplimiento puntual de la etapa final del proceso de salida. Esta marca de tiempo es fundamental para el Dashboard «Puntualidad en el despacho de envíos». Al comparar la hora real de despacho con la planificada, el análisis permite detectar retrasos en la carga, la coordinación con el transportista o la documentación, y obtener información sobre la eficiencia de la planificación logística y del transporte. Por qué es importante Sirve de referencia para medir la puntualidad de los despachos, un aspecto clave para la planificación logística y el cumplimiento de los horarios de los transportistas. Dónde obtenerlo Esta información suele formar parte del documento de transporte o envío vinculado a las órdenes de almacén. Consulte la documentación de SAP Extended Warehouse Management. Ejemplos 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Tiempo de ciclo integral EndToEndCycleTime | Tiempo total transcurrido desde la creación de la orden de almacén hasta su finalización. | ||
| Descripción Este KPI mide la duración completa del ciclo de vida de una orden de almacén. Es un indicador general clave de la eficiencia y la velocidad de las operaciones del almacén. Esta métrica es la base del Dashboard «Tiempo de ciclo integral del almacén». El seguimiento de este KPI a lo largo del tiempo y su segmentación por dimensiones como el tipo de orden o el material ayudan a identificar ineficiencias sistémicas y a medir el impacto de las iniciativas de mejora en toda la operación. Por qué es importante Es un KPI principal para medir la eficiencia general del proceso del almacén y ofrece una visión global del rendimiento operativo. Dónde obtenerlo Se calcula a nivel de caso restando la marca de tiempo del primer evento («Orden de almacén creada») de la marca de tiempo del último evento («Orden de almacén completada»). Ejemplos 8640017280043200 | |||
| Ubicación de almacenamiento StorageLocation | Ubicación específica dentro del almacén, como una posición de almacenamiento, desde la que se trasladan las mercancías o a la que se trasladan. | ||
| Descripción Este atributo identifica la ubicación física relacionada con una tarea de almacén, por ejemplo, la posición de origen para el picking o la posición de destino para el almacenamiento. Puede abarcar desde una zona amplia hasta las coordenadas de una estantería concreta. El análisis por ubicación de almacenamiento puede revelar información útil para la operación, como las «zonas óptimas» con altas tasas de picking o las áreas problemáticas donde se producen retrasos o errores con frecuencia. También puede utilizarse en el análisis de «Cumplimiento de rutas de picking» para entender los desplazamientos del personal de picking por el almacén. Por qué es importante Aporta contexto geográfico dentro del almacén y permite analizar la eficiencia de los desplazamientos, la accesibilidad de las ubicaciones y la optimización de las rutas de picking. Dónde obtenerlo Suele encontrarse en tablas de tareas de almacén como /SCWM/ORDIM_O, que contienen información sobre las posiciones de origen (VLPLA) y de destino (NLPLA). Ejemplos 01-02-03ESTACIÓN-EMPAQUETADO-01ZONA-SALIDA-A | |||
| Warehouse Task WarehouseTask | Identificador único de una tarea de almacén, que forma parte de una orden de almacén. | ||
| Descripción Una tarea de almacén es una instrucción para ejecutar un movimiento concreto de mercancías, como trasladar un producto desde una ubicación de almacenamiento hasta una estación de embalaje. Una orden de almacén agrupa una o más de estas tareas. Analizar los datos a nivel de tarea ofrece una visión más detallada de las operaciones del almacén. Ayuda a comprender el rendimiento de los recursos en movimientos específicos, identificar ubicaciones de almacenamiento de difícil acceso y analizar la eficiencia de las actividades de picking o ubicación. Por qué es importante Ofrece un nivel de detalle más preciso para el análisis y permite examinar movimientos y pasos individuales dentro de una orden de almacén más amplia. Dónde obtenerlo Se encuentra en tablas de tareas de almacén como /SCWM/ORDIM_O (datos de tareas) y /SCWM/ORDIM_C (datos de confirmación). Ejemplos 300000451300000452300000453 | |||
Actividades de gestión de almacenes
| Actividad | Descripción | ||
|---|---|---|---|
| Embalaje completado | Esta actividad indica que todos los artículos de un envío se han embalado en una unidad de manipulación, que ahora está cerrada y etiquetada. Las mercancías embaladas están listas para la siguiente etapa, como la preparación para el envío o la carga. | ||
| Por qué es importante Este hito cierra la etapa de embalaje. Es un requisito previo para preparar y enviar la mercancía, por lo que cualquier demora afecta directamente al tiempo de entrega total y al KPI de tiempo de entrega de embalaje y preparación para el envío. Dónde obtenerlo Puede registrarse cuando el estado de la unidad de manipulación (HU) pasa a «Cerrado» o cuando se confirma la última tarea de almacén relacionada con el embalaje para la WO. La tabla /SCWM/HUHDR contiene información sobre el estado de las HU. Capturar Identifique la marca de tiempo en que se cierra o completa la unidad de manipulación final de envío asociada al pedido. Tipo de evento inferred | |||
| Salida de mercancías contabilizada | Este es el último paso logístico y financiero en el sistema, que retira formalmente las mercancías del inventario del almacén. Indica que se ha transferido la propiedad legal y que el envío ha salido oficialmente. | ||
| Por qué es importante Es un punto final crucial del flujo de salida, ya que activa la facturación y las actualizaciones del inventario. También es un componente clave para medir los envíos puntuales y el KPI de tiempo de carga y despacho del envío. Dónde obtenerlo Se infiere de la contabilización de un documento de entrega saliente asociado a la Warehouse Order. Consulte el flujo del documento o los campos de estado (por ejemplo, DGI_STAT) en la tabla /SCDL/DB_PROCH_O. Capturar Identifique la marca de tiempo en que el estado de salida de mercancías de la entrega saliente asociada pasa a «Completado». Tipo de evento explicit | |||
| Tarea de picking confirmada | Un operario del almacén confirma que ha completado una Warehouse Task de picking, lo que indica que ha retirado físicamente las mercancías de su ubicación de almacenamiento. Por lo general, lo hace con un escáner RF. | ||
| Por qué es importante Este es un hito crítico en la preparación de pedidos y afecta directamente al tiempo de ciclo desde el pedido hasta el envío. Analizar esta actividad ayuda a medir la productividad del personal de picking y a detectar cuellos de botella. Dónde obtenerlo Se obtiene de la marca de tiempo de confirmación (campo CONFIRMED_AT) en la tabla de Warehouse Task, /SCWM/WT. El estado de la tarea (STAT) se actualiza a «Confirmado». Capturar Utilice la marca de tiempo de confirmación de la tabla /SCWM/WT para las tareas de picking asociadas a la Warehouse Order. Tipo de evento explicit | |||
| Tarea de ubicación confirmada | Un operario del almacén confirma que ha completado la Warehouse Task de ubicación, es decir, que ha colocado físicamente las mercancías en la ubicación de almacenamiento designada. Esta confirmación actualiza la ubicación del inventario en tiempo real. | ||
| Por qué es importante Esta actividad es un hito clave del proceso de entrada, ya que confirma que las existencias están disponibles para el picking. Las demoras en esta etapa afectan directamente al KPI de tiempo de ciclo desde la recepción de mercancías hasta su ubicación. Dónde obtenerlo Se obtiene de la marca de tiempo de confirmación (campo CONFIRMED_AT) en la tabla de Warehouse Task, /SCWM/WT. El estado de la tarea (STAT) también cambia a «Confirmado». Capturar Utilice la marca de tiempo de confirmación de la tabla /SCWM/WT para las tareas de ubicación asociadas a la Warehouse Order. Tipo de evento explicit | |||
| Warehouse Order completada | El estado de la Warehouse Order pasa a «Completado» cuando se confirman todas las tareas de almacén asociadas. Desde el punto de vista de la ejecución, esto cierra el paquete de trabajo. | ||
| Por qué es importante Este es el evento de fin que indica el éxito del proceso. Es esencial para calcular el tiempo de ciclo integral del almacén y medir el rendimiento general. Dónde obtenerlo Se registra al detectar el cambio del campo de estado (STAT) a «Completado» en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Puede utilizarse el registro de cambios de esta tabla (DBTABLOG) o un campo de marca de tiempo específico. Capturar Identifique la marca de tiempo en que el estado de /SCWM/WHO pasa a «C» (Completado). Tipo de evento inferred | |||
| Warehouse Order creada | Esta actividad marca la creación de una Warehouse Order (WO), un paquete de trabajo compuesto por varias tareas de almacén. El sistema genera una WO para agrupar y organizar el trabajo del personal del almacén según criterios como la zona de actividad, la cola o el producto. | ||
| Por qué es importante Este es el evento de inicio principal del proceso de ejecución en el almacén. Analizar el tiempo transcurrido desde la creación hasta la primera acción ayuda a detectar demoras en la asignación del trabajo y de los recursos. Dónde obtenerlo Este evento se obtiene de la marca de tiempo de creación (campo CREATED_AT) en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Capturar Extraiga la marca de tiempo de creación de la tabla /SCWM/WHO para cada número de Warehouse Order (WHO). Tipo de evento explicit | |||
| Carga completada | Indica que todas las mercancías de un envío se han cargado físicamente en la unidad de transporte. Es un requisito previo para contabilizar la salida de mercancías y despachar el vehículo. | ||
| Por qué es importante Es un hito clave antes del envío final. Las demoras entre la finalización de la carga y la salida de mercancías pueden revelar problemas de documentación o del sistema que retrasan a los transportistas. Dónde obtenerlo Se infiere del cambio de estado de la unidad de transporte (TU) o del pedido de entrega saliente asociado a «Carga completada». Son relevantes los estados de las tablas /SCWM/TU y /SCDL/DB_PROCH_O. Capturar Registre la marca de tiempo en que se actualiza el estado de la TU o del pedido de entrega para indicar que la carga ha finalizado. Tipo de evento inferred | |||
| Entrada de mercancías contabilizada | Marca la aceptación formal de mercancías en el inventario del almacén, procedentes de un proveedor externo o de producción. Esta contabilización financiera y de inventario es clave: hace que las existencias sean visibles y estén disponibles para procesos posteriores, como la ubicación. | ||
| Por qué es importante Este es un hito crítico del proceso de entrada. El tiempo entre la llegada de las mercancías y esta contabilización puede revelar acumulaciones de trabajo en la zona de recepción que afectan a la disponibilidad del inventario. Dónde obtenerlo Se infiere de la contabilización de un documento de entrega entrante asociado a la Warehouse Order. Consulte el flujo del documento o los campos de estado (por ejemplo, DGRSTAT) en la tabla /SCDL/DB_PROCH_I. Capturar Identifique la marca de tiempo en que el estado de entrada de mercancías de la entrega entrante asociada pasa a «Completado». Tipo de evento inferred | |||
| Inicio de la carga | Esta actividad marca el inicio de la carga física de las mercancías desde la zona de preparación para el envío hasta un camión o una unidad de transporte. A menudo, un usuario la inicia mediante una acción en el sistema. | ||
| Por qué es importante Es el inicio del último paso físico en el almacén. Analizar la duración de la carga ayuda a optimizar el uso de las puertas de los muelles y el tiempo de rotación de los transportistas. Dónde obtenerlo Se infiere del cambio de estado de la unidad de transporte (TU) o del pedido de entrega saliente asociado a «Carga iniciada». Puede consultar la tabla /SCWM/TU_STATUS. Capturar Registre la marca de tiempo en que se actualiza el estado de la TU o del pedido de entrega para indicar el inicio de la carga. Tipo de evento inferred | |||
| Inicio del embalaje | Marca el inicio de las actividades de embalaje, en las que los artículos recogidos se agrupan y se colocan en contenedores de envío o unidades de manipulación. Suele ser el primer paso en un centro de trabajo de embalaje. | ||
| Por qué es importante Marca el inicio de la etapa de servicios de valor añadido. Medir la duración del embalaje ayuda a optimizar la disposición del centro de trabajo, la asignación de personal y los materiales. Dónde obtenerlo Es posible que haya que inferir este evento. Puede deducirse del primer escaneo de un artículo o una unidad de manipulación en una estación de embalaje, que suele registrarse en los registros del centro de trabajo o de la unidad de manipulación. Las tablas como /SCWM/PACKSPEC y los registros de ejecución relacionados pueden servir como fuente. Capturar Utilice la marca de tiempo de la primera confirmación de una Warehouse Task relacionada con el embalaje para la entrega, o la hora de creación de la unidad de manipulación (HU) final de envío. Tipo de evento inferred | |||
| Tarea de picking creada | El sistema genera una Warehouse Task (WT) para recoger mercancías de una ubicación de almacenamiento y preparar un pedido de entrega saliente. Esta instrucción del sistema indica al operario qué producto debe retirar. | ||
| Por qué es importante Es el inicio del proceso físico de salida. El tiempo entre la creación y la confirmación de las tareas de picking es clave para analizar su eficiencia y la disponibilidad de recursos. Dónde obtenerlo Se obtiene de la marca de tiempo de creación (campo CREATED_AT) de la Warehouse Task correspondiente en la tabla /SCWM/WT, cuyo tipo de proceso indica picking. Capturar Filtre las Warehouse Tasks vinculadas a la Warehouse Order cuyo tipo de proceso sea de picking y utilice su marca de tiempo de creación. Tipo de evento explicit | |||
| Tarea de preparación para el envío confirmada | Un operario del almacén confirma el traslado de una unidad de manipulación embalada desde una estación de embalaje o una zona de consolidación hasta la zona designada para preparar el envío. Las mercancías quedan listas para la carga. | ||
| Por qué es importante Marca el paso del procesamiento interno a la logística de salida. Las demoras en la preparación para el envío pueden desorganizar los muelles de carga y hacer que se pierdan los horarios de recogida del transportista. Dónde obtenerlo Se obtiene de la marca de tiempo de confirmación (campo CONFIRMED_AT) de una Warehouse Task (/SCWM/WT) cuyo tipo de proceso corresponde a movimientos de preparación para el envío. Capturar Identifique la marca de tiempo de confirmación de la tarea de preparación para el envío asociada a la unidad de manipulación o a la entrega. Tipo de evento explicit | |||
| Tarea de ubicación creada | El sistema genera una instrucción específica, una Warehouse Task (WT), para trasladar las mercancías recibidas desde la zona de recepción hasta una ubicación de almacenamiento final. Esta actividad indica que el sistema está listo para ejecutar el movimiento de ubicación. | ||
| Por qué es importante El tiempo entre la creación y la confirmación de la tarea muestra cuánto tardan los operarios del almacén en empezar y ejecutar las instrucciones de ubicación. Esto ayuda a detectar posibles carencias de personal o equipos. Dónde obtenerlo Se obtiene de la marca de tiempo de creación (campo CREATED_AT) de la Warehouse Task correspondiente en la tabla /SCWM/WT, cuyo tipo de proceso indica una ubicación. Capturar Filtre las Warehouse Tasks vinculadas a la Warehouse Order cuyo tipo de proceso sea de ubicación y utilice su marca de tiempo de creación. Tipo de evento explicit | |||
| Warehouse Order cancelada | La Warehouse Order se cancela antes de completar todas las tareas, lo que impide que siga ejecutándose. Esto puede ocurrir por falta de existencias, cambios en los pedidos de clientes u otras excepciones. | ||
| Por qué es importante Representa una ruta de error o excepción. Analizar la frecuencia y los motivos de las cancelaciones ayuda a detectar problemas en etapas anteriores, relacionados con la planificación, la precisión del inventario o la gestión de pedidos. Dónde obtenerlo Se registra al detectar el cambio del campo de estado (STAT) a «Cancelado» en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Capturar Identifique la marca de tiempo en que el estado de /SCWM/WHO pasa a un valor de cancelación. Tipo de evento inferred | |||
Guías de extracción
Pasos
- Requisito previo: identifique o cree vistas CDS: Las principales fuentes de datos son las vistas CDS estándar de SAP S/4HANA para la gestión de almacenes. Las vistas clave son
I_WarehouseOrder, que contiene eventos de pedidos, eI_WarehouseTask, que contiene eventos de tareas. Para otros eventos logísticos, también se necesitan vistas comoI_OutboundDeliveryItem,I_InboundDeliveryItemeI_EWMTransportationUnit. Compruebe que estas vistas estén activas en su sistema. - Cree una vista CDS personalizada: Para combinar datos de varias fuentes en un único formato de registro de eventos, debe crear una vista CDS personalizada. Use ABAP Development Tools (ADT) en Eclipse para crear una nueva definición de datos. Esta vista personalizada utilizará
UNION ALLpara combinar registros de distintas fuentes, cada uno correspondiente a una actividad empresarial. - Defina la estructura del registro de eventos: En la vista CDS personalizada, defina los campos que formarán las columnas del registro de eventos. Debe incluir
WarehouseOrder,ActivityName,EventTimey otros atributos obligatorios y recomendados. Asigne estos campos a partir de las vistas CDS estándar subyacentes. - Modele los eventos de pedidos de almacén: Añada las primeras instrucciones
SELECTa la unión. Seleccione datos deI_WarehouseOrderpara generar el evento 'Pedido de almacén creado' con la marca de tiempo de creación. Añada otras instruccionesSELECTpara los eventos 'Pedido de almacén completado' y 'Pedido de almacén cancelado'. Para ello, filtre por el estado del pedido y use las marcas de tiempo de confirmación o modificación correspondientes. - Modele los eventos de tareas de almacén: Añada instrucciones
SELECTdeI_WarehouseTask. Genere los eventos 'Tarea de ubicación creada' y 'Tarea de ubicación confirmada' filtrando por las categorías de procesos de almacén relacionadas con la ubicación. Del mismo modo, cree los eventos 'Tarea de picking creada', 'Tarea de picking confirmada' y 'Tarea de preparación confirmada' según las categorías de proceso correspondientes, y use las marcas de tiempo de creación y confirmación. - Modele los eventos de movimientos de mercancías: Una las vistas relacionadas con entregas a las tareas de almacén para capturar los movimientos de mercancías. Para 'Entrada de mercancías contabilizada', seleccione datos de
I_InboundDeliveryItemmedianteActualGoodsMovementDateTime. Para 'Salida de mercancías contabilizada', use el mismo campo deI_OutboundDeliveryItemy vincule los datos con el pedido o la tarea de almacén correspondiente. - Modele los eventos de carga y embalaje: Seleccione datos de
I_EWMTransportationUnitpara capturar los eventos 'Carga iniciada' y 'Carga completada' mediante sus marcas de tiempo específicas. El embalaje puede ser complejo; como alternativa, seleccione datos de una vista de Handling Unit. La hora de creación puede representar el inicio del embalaje y la hora de cambio de estado, su finalización. Es posible que deba adaptar este paso a su proceso de embalaje. - Añada anotaciones para exponer la vista CDS: Añada la anotación
@OData.publish: truea la definición de la vista CDS personalizada. Así, SAP generará automáticamente un servicio OData a partir de la estructura de la vista. - Active la vista CDS y el servicio OData: Active la nueva definición de datos en ADT. A continuación, vaya al sistema central de SAP Gateway y use la transacción
/IWFND/MAINT_SERVICEpara buscar y activar el servicio OData recién generado. Así, los datos estarán disponibles mediante un endpoint de API REST. - Extraiga los datos: Conecte su plataforma de datos de destino o herramienta ETL al endpoint del servicio OData activado. Aplique filtros directamente en la URI de OData, por ejemplo, para limitar el periodo mediante
EventTime(?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Prepare los datos para Process Mining: Guarde los datos extraídos en un archivo plano, como un CSV, con encabezados de columna que coincidan con los atributos requeridos por ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.). Cargue el archivo final en la herramienta de Process Mining.
Configuración
- Vista CDS personalizada: Debe crear una vista CDS específica, por ejemplo,
Z_C_EWM_EVENTLOG_CDS, para unificar los datos de eventos. Este es el objeto central de la extracción. - Servicio OData: Debe activar el servicio OData generado a partir de la vista CDS personalizada. Por lo general, el nombre del servicio coincide con el de la vista CDS y lleva el sufijo
_CDS. - Filtro por intervalo de fechas: Es fundamental aplicar un filtro de fecha al campo
EventTimeal llamar a la API de OData. Para un análisis inicial, suele ser adecuado un periodo de entre 3 y 6 meses. Sin un filtro, la consulta puede agotar el tiempo de espera o afectar al rendimiento. - Filtro por entidad: Para limitar aún más el alcance de los datos, considere aplicar filtros a atributos como el número de almacén (
Almacén), el tipo de pedido de almacén (WarehouseOrderType) o determinados materiales (MaterialNumber). - Autorizaciones del sistema: La persona que cree la vista CDS necesita acceso de desarrollador de SAP en ADT. La persona o cuenta de servicio que llame a la API de OData necesita autorización para acceder a los datos subyacentes de gestión de almacenes.
Consulta de ejemplo sql
DEFINE VIEW Z_C_EWM_EVENTLOG_CDS
WITH PARAMETERS
P_StartDate : abap.dats,
P_EndDate : abap.dats
AS SELECT FROM I_WarehouseOrder AS WO
{
-- Required Attributes
WO.WarehouseOrder AS WarehouseOrder,
CAST('Warehouse Order Created' AS abap.char(40)) AS ActivityName,
WO.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
-- Recommended Attributes
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.CreationUser AS User,
WO.WarehouseOrderType AS WarehouseOrderType,
WO.WarehouseOrderStatus AS WarehouseOrderStatus,
WO.Priority AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
CAST(WO.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Completed' AS abap.char(40)) AS ActivityName,
WO.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.ConfirmationUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'C' AND
CAST(WO.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseOrder AS WO
{
WO.WarehouseOrder,
CAST('Warehouse Order Canceled' AS abap.char(40)) AS ActivityName,
WO.LastChangeDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
CAST(NULL AS abap.char(40)) AS MaterialNumber,
WO.LastChangeUser AS User,
WO.WarehouseOrderType,
WO.WarehouseOrderStatus,
WO.Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WO.WarehouseOrderStatus = 'X' AND
CAST(WO.LastChangeDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_InboundDeliveryItem AS IBD ON WT.DeliveryDocument = IBD.InboundDelivery AND WT.DeliveryDocumentItem = IBD.InboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Receipt Posted' AS abap.char(40)) AS ActivityName,
IBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
IBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
IBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(IBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Putaway Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '1' AND -- Putaway
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Created' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Picking Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Started' AS abap.char(40)) AS ActivityName,
WT.CreationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
WT.ConfirmationDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
WT.CreationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
CAST(WT.CreationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Packing Completed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '5' AND -- Packing
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
{
WT.WarehouseOrder,
CAST('Staging Task Confirmed' AS abap.char(40)) AS ActivityName,
WT.ConfirmationDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
WT.ConfirmationUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
WT.ProcessorProcTimeInSec AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '4' AND -- Staging
WT.WarehouseTaskStatus = 'C' AND
CAST(WT.ConfirmationDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Started' AS abap.char(40)) AS ActivityName,
TU.LoadingStartDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
TU.LoadingEndDateTime AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingStartDateTime IS NOT NULL AND
CAST(TU.LoadingStartDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_EWMTransportationUnit AS TU
INNER JOIN I_WarehouseTask AS WT ON TU.TransportationUnit = WT.ShipmentOrTransportationUnit
{
WT.WarehouseOrder,
CAST('Loading Completed' AS abap.char(40)) AS ActivityName,
TU.LoadingEndDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
TU.LastChangeUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
TU.LoadingEndDateTime IS NOT NULL AND
TU.LoadingStatus = 'C' AND
CAST(TU.LoadingEndDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate
UNION ALL
SELECT FROM I_WarehouseTask AS WT
LEFT JOIN I_OutboundDeliveryItem AS OBD ON WT.DeliveryDocument = OBD.OutboundDelivery AND WT.DeliveryDocumentItem = OBD.OutboundDeliveryItem
{
WT.WarehouseOrder,
CAST('Goods Issue Posted' AS abap.char(40)) AS ActivityName,
OBD.ActualGoodsMovementDateTime AS EventTime,
CAST('S4HANA_EWM' AS abap.char(20)) AS SourceSystem,
tstmp_current_utctimestamp() AS LastDataUpdate,
CAST(NULL AS abap.tstp) AS EventEndTime,
WT.Product AS MaterialNumber,
OBD.LastChangedByUser AS User,
WT.WarehouseOrderType,
CAST(NULL AS abap.char(1)) AS WarehouseOrderStatus,
CAST(NULL AS abap.numc(2)) AS Priority,
CAST(NULL AS abap.dec(15, 2)) AS ProcessingTime
}
WHERE
WT.WhseTskProcessCat = '2' AND -- Stock Removal
OBD.GoodsMovementStatus = 'C' AND -- Completed
CAST(OBD.ActualGoodsMovementDateTime AS abap.dats) BETWEEN :P_StartDate AND :P_EndDate Pasos
- Confirme que tiene autorización para acceder directamente en modo de lectura al esquema de la base de datos de SAP EWM e identifique los objetos físicos que representan las cabeceras de pedidos de almacén, las tareas de almacén, el historial de estados de los pedidos, las contabilizaciones de entradas y salidas de mercancías, el embalaje, la preparación y la carga. Las referencias lógicas /SCWM/WHO y /SCWM/WT suelen servir como punto de partida, pero compruebe en su sistema los objetos reales, los campos, los códigos de estado, el significado de las marcas de tiempo y el esquema de la base de datos.
- Solicite a la persona responsable de SAP EWM o al diccionario de datos la asignación de campos verificada. Asigne el ID del pedido de almacén, el tipo de pedido, el estado, la prioridad, el ID de la tarea de almacén, la categoría de tarea o el tipo de proceso, el material, el usuario, las marcas de tiempo de creación y confirmación, las marcas de tiempo de embalaje, preparación y carga, las marcas de tiempo de entrada y salida de mercancías, el sistema de origen y la última actualización. No dé por sentado que un campo existe en la misma tabla ni que un código de estado tiene el mismo significado en todas las implementaciones.
- Configure la conexión de extracción con una cuenta de base de datos de solo lectura, el esquema de producción o informes y valores parametrizados para las fechas de inicio y fin de la extracción, el nombre del sistema de origen y los filtros específicos de su empresa. Aplique el filtro de fecha a la marca de tiempo del evento correspondiente, no solo a la fecha de creación del pedido de almacén, para no excluir eventos posteriores del ciclo de vida del pedido.
- Genere las filas de eventos seleccionando una fila por cada actividad requerida de forma explícita. La consulta debe usar los campos de origen verificados para cada actividad y no depender de ProcessMind para inferir eventos. Si una actividad se representa en un historial de estados o un registro de solicitudes, en lugar de en un campo de la cabecera actual, use ese historial o registro y conserve la marca de tiempo del evento y el usuario que lo ejecutó.
- Normalice todas las marcas de tiempo de las actividades a una sola zona horaria, preferiblemente UTC, o documente la zona horaria del servidor de aplicaciones SAP. Convierta los códigos de estado y proceso específicos del origen en los nombres exactos de actividad requeridos por el registro de eventos: Pedido de almacén creado, Entrada de mercancías contabilizada, Tarea de ubicación creada, Tarea de ubicación confirmada, Tarea de picking creada, Tarea de picking confirmada, Embalaje iniciado, Embalaje completado, Tarea de preparación confirmada, Carga iniciada, Carga completada, Salida de mercancías contabilizada, Pedido de almacén completado y Pedido de almacén cancelado.
- Compruebe que cada fila de salida incluya
WarehouseOrder,ActivityName,EventTime,SourceSystemyLastDataUpdate. RelleneEventEndTimecuando haya una marca de tiempo de finalización fiable. En los eventos de tareas, asocie cada tarea con su pedido de almacén. Si un pedido incluye varias tareas pertinentes, conserve una fila por cada evento de tarea y mantenga el pedido de almacén como identificador del caso. Si el formato de importación de destino lo permite, use un criterio de desempate estable, como el ID de tarea o el ID del evento de origen. - Valide el resultado antes de exportarlo. Compruebe que aparezcan los 14 nombres de actividad cuando los datos de origen contengan los eventos empresariales correspondientes, que las marcas de tiempo estén dentro del intervalo solicitado, que los pedidos de almacén no estén vacíos de forma inesperada y que los registros duplicados se expliquen por varias tareas o cambios de estado repetidos. Compare los recuentos con los informes operativos de SAP o con una extracción aprobada de forma independiente.
- Exporte el resultado como un archivo delimitado compatible con ProcessMind o como un resultado de base de datos, con un evento por fila. Mantenga los nombres exactos de las columnas requeridas, use un formato de marca de tiempo inequívoco, como ISO 8601, entrecomille los valores de texto cuando lo requiera el formato delimitado e incluya una fila de encabezado. Cargue el archivo o configure la conexión de base de datos en ProcessMind. Asigne
WarehouseOrdercomo identificador del caso,ActivityNamecomo actividad,EventTimecomo marca de tiempo de inicio yEventEndTimecomo marca de tiempo de fin, si está disponible.
Configuración
- Asignación de objetos de origen: Compruebe los objetos físicos de la base de datos y los campos correspondientes a pedidos y tareas de almacén, historial de estados, movimientos de mercancías, embalaje, preparación y carga. /SCWM/WHO y /SCWM/WT pueden ser objetos lógicos pertinentes, pero debe confirmar la representación en la base de datos implementada antes de empezar.
- Intervalo de fechas: Comience con un periodo controlado de tres a seis meses. Use un periodo más corto para las pruebas iniciales y amplíelo después de conciliar los datos. Incluya un pequeño solapamiento entre ejecuciones incrementales para capturar contabilizaciones y correcciones tardías.
- Selección de la marca de tiempo del evento: Use las marcas de tiempo de creación para las actividades creadas, las de confirmación para las actividades confirmadas, las de contabilización para las entradas y salidas de mercancías y las marcas de tiempo de ejecución verificadas para el embalaje, la preparación y la carga. No use la hora de creación del pedido de almacén para todos los eventos.
- Filtros: Aplique solo filtros empresariales verificados, como el número de almacén, el código de empresa, el tipo de documento, el tipo de pedido de almacén, el área de actividad, la cola, el centro o el sistema de origen. En el sistema de destino, debe asignar los campos de código de empresa y tipo de documento, que pueden estar en objetos relacionados.
- Asignación de estados: Configure los códigos exactos de estado o proceso de SAP que representan pedidos de almacén completados y cancelados. Valide la asignación con la persona responsable de las funciones de EWM, ya que los códigos y el almacenamiento de estados pueden variar según la versión y la implementación.
- SourceSystem: Establezca un valor estable que identifique la instancia de producción o informes de EWM. No lo derive de un campo empresarial que pueda estar vacío.
- LastDataUpdate: Rellene este campo con la marca de tiempo de extracción o de actualización del origen, de forma coherente en todas las filas de una ejecución.
- Extracción incremental: Use una marca de agua persistente basada en la marca de tiempo más reciente extraída correctamente del origen, con un intervalo de solapamiento para los registros que llegan tarde. Elimine duplicados mediante identificadores de origen verificados, cuando estén disponibles.
- Rendimiento: Limite el intervalo de fechas desde el inicio, seleccione solo las columnas necesarias, filtre los campos indexados, evite aplicar funciones a columnas de marcas de tiempo indexadas en los predicados y procese los intervalos grandes en lotes diarios o semanales. Use una réplica de informes cuando esté permitido.
- Estrategia de unión: Confirme la cardinalidad entre los pedidos y las tareas de almacén. Evite la multiplicación accidental de registros al unir tareas, estados, materiales y unidades de manipulación. Antes de unir, agregue los datos o seleccione el registro de evento adecuado.
- Zonas horarias: Configure la zona horaria del origen y la regla de conversión. Almacene las marcas de tiempo de forma coherente y documente cómo se gestionan los cambios de horario estacional.
- Requisitos previos: Autorización de solo lectura a la base de datos, acceso aprobado al esquema de EWM, asignaciones verificadas en el diccionario de datos, permiso para leer los objetos operativos y de historial pertinentes y una configuración de importación de ProcessMind aprobada. Los módulos, las licencias y las autorizaciones de SAP necesarios dependen de la arquitectura de EWM implementada; la persona responsable del sistema debe confirmarlos.
Consulta de ejemplo sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_time,
CAST('[End date and time]' AS TIMESTAMP) AS end_time,
CAST('[Source system name]' AS VARCHAR(255)) AS source_system,
CAST(CURRENT_TIMESTAMP AS TIMESTAMP) AS last_data_update
),
warehouse_orders AS (
SELECT
CAST(wo.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wo.[Warehouse order type field] AS VARCHAR(255)) AS WarehouseOrderType,
CAST(wo.[Warehouse order status field] AS VARCHAR(255)) AS WarehouseOrderStatus,
CAST(wo.[Priority field] AS VARCHAR(255)) AS Priority,
CAST(wo.[Warehouse order creation timestamp field] AS TIMESTAMP) AS WarehouseOrderCreatedTime,
CAST(wo.[Warehouse order completion timestamp field] AS TIMESTAMP) AS WarehouseOrderCompletedTime,
CAST(wo.[Warehouse order cancellation timestamp field] AS TIMESTAMP) AS WarehouseOrderCanceledTime,
CAST(wo.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wo.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse order header table] wo
),
warehouse_tasks AS (
SELECT
CAST(wt.[Warehouse order ID field] AS VARCHAR(255)) AS WarehouseOrder,
CAST(wt.[Warehouse task ID field] AS VARCHAR(255)) AS WarehouseTask,
CAST(wt.[Task category or process type field] AS VARCHAR(255)) AS TaskType,
CAST(wt.[Material number field] AS VARCHAR(255)) AS MaterialNumber,
CAST(wt.[Task creation timestamp field] AS TIMESTAMP) AS TaskCreatedTime,
CAST(wt.[Task confirmation timestamp field] AS TIMESTAMP) AS TaskConfirmedTime,
CAST(wt.[User field] AS VARCHAR(255)) AS [User]
FROM [Your warehouse task table] wt
),
events AS (
SELECT wo.WarehouseOrder, 'Warehouse Order Created' AS ActivityName, wo.WarehouseOrderCreatedTime AS EventTime, CAST(NULL AS TIMESTAMP) AS EventEndTime, wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo
UNION ALL
SELECT gr.[Warehouse order ID field], 'Goods Receipt Posted', CAST(gr.[Goods receipt posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gr.[Material number field] AS VARCHAR(255)), CAST(gr.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods receipt posting table] gr LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gr.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Putaway Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified putaway task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Created', wt.TaskCreatedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]'
UNION ALL
SELECT wt.WarehouseOrder, 'Picking Task Confirmed', wt.TaskConfirmedTime, CAST(NULL AS TIMESTAMP), wt.MaterialNumber, wt.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_tasks wt LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = wt.WarehouseOrder WHERE wt.TaskType = '[Verified picking task type]' AND wt.TaskConfirmedTime IS NOT NULL
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Started', CAST(pk.[Packing start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT pk.[Warehouse order ID field], 'Packing Completed', CAST(pk.[Packing completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(pk.[Material number field] AS VARCHAR(255)), CAST(pk.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your packing event table] pk LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(pk.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT st.[Warehouse order ID field], 'Staging Task Confirmed', CAST(st.[Staging confirmation timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(st.[Material number field] AS VARCHAR(255)), CAST(st.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your staging event table] st LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(st.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Started', CAST(ld.[Loading start timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT ld.[Warehouse order ID field], 'Loading Completed', CAST(ld.[Loading completion timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(ld.[Material number field] AS VARCHAR(255)), CAST(ld.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your loading event table] ld LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(ld.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT gi.[Warehouse order ID field], 'Goods Issue Posted', CAST(gi.[Goods issue posting timestamp field] AS TIMESTAMP), CAST(NULL AS TIMESTAMP), CAST(gi.[Material number field] AS VARCHAR(255)), CAST(gi.[User field] AS VARCHAR(255)), wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM [Your goods issue posting table] gi LEFT JOIN warehouse_orders wo ON wo.WarehouseOrder = CAST(gi.[Warehouse order ID field] AS VARCHAR(255))
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Completed', wo.WarehouseOrderCompletedTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCompletedTime IS NOT NULL
UNION ALL
SELECT wo.WarehouseOrder, 'Warehouse Order Canceled', wo.WarehouseOrderCanceledTime, CAST(NULL AS TIMESTAMP), wo.MaterialNumber, wo.[User], wo.WarehouseOrderType, wo.WarehouseOrderStatus, wo.Priority FROM warehouse_orders wo WHERE wo.WarehouseOrderCanceledTime IS NOT NULL
)
SELECT
e.WarehouseOrder,
e.ActivityName,
e.EventTime,
e.EventEndTime,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaterialNumber,
e.[User],
e.WarehouseOrderType,
e.WarehouseOrderStatus,
e.Priority
FROM events e
CROSS JOIN params p
WHERE e.WarehouseOrder IS NOT NULL
AND e.EventTime IS NOT NULL
AND e.EventTime >= p.start_time
AND e.EventTime < p.end_time
ORDER BY e.WarehouseOrder, e.EventTime, e.ActivityName; ¿Listo para comenzar?
Comience hoy mismo a optimizar las operaciones de su almacén. Aproveche este Template para mejorar la eficiencia y acelerar el cumplimiento de las órdenes.
Evite errores de picking y optimice la gestión del almacén hoy mismo
Alcance una precisión del 99,5 % en el inventario y elimine los retrasos en la preparación de pedidos en pocas semanas.
No se requiere tarjeta de crédito. La configuración lleva solo unos minutos.