Su Template de datos de gestión de almacenes
Su Template de datos de 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 | ||
|---|---|---|---|
| Orden de almacén WarehouseOrder | El identificador único de una Warehouse Order, que agrupa un conjunto de tareas de almacén que debe realizar un recurso. | ||
| Descripción La Warehouse Order sirve como identificador principal del caso para realizar el seguimiento del proceso completo de manipulación de mercancías dentro del almacén. Representa un paquete de trabajo, como recoger artículos para una entrega de salida o almacenar mercancías recibidas. Cada Warehouse Order contiene una o más tareas de almacén. En Process Mining, analizar 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 generales 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 Es el identificador central que conecta todas las actividades de almacén relacionadas, lo que permite analizar el proceso de principio a fin y medir el tiempo de ciclo de una única unidad de trabajo. Dónde obtenerlo Este identificador suele encontrarse en la tabla de cabecera de Warehouse Order de SAP EWM, como /SCWM/WHO. Ejemplos 200000145200000146200000147 | |||
| Hora de inicio EventTime | La marca de tiempo que indica cuándo comenzó la actividad o el evento. | ||
| Descripción Este atributo registra la fecha y hora exactas en las que tuvo lugar una actividad específica del almacén. Es el elemento temporal principal utilizado para ordenar los eventos y calcular la duración 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 tiempos de ciclo, tiempos de espera y tiempos de procesamiento, aspectos 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 logs de cambios de estado asociados a Warehouse Orders y tareas. Ejemplos 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Nombre de la actividad ActivityName | El nombre de la actividad o el evento específico de gestión del almacén que tuvo lugar, como «Picking Task Created» o «Goods Issue Posted». | ||
| Descripción Este atributo describe un único paso o evento dentro del proceso de gestión del almacén. Estas actividades son los componentes básicos del mapa de procesos y representan tareas como la creación, la confirmación, el packing, la carga y los movimientos de mercancías. Analizar la secuencia y la frecuencia de estas actividades es fundamental para Process Mining. Ayuda a 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 retrasos 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 deriva de cambios de estado, mensajes de eventos o logs de transacciones relacionados con Warehouse Orders y tareas en tablas como /SCWM/ORDIM_C (confirmaciones), o mediante la interpretación de campos de estado en /SCWM/WHO y /SCWM/ORDIM_O. Ejemplos Tarea de picking confirmadaTarea de putaway creadaRecepción 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 en el que se originan los datos de gestión del almacén. En un entorno empresarial con varios sistemas, es fundamental etiquetar el origen de los datos para garantizar la trazabilidad y el contexto. Para el análisis, ayuda a diferenciar los procesos que pueden abarcar varios sistemas o permite comparar procesos de distintas instancias, como sistemas independientes para diferentes regiones. Garantiza que el linaje de los datos sea claro y auditable. Por qué es importante Proporciona trazabilidad y contexto, especialmente en entornos con varias instancias de SAP o sistemas integrados, y garantiza que el linaje de los datos sea claro. Dónde obtenerlo Normalmente, es un valor estático añadido durante el proceso de extracción, transformación y carga (ETL) de datos, que identifica 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 | La marca de tiempo que indica la última vez que se actualizaron 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. Proporciona un contexto esencial sobre la actualidad de los datos analizados. En cualquier análisis o Dashboard, conocer la antigüedad de los datos es fundamental para tomar decisiones informadas. Esta marca de tiempo ayuda a comprender si se está consultando información en tiempo real o una instantánea de un momento concreto, y permite gestionar las expectativas sobre la vigencia de los datos. Por qué es importante Indica la actualidad de los datos, un aspecto fundamental para que las personas usuarias comprendan hasta qué punto está actualizado su análisis del proceso. Dónde obtenerlo Es un campo de metadatos que normalmente se genera y añade 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 la Warehouse Order WarehouseOrderStatus | El estado actual o final de la Warehouse Order, como «Completed» o «Canceled». | ||
| Descripción Este atributo indica el resultado final de una Warehouse Order. Comprender si un pedido se completó correctamente o se canceló es fundamental para analizar las tasas de éxito del proceso e identificar las causas de las no finalizaciones. Es un filtro clave para muchos análisis. Por ejemplo, al calcular el End-to-End Warehouse Cycle Time, normalmente solo se analizan los pedidos completados. También ayuda a identificar e investigar la frecuencia y las causas de los pedidos cancelados. Por qué es importante Indica el resultado de un caso y permite filtrar los pedidos completados frente a los cancelados, algo fundamental para analizar con precisión los tiempos de ciclo y el rendimiento. Dónde obtenerlo El campo de estado suele encontrarse en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Ejemplos CompletadoEn procesoCancelado | |||
| Hora de finalización EventEndTime | La 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 atómicos, pero puede diferir en actividades con una duración medible, como el embalaje o la carga. Disponer de una Hora de finalización 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 concretos, como «Picking & Packing Efficiency», y ayudan a identificar qué tareas consumen más tiempo. Por qué es importante Permite calcular con precisión la duración de actividades individuales, un aspecto 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 discretos. En tareas de larga duración, puede ser un campo independiente en tablas como /SCWM/ORDIM_C o derivarse de un cambio de estado posterior. Ejemplos 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| ID de usuario User | El identificador de la persona operadora o usuaria del almacén que confirmó o ejecutó la actividad. | ||
| Descripción Este atributo registra el ID de la persona responsable de realizar una Warehouse Task. Puede tratarse de la persona encargada del picking que confirmó una recogida, de quien realiza el packing en una estación o de quien opera la carretilla elevadora y confirma un putaway. Estos datos son esenciales para el Dashboard «Resource & Equipment Utilization». Permiten analizar el rendimiento individual o del equipo, identificar necesidades de formación y distribuir mejor las cargas de trabajo entre el personal del almacén. Por qué es importante Asocia el trabajo con una persona específica, lo que permite analizar el rendimiento por usuario o equipo y facilita la gestión de recursos y el equilibrio de las cargas de trabajo. Dónde obtenerlo Suele encontrarse en los datos de confirmación de una Warehouse Task, por ejemplo, en la tabla /SCWM/ORDIM_C, campo UNAME. Ejemplos JSMITHARODRIGUEZOPERATOR_05 | |||
| Número de material MaterialNumber | El identificador único del producto o material que se manipula en la Warehouse Task. | ||
| Descripción Este atributo especifica el material que se está trasladando, preparando, embalando o recibiendo. Es una dimensión fundamental para segmentar y analizar el rendimiento del almacén según las características del producto. El análisis por Número de material ayuda a responder preguntas como qué productos tienen los tiempos de ubicación más largos, cuáles intervienen con mayor frecuencia en errores de preparación o cuáles requieren inspecciones de calidad. Esto es esencial para los Dashboards «Goods Receipt & Putaway Performance» y «Quality Inspection Lead Time». Por qué es importante Permite filtrar y segmentar los datos del proceso por producto, algo fundamental para identificar problemas específicos relacionados con la manipulación, el almacenamiento o el control de calidad. Dónde obtenerlo Esta información suele estar disponible en tablas de Warehouse Tasks como /SCWM/ORDIM_O, vinculada a los datos maestros de materiales. Ejemplos FIN-1001RAW-2050SFIN-300-A | |||
| Prioridad Priority | Nivel de prioridad asignado al pedido de almacén, que indica su urgencia, por ejemplo, alta, media o baja. | ||
| Descripción Este atributo clasifica los pedidos de almacén según su importancia empresarial o urgencia. Por ejemplo, los pedidos de alta prioridad pueden corresponder a envíos exprés o al suministro crítico de producción, por lo que requieren una gestión acelerada. La prioridad es una dimensión clave del Dashboard y el KPI «Adherencia al cumplimiento de pedidos prioritarios». Permite filtrar y segmentar el rendimiento para garantizar que los pedidos más críticos se procesen dentro de los plazos previstos y alinear las operaciones del almacén con los objetivos empresariales. Por qué es importante Permite priorizar el análisis y la supervisión para garantizar que los pedidos urgentes cumplan sus niveles de servicio, lo que repercute directamente en la satisfacción del cliente. Dónde obtenerlo La prioridad puede establecerse en el documento de entrega subyacente y transferirse al pedido de almacén. Puede encontrarse en tablas como /SCWM/WHO. Ejemplos AltaMediaBaja | |||
| Tipo de Warehouse Order WarehouseOrderType | Clasifica la Warehouse Order según su finalidad, como Putaway, Picking o Internal Replenishment. | ||
| Descripción El tipo de Warehouse Order categoriza los pedidos según la función logística que cumplen. Esta distinción es fundamental porque los distintos tipos de pedido siguen rutas de proceso diferentes y tienen expectativas de rendimiento distintas. En el análisis, este atributo es una dimensión principal para filtrar y comparar. Por ejemplo, el Dashboard «Warehouse Order Throughput & Volume» utiliza esta dimensión para segmentar el rendimiento de los procesos de entrada (Putaway) frente a los de salida (Picking), y ofrece una visión más útil de las operaciones del almacén. Por qué es importante Permite segmentar el análisis según la categoría del proceso, por ejemplo, entrada frente a salida, y facilita comparaciones e insights más relevantes. Dónde obtenerlo Lo determina el tipo de proceso del almacén, que suele encontrarse en la tabla de cabecera de Warehouse Order /SCWM/WHO. Ejemplos PICKPUTWREPLSTGE | |||
| A tiempo IsOnTime | Indicador booleano que señala si un pedido de almacén se completó antes de su fecha de finalización solicitada o en ella. | ||
| Descripción Este indicador ofrece un resultado binario sencillo sobre el cumplimiento del SLA. Evalúa si el evento final de un pedido de almacén se produjo en la fecha Requested Completion Date especificada o antes. Este atributo es esencial para el Dashboard «Adherencia al cumplimiento de pedidos prioritarios». Simplifica la creación de KPI y visualizaciones al permitir contar y filtrar fácilmente los pedidos completados a tiempo y los retrasados. Así, puede evaluarse rápidamente el rendimiento frente a los objetivos de nivel de servicio sin realizar cálculos de fechas complejos en la capa de análisis. Por qué es importante Simplifica el análisis del rendimiento del SLA al proporcionar un indicador binario claro de cumplimiento puntual o retrasado para cada pedido. Dónde obtenerlo Es un atributo calculado. La lógica compara la marca de tiempo de la actividad «Pedido de almacén completado» con el atributo RequestedCompletionDate. Ejemplos truefalse | |||
| Cantidad planificada PlannedQuantity | La cantidad prevista de un material para una Warehouse Task determinada. | ||
| Descripción Este atributo representa la cantidad objetivo de material que debe moverse, recogerse o recibirse según la instrucción de la Warehouse Task. Es la referencia con la que se compara la cantidad ejecutada real. La cantidad planificada es esencial para el Dashboard «Inventory Discrepancy Analysis» y el KPI «Inventory Accuracy Rate». Al compararla con la cantidad real, el sistema puede identificar discrepancias que podrían indicar errores de picking, errores de recepción o problemas de introducción de datos, y contribuir así a mejorar la exactitud del inventario. Por qué es importante Sirve como referencia para calcular la exactitud del inventario e identificar discrepancias, algo fundamental para mantener niveles de stock correctos. Dónde obtenerlo Se encuentra en los datos de Warehouse Tasks, por ejemplo, en la tabla /SCWM/ORDIM_O, normalmente en un campo como NISTA (Target Quantity). Ejemplos 10050250 | |||
| Cantidad real ActualQuantity | La cantidad real de un material confirmada por la persona usuaria para una Warehouse Task. | ||
| Descripción Este atributo representa la cantidad manipulada y confirmada físicamente por la persona operadora del almacén. Puede ser la cantidad recogida de una ubicación, la cantidad almacenada o la cantidad contabilizada durante una recepción de mercancías. Comparar la cantidad real con la cantidad planificada es fundamental para el Dashboard «Inventory Discrepancy Analysis». Una variación entre ambos valores pone de manifiesto directamente una excepción del proceso que requiere investigación. Es una medida directa de la exactitud operativa y un dato clave para los KPI «Inventory Accuracy Rate» y «Picking Error Rate». Por qué es importante Es la referencia real de lo que se manipuló físicamente. Compararla con la cantidad planificada mide directamente la exactitud operativa e identifica errores. Dónde obtenerlo Se encuentra en los datos de confirmación de Warehouse Tasks, por ejemplo, en la tabla /SCWM/ORDIM_C, normalmente en un campo como NDIFF (Difference Quantity), o se deriva de las cantidades confirmadas. Ejemplos 10049250 | |||
| 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é equipo se utiliza para cada tarea y durante cuánto tiempo, los responsables pueden analizar los patrones de utilización, programar el mantenimiento y tomar decisiones fundamentadas sobre el tamaño y la composición de la flota. Por qué es importante Permite analizar la utilización y la eficiencia de los equipos, lo que ayuda a 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 del pedido de almacén si la gestión de recursos está configurada en SAP EWM. Consulte la documentación de SAP Extended Warehouse Management. Ejemplos FORKLIFT-07AGV-02CART-15 | |||
| Fecha de finalización solicitada RequestedCompletionDate | Fecha en la que se solicita completar un pedido de almacén de alta prioridad. | ||
| Descripción Este atributo define el acuerdo de nivel de servicio (SLA) o la fecha objetivo de finalización de un pedido de almacén. Es el plazo de referencia frente al que se mide el tiempo real de finalización para determinar si el pedido se cumplió a tiempo. Esta fecha es esencial para calcular el KPI «Tasa de cumplimiento de pedidos prioritarios». Al comparar la marca de tiempo real de finalización con esta fecha solicitada, el análisis puede medir el cumplimiento de los niveles de servicio y destacar los pedidos que corren riesgo de retrasarse o que ya presentan retrasos. Por qué es importante Define el SLA de un pedido y sirve como referencia para medir el rendimiento del cumplimiento puntual, especialmente en el caso de artículos de alta prioridad. Dónde obtenerlo Esta fecha suele derivarse de la fecha planificada de salida de mercancías o de la fecha de entrega del pedido de entrega de salida que activó el pedido 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 a la que está previsto que el envío salga del almacén. | ||
| Descripción Este atributo representa la hora objetivo para expedir un envío una vez completadas todas las actividades de picking, embalaje y carga. Sirve como referencia para medir el rendimiento puntual de la etapa final del proceso de salida. Esta marca de tiempo es fundamental para el Dashboard «Rendimiento puntual de la expedición de envíos». Al comparar la hora real de expedición con la hora planificada, el análisis puede identificar retrasos en la carga, la coordinación con el transportista o la documentación, y aportar información sobre la eficiencia de la planificación logística y del transporte. Por qué es importante Proporciona la referencia para medir el rendimiento puntual de las expediciones, 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 de envío vinculado a los pedidos de almacén. Consulte la documentación de SAP Extended Warehouse Management. Ejemplos 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Tarea de almacén WarehouseTask | El identificador único de una única tarea de almacén, que es un componente de una Warehouse Order. | ||
| Descripción Una Warehouse Task es la instrucción para ejecutar un movimiento específico de mercancías, como trasladar un producto desde una ubicación de almacenamiento hasta una estación de packing. Una Warehouse Order agrupa una o más de estas tareas. Analizar el proceso a nivel de tarea proporciona 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 o analizar la eficiencia de actividades individuales de picking o putaway. Por qué es importante Proporciona un nivel de detalle granular para el análisis, lo que permite examinar movimientos y pasos individuales dentro de una Warehouse Order más amplia. Dónde obtenerlo Se encuentra en tablas de Warehouse Tasks, como /SCWM/ORDIM_O (datos de tareas) y /SCWM/ORDIM_C (datos de confirmación). Ejemplos 300000451300000452300000453 | |||
| Tiempo de ciclo de extremo a extremo EndToEndCycleTime | Tiempo total transcurrido desde la creación del pedido de almacén hasta su finalización. | ||
| Descripción Este KPI mide toda la duración del ciclo de vida de un pedido de almacén. Es un indicador general fundamental de la eficiencia y la velocidad de las operaciones del almacén. Esta métrica es la base del Dashboard «Tiempo de ciclo de almacén de extremo a extremo». El seguimiento del KPI a lo largo del tiempo y su segmentación por dimensiones como el tipo de pedido o el material ayudan a identificar ineficiencias sistémicas y medir el impacto de las iniciativas de mejora de procesos en toda la operación. Por qué es importante Es un KPI principal para medir la eficiencia general del proceso de almacén y ofrece una visión de alto nivel del rendimiento operativo. Dónde obtenerlo Se calcula a nivel de caso restando la marca de tiempo del primer evento («Pedido de almacén creado») de la marca de tiempo del último evento («Pedido de almacén completado»). Ejemplos 8640017280043200 | |||
| Ubicación de almacenamiento StorageLocation | La ubicación específica dentro del almacén, como una ubicación de almacenamiento, a la que se trasladan las mercancías o desde la que se retiran. | ||
| Descripción Este atributo identifica la ubicación física implicada en una tarea de almacén, por ejemplo, la ubicación de origen para el picking o la ubicación de destino para la ubicación en almacén. Puede abarcar desde una zona amplia hasta la coordenada específica de una estantería. El análisis por ubicación de almacenamiento puede revelar información operativa, como la identificación de «zonas doradas» con altas tasas de picking o de áreas problemáticas con retrasos o errores frecuentes. También puede utilizarse en el análisis de «Adherencia a la ruta de picking» para comprender los desplazamientos del personal de picking por el almacén. Por qué es importante Proporciona 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 ubicaciones de origen (VLPLA) y de destino (NLPLA). Ejemplos 01-02-03PACK-STATION-01GI-ZONE-A | |||
| Variación 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, lo que puede señalar un problema como un error de picking, un error de recepción o un artículo dañado. Este atributo respalda directamente el Dashboard «Análisis de discrepancias de inventario» al mostrar la magnitud de los errores. Analizar la frecuencia y el tamaño de estas variaciones ayuda a localizar 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 relevante. Ejemplos 0-15 | |||
Actividades de gestión de almacenes
| Actividad | Descripción | ||
|---|---|---|---|
| Packing 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 concluye la etapa de packing. Es un requisito previo para la preparación y el envío, por lo que cualquier retraso afecta directamente al plazo total y al KPI Packing and Staging Lead Time. Dónde obtenerlo Puede capturarse cuando el estado de la unidad de manipulación (HU) se establece en «Closed» o cuando se confirma la última tarea de almacén relacionada con el packing para la WO. La tabla /SCWM/HUHDR contiene información sobre el estado de la HU. Recopilar Identifique la marca de tiempo en la que se cierra o completa la unidad de manipulación de envío final asociada al pedido. Tipo de evento inferred | |||
| Salida de mercancías contabilizada | Este es el último paso logístico y financiero del sistema, que retira formalmente las mercancías del inventario del almacén. Indica que la propiedad legal se ha transferido 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. Es un componente clave para medir los envíos puntuales y el KPI Shipment Loading & Dispatch Time. Dónde obtenerlo Se infiere a partir de la contabilización de un documento de Outbound Delivery asociado a la Warehouse Order. Compruebe el flujo de documentos o los campos de estado, como DGI_STAT, en la tabla /SCDL/DB_PROCH_O. Recopilar Identifique la marca de tiempo en la que el estado Goods Issue se establece en «Completed» para la Outbound Delivery asociada. Tipo de evento explicit | |||
| Tarea de picking confirmada | Una persona operadora del almacén confirma que la Warehouse Task de picking se ha completado, lo que indica que las mercancías se han retirado físicamente de su ubicación de almacenamiento. Normalmente, esta acción se realiza mediante un escáner RF. | ||
| Por qué es importante Este es un hito crítico del cumplimiento de pedidos, ya que 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 e identificar cuellos de botella en el picking. Dónde obtenerlo Se captura a partir de la marca de tiempo de confirmación (campo CONFIRMED_AT) de la tabla de Warehouse Tasks, /SCWM/WT. El estado de la tarea (STAT) se actualiza a «Confirmed». Recopilar 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 putaway confirmada | Una persona operadora del almacén confirma que la Warehouse Task de putaway se ha completado, lo que significa que las mercancías se han colocado físicamente en la ubicación de almacenamiento designada. Esta confirmación actualiza en tiempo real la ubicación del inventario. | ||
| Por qué es importante Esta actividad es un hito clave del procesamiento de entrada, ya que confirma que el stock está disponible para el picking. Los retrasos en este punto afectan directamente al KPI Goods Receipt to Putaway Cycle Time. Dónde obtenerlo Se captura a partir de la marca de tiempo de confirmación (campo CONFIRMED_AT) de la tabla de Warehouse Tasks, /SCWM/WT. El estado de la tarea (STAT) también cambia a «Confirmed». Recopilar Utilice la marca de tiempo de confirmación de la tabla /SCWM/WT para las tareas de putaway asociadas a la Warehouse Order. Tipo de evento explicit | |||
| Warehouse Order completada | El estado de la Warehouse Order se establece en «Completed» después de confirmar 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 final principal de éxito del proceso. Es esencial para calcular el End-to-End Warehouse Cycle Time y medir el rendimiento general. Dónde obtenerlo Se captura mediante el seguimiento del cambio del campo de estado (STAT) a «Completed» 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. Recopilar Identifique la marca de tiempo en la que el estado de /SCWM/WHO se establece en «C» (Completed). 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 el área de actividad, la cola o el producto. | ||
| Por qué es importante Este es el evento de inicio principal del proceso de ejecución del almacén. Analizar el tiempo transcurrido desde la creación hasta la primera acción ayuda a identificar retrasos en la asignación del trabajo y de los recursos. Dónde obtenerlo Este evento se captura a partir de la marca de tiempo de creación (campo CREATED_AT) de la tabla de cabecera de Warehouse Order, /SCWM/WHO. Recopilar 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. Los retrasos entre la finalización de la carga y la salida de mercancías pueden indicar problemas de documentación o del sistema que retienen a los transportistas. Dónde obtenerlo Se infiere a partir del cambio de estado de la unidad de transporte (TU) o de la Outbound Delivery Order asociada a «Loading Completed». Son relevantes los estados de las tablas /SCWM/TU y /SCDL/DB_PROCH_O. Recopilar Capture la marca de tiempo en la que el estado de la TU o de la Delivery Order se actualiza para reflejar la finalización de la carga. Tipo de evento inferred | |||
| Inicio de la carga | Esta actividad marca el inicio de la carga física de las mercancías desde el área de preparación hasta un camión o una unidad de transporte. A menudo, se inicia mediante una acción de una persona usuaria 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 del muelle y el tiempo de rotación del transportista. Dónde obtenerlo Se infiere a partir del cambio de estado de la unidad de transporte (TU) o de la Outbound Delivery Order asociada a «Loading Started». Puede consultarse la tabla /SCWM/TU_STATUS. Recopilar Capture la marca de tiempo en la que el estado de la TU o de la Delivery Order se actualiza para reflejar el inicio de la carga. Tipo de evento inferred | |||
| Inicio del packing | Representa el inicio de las actividades de packing, en las que los artículos recogidos se consolidan y se colocan en contenedores de envío o unidades de manipulación. A menudo, es el primer paso en un centro de trabajo de packing. | ||
| Por qué es importante Marca el inicio de la fase de servicios de valor añadido. Medir la duración del packing ayuda a optimizar la distribución del centro de trabajo, la dotación de personal y los materiales. Dónde obtenerlo Puede ser necesario inferir este evento. Puede derivarse del primer escaneo de un artículo o una unidad de manipulación en una estación de packing, normalmente registrado en los logs del centro de trabajo o de la unidad de manipulación. Las tablas como /SCWM/PACKSPEC y los logs de ejecución relacionados pueden servir como fuente. Recopilar Utilice la marca de tiempo de la primera confirmación de una Warehouse Task relacionada con el packing para la entrega, o la hora de creación de la HU de envío final. Tipo de evento inferred | |||
| Recepción de mercancías contabilizada | Marca la aceptación formal de las mercancías en el inventario del almacén procedentes de un proveedor externo o de la producción. Es una contabilización financiera y de inventario clave que hace que el stock sea visible y esté disponible para procesos posteriores, como el putaway. | ||
| Por qué es importante Este es un hito crítico del proceso de entrada. El tiempo transcurrido entre la llegada de las mercancías y esta contabilización puede indicar acumulaciones de trabajo en el área de recepción que afectan a la disponibilidad del stock. Dónde obtenerlo Se infiere a partir de la contabilización de un documento de Inbound Delivery asociado a la Warehouse Order. Compruebe el flujo de documentos o los campos de estado, como DGRSTAT, en la tabla /SCDL/DB_PROCH_I. Recopilar Identifique la marca de tiempo en la que el estado Goods Receipt se establece en «Completed» para la Inbound Delivery asociada. 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 completar un pedido de entrega de salida. Esto representa la instrucción del sistema para que una persona operadora retire un producto. | ||
| Por qué es importante Es el inicio del proceso físico de salida. El tiempo transcurrido entre la creación y la confirmación de las tareas de picking es fundamental para analizar la eficiencia del picking y la disponibilidad de recursos. Dónde obtenerlo Se captura a partir 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. Recopilar Filtre las Warehouse Tasks cuyo tipo de proceso sea picking y que estén vinculadas a la Warehouse Order; después, utilice su marca de tiempo de creación. Tipo de evento explicit | |||
| Tarea de preparación para el envío confirmada | Una persona operadora del almacén confirma el movimiento de una unidad de manipulación embalada desde una estación de packing o un área de consolidación hasta el área designada de preparación del envío. Las mercancías quedan así posicionadas para la carga. | ||
| Por qué es importante Marca la transición del procesamiento interno a la logística de salida. Los retrasos en la preparación pueden provocar desorden en los muelles de carga y hacer que no se cumplan los horarios de recogida de los transportistas. Dónde obtenerlo Se captura a partir 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. Recopilar Identifique la marca de tiempo de confirmación de la tarea de almacén de preparación asociada a la unidad de manipulación o a la entrega. Tipo de evento explicit | |||
| Tarea de putaway creada | El sistema genera una instrucción específica, una Warehouse Task (WT), para trasladar las mercancías recibidas desde el área de recepción hasta una ubicación de almacenamiento final. Esta actividad representa la disponibilidad del sistema para ejecutar el movimiento de putaway. | ||
| Por qué es importante El seguimiento del tiempo entre la creación y la confirmación de la tarea revela cuánto tardan las instrucciones de putaway en ser recogidas y ejecutadas por el personal del almacén, y permite detectar posibles carencias de personal o equipos. Dónde obtenerlo Se captura a partir 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 putaway. Recopilar Filtre las Warehouse Tasks cuyo tipo de proceso sea putaway y que estén vinculadas a la Warehouse Order; después, 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 continuar con la ejecución. Esto puede ocurrir por falta de stock, cambios en los pedidos de clientes u otras excepciones. | ||
| Por qué es importante Representa una ruta de fallo o excepción. Analizar la frecuencia y las causas de las cancelaciones ayuda a identificar problemas en la planificación, la exactitud del inventario o la gestión de pedidos. Dónde obtenerlo Se captura mediante el seguimiento del cambio del campo de estado (STAT) a «Canceled» en la tabla de cabecera de Warehouse Order, /SCWM/WHO. Recopilar Identifique la marca de tiempo en la que el estado de /SCWM/WHO se establece en un valor de estado de cancelación. Tipo de evento inferred | |||
Guías de extracción
Pasos
- Requisito previo: identificar o crear CDS Views: ¿Las principales fuentes de datos son las CDS Views estándar de SAP S/4HANA para Warehouse Management? Las vistas clave son
I_WarehouseOrderpara los eventos a nivel de pedido yI_WarehouseTaskpara los eventos a nivel de tarea. También se necesitan otras vistas, comoI_OutboundDeliveryItem,I_InboundDeliveryItemeI_EWMTransportationUnit, para los eventos logísticos relacionados. Asegúrese de que estas vistas estén activas en su sistema. - Crear una CDS View personalizada: Para combinar datos de varias fuentes en un único formato de registro de eventos, debe crear una CDS View personalizada. Utilice ABAP Development Tools (ADT) en Eclipse para crear una Data Definition nueva. Esta vista personalizada utilizará
UNION ALLpara combinar registros de distintas fuentes, cada uno de los cuales representa una actividad empresarial diferente. - Definir la estructura del registro de eventos: En su CDS View 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 CDS Views estándar subyacentes. - Modelar los eventos de Warehouse Order: Añada las primeras sentencias
SELECTa la unión. Seleccione datos deI_WarehouseOrderpara generar el evento «Warehouse Order Created» mediante la marca de tiempo de creación. Añada después sentenciasSELECTpara los eventos «Warehouse Order Completed» y «Warehouse Order Canceled», filtrando por el estado del pedido y utilizando las marcas de tiempo de confirmación o modificación correspondientes. - Modelar los eventos de Warehouse Task: Añada sentencias
SELECTdeI_WarehouseTask. Genere los eventos «Putaway Task Created» y «Putaway Task Confirmed» filtrando las categorías de proceso de almacén relacionadas con la ubicación. Del mismo modo, cree los eventos «Picking Task Created», «Picking Task Confirmed» y «Staging Task Confirmed» según sus respectivas categorías de proceso, y utilice las marcas de tiempo de creación y confirmación. - Modelar los eventos de movimiento de mercancías: Una las vistas relacionadas con las entregas a las tareas de almacén para capturar los movimientos de mercancías. Para «Goods Receipt Posted», seleccione datos de
I_InboundDeliveryItemmedianteActualGoodsMovementDateTime. Para «Goods Issue Posted», utilice el mismo campo deI_OutboundDeliveryItemy vincúlelo con el pedido o la tarea de almacén correspondiente. - Modelar los eventos de carga y embalaje: Seleccione datos de
I_EWMTransportationUnitpara capturar los eventos «Loading Started» y «Loading Completed» mediante sus marcas de tiempo específicas. Para el embalaje, que puede ser complejo, utilice una aproximación seleccionando datos de una vista de Handling Unit, donde la hora de creación puede representar «Packing Started» y la hora de cambio de estado puede representar «Packing Completed». Es posible que deba ajustar este paso según su proceso de embalaje específico. - Añadir anotaciones para exponer la CDS View: Añada la anotación
@OData.publish: truea la definición de su CDS View personalizada. Esto indica a SAP que genere automáticamente un servicio OData basado en la estructura de la vista. - Activar la CDS View y el servicio OData: Active la nueva Data Definition en ADT. Después, vaya al sistema central de SAP Gateway y utilice 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. - Extraer los datos: Utilice su plataforma de datos de destino o herramienta ETL para conectarse al endpoint del servicio OData activado. Aplique filtros directamente en el URI de OData, por ejemplo, para filtrar por
EventTimey limitar el alcance de los datos (?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Dar formato para Process Mining: Asegúrese de guardar los datos extraídos en un formato de archivo plano, como 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 crearse una vista CDS específica, por ejemplo
Z_C_EWM_EVENTLOG_CDS, para unificar los datos de eventos. Es el objeto central de la extracción. - Servicio OData: Debe activarse el servicio OData generado a partir de la vista CDS personalizada. El nombre del servicio suele ser el nombre de la vista CDS con el sufijo
_CDS. - Filtrado por intervalo de fechas: Es fundamental aplicar un filtro de fecha al campo
EventTimeal llamar a la API OData. Para un análisis inicial, suele utilizarse un intervalo de 3 a 6 meses de datos. Sin un filtro, la consulta puede agotar el tiempo de espera o provocar problemas de rendimiento. - Filtrado de entidades: 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 materiales específicos (MaterialNumber). - Autorizaciones del sistema: La persona que cree la vista CDS necesita acceso de desarrollador de SAP en ADT. La persona usuaria o la cuenta de servicio que llame a la API OData necesita autorizaciones para acceder a los datos subyacentes de gestión de almacenes.
a 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 el acceso directo de lectura al esquema de base de datos de SAP EWM está aprobado e identifique los objetos físicos de base de datos que representan las cabeceras de pedidos de almacén, las tareas de almacén, el historial de estados de los pedidos, los registros de entrada y salida de mercancías, el embalaje, la preparación y la carga. Las referencias lógicas /SCWM/WHO y /SCWM/WT suelen utilizarse como punto de partida, pero debe verificar los objetos reales, los campos, el significado de los códigos de estado, la semántica de las marcas de tiempo y el esquema de base de datos de su sistema.
- Obtenga la asignación de campos verificada de la persona responsable técnicamente de SAP EWM o del diccionario de datos. Asigne el ID del pedido de almacén, el tipo de pedido de almacén, el estado, la prioridad, el ID de la tarea de almacén, la categoría de tarea o tipo de proceso, el material, el usuario, la marca de tiempo de creación, la marca de tiempo de 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 marca de tiempo de actualización. No dé por supuesto 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 de informes y valores parametrizados para la fecha inicial y final de 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 marca de tiempo de creación del pedido de almacén, para no excluir los eventos que se produzcan más adelante en el ciclo de vida del pedido.
- Cree las filas de eventos seleccionando una fila para cada actividad requerida explícitamente. La consulta debe utilizar los campos de origen verificados para cada actividad y no depender de ProcessMind para inferir eventos. Si una actividad se representa mediante un historial de estados o un registro de aplicación en lugar de un campo actual de la cabecera, utilice 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 única 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: Warehouse Order Created, Goods Receipt Posted, Putaway Task Created, Putaway Task Confirmed, Picking Task Created, Picking Task Confirmed, Packing Started, Packing Completed, Staging Task Confirmed, Loading Started, Loading Completed, Goods Issue Posted, Warehouse Order Completed y Warehouse Order Canceled.
- Asegúrese de que cada fila de salida contenga WarehouseOrder, ActivityName, EventTime, SourceSystem y LastDataUpdate. Rellene EventEndTime cuando exista una marca de tiempo de finalización fiable. Para los eventos a nivel de tarea, asocie la tarea con su pedido de almacén. Si un pedido de almacén contiene varias tareas relevantes, conserve una fila de evento por cada evento de tarea y mantenga el pedido de almacén como identificador del caso. Utilice un criterio estable para resolver empates, como el ID de la tarea o el ID del evento de origen, si el formato de importación de destino lo admite.
- Valide el resultado antes de exportarlo. Compruebe que aparecen las 14 actividades cuando los datos de origen contienen los eventos empresariales correspondientes, que las marcas de tiempo se encuentran dentro del intervalo solicitado, que los pedidos de almacén no están inesperadamente vacíos y que las filas duplicadas se explican por varias tareas o cambios de estado repetidos. Concilie los recuentos con los informes operativos de SAP o con una extracción independiente aprobada.
- Exporte el resultado como un archivo delimitado compatible con ProcessMind o como un resultado de base de datos con un evento por fila. Conserve los nombres exactos de las columnas requeridas, utilice un formato de marca de tiempo inequívoco como ISO 8601, entrecomille los valores de texto cuando el formato del delimitador lo requiera e incluya una fila de encabezados. Cargue el archivo o configure la conexión de base de datos en ProcessMind, establezca WarehouseOrder como identificador del caso, ActivityName como actividad, EventTime como marca de tiempo de inicio y EventEndTime como marca de tiempo de finalización cuando esté disponible.
Configuración
- Asignación de objetos de origen: Verifique los objetos físicos de base de datos y los campos correspondientes a pedidos de almacén, 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 relevantes, pero debe confirmarse la representación de base de datos implementada antes de comenzar la implementación.
- Intervalo de fechas: Comience con un periodo controlado de tres a seis meses. Utilice un periodo más corto para las pruebas iniciales y amplíelo después de la conciliación. Incluya un pequeño solapamiento entre las ejecuciones incrementales para capturar registros contabilizados con retraso y correcciones.
- Selección de la marca de tiempo del evento: Utilice marcas de tiempo de creación para las actividades creadas, marcas de tiempo de confirmación para las actividades confirmadas, marcas de tiempo de contabilización para la entrada y salida de mercancías y marcas de tiempo de ejecución verificadas para el embalaje, la preparación y la carga. No sustituya la hora de creación del pedido de almacén por la de todos los eventos.
- Filtros: Aplique únicamente filtros empresariales verificados, como número de almacén, sociedad, tipo de documento, tipo de pedido de almacén, área de actividad, cola, centro o sistema de origen. Los campos de sociedad y tipo de documento pueden encontrarse en objetos relacionados y deben asignarse en el sistema de destino.
- Asignación de estados: Configure los códigos exactos de estado o proceso de SAP que representan los pedidos de almacén completados y cancelados. Valide la asignación con la persona responsable funcional de EWM, ya que los códigos de estado y su almacenamiento pueden variar según la versión y la implementación.
- SourceSystem: Establezca un valor estable que identifique la instancia de producción o de informes de EWM. No lo derive de un campo empresarial que pueda estar vacío.
- LastDataUpdate: Rellénelo de forma coherente en todas las filas de una ejecución con la marca de tiempo de extracción o de actualización del origen.
- Extracción incremental: Utilice una marca de agua persistente basada en la última marca de tiempo de origen extraída correctamente, con una ventana de solapamiento para los registros que lleguen tarde. Elimine duplicados mediante identificadores de origen verificados cuando estén disponibles.
- Rendimiento: Restrinja pronto el intervalo de fechas, seleccione únicamente las columnas necesarias, filtre campos indexados, evite utilizar funciones sobre columnas de marcas de tiempo indexadas en las condiciones y procese los intervalos grandes en lotes diarios o semanales. Utilice 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 al unir datos de tareas, estados, materiales y unidades de manipulación. Agregue o seleccione el registro de evento adecuado antes de realizar la unión.
- Zonas horarias: Configure la zona horaria del origen y la regla de conversión. Almacene las marcas de tiempo de forma coherente y documente el tratamiento del horario de verano.
- Requisitos previos: Autorización de base de datos de solo lectura, acceso aprobado al esquema de EWM, asignaciones verificadas del diccionario de datos, permiso para leer los objetos operativos y de historial relevantes 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 y deben ser confirmados por la persona responsable del sistema.
a 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 empezar?
Comience hoy su camino hacia unas operaciones de almacén optimizadas. Utilice esta plantilla para alcanzar la máxima eficiencia y acelerar el cumplimiento de los pedidos.
Elimine los errores de picking y optimice hoy la gestión de su almacén
Alcance una precisión del 99,5 % en el inventario y elimine los retrasos en el cumplimiento en cuestión de semanas.
No necesita tarjeta de crédito; la configuración solo lleva unos minutos.