Uw Warehouse Management Data Template
Uw Warehouse Management Data Template
- Aanbevolen attributen voor uitgebreide analyse
- Belangrijke activiteiten om te volgen in uw proces
- Richtlijnen voor data-extractie uit SAP EWM
Warehouse Management Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Warehouse Order WarehouseOrder | De unieke identificatiecode voor een warehouse order, die een set van magazijntaken groepeert die door een middel moeten worden uitgevoerd. | ||
| Omschrijving De Warehouse Order dient als de primaire case identifier voor het volgen van het end-to-end proces van goederenafhandeling binnen het magazijn. Het vertegenwoordigt een werkpakket, zoals het picken van items voor een uitgaande levering of het wegzetten van ontvangen goederen. Elke Warehouse Order bevat één of meer magazijntaken. Bij process mining maakt analyse per Warehouse Order een uitgebreid overzicht van de gehele levenscyclus van een specifiek werkpakket mogelijk. Dit helpt bij het identificeren van knelpunten, het meten van de algehele doorlooptijden van aanmaak tot voltooiing, en het begrijpen van de complete stroom van activiteiten die samenhangen met één logistieke instructie. Het belang Dit is de kern-identificatiecode die alle gerelateerde magazijnactiviteiten met elkaar verbindt, waardoor end-to-end procesanalyse en doorlooptijdmeting voor een enkele werkeenheid mogelijk is. Vindplaats Deze identificatiecode is doorgaans te vinden in de SAP EWM warehouse order header tabel, zoals /SCWM/WHO. Voorbeelden 200000145200000146200000147 | |||
| Activiteitsnaam ActivityName | De naam van de specifieke magazijnbeheeractiviteit of -gebeurtenis die heeft plaatsgevonden, zoals 'Picktaak Aangemaakt' of 'Goederenafgifte Geboekt'. | ||
| Omschrijving Dit attribuut beschrijft een enkele stap of gebeurtenis binnen het warehouse management proces. Deze activiteiten zijn de bouwstenen van de proceskaart en vertegenwoordigen taken zoals aanmaak, bevestiging, verpakking, laden en goederenbewegingen. Het analyseren van de sequentie en frequentie van deze activiteiten is fundamenteel voor process mining. Het helpt de processtroom te visualiseren, veelvoorkomende en zeldzame paden te identificeren, afwijkingen van de standaardprocedure te detecteren en specifieke stappen aan te wijzen die vertragingen of herwerk veroorzaken. Het belang Het definieert de stappen in het proces, vormt de basis van de proceskaart en maakt analyse van processtroom, afwijkingen en knelpunten mogelijk. Vindplaats Afgeleid van statuswijzigingen, event-berichten of transactielogs gerelateerd aan magazijnorders en -taken in tabellen zoals /SCWM/ORDIM_C (Bevestigingen) of door statusvelden te interpreteren in /SCWM/WHO en /SCWM/ORDIM_O. Voorbeelden Picktaak BevestigdOpslagtaak AangemaaktGoederenontvangst geboektWarehouse Order Voltooid | |||
| Bronsysteem SourceSystem | Identificeert het bronsysteem waaruit de data is geëxtraheerd, bijvoorbeeld de SAP EWM productie-instantie. | ||
| Omschrijving Dit attribuut specificeert het bronsysteem waar de warehouse management data vandaan komt. In een bedrijfsomgeving met meerdere systemen is het cruciaal om de herkomst van de data te labelen voor traceerbaarheid en context. Voor analyse helpt dit om processen te onderscheiden die meerdere systemen omspannen of maakt het vergelijking van processen uit verschillende instanties mogelijk, zoals afzonderlijke systemen voor verschillende regio's. Het zorgt ervoor dat de datalijn duidelijk en controleerbaar is. Het belang Zorgt voor traceerbaarheid en context, vooral in omgevingen met meerdere SAP-instances of geïntegreerde systemen, en waarborgt zo een duidelijke datalijn. Vindplaats Dit is doorgaans een statische waarde die wordt toegevoegd tijdens het data-extractie, -transformatie en -laad (ETL) proces, en identificeert de specifieke SAP S/4HANA of EWM-instantie. Voorbeelden SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| Laatste data-update LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit record voor het laatst is ververst uit het bronsysteem. | ||
| Omschrijving Dit attribuut registreert wanneer de data voor het laatst uit het bronsysteem is geëxtraheerd. Het biedt cruciale context over de actualiteit van de geanalyseerde data. Bij elke analyse of dashboard is het essentieel om de recentheid van de data te kennen voor het nemen van weloverwogen beslissingen. Deze timestamp helpt gebruikers te begrijpen of ze naar realtime informatie kijken of naar een momentopname van een specifiek tijdstip, wat verwachtingen over de data actualiteit beheert. Het belang Geeft de actualiteit van de data aan, wat cruciaal is voor gebruikers om te begrijpen hoe actueel hun procesanalyse is. Vindplaats Dit is een metadata-veld dat doorgaans wordt gegenereerd en toegevoegd tijdens het data-extractie (ETL) proces. Het weerspiegelt de timestamp van de data load. Voorbeelden 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Starttijd EventTime | De timestamp die aangeeft wanneer de activiteit of gebeurtenis is gestart. | ||
| Omschrijving Dit attribuut registreert de exacte datum en tijd waarop een specifieke magazijnactiviteit heeft plaatsgevonden. Het is het primaire tijdelijke element dat wordt gebruikt voor het ordenen van gebeurtenissen en het berekenen van duur tussen deze gebeurtenissen. Bij process mining is de Start Time essentieel voor het construeren van de chronologische volgorde van gebeurtenissen voor elke case. Het wordt gebruikt om doorlooptijden, wachttijden en verwerkingstijden te berekenen, die cruciaal zijn voor prestatieanalyse, knelpuntidentificatie en SLA-monitoring. Het belang Deze timestamp is cruciaal voor het chronologisch ordenen van gebeurtenissen en het berekenen van alle tijdsgebonden prestatiemetrieken, zoals doorlooptijden en duren. Vindplaats Doorgaans te vinden in gebeurtenis- of bevestigingstabellen zoals /SCWM/ORDIM_C (bijv. veld CONF_TIMESTAMP) of statuswijzigingslogs die zijn gekoppeld aan warehouse orders en taken. Voorbeelden 2023-10-26T10:00:00Z2023-10-26T10:15:30Z2023-10-26T11:20:00Z | |||
| Bewerkingstijd ProcessingTime | De duur die actief is besteed aan een specifieke activity. | ||
| Omschrijving De verwerkingstijd meet de daadwerkelijke 'contacttijd' voor een activiteit, berekend als het verschil tussen de start- en eind-timestamps. Dit is anders dan de doorlooptijd, die ook wachttijden tussen activiteiten omvat. Deze metric is fundamenteel voor prestatieanalyse, vooral voor dashboards zoals 'Picking & Packing Efficiency'. Het helpt om precies aan te wijzen welke taken het meest tijdrovend zijn, waardoor managers hun verbeterinspanningen kunnen richten op activiteiten met de langste verwerkingstijden, wat de algehele doorvoer verbetert. Het belang Meet de actieve werkduur van een activiteit, helpt bij het identificeren van de meest tijdrovende taken en vormt een basis voor resource capaciteitsanalyse. Vindplaats Dit is een berekende metric, afgeleid door de EventTime af te trekken van de EventEndTime voor elke activiteit. Voorbeelden 3009150 | |||
| Eindtijd EventEndTime | De timestamp die aangeeft wanneer een activiteit of event is voltooid. | ||
| Omschrijving Dit attribuut registreert de datum en tijd waarop een specifieke magazijnactiviteit is beëindigd. Het is vaak hetzelfde als de Start Time voor atomaire gebeurtenissen, maar kan verschillen voor activiteiten met een meetbare duur, zoals verpakken of laden. Een afzonderlijke End Time maakt een precieze berekening van de verwerkingstijd voor individuele activiteiten mogelijk. Dit is cruciaal voor prestatiedashboards die de duur van specifieke stappen analyseren, zoals 'Picking & Packing Efficiency', en helpt te identificeren welke taken de meeste tijd in beslag nemen. Het belang Maakt de precieze berekening mogelijk van de duur van individuele activiteiten, wat essentieel is voor het identificeren van tijdrovende stappen en resource-intensieve taken. Vindplaats Vaak hetzelfde als de start timestamp voor discrete events. Voor langlopende taken kan het een apart veld zijn in tabellen zoals /SCWM/ORDIM_C of afgeleid van een daaropvolgende statuswijziging. Voorbeelden 2023-10-26T10:05:00Z2023-10-26T10:25:45Z2023-10-26T11:20:00Z | |||
| Gebruikers-ID User | De identificatiecode van de magazijnmedewerker of gebruiker die de activiteit heeft bevestigd of uitgevoerd. | ||
| Omschrijving Dit attribuut legt de gebruikers-ID vast van de persoon die verantwoordelijk is voor het uitvoeren van een magazijntaak. Dit kan de picker zijn die een pick heeft bevestigd, de packer bij een pakstation, of de heftruckchauffeur die een opslag heeft bevestigd. Deze data is essentieel voor het dashboard 'Resource & Equipment Utilization'. Het maakt analyse van individuele of team prestaties mogelijk, helpt bij het identificeren van trainingsbehoeften en kan worden gebruikt om de werklast effectiever te verdelen over het magazijnpersoneel. Het belang Wijs werk toe aan een specifieke persoon, wat prestatieanalyse per gebruiker of team mogelijk maakt en resource management en workload balancing ondersteunt. Vindplaats Doorgaans te vinden in de bevestigingsdata voor een magazijntaak, bijvoorbeeld in tabel /SCWM/ORDIM_C, veld UNAME. Voorbeelden JSMITHARODRIGUEZOPERATOR_05 | |||
| Materiaalnummer MaterialNumber | De unieke identificatiecode voor het product of materiaal dat wordt behandeld in de magazijntaak. | ||
| Omschrijving Dit attribuut specificeert het materiaal dat wordt verplaatst, gepickt, verpakt of ontvangen. Het is een kritische dimensie voor het segmenteren en analyseren van magazijnprestaties op basis van productkenmerken. Analyseren op Materiaalnummer helpt bij het beantwoorden van vragen zoals welke producten de langste opslagtijden hebben, welke het meest betrokken zijn bij pickfouten, of welke kwaliteitsinspecties vereisen. Dit is essentieel voor de dashboards 'Goederenontvangst & Opslagprestaties' en 'Doorlooptijd Kwaliteitsinspectie'. Het belang Maakt het filteren en segmenteren van procesdata per product mogelijk, wat cruciaal is voor het identificeren van productspecifieke problemen in handling, opslag of kwaliteitscontrole. Vindplaats Deze informatie is doorgaans beschikbaar in magazijntaken tabellen zoals /SCWM/ORDIM_O, gekoppeld aan de materiaalstamdata. Voorbeelden FIN-1001RAW-2050SFIN-300-A | |||
| Prioriteit Priority | Het prioriteitsniveau dat aan de warehouse order is toegewezen, wat de urgentie aangeeft (bijv. Hoog, Gemiddeld, Laag). | ||
| Omschrijving Dit attribuut classificeert warehouse orders op basis van hun zakelijke belang of urgentie. Hoge prioriteitsorders zijn bijvoorbeeld voor express zendingen of kritische productievoorziening en vereisen versnelde afhandeling. Prioriteit is een belangrijke dimensie voor het 'Priority Order Fulfillment Adherence' dashboard en de bijbehorende KPI. Het maakt filtering en segmentering van prestaties mogelijk om ervoor te zorgen dat de meest kritische orders binnen hun verwachte termijnen worden verwerkt, waardoor magazijnoperaties worden afgestemd op bedrijfsdoelstellingen. Het belang Maakt prioritering van analyse en monitoring mogelijk om te garanderen dat orders met hoge urgentie voldoen aan hun serviceniveaus, wat een directe impact heeft op klanttevredenheid. Vindplaats Prioriteit kan worden ingesteld op het onderliggende leveringsdocument en worden overgedragen naar de warehouse order. Deze is te vinden in tabellen zoals /SCWM/WHO. Voorbeelden HoogGemiddeldLaag | |||
| Warehouse Order Status WarehouseOrderStatus | De huidige of definitieve status van de warehouse order, zoals 'Voltooid' of 'Geannuleerd'. | ||
| Omschrijving Dit attribuut geeft de uiteindelijke uitkomst van een warehouse order aan. Het begrijpen of een order succesvol is voltooid of geannuleerd, is cruciaal voor het analyseren van proces succespercentages en het identificeren van redenen voor niet-voltooiing. Dit is een belangrijke filter voor veel analyses. Bijvoorbeeld, bij het berekenen van de End-to-End Warehouse Cycle Time wordt analyse doorgaans alleen uitgevoerd op voltooide orders. Het helpt ook bij het identificeren en onderzoeken van de frequentie en oorzaken van geannuleerde orders. Het belang Geeft de uitkomst van een case aan, waardoor filtering van voltooide versus geannuleerde orders mogelijk wordt, wat cruciaal is voor accurate cyclustijd- en doorvoermanalyse. Vindplaats Het statusveld bevindt zich doorgaans in de header-tabel van de warehouse order, /SCWM/WHO. Voorbeelden VoltooidIn VerwerkingGeannuleerd | |||
| Warehouse Order Type WarehouseOrderType | Classificeert de magazijnorder op basis van het doel, zoals Putaway, Picking of Interne Aanvulling. | ||
| Omschrijving Het Warehouse Order Type categoriseert orders op basis van de logistieke functie die ze vervullen. Dit onderscheid is fundamenteel omdat verschillende soorten orders verschillende procespaden volgen en verschillende prestatieverwachtingen hebben. Bij analyse is dit attribuut een primaire dimensie voor filtering en vergelijking. Zo is het 'Warehouse Order Throughput & Volume' dashboard hierop gebaseerd om de prestaties voor inbound (Opslag) versus outbound (Picking) processen te segmenteren, wat een zinvoller beeld van de magazijnoperaties geeft. Het belang Maakt segmentatie van de analyse mogelijk op basis van de procescategorie (bijv. inbound versus outbound), wat relevantere vergelijkingen en inzichten oplevert. Vindplaats Dit wordt bepaald door het magazijnprocesstype, vaak te vinden in de warehouse order header tabel /SCWM/WHO. Voorbeelden PICKPUTWREPLSTGE | |||
| End-to-End Cyclustijd EndToEndCycleTime | De totale verstreken tijd vanaf de aanmaak van de warehouse order tot de uiteindelijke voltooiing ervan. | ||
| Omschrijving Deze KPI meet de gehele duur van de levenscyclus van een warehouse order. Het is een kritieke indicator op hoog niveau van de algehele efficiëntie en snelheid van de magazijnoperaties. Deze metric is de hoeksteen van het 'End-to-End Warehouse Cycle Time' dashboard. Het volgen van deze KPI over tijd, en het segmenteren ervan op dimensies zoals order type of materiaal, helpt bij het identificeren van systemische inefficiënties en het meten van de impact van procesverbeteringsinitiatieven op de gehele operatie. Het belang Dit is een primaire KPI voor het meten van de algehele efficiëntie van het magazijnproces, en biedt een hoog niveau overzicht van de operationele prestaties. Vindplaats Berekend op case-niveau door de timestamp van de eerste event ('Warehouse Order Created') af te trekken van de timestamp van de laatste event ('Warehouse Order Completed'). Voorbeelden 8640017280043200 | |||
| Gebruikte Apparatuur EquipmentUsed | De identificatiecode van de apparatuur, zoals een vorkheftruck of pallettruck, die is gebruikt om de magazijntaak uit te voeren. | ||
| Omschrijving Dit attribuut specificeert de materiaalbehandelingsapparatuur die is toegewezen aan of gebruikt voor een magazijntaak. Dit kan een specifieke vorkheftruck, een automatisch geleid voertuig (AGV), of een bepaald type kar zijn. Deze data vormt de basis voor het 'Resource & Equipment Utilization' dashboard en de KPI 'Equipment Utilization Rate'. Door bij te houden welke apparatuur voor welke taken en hoe lang wordt gebruikt, kunnen managers gebruikspatronen analyseren, onderhoud plannen en weloverwogen beslissingen nemen over de grootte en samenstelling van het wagenpark. Het belang Maakt analyse van materieelgebruik en -efficiëntie mogelijk, en helpt bij het optimaliseren van wagenparkbeheer en het identificeren van resourcebeperkingen. Vindplaats Deze informatie kan worden opgeslagen in de magazijntaak of orderdetails als resource management is geconfigureerd in SAP EWM. Raadpleeg de SAP Extended Warehouse Management documentatie. Voorbeelden FORKLIFT-07AGV-02CART-15 | |||
| Geplande Hoeveelheid PlannedQuantity | De verwachte hoeveelheid van een materiaal voor een gegeven magazijntaak. | ||
| Omschrijving Dit attribuut vertegenwoordigt de doelhoeveelheid van een materiaal die moet worden verplaatst, gepickt of ontvangen volgens de magazijntaakinstructie. Het is de basislijn waartegen de daadwerkelijk uitgevoerde hoeveelheid wordt vergeleken. De geplande hoeveelheid is essentieel voor het 'Inventory Discrepancy Analysis' dashboard en de KPI 'Inventory Accuracy Rate'. Door deze te vergelijken met de werkelijke hoeveelheid, kan het systeem afwijkingen identificeren die kunnen wijzen op pickfouten, ontvangstfouten of data-invoerproblemen, wat helpt om de voorraadnauwkeurigheid te verbeteren. Het belang Dient als de basis voor het berekenen van de voorraadnauwkeurigheid en het identificeren van afwijkingen, wat cruciaal is voor het handhaven van correcte voorraadniveaus. Vindplaats Te vinden in de magazijntaakdata, bijvoorbeeld in tabel /SCWM/ORDIM_O, vaak in een veld zoals NISTA (Target Quantity). Voorbeelden 10050250 | |||
| Geplande Vertrektijd PlannedDepartureTime | De geplande tijd waarop de zending het magazijn moet verlaten. | ||
| Omschrijving Dit attribuut vertegenwoordigt de streeftijd voor het verzenden van een zending nadat alle pick-, pak- en laadactiviteiten zijn voltooid. Het dient als de benchmark voor het meten van de tijdige prestaties van de laatste fase van het outbound proces. Deze timestamp is cruciaal voor het 'Shipment Dispatch On-Time Performance' dashboard. Door de daadwerkelijke verzendtijd te vergelijken met deze geplande tijd, kan de analyse vertragingen in het laden, de coördinatie met vervoerders of documentatie identificeren, wat inzichten biedt in de efficiëntie van logistieke en transportplanning. Het belang Biedt de basis voor het meten van on-time verzendprestaties, wat essentieel is voor logistieke planning en het nakomen van transporteurschema's. Vindplaats Deze informatie maakt meestal deel uit van het transport- of verzenddocument dat aan de warehouse orders is gekoppeld. Raadpleeg de SAP Extended Warehouse Management documentatie. Voorbeelden 2023-10-27T18:00:00Z2023-10-28T14:00:00Z | |||
| Hoeveelheidsverschil QuantityVariance | Het verschil tussen de geplande hoeveelheid en de daadwerkelijk bevestigde hoeveelheid voor een taak. | ||
| Omschrijving Deze berekende metric kwantificeert het verschil dat is gevonden tijdens een magazijntaak. Een niet-nulwaarde geeft aan dat de fysieke realiteit niet overeenkwam met de systeemregistratie, wat duidt op een potentieel probleem zoals een pickfout, een ontvangstfout of een beschadigd item. Dit attribuut ondersteunt direct het 'Inventory Discrepancy Analysis' dashboard door de omvang van fouten te benadrukken. Het analyseren van de frequentie en grootte van deze afwijkingen helpt om systemische problemen in voorraadbeheer en operationele uitvoering op te sporen, wat de inspanningen om de nauwkeurigheid te verbeteren stuurt. Het belang Kwantificeert direct voorraad- en operationele onnauwkeurigheden, waardoor de omvang van discrepanties gemakkelijk kan worden opgespoord en geanalyseerd. Vindplaats Berekend door de PlannedQuantity af te trekken van de ActualQuantity voor elke relevante taak. Voorbeelden 0-15 | |||
| Is Op Tijd IsOnTime | Een Booleaanse vlag die aangeeft of een magazijnorder is voltooid op of voor de aangevraagde voltooiingsdatum. | ||
| Omschrijving Deze vlag biedt een eenvoudig, binair resultaat voor SLA-naleving. Het evalueert of de uiteindelijke voltooiingsgebeurtenis van een warehouse order heeft plaatsgevonden op of vóór de gespecificeerde 'Requested Completion Date'. Dit attribuut is essentieel voor het 'Priority Order Fulfillment Adherence' dashboard. Het vereenvoudigt de creatie van KPI's en visualisaties door gemakkelijke telling en filtering van tijdige versus late orders mogelijk te maken. Dit helpt bij het snel beoordelen van prestaties ten opzichte van serviceniveaudoelen zonder complexe datum berekeningen in de analyse laag nodig te hebben. Het belang Vereenvoudigt SLA prestatieanalyse door een duidelijke, binaire indicator te bieden voor tijdige of late afhandeling van elke order. Vindplaats Dit is een berekend attribuut. De logica vergelijkt de timestamp van de activiteit 'Warehouse Order Completed' met het attribuut 'RequestedCompletionDate'. Voorbeelden truefalse | |||
| Opslaglocatie StorageLocation | De specifieke locatie binnen het magazijn, zoals een opslaglocatie, waar de goederen naartoe of vandaan worden verplaatst. | ||
| Omschrijving Dit attribuut identificeert de fysieke locatie die betrokken is bij een magazijntaak, bijvoorbeeld de bronlocatie voor picking of de bestemmingslocatie voor opslag. Dit kan variëren van een breed gebied tot een specifieke plankcoördinaat. Analyseren op opslaglocatie kan operationele inzichten opleveren, zoals het identificeren van 'gouden zones' met hoge pickfrequenties of problematische gebieden met frequente vertragingen of fouten. Het kan ook worden gebruikt in 'Picking Route Adherence' analyse om pickerbewegingen door het magazijn te begrijpen. Het belang Biedt geografische context binnen het magazijn, waardoor analyse van verplaatsingsefficiëntie, toegankelijkheid van opslaglocaties en optimalisatie van pickroutes mogelijk is. Vindplaats Doorgaans te vinden in magazijntaken tabellen zoals /SCWM/ORDIM_O, met informatie over bron- (VLPLA) en bestemmingslocatie (NLPLA). Voorbeelden 01-02-03PACK-STATION-01GI-ZONE-A | |||
| Vereiste Voltooiingsdatum RequestedCompletionDate | De datum waarop een warehouse order met hoge prioriteit moet zijn voltooid. | ||
| Omschrijving Dit attribuut definieert de service level agreement (SLA) of de beoogde voltooiingsdatum voor een warehouse order. Het is de deadline waartegen de daadwerkelijke voltooiingstijd wordt gemeten om te bepalen of de order op tijd is afgehandeld. Deze datum is essentieel voor het berekenen van de 'Priority Order Fulfillment Rate' KPI. Door de daadwerkelijke voltooiings-timestamp te vergelijken met deze gevraagde datum, kan de analyse de naleving van serviceniveaus kwantificeren en orders markeren die het risico lopen laat te zijn of al vertraagd zijn. Het belang Definieert de SLA voor een order, dienend als de benchmark voor het meten van on-time fulfillment prestaties, met name voor items met hoge prioriteit. Vindplaats Deze datum wordt vaak afgeleid van de geplande goederenafgiftedatum of leverdatum op de uitgaande leveringsorder die de warehouse order heeft geactiveerd. Raadpleeg de SAP Extended Warehouse Management documentatie. Voorbeelden 2023-10-27T17:00:00Z2023-10-28T12:00:00Z | |||
| Warehouse Taak WarehouseTask | De unieke identificatiecode voor één magazijntaak, die een onderdeel is van een warehouse order. | ||
| Omschrijving Een magazijntaak is de instructie om een specifieke goederenbeweging uit te voeren, zoals het verplaatsen van een product van een opslaglocatie naar een inpakstation. Een magazijnorder groepeert één of meer van deze taken. Analyseren op taakniveau biedt een gedetailleerder beeld van de magazijnoperaties. Het helpt bij het begrijpen van de prestaties van middelen voor specifieke bewegingen, het identificeren van moeilijk bereikbare opslaglocaties, of het analyseren van de efficiëntie van individuele picking- of putaway-activiteiten. Het belang Biedt een gedetailleerd analyseniveau, waardoor individuele bewegingen en stappen binnen een grotere warehouse order kunnen worden onderzocht. Vindplaats Te vinden in magazijntaaktabellen zoals /SCWM/ORDIM_O (Taak Data) en /SCWM/ORDIM_C (Bevestigings Data). Voorbeelden 300000451300000452300000453 | |||
| Werkelijke hoeveelheid ActualQuantity | De daadwerkelijke hoeveelheid van een materiaal, bevestigd door de gebruiker voor een magazijntaak. | ||
| Omschrijving Dit attribuut is de hoeveelheid die fysiek is behandeld en bevestigd door de magazijnmedewerker. Dit kan de hoeveelheid zijn die is gepickt uit een locatie, de hoeveelheid die is weggezet, of de hoeveelheid die is geteld tijdens een goederenontvangst. Het vergelijken van de werkelijke hoeveelheid met de geplande hoeveelheid is fundamenteel voor de 'Inventory Discrepancy Analysis'. Een verschil tussen de twee waarden wijst direct op een procesuitzondering die onderzoek vereist. Dit is een directe maatstaf voor operationele nauwkeurigheid en is een belangrijke input voor de KPI's 'Inventory Accuracy Rate' en 'Picking Error Rate'. Het belang Dit is de basis voor wat fysiek is afgehandeld. Het vergelijken met de geplande hoeveelheid meet direct de operationele nauwkeurigheid en identificeert fouten. Vindplaats Te vinden in de magazijntaakbevestigingsdata, bijvoorbeeld in tabel /SCWM/ORDIM_C, vaak in een veld zoals NDIFF (Difference Quantity) of afgeleid van bevestigde hoeveelheden. Voorbeelden 10049250 | |||
Warehouse Management Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Goederenafgifte Geboekt | Dit is de laatste logistieke en financiële stap in het systeem die de goederen formeel uit de magazijnvoorraad verwijdert. Het betekent dat de juridische eigendom is overgedragen en de zending officieel is vertrokken. | ||
| Het belang Een cruciaal eindpunt voor de uitgaande stroom, dat facturering en voorraadupdates activeert. Het is een sleutelcomponent voor het meten van tijdige verzending en de KPI voor de laad- & verzendtijd. Vindplaats Afgeleid van de boeking van een Uitgaande Leveringsdocument geassocieerd met de magazijnorder. Controleer de documentflow of statusvelden (bijv. DGI_STAT) in de /SCDL/DB_PROCH_O tabel. Vastleggen Identificeer de timestamp wanneer de Goods Issue status is ingesteld op 'Completed' voor de geassocieerde Outbound Delivery. Gebeurtenistype explicit | |||
| Opslagtaak Bevestigd | Een magazijnmedewerker bevestigt dat de putaway Warehouse Task is voltooid, wat betekent dat de goederen fysiek zijn geplaatst in de toegewezen opslaglocatie. Deze bevestiging werkt de voorraadlocatie in real-time bij. | ||
| Het belang Deze activiteit is een belangrijke mijlpaal voor inbound verwerking en bevestigt dat voorraad beschikbaar is voor picking. Vertragingen hier hebben directe invloed op de KPI 'Doorlooptijd Goederenontvangst tot Opslag'. Vindplaats Vastgelegd via de bevestigingstimestamp (veld CONFIRMED_AT) in de Warehouse Task tabel, /SCWM/WT. De taakstatus (STAT) wijzigt ook naar 'Confirmed'. Vastleggen Gebruik de bevestiging timestamp uit de tabel /SCWM/WT voor opslagtaken die gekoppeld zijn aan de Warehouse Order. Gebeurtenistype explicit | |||
| Picktaak Bevestigd | Een magazijnmedewerker bevestigt de voltooiing van een picking Warehouse Task, wat aangeeft dat de goederen fysiek zijn opgehaald uit hun opslaglocatie. Dit gebeurt doorgaans via een RF scanner. | ||
| Het belang Dit is een kritieke mijlpaal in de orderafhandeling, die direct van invloed is op de doorlooptijd van order tot verzending. Het analyseren van deze activiteit helpt de productiviteit van pickers te meten en knelpunten bij het picken te identificeren. Vindplaats Vastgelegd via de bevestigingstimestamp (veld CONFIRMED_AT) in de Warehouse Task tabel, /SCWM/WT. De taakstatus (STAT) wordt bijgewerkt naar 'Confirmed'. Vastleggen Gebruik de bevestiging timestamp uit de tabel /SCWM/WT voor picktaken die gekoppeld zijn aan de Warehouse Order. Gebeurtenistype explicit | |||
| Verpakking Voltooid | Deze activiteit betekent dat alle items voor een zending zijn verpakt in een handling unit, die nu is gesloten en gelabeld. De verpakte goederen zijn klaar voor de volgende fase, zoals staging of laden. | ||
| Het belang Deze mijlpaal sluit de verpakkingsfase af. Het is een voorwaarde voor staging en verzending, dus eventuele vertragingen hier hebben directe invloed op de totale doorlooptijd en de KPI 'Doorlooptijd Verpakken en Staging'. Vindplaats Kan worden vastgelegd wanneer de status van de handling unit (HU) is ingesteld op 'Closed' of wanneer de laatste verpakking-gerelateerde magazijntaak voor de WO is bevestigd. De /SCWM/HUHDR tabel bevat HU statusinformatie. Vastleggen Identificeer de timestamp wanneer de uiteindelijke verzend-handling unit geassocieerd met de order is gesloten of voltooid. Gebeurtenistype inferred | |||
| Warehouse Order Aangemaakt | Deze activiteit markeert de aanmaak van een Warehouse Order (WO), een werkpakket bestaande uit meerdere magazijntaken. Het systeem genereert een WO om werk voor magazijnmedewerkers te bundelen en te organiseren, gebaseerd op criteria zoals activiteitengebied, wachtrij of product. | ||
| Het belang Dit is de primaire startgebeurtenis voor het magazijnuitvoeringsproces. Het analyseren van de tijd vanaf aanmaak tot de eerste actie helpt bij het identificeren van vertragingen in werktoewijzing en middelenallocatie. Vindplaats Deze gebeurtenis wordt vastgelegd vanuit de creatie-timestamp (veld CREATED_AT) in de Warehouse Order header tabel, /SCWM/WHO. Vastleggen Extraheer de creatie-timestamp uit de /SCWM/WHO tabel voor elk Warehouse Order nummer (WHO). Gebeurtenistype explicit | |||
| Warehouse Order Voltooid | De status van de Warehouse Order wordt ingesteld op 'Voltooid' nadat alle bijbehorende magazijntaken zijn bevestigd. Hiermee wordt het werkpakket vanuit uitvoeringsperspectief afgesloten. | ||
| Het belang Dit is de primaire succesvolle eindgebeurtenis voor het proces. Het is essentieel voor het berekenen van de End-to-End Warehouse Cycle Time en het meten van de algehele doorvoer. Vindplaats Vastgelegd door de wijziging in het statusveld (STAT) naar 'Completed' te traceren in de Warehouse Order headertabel, /SCWM/WHO. De wijzigingslog voor deze tabel (DBTABLOG) of een specifiek timestamp-veld kan worden gebruikt. Vastleggen Identificeer de timestamp wanneer de status in /SCWM/WHO is ingesteld op 'C' (Completed). Gebeurtenistype inferred | |||
| Goederenontvangst geboekt | Markeert de formele acceptatie van goederen in de magazijnvoorraad van een externe leverancier of productie. Dit is een belangrijke financiële en voorraadboeking die de voorraad zichtbaar en beschikbaar maakt voor volgende processen zoals putaway. | ||
| Het belang Dit is een cruciale mijlpaal in het inbound proces. De tijd tussen aankomst van goederen en deze boeking kan duiden op achterstanden in het ontvangstgebied, wat de beschikbaarheid van voorraad beïnvloedt. Vindplaats Afgeleid van de boeking van een Inkomende Leveringsdocument geassocieerd met de magazijnorder. Controleer de documentflow of statusvelden (bijv. DGRSTAT) in de /SCDL/DB_PROCH_I tabel. Vastleggen Identificeer de timestamp wanneer de Goods Receipt status is ingesteld op 'Completed' voor de geassocieerde Inbound Delivery. Gebeurtenistype inferred | |||
| Laden Gestart | Deze activiteit markeert het begin van het fysieke laden van goederen vanuit de staging zone op een vrachtwagen of transporteenheid. Dit wordt vaak geïnitieerd door een gebruikersactie in het systeem. | ||
| Het belang Het begin van de laatste fysieke stap in het magazijn. Het analyseren van de duur van het laden helpt bij het optimaliseren van het gebruik van dockdeuren en de doorlooptijd van transporteurs. Vindplaats Afgeleid van de statuswijziging van de geassocieerde Transportation Unit (TU) of Outbound Delivery Order naar 'Loading Started'. De /SCWM/TU_STATUS tabel kan worden gecontroleerd. Vastleggen Leg de timestamp vast wanneer de TU of Delivery Order status wordt bijgewerkt om het begin van het laden weer te geven. Gebeurtenistype inferred | |||
| Laden Voltooid | Betekent dat alle goederen voor een zending fysiek zijn geladen op de transporteenheid. Dit is een voorwaarde voor het boeken van de goederenuitgifte en het verzenden van het voertuig. | ||
| Het belang Een belangrijke mijlpaal vóór de uiteindelijke verzending. Vertragingen tussen het voltooien van het laden en de goederenuitgifte kunnen duiden op documentatie- of systeemproblemen die transporteurs ophouden. Vindplaats Afgeleid van de statuswijziging van de geassocieerde Transportation Unit (TU) of Outbound Delivery Order naar 'Loading Completed'. Statussen in tabellen /SCWM/TU en /SCDL/DB_PROCH_O zijn relevant. Vastleggen Leg de timestamp vast wanneer de TU of Delivery Order status wordt bijgewerkt om de voltooiing van het laden weer te geven. Gebeurtenistype inferred | |||
| Opslagtaak Aangemaakt | Het systeem genereert een specifieke instructie, een Warehouse Task (WT), om ontvangen goederen van een ontvangstgebied naar een definitieve opslaglocatie te verplaatsen. Deze activiteit vertegenwoordigt de gereedheid van het systeem om de opslagbeweging uit te voeren. | ||
| Het belang Het volgen van de tijd tussen aanmaak en bevestiging van taken onthult hoe lang het duurt voordat opslaginstructies worden opgepakt en uitgevoerd door magazijnmedewerkers, wat potentiële tekorten aan arbeidskrachten of apparatuur benadrukt. Vindplaats Vastgelegd via de creatietimestamp (veld CREATED_AT) van de relevante Warehouse Task in tabel /SCWM/WT, waarbij het procestype putaway aangeeft. Vastleggen Filter op Warehouse Tasks met een putaway procestype gekoppeld aan de Warehouse Order en gebruik hun creatie-timestamp. Gebeurtenistype explicit | |||
| Pickingtaak aangemaakt | Het systeem genereert een Warehouse Task (WT) om goederen uit een opslaglocatie te picken ter vervulling van een uitgaande leveringsorder. Dit vertegenwoordigt de systeeminstructie voor een operator om een product op te halen. | ||
| Het belang Het begin van het fysieke outbound proces. De tijdsduur tussen aanmaak en bevestiging van picktaken is cruciaal voor de analyse van pickefficiëntie en beschikbaarheid van middelen. Vindplaats Vastgelegd via de creatietimestamp (veld CREATED_AT) van de relevante Warehouse Task in tabel /SCWM/WT, waarbij het procestype picking aangeeft. Vastleggen Filter op Warehouse Tasks met een picking procestype gekoppeld aan de Warehouse Order en gebruik hun creatie-timestamp. Gebeurtenistype explicit | |||
| Staging Taak Bevestigd | Een magazijnmedewerker bevestigt de verplaatsing van een verpakte handling unit van een inpakstation of consolidatiegebied naar een aangewezen verzendvoorbereidingsgebied. De goederen zijn nu gepositioneerd voor het laden. | ||
| Het belang Dit markeert de overgang van interne verwerking naar outbound logistiek. Vertragingen in staging kunnen leiden tot ongeorganiseerde laaddocks en gemiste ophaaltijden van vervoerders. Vindplaats Vastgelegd via de bevestigingstimestamp (veld CONFIRMED_AT) van een Warehouse Task (/SCWM/WT) met een procestype voor stagingbewegingen. Vastleggen Identificeer de bevestigingstimestamp voor de staging magazijntaak geassocieerd met de handling unit of levering. Gebeurtenistype explicit | |||
| Verpakking Begonnen | Vertegenwoordigt het begin van de verpakkingsactiviteiten, waarbij gepickte items worden samengevoegd en in verzendcontainers of handling units worden geplaatst. Dit is vaak de eerste stap bij een verpakkingswerkstation. | ||
| Het belang Markeert het begin van de fase met toegevoegde waarde diensten. Het meten van de duur van het verpakken helpt bij het optimaliseren van de indeling van werkplekken, personeelsbezetting en materialen. Vindplaats Deze gebeurtenis moet mogelijk worden afgeleid. Het kan worden afgeleid van de eerste scan van een item of handling unit bij een pakstation, vaak vastgelegd in work center of handling unit logs. Tabellen zoals /SCWM/PACKSPEC en gerelateerde uitvoeringslogs kunnen een bron zijn. Vastleggen Gebruik de timestamp van de eerste verpakking-gerelateerde Warehouse Task bevestiging voor de levering, of de aanmaaktijd van de definitieve verzend-HU. Gebeurtenistype inferred | |||
| Warehouse Order Geannuleerd | De Warehouse Order wordt geannuleerd voordat alle taken zijn voltooid, waardoor verdere uitvoering wordt voorkomen. Dit kan gebeuren door voorraadonbeschikbaarheid, wijzigingen in klantorders of andere uitzonderingen. | ||
| Het belang Vertegenwoordigt een mislukking of uitzonderingspad. Het analyseren van de frequentie en redenen voor annuleringen helpt bij het identificeren van upstream problemen in planning, voorraadnauwkeurigheid of orderbeheer. Vindplaats Vastgelegd door de wijziging in het statusveld (STAT) naar 'Canceled' te traceren in de Warehouse Order headertabel, /SCWM/WHO. Vastleggen Identificeer de timestamp wanneer de status in /SCWM/WHO is ingesteld op een annuleringsstatuswaarde. Gebeurtenistype inferred | |||
Extractie Guides
Stappen
- Vereiste: Identificeer of Creëer CDS Views: De primaire data sources zijn standaard SAP S/4HANA CDS Views voor Warehouse Management. De belangrijkste views zijn
I_WarehouseOrdervoor order-level events enI_WarehouseTaskvoor task-level events. Andere views zoalsI_OutboundDeliveryItem,I_InboundDeliveryItemenI_EWMTransportationUnitzijn nodig voor gerelateerde logistieke events. Zorg ervoor dat deze views actief zijn in uw systeem. - Creëer een Custom CDS View: Om data van meerdere sources te combineren in een enkel event log format, moet u een custom CDS view creëren. Gebruik ABAP Development Tools (ADT) in Eclipse om een nieuwe Data Definition te creëren. Deze custom view zal
UNION ALLgebruiken om records van verschillende sources samen te voegen, elk vertegenwoordigend een aparte business activity. - Definieer de Event Log Structuur: Definieer in uw custom CDS view de velden die de kolommen van uw event log zullen vormen. Dit moet
WarehouseOrder,ActivityName,EventTimeen andere vereiste en aanbevolen attributes bevatten. Map deze velden vanuit de onderliggende standaard CDS views. - Model Magazijnorder Events: Voeg de eerste
SELECTstatements toe aan uw union. Selecteer uitI_WarehouseOrderom de 'Warehouse Order Created' event te genereren met behulp van de creation timestamp. Voeg daaropvolgendeSELECTstatements toe voor 'Warehouse Order Completed' en 'Warehouse Order Canceled' events door te filteren op de order status en de juiste confirmation of change timestamps te gebruiken. - Model Magazijntaak Events: Voeg
SELECTstatements toe uitI_WarehouseTask. Genereer 'Putaway Task Created' en 'Putaway Task Confirmed' events door te filteren op warehouse process categories gerelateerd aan putaway. Creëer op vergelijkbare wijze 'Picking Task Created', 'Picking Task Confirmed' en 'Staging Task Confirmed' events op basis van hun respectievelijke process categories en gebruik de creation en confirmation timestamps. - Model Goederenbeweging Events: Join delivery-gerelateerde views aan warehouse tasks om goederenbewegingen vast te leggen. Voor 'Goods Receipt Posted', selecteer uit
I_InboundDeliveryItemmet behulp van deActualGoodsMovementDateTime. Voor 'Goods Issue Posted', gebruik hetzelfde veld uitI_OutboundDeliveryItem, teruglinkend naar de relevante warehouse order of task. - Model Laad- en Verpakkings Events: Selecteer uit
I_EWMTransportationUnitom 'Loading Started' en 'Loading Completed' events vast te leggen met behulp van de dedicated timestamps. Voor verpakking, wat complex kan zijn, gebruik een proxy door te selecteren uit een Handling Unit view, waar de creation time 'Packing Started' kan vertegenwoordigen en een status change time 'Packing Completed' kan vertegenwoordigen. Deze stap kan aanpassing vereisen op basis van uw specifieke packing process. - Voeg Annotaties toe om de CDS View Bloot te Leggen: Voeg de annotatie
@OData.publish: truetoe aan uw custom CDS view definitie. Dit instrueert SAP om automatisch een OData service te genereren op basis van de structuur van de view. - Activeer de CDS View en OData Service: Activeer de nieuwe Data Definition in ADT. Navigeer vervolgens naar het SAP Gateway hub system en gebruik transactie
/IWFND/MAINT_SERVICEom de nieuw gegenereerde OData service te vinden en te activeren. Dit maakt de data toegankelijk via een REST API endpoint. - Extraheer de Data: Gebruik uw target data platform of ETL tool om verbinding te maken met de geactiveerde OData service endpoint. Pas filters direct toe in de OData URI, zoals filteren op
EventTimeom de data scope te beperken (bijv.?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Format voor Process Mining: Zorg ervoor dat de geëxtraheerde data is opgeslagen in een flat file format, zoals een CSV, met de kolomheaders die overeenkomen met de vereiste attributes voor ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.). Upload het uiteindelijke bestand naar de process mining tool.
Configuratie
- Custom CDS View: Een dedicated CDS view, bijvoorbeeld
Z_C_EWM_EVENTLOG_CDS, moet worden aangemaakt om de event data te unificeren. Dit is het centrale object voor de extractie. - OData Service: De OData service gegenereerd vanuit de custom CDS view moet geactiveerd worden. De servicenaam is typisch de CDS view naam met een
_CDSsuffix. - Date Range Filtering: Het is cruciaal om een date filter toe te passen op het
EventTimeveld bij het aanroepen van de OData API. Een typisch bereik voor een initiële analyse is 3 tot 6 maanden aan data. Zonder filter kan de query time-outen of prestatieproblemen veroorzaken. - Entity Filtering: Om de data scope verder te beperken, overweeg filters toe te passen op attributes zoals Warehouse Number (
Warehouse), Warehouse Order Type (WarehouseOrderType), of specifieke materials (MaterialNumber). - System Authorizations: De gebruiker die de CDS view aanmaakt, heeft SAP developer access in ADT nodig. De gebruiker of het service account dat de OData API aanroept, heeft autorisaties nodig om toegang te krijgen tot de onderliggende warehouse management data.
a Voorbeeldquery 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 Stappen
- Vereiste: Identificeer of Creëer CDS Views: De primaire data sources zijn standaard SAP S/4HANA CDS Views voor Warehouse Management. De belangrijkste views zijn
I_WarehouseOrdervoor order-level events enI_WarehouseTaskvoor task-level events. Andere views zoalsI_OutboundDeliveryItem,I_InboundDeliveryItemenI_EWMTransportationUnitzijn nodig voor gerelateerde logistieke events. Zorg ervoor dat deze views actief zijn in uw systeem. - Creëer een Custom CDS View: Om data van meerdere sources te combineren in een enkel event log format, moet u een custom CDS view creëren. Gebruik ABAP Development Tools (ADT) in Eclipse om een nieuwe Data Definition te creëren. Deze custom view zal
UNION ALLgebruiken om records van verschillende sources samen te voegen, elk vertegenwoordigend een aparte business activity. - Definieer de Event Log Structuur: Definieer in uw custom CDS view de velden die de kolommen van uw event log zullen vormen. Dit moet
WarehouseOrder,ActivityName,EventTimeen andere vereiste en aanbevolen attributes bevatten. Map deze velden vanuit de onderliggende standaard CDS views. - Model Magazijnorder Events: Voeg de eerste
SELECTstatements toe aan uw union. Selecteer uitI_WarehouseOrderom de 'Warehouse Order Created' event te genereren met behulp van de creation timestamp. Voeg daaropvolgendeSELECTstatements toe voor 'Warehouse Order Completed' en 'Warehouse Order Canceled' events door te filteren op de order status en de juiste confirmation of change timestamps te gebruiken. - Model Magazijntaak Events: Voeg
SELECTstatements toe uitI_WarehouseTask. Genereer 'Putaway Task Created' en 'Putaway Task Confirmed' events door te filteren op warehouse process categories gerelateerd aan putaway. Creëer op vergelijkbare wijze 'Picking Task Created', 'Picking Task Confirmed' en 'Staging Task Confirmed' events op basis van hun respectievelijke process categories en gebruik de creation en confirmation timestamps. - Model Goederenbeweging Events: Join delivery-gerelateerde views aan warehouse tasks om goederenbewegingen vast te leggen. Voor 'Goods Receipt Posted', selecteer uit
I_InboundDeliveryItemmet behulp van deActualGoodsMovementDateTime. Voor 'Goods Issue Posted', gebruik hetzelfde veld uitI_OutboundDeliveryItem, teruglinkend naar de relevante warehouse order of task. - Model Laad- en Verpakkings Events: Selecteer uit
I_EWMTransportationUnitom 'Loading Started' en 'Loading Completed' events vast te leggen met behulp van de dedicated timestamps. Voor verpakking, wat complex kan zijn, gebruik een proxy door te selecteren uit een Handling Unit view, waar de creation time 'Packing Started' kan vertegenwoordigen en een status change time 'Packing Completed' kan vertegenwoordigen. Deze stap kan aanpassing vereisen op basis van uw specifieke packing process. - Voeg Annotaties toe om de CDS View Bloot te Leggen: Voeg de annotatie
@OData.publish: truetoe aan uw custom CDS view definitie. Dit instrueert SAP om automatisch een OData service te genereren op basis van de structuur van de view. - Activeer de CDS View en OData Service: Activeer de nieuwe Data Definition in ADT. Navigeer vervolgens naar het SAP Gateway hub system en gebruik transactie
/IWFND/MAINT_SERVICEom de nieuw gegenereerde OData service te vinden en te activeren. Dit maakt de data toegankelijk via een REST API endpoint. - Extraheer de Data: Gebruik uw target data platform of ETL tool om verbinding te maken met de geactiveerde OData service endpoint. Pas filters direct toe in de OData URI, zoals filteren op
EventTimeom de data scope te beperken (bijv.?$filter=EventTime ge datetime'2023-01-01T00:00:00'). - Format voor Process Mining: Zorg ervoor dat de geëxtraheerde data is opgeslagen in een flat file format, zoals een CSV, met de kolomheaders die overeenkomen met de vereiste attributes voor ProcessMind (
WarehouseOrder,ActivityName,EventTime, etc.). Upload het uiteindelijke bestand naar de process mining tool.
Configuratie
- Custom CDS View: Een dedicated CDS view, bijvoorbeeld
Z_C_EWM_EVENTLOG_CDS, moet worden aangemaakt om de event data te unificeren. Dit is het centrale object voor de extractie. - OData Service: De OData service gegenereerd vanuit de custom CDS view moet geactiveerd worden. De servicenaam is typisch de CDS view naam met een
_CDSsuffix. - Date Range Filtering: Het is cruciaal om een date filter toe te passen op het
EventTimeveld bij het aanroepen van de OData API. Een typisch bereik voor een initiële analyse is 3 tot 6 maanden aan data. Zonder filter kan de query time-outen of prestatieproblemen veroorzaken. - Entity Filtering: Om de data scope verder te beperken, overweeg filters toe te passen op attributes zoals Warehouse Number (
Warehouse), Warehouse Order Type (WarehouseOrderType), of specifieke materials (MaterialNumber). - System Authorizations: De gebruiker die de CDS view aanmaakt, heeft SAP developer access in ADT nodig. De gebruiker of het service account dat de OData API aanroept, heeft autorisaties nodig om toegang te krijgen tot de onderliggende warehouse management data.
a Voorbeeldquery 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