Your Warehouse Management Data Template
Your Warehouse Management Data Template
- Recommended attributes for comprehensive analysis
- Key activities to track across your process
- Guidance for data extraction from SAP EWM
Warehouse Management Attributes
| Name | Description | ||
|---|---|---|---|
| Warehouse Order WarehouseOrder | The unique identifier for a warehouse order, which groups a set of warehouse tasks to be performed by a resource. | ||
| Description The Warehouse Order serves as the primary case identifier for tracking the end-to-end process of handling goods within the warehouse. It represents a work package, such as picking items for an outbound delivery or putting away received goods. Each Warehouse Order contains one or more warehouse tasks. In process mining, analyzing by Warehouse Order allows for a comprehensive view of the entire lifecycle of a specific work package. This helps in identifying bottlenecks, measuring overall cycle times from creation to completion, and understanding the complete flow of activities associated with a single logistical instruction. Why it matters This is the core identifier that connects all related warehouse activities, enabling end-to-end process analysis and cycle time measurement for a single unit of work. Where to get This identifier is typically found in the SAP EWM warehouse order header table, such as /SCWM/WHO. Examples 200000145200000146200000147 | |||
| Activity Name ActivityName | The name of the specific warehouse management activity or event that occurred, such as 'Picking Task Created' or 'Goods Issue Posted'. | ||
| Description This attribute describes a single step or event within the warehouse management process. These activities are the building blocks of the process map, representing tasks like creation, confirmation, packing, loading, and goods movements. Analyzing the sequence and frequency of these activities is fundamental to process mining. It helps visualize the process flow, identify common and rare paths, detect deviations from the standard procedure, and pinpoint specific steps that are causing delays or rework. Why it matters It defines the steps in the process, forming the basis of the process map and enabling analysis of process flow, deviations, and bottlenecks. Where to get Derived from status changes, event messages, or transaction logs related to warehouse orders and tasks in tables like /SCWM/ORDIM_C (Confirmations) or by interpreting status fields in /SCWM/WHO and /SCWM/ORDIM_O. Examples Picking Task ConfirmedPutaway Task CreatedGoods Receipt PostedWarehouse Order Completed | |||
| Last Data Update LastDataUpdate | The timestamp indicating the last time the data for this record was refreshed from the source system. | ||
| Description This attribute records when the data was last extracted from the source system. It provides crucial context about the freshness of the data being analyzed. In any analysis or dashboard, knowing the recency of the data is essential for making informed decisions. This timestamp helps users understand if they are looking at real-time information or a snapshot from a specific point in time, managing expectations about data currency. Why it matters Indicates the freshness of the data, which is critical for users to understand how current their process analysis is. Where to get This is a metadata field typically generated and added during the data extraction (ETL) process. It reflects the timestamp of the data load. Examples 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Source System SourceSystem | Identifies the source system from which the data was extracted, for example, the SAP EWM production instance. | ||
| Description This attribute specifies the system of record where the warehouse management data originates. In an enterprise environment with multiple systems, it is crucial to label the data's origin for traceability and context. For analysis, this helps differentiate processes that might span multiple systems or allows for comparing processes from different instances, such as separate systems for different regions. It ensures data lineage is clear and auditable. Why it matters Provides traceability and context, especially in environments with multiple SAP instances or integrated systems, ensuring data lineage is clear. Where to get This is typically a static value added during the data extraction, transformation, and loading (ETL) process, identifying the specific SAP S/4HANA or EWM instance. Examples SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Start Time EventTime | The timestamp indicating when the activity or event started. | ||
| Description This attribute records the exact date and time that a specific warehouse activity occurred. It is the primary temporal element used for ordering events and calculating durations between them. In process mining, the Start Time is essential for constructing the chronological sequence of events for each case. It is used to calculate cycle times, waiting times, and processing times, which are critical for performance analysis, bottleneck identification, and SLA monitoring. Why it matters This timestamp is critical for ordering events chronologically and calculating all time-based performance metrics, such as cycle times and durations. Where to get Typically found in event or confirmation tables like /SCWM/ORDIM_C (e.g., field CONF_TIMESTAMP) or status change logs associated with warehouse orders and tasks. Examples 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| End Time EventEndTime | The timestamp indicating when an activity or event was completed. | ||
| Description This attribute records the date and time that a specific warehouse activity finished. It is often the same as the Start Time for atomic events but can differ for activities with a measurable duration, like packing or loading. Having a distinct End Time allows for precise calculation of the processing time for individual activities. This is crucial for performance dashboards that analyze the duration of specific steps, such as 'Picking & Packing Efficiency', helping to identify which tasks are consuming the most time. Why it matters Enables the precise calculation of the duration of individual activities, which is key for identifying time-consuming steps and resource-intensive tasks. Where to get Often the same as the start timestamp for discrete events. For long-running tasks, it may be a separate field in tables like /SCWM/ORDIM_C or derived from a subsequent status change. Examples 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| Material Number MaterialNumber | The unique identifier for the product or material being handled in the warehouse task. | ||
| Description This attribute specifies the material that is being moved, picked, packed, or received. It is a critical dimension for segmenting and analyzing warehouse performance based on product characteristics. Analyzing by Material Number helps answer questions like which products have the longest putaway times, which are most frequently involved in picking errors, or which require quality inspections. This is essential for the 'Goods Receipt & Putaway Performance' and 'Quality Inspection Lead Time' dashboards. Why it matters Allows for filtering and segmenting process data by product, which is crucial for identifying product-specific issues in handling, storage, or quality control. Where to get This information is typically available in warehouse task tables like /SCWM/ORDIM_O, linked to the material master data. Examples FIN-1001RAW-2050SFIN-300-A | |||
| Priority Priority | The priority level assigned to the warehouse order, indicating its urgency (e.g., High, Medium, Low). | ||
| Description This attribute classifies warehouse orders based on their business importance or urgency. High-priority orders, for example, may be for express shipments or critical production supply and require expedited handling. Priority is a key dimension for the 'Priority Order Fulfillment Adherence' dashboard and KPI. It allows for filtering and segmenting performance to ensure that the most critical orders are being processed within their expected timelines, aligning warehouse operations with business goals. Why it matters Allows for prioritizing analysis and monitoring to ensure that high-urgency orders meet their service levels, directly impacting customer satisfaction. Where to get Priority can be set on the underlying delivery document and transferred to the warehouse order. It may be found in tables like /SCWM/WHO. Examples HighMediumLow | |||
| Processing Time ProcessingTime | The duration of time spent actively working on a specific activity. | ||
| Description Processing time measures the actual 'touch time' for an activity, calculated as the difference between its start and end timestamps. This is distinct from cycle time, which includes waiting periods between activities. This metric is fundamental for performance analysis, particularly for dashboards like 'Picking & Packing Efficiency'. It helps pinpoint which specific tasks are the most time-consuming, allowing managers to focus improvement efforts on activities with the longest processing times, thereby improving overall throughput. Why it matters Measures the active work duration of an activity, helping to identify the most time-consuming tasks and forming a basis for resource capacity analysis. Where to get This is a calculated metric, derived by subtracting the EventTime from the EventEndTime for each activity. Examples 3009150 | |||
| User ID User | The identifier of the warehouse operator or user who confirmed or executed the activity. | ||
| Description This attribute captures the user ID of the person responsible for performing a warehouse task. This could be the picker who confirmed a pick, the packer at a packing station, or the forklift operator confirming a putaway. This data is vital for the 'Resource & Equipment Utilization' dashboard. It enables analysis of individual or team performance, helps identify training needs, and can be used to balance workloads more effectively across the warehouse staff. Why it matters Attributes work to a specific person, enabling performance analysis by user or team and supporting resource management and workload balancing. Where to get Typically found in the confirmation data for a warehouse task, for example in table /SCWM/ORDIM_C, field UNAME. Examples JSMITHARODRIGUEZOPERATOR_05 | |||
| Warehouse Order Status WarehouseOrderStatus | The current or final status of the warehouse order, such as 'Completed' or 'Canceled'. | ||
| Description This attribute indicates the final outcome of a warehouse order. Understanding whether an order was successfully completed or canceled is crucial for analyzing process success rates and identifying reasons for non-completion. This is a key filter for many analyses. For instance, when calculating End-to-End Warehouse Cycle Time, analysis is typically performed only on completed orders. It also helps in identifying and investigating the frequency and causes of canceled orders. Why it matters Indicates the outcome of a case, allowing for filtering of completed versus canceled orders, which is crucial for accurate cycle time and throughput analysis. Where to get The status field is typically located in the warehouse order header table, /SCWM/WHO. Examples CompletedIn ProcessCanceled | |||
| Warehouse Order Type WarehouseOrderType | Classifies the warehouse order by its purpose, such as Putaway, Picking, or Internal Replenishment. | ||
| Description The Warehouse Order Type categorizes orders based on the logistical function they serve. This distinction is fundamental because different types of orders follow different process paths and have different performance expectations. In analysis, this attribute is a primary dimension for filtering and comparison. For example, the 'Warehouse Order Throughput & Volume' dashboard relies on this to segment performance for inbound (Putaway) versus outbound (Picking) processes, providing a more meaningful view of warehouse operations. Why it matters Allows for the segmentation of analysis based on the process category (e.g., inbound vs. outbound), enabling more relevant comparisons and insights. Where to get This is determined by the warehouse process type, often found in the warehouse order header table /SCWM/WHO. Examples PICKPUTWREPLSTGE | |||
| Actual Quantity ActualQuantity | The actual quantity of a material confirmed by the user for a warehouse task. | ||
| Description This attribute is the quantity that was physically handled and confirmed by the warehouse operator. This could be the amount picked from a bin, the amount put away, or the amount counted during a goods receipt. Comparing the Actual Quantity to the Planned Quantity is fundamental for the 'Inventory Discrepancy Analysis'. A variance between the two values directly highlights a process exception that requires investigation. This is a direct measure of operational accuracy and is a key input for the 'Inventory Accuracy Rate' and 'Picking Error Rate' KPIs. Why it matters This is the ground truth for what was physically handled. Comparing it to the planned quantity directly measures operational accuracy and identifies errors. Where to get Found in the warehouse task confirmation data, for example, in table /SCWM/ORDIM_C, often in a field like NDIFF (Difference Quantity) or derived from confirmed quantities. Examples 10049250 | |||
| End-to-End Cycle Time EndToEndCycleTime | The total time elapsed from the creation of the warehouse order to its final completion. | ||
| Description This KPI measures the entire duration of a warehouse order's lifecycle. It is a critical high-level indicator of the overall efficiency and velocity of the warehouse operations. This metric is the cornerstone of the 'End-to-End Warehouse Cycle Time' dashboard. Tracking this KPI over time, and segmenting it by dimensions like order type or material, helps to identify systemic inefficiencies and measure the impact of process improvement initiatives on the entire operation. Why it matters This is a primary KPI for measuring the overall efficiency of the warehouse process, providing a high-level view of operational performance. Where to get Calculated at the case level by subtracting the timestamp of the first event ('Warehouse Order Created') from the timestamp of the last event ('Warehouse Order Completed'). Examples 8640017280043200 | |||
| Equipment Used EquipmentUsed | The identifier of the equipment, such as a forklift or pallet jack, used to perform the warehouse task. | ||
| Description This attribute specifies the material handling equipment assigned to or used for a warehouse task. This could be a specific forklift, an automated guided vehicle (AGV), or a particular type of cart. This data is the foundation for the 'Resource & Equipment Utilization' dashboard and the 'Equipment Utilization Rate' KPI. By tracking which equipment is used for which tasks and for how long, managers can analyze utilization patterns, schedule maintenance, and make informed decisions about fleet size and composition. Why it matters Enables analysis of equipment utilization and efficiency, helping to optimize fleet management and identify resource constraints. Where to get This information may be stored in the warehouse task or order details if resource management is configured in SAP EWM. Consult SAP Extended Warehouse Management documentation. Examples FORKLIFT-07AGV-02CART-15 | |||
| Is On Time IsOnTime | A boolean flag indicating if a warehouse order was completed by its requested completion date. | ||
| Description This flag provides a simple, binary outcome for SLA adherence. It evaluates whether the final completion event of a warehouse order occurred on or before the specified Requested Completion Date. This attribute is essential for the 'Priority Order Fulfillment Adherence' dashboard. It simplifies the creation of KPIs and visualizations by allowing for easy counting and filtering of on-time versus late orders. This helps in quickly assessing performance against service level targets without needing complex date calculations in the analysis layer. Why it matters Simplifies SLA performance analysis by providing a clear, binary indicator of on-time or late fulfillment for each order. Where to get This is a calculated attribute. The logic compares the timestamp of the 'Warehouse Order Completed' activity with the 'RequestedCompletionDate' attribute. Examples truefalse | |||
| Planned Departure Time PlannedDepartureTime | The scheduled time that the shipment is planned to depart from the warehouse. | ||
| Description This attribute represents the target time for dispatching a shipment after all picking, packing, and loading activities are complete. It serves as the benchmark for measuring the on-time performance of the final stage of the outbound process. This timestamp is critical for the 'Shipment Dispatch On-Time Performance' dashboard. By comparing the actual dispatch time with this planned time, the analysis can identify delays in loading, carrier coordination, or documentation, providing insights into logistics and transportation planning efficiency. Why it matters Provides the baseline for measuring on-time dispatch performance, which is key for logistics planning and meeting carrier schedules. Where to get This information is usually part of the transportation or shipment document linked to the warehouse orders. Consult SAP Extended Warehouse Management documentation. Examples 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Planned Quantity PlannedQuantity | The expected quantity of a material for a given warehouse task. | ||
| Description This attribute represents the target quantity of a material that should be moved, picked, or received as per the warehouse task instruction. It is the baseline against which the actual executed quantity is compared. Planned Quantity is essential for the 'Inventory Discrepancy Analysis' dashboard and the 'Inventory Accuracy Rate' KPI. By comparing it with the Actual Quantity, the system can identify discrepancies that may point to picking errors, receiving mistakes, or data entry issues, helping to improve inventory accuracy. Why it matters Serves as the baseline for calculating inventory accuracy and identifying discrepancies, which is critical for maintaining correct stock levels. Where to get Found in the warehouse task data, for example, in table /SCWM/ORDIM_O, often in a field like NISTA (Target Quantity). Examples 10050250 | |||
| Quantity Variance QuantityVariance | The difference between the planned quantity and the actual confirmed quantity for a task. | ||
| Description This calculated metric quantifies the discrepancy found during a warehouse task. A non-zero value indicates that the physical reality did not match the system record, signaling a potential issue like a picking error, a receiving mistake, or a damaged item. This attribute directly supports the 'Inventory Discrepancy Analysis' dashboard by highlighting the magnitude of errors. Analyzing the frequency and size of these variances helps to pinpoint systemic problems in inventory management and operational execution, guiding efforts to improve accuracy. Why it matters Directly quantifies inventory and operational inaccuracies, making it easy to spot and analyze the magnitude of discrepancies. Where to get Calculated by subtracting the PlannedQuantity from the ActualQuantity for each relevant task. Examples 0-15 | |||
| Req. Completion Date RequestedCompletionDate | The date by which a high-priority warehouse order is requested to be completed. | ||
| Description This attribute defines the service level agreement (SLA) or target completion date for a warehouse order. It is the deadline against which the actual completion time is measured to determine if the order was fulfilled on time. This date is essential for calculating the 'Priority Order Fulfillment Rate' KPI. By comparing the actual completion timestamp with this requested date, the analysis can quantify adherence to service levels and highlight orders that are at risk of being late or are already delayed. Why it matters Defines the SLA for an order, serving as the benchmark for measuring on-time fulfillment performance, especially for high-priority items. Where to get This date is often derived from the planned goods issue date or delivery date on the outbound delivery order that triggered the warehouse order. Consult SAP Extended Warehouse Management documentation. Examples 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Storage Location StorageLocation | The specific location within the warehouse, such as a storage bin, where the goods are moved to or from. | ||
| Description This attribute identifies the physical location involved in a warehouse task, for example, the source bin for picking or the destination bin for putaway. This can range from a broad area to a specific shelf coordinate. Analyzing by storage location can reveal operational insights, such as identifying 'golden zones' with high pick rates or problematic areas with frequent delays or errors. It can also be used in 'Picking Route Adherence' analysis to understand picker movements through the warehouse. Why it matters Provides geographical context within the warehouse, enabling analysis of movement efficiency, bin accessibility, and picking route optimization. Where to get Typically found in warehouse task tables like /SCWM/ORDIM_O, containing source (VLPLA) and destination (NLPLA) bin information. Examples 01-02-03PACK-STATION-01GI-ZONE-A | |||
| Warehouse Task WarehouseTask | The unique identifier for a single warehouse task, which is a component of a warehouse order. | ||
| Description A warehouse task is the instruction to execute a specific goods movement, such as moving a product from a storage bin to a packing station. A warehouse order groups one or more of these tasks. Analyzing at the task level provides a more granular view of the warehouse operations. It helps in understanding resource performance for specific movements, identifying difficult-to-reach storage bins, or analyzing the efficiency of individual picking or putaway activities. Why it matters Provides a granular level of detail for analysis, allowing for the examination of individual movements and steps within a larger warehouse order. Where to get Found in warehouse task tables such as /SCWM/ORDIM_O (Task Data) and /SCWM/ORDIM_C (Confirmation Data). Examples 300000451300000452300000453 | |||
Warehouse Management Activities
| Activity | Description | ||
|---|---|---|---|
| Goods Issue Posted | This is the final logistical and financial step in the system that formally removes the goods from the warehouse inventory. It signifies that legal ownership has transferred and the shipment has officially departed. | ||
| Why it matters A crucial end-point for the outbound flow, triggering billing and inventory updates. It is a key component for measuring on-time shipment and the Shipment Loading & Dispatch Time KPI. Where to get Inferred from the posting of an Outbound Delivery document associated with the warehouse order. Check the document flow or status fields (e.g., DGI_STAT) in the /SCDL/DB_PROCH_O table. Capture Identify the timestamp when the Goods Issue status is set to 'Completed' for the associated Outbound Delivery. Event type explicit | |||
| Packing Completed | This activity signifies that all items for a shipment have been packed into a handling unit, which is now closed and labeled. The packed goods are ready for the next stage, such as staging or loading. | ||
| Why it matters This milestone concludes the packing stage. It is a prerequisite for staging and shipment, so any delays here directly impact the overall lead time and Packing and Staging Lead Time KPI. Where to get Can be captured when the handling unit (HU) status is set to 'Closed' or when the last packing-related warehouse task for the WO is confirmed. The /SCWM/HUHDR table contains HU status information. Capture Identify the timestamp when the final shipping handling unit associated with the order is closed or completed. Event type inferred | |||
| Picking Task Confirmed | A warehouse operator confirms the completion of a picking Warehouse Task, indicating that the goods have been physically retrieved from their storage location. This is typically done via an RF scanner. | ||
| Why it matters This is a critical milestone in order fulfillment, directly impacting the order-to-ship cycle time. Analyzing this activity helps measure picker productivity and identify picking bottlenecks. Where to get Captured from the confirmation timestamp (field CONFIRMED_AT) in the Warehouse Task table, /SCWM/WT. The task status (STAT) is updated to 'Confirmed'. Capture Use the confirmation timestamp from the /SCWM/WT table for picking tasks associated with the Warehouse Order. Event type explicit | |||
| Putaway Task Confirmed | A warehouse operator confirms that the putaway Warehouse Task has been completed, meaning the goods have been physically placed in the designated storage bin. This confirmation updates the inventory location in real-time. | ||
| Why it matters This activity is a key milestone for inbound processing, confirming stock is available for picking. Delays here directly impact the Goods Receipt to Putaway Cycle Time KPI. Where to get Captured from the confirmation timestamp (field CONFIRMED_AT) in the Warehouse Task table, /SCWM/WT. The task status (STAT) also changes to 'Confirmed'. Capture Use the confirmation timestamp from the /SCWM/WT table for putaway tasks associated with the Warehouse Order. Event type explicit | |||
| Warehouse Order Completed | The Warehouse Order status is set to 'Completed' after all its associated warehouse tasks have been confirmed. This closes the work package from an execution perspective. | ||
| Why it matters This is the primary success end event for the process. It is essential for calculating the End-to-End Warehouse Cycle Time and measuring overall throughput. Where to get Captured by tracking the change in the status field (STAT) to 'Completed' in the Warehouse Order header table, /SCWM/WHO. The change log for this table (DBTABLOG) or a dedicated timestamp field may be used. Capture Identify the timestamp when status in /SCWM/WHO is set to 'C' (Completed). Event type inferred | |||
| Warehouse Order Created | This activity marks the creation of a Warehouse Order (WO), which is a work package consisting of multiple warehouse tasks. The system generates a WO to bundle and organize work for warehouse employees, based on criteria like activity area, queue, or product. | ||
| Why it matters This is the primary start event for the warehouse execution process. Analyzing the time from creation to the first action helps identify delays in work assignment and resource allocation. Where to get This event is captured from the creation timestamp (field CREATED_AT) in the Warehouse Order header table, /SCWM/WHO. Capture Extract creation timestamp from /SCWM/WHO table for each Warehouse Order number (WHO). Event type explicit | |||
| Goods Receipt Posted | Marks the formal acceptance of goods into the warehouse inventory from an external vendor or production. This is a key financial and inventory posting that makes the stock visible and available for subsequent processes like putaway. | ||
| Why it matters This is a critical milestone in the inbound process. The time between goods arrival and this posting can indicate backlogs in the receiving area, impacting stock availability. Where to get Inferred from the posting of an Inbound Delivery document associated with the warehouse order. Check the document flow or status fields (e.g., DGRSTAT) in the /SCDL/DB_PROCH_I table. Capture Identify the timestamp when the Goods Receipt status is set to 'Completed' for the associated Inbound Delivery. Event type inferred | |||
| Loading Completed | Signifies that all goods for a shipment have been physically loaded onto the transportation unit. This is a prerequisite for posting the goods issue and dispatching the vehicle. | ||
| Why it matters A key milestone before final shipment. Delays between loading completion and goods issue can indicate documentation or system issues that hold up carriers. Where to get Inferred from the status change of the associated Transportation Unit (TU) or Outbound Delivery Order to 'Loading Completed'. Statuses in tables /SCWM/TU and /SCDL/DB_PROCH_O are relevant. Capture Capture the timestamp when the TU or Delivery Order status is updated to reflect the completion of loading. Event type inferred | |||
| Loading Started | This activity marks the beginning of the physical loading of goods from the staging area onto a truck or transportation unit. This is often initiated by a user action in the system. | ||
| Why it matters The start of the final physical step in the warehouse. Analyzing the duration of loading helps optimize dock door utilization and carrier turnaround time. Where to get Inferred from the status change of the associated Transportation Unit (TU) or Outbound Delivery Order to 'Loading Started'. The /SCWM/TU_STATUS table can be checked. Capture Capture the timestamp when the TU or Delivery Order status is updated to reflect the start of loading. Event type inferred | |||
| Packing Started | Represents the start of packing activities, where picked items are consolidated and placed into shipping containers or handling units. This is often the first step at a packing work center. | ||
| Why it matters Marks the beginning of the value-added services phase. Measuring the duration of packing helps to optimize work center layout, staffing, and materials. Where to get This event may need to be inferred. It can be derived from the first scan of an item or handling unit at a packing station, often captured in work center or handling unit logs. Tables like /SCWM/PACKSPEC and related execution logs can be a source. Capture Use the timestamp of the first packing-related Warehouse Task confirmation for the delivery, or the creation time of the final shipping HU. Event type inferred | |||
| Picking Task Created | The system generates a Warehouse Task (WT) to pick goods from a storage bin to fulfill an outbound delivery order. This represents the system instruction for an operator to retrieve a product. | ||
| Why it matters The beginning of the outbound physical process. The time lag between creation and confirmation of picking tasks is crucial for analyzing picking efficiency and resource availability. Where to get Captured from the creation timestamp (field CREATED_AT) of the relevant Warehouse Task in table /SCWM/WT, where the process type indicates picking. Capture Filter for Warehouse Tasks with a picking process type linked to the Warehouse Order and use their creation timestamp. Event type explicit | |||
| Putaway Task Created | The system generates a specific instruction, a Warehouse Task (WT), to move received goods from a receiving area to a final storage bin. This activity represents the system's readiness to execute the putaway movement. | ||
| Why it matters Tracking the time between task creation and confirmation reveals how long it takes for putaway instructions to be picked up and executed by warehouse operators, highlighting potential labor or equipment shortages. Where to get Captured from the creation timestamp (field CREATED_AT) of the relevant Warehouse Task in table /SCWM/WT, where the process type indicates putaway. Capture Filter for Warehouse Tasks with a putaway process type linked to the Warehouse Order and use their creation timestamp. Event type explicit | |||
| Staging Task Confirmed | A warehouse operator confirms the movement of a packed handling unit from a packing station or consolidation area to a designated shipment staging area. The goods are now positioned for loading. | ||
| Why it matters This marks the transition from internal processing to outbound logistics. Delays in staging can lead to disorganized loading docks and missed carrier pickup times. Where to get Captured from the confirmation timestamp (field CONFIRMED_AT) of a Warehouse Task (/SCWM/WT) with a process type for staging movements. Capture Identify the confirmation timestamp for the staging warehouse task associated with the handling unit or delivery. Event type explicit | |||
| Warehouse Order Canceled | The Warehouse Order is canceled before all tasks are completed, preventing further execution. This can happen due to stock unavailability, changes in customer orders, or other exceptions. | ||
| Why it matters Represents a failure or exception path. Analyzing the frequency and reasons for cancellations helps identify upstream issues in planning, inventory accuracy, or order management. Where to get Captured by tracking the change in the status field (STAT) to 'Canceled' in the Warehouse Order header table, /SCWM/WHO. Capture Identify the timestamp when status in /SCWM/WHO is set to a cancellation status value. Event type inferred | |||
Extraction Guides
Steps
- Prerequisite: Identify or Create CDS Views: The primary data sources are standard SAP S/4HANA CDS Views for Warehouse Management. The key views are
I_WarehouseOrderfor order-level events andI_WarehouseTaskfor task-level events. Other views likeI_OutboundDeliveryItem,I_InboundDeliveryItem, andI_EWMTransportationUnitare needed for related logistics events. Ensure these views are active in your system. - Create a Custom CDS View: To combine data from multiple sources into a single event log format, you must create a custom CDS view. Use ABAP Development Tools (ADT) in Eclipse to create a new Data Definition. This custom view will use
UNION ALLto merge records from different sources, each representing a distinct business activity. - Define the Event Log Structure: In your custom CDS view, define the fields that will form the columns of your event log. This must include
WarehouseOrder,ActivityName,EventTime, and other required and recommended attributes. Map these fields from the underlying standard CDS views. - Model Warehouse Order Events: Add the first
SELECTstatements to your union. Select fromI_WarehouseOrderto generate the 'Warehouse Order Created' event using the creation timestamp. Add subsequentSELECTstatements for 'Warehouse Order Completed' and 'Warehouse Order Canceled' events by filtering on the order status and using the appropriate confirmation or change timestamps. - Model Warehouse Task Events: Add
SELECTstatements fromI_WarehouseTask. Generate 'Putaway Task Created' and 'Putaway Task Confirmed' events by filtering for warehouse process categories related to putaway. Similarly, create 'Picking Task Created', 'Picking Task Confirmed', and 'Staging Task Confirmed' events based on their respective process categories and use the creation and confirmation timestamps. - Model Goods Movement Events: Join delivery-related views to warehouse tasks to capture goods movements. For 'Goods Receipt Posted', select from
I_InboundDeliveryItemusing theActualGoodsMovementDateTime. For 'Goods Issue Posted', use the same field fromI_OutboundDeliveryItem, linking back to the relevant warehouse order or task. - Model Loading and Packing Events: Select from
I_EWMTransportationUnitto capture 'Loading Started' and 'Loading Completed' events using its dedicated timestamps. For packing, which can be complex, use a proxy by selecting from a Handling Unit view, where the creation time can represent 'Packing Started' and a status change time can represent 'Packing Completed'. This step may require adjustment based on your specific packing process. - Add Annotations to Expose the CDS View: Add the annotation
@OData.publish: trueto your custom CDS view definition. This instructs SAP to automatically generate an OData service based on the view's structure. - Activate the CDS View and OData Service: Activate the new Data Definition in ADT. Then, navigate to the SAP Gateway hub system and use transaction
/IWFND/MAINT_SERVICEto find and activate the newly generated OData service. This makes the data accessible via a REST API endpoint. - Extract the Data: Use your target data platform or ETL tool to connect to the activated OData service endpoint. Apply filters directly in the OData URI, such as filtering on
EventTimeto limit the data scope (e.g.,?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Format for Process Mining: Ensure the extracted data is saved in a flat file format, such as a CSV, with the column headers matching the required attributes for ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.). Upload the final file to the process mining tool.
Configuration
- Custom CDS View: A dedicated CDS view, for example
Z_C_EWM_EVENTLOG_CDS, must be created to unify the event data. This is the central object for the extraction. - OData Service: The OData service generated from the custom CDS view must be activated. The service name is typically the CDS view name with a
_CDSsuffix. - Date Range Filtering: It is critical to apply a date filter on the
EventTimefield when calling the OData API. A typical range for an initial analysis is 3 to 6 months of data. Without a filter, the query may time out or cause performance issues. - Entity Filtering: To further limit the data scope, consider applying filters on attributes like Warehouse Number (
Warehouse), Warehouse Order Type (WarehouseOrderType), or specific materials (MaterialNumber). - System Authorizations: The user creating the CDS view requires SAP developer access in ADT. The user or service account calling the OData API requires authorizations to access the underlying warehouse management data.
a Sample Query 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 Steps
- Prerequisite: Identify or Create CDS Views: The primary data sources are standard SAP S/4HANA CDS Views for Warehouse Management. The key views are
I_WarehouseOrderfor order-level events andI_WarehouseTaskfor task-level events. Other views likeI_OutboundDeliveryItem,I_InboundDeliveryItem, andI_EWMTransportationUnitare needed for related logistics events. Ensure these views are active in your system. - Create a Custom CDS View: To combine data from multiple sources into a single event log format, you must create a custom CDS view. Use ABAP Development Tools (ADT) in Eclipse to create a new Data Definition. This custom view will use
UNION ALLto merge records from different sources, each representing a distinct business activity. - Define the Event Log Structure: In your custom CDS view, define the fields that will form the columns of your event log. This must include
WarehouseOrder,ActivityName,EventTime, and other required and recommended attributes. Map these fields from the underlying standard CDS views. - Model Warehouse Order Events: Add the first
SELECTstatements to your union. Select fromI_WarehouseOrderto generate the 'Warehouse Order Created' event using the creation timestamp. Add subsequentSELECTstatements for 'Warehouse Order Completed' and 'Warehouse Order Canceled' events by filtering on the order status and using the appropriate confirmation or change timestamps. - Model Warehouse Task Events: Add
SELECTstatements fromI_WarehouseTask. Generate 'Putaway Task Created' and 'Putaway Task Confirmed' events by filtering for warehouse process categories related to putaway. Similarly, create 'Picking Task Created', 'Picking Task Confirmed', and 'Staging Task Confirmed' events based on their respective process categories and use the creation and confirmation timestamps. - Model Goods Movement Events: Join delivery-related views to warehouse tasks to capture goods movements. For 'Goods Receipt Posted', select from
I_InboundDeliveryItemusing theActualGoodsMovementDateTime. For 'Goods Issue Posted', use the same field fromI_OutboundDeliveryItem, linking back to the relevant warehouse order or task. - Model Loading and Packing Events: Select from
I_EWMTransportationUnitto capture 'Loading Started' and 'Loading Completed' events using its dedicated timestamps. For packing, which can be complex, use a proxy by selecting from a Handling Unit view, where the creation time can represent 'Packing Started' and a status change time can represent 'Packing Completed'. This step may require adjustment based on your specific packing process. - Add Annotations to Expose the CDS View: Add the annotation
@OData.publish: trueto your custom CDS view definition. This instructs SAP to automatically generate an OData service based on the view's structure. - Activate the CDS View and OData Service: Activate the new Data Definition in ADT. Then, navigate to the SAP Gateway hub system and use transaction
/IWFND/MAINT_SERVICEto find and activate the newly generated OData service. This makes the data accessible via a REST API endpoint. - Extract the Data: Use your target data platform or ETL tool to connect to the activated OData service endpoint. Apply filters directly in the OData URI, such as filtering on
EventTimeto limit the data scope (e.g.,?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Format for Process Mining: Ensure the extracted data is saved in a flat file format, such as a CSV, with the column headers matching the required attributes for ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.). Upload the final file to the process mining tool.
Configuration
- Custom CDS View: A dedicated CDS view, for example
Z_C_EWM_EVENTLOG_CDS, must be created to unify the event data. This is the central object for the extraction. - OData Service: The OData service generated from the custom CDS view must be activated. The service name is typically the CDS view name with a
_CDSsuffix. - Date Range Filtering: It is critical to apply a date filter on the
EventTimefield when calling the OData API. A typical range for an initial analysis is 3 to 6 months of data. Without a filter, the query may time out or cause performance issues. - Entity Filtering: To further limit the data scope, consider applying filters on attributes like Warehouse Number (
Warehouse), Warehouse Order Type (WarehouseOrderType), or specific materials (MaterialNumber). - System Authorizations: The user creating the CDS view requires SAP developer access in ADT. The user or service account calling the OData API requires authorizations to access the underlying warehouse management data.
a Sample Query 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