Uw Warehouse Management datatemplate
Uw Warehouse Management datatemplate
- Aanbevolen attributen voor grondige analyse
- Belangrijke activiteiten om te volgen in uw proces
- Richtlijnen voor data-extractie uit SAP EWM
Warehouse Management Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Magazijnorder WarehouseOrder | De unieke ID 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 kenmerk 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 vinden 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 basis-ID die alle gerelateerde magazijnactiviteiten met elkaar verbindt, waardoor end-to-end procesanalyse en doorlooptijdmeting voor een enkele werkeenheid mogelijk is. Vindplaats Deze ID 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 volgorde en frequentie van deze activiteiten vormt de basis voor process mining. Het helpt de processtroom te visualiseren, veelvoorkomende en zeldzame paden te vinden, afwijkingen van de standaardprocedure te detecteren en specifieke stappen aan te wijzen die vertragingen of rework 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, gebeurtenis-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 Picking Taak BevestigdOpslagtaak AangemaaktGoederenontvangst geboektMagazijnorder Voltooid | |||
| Bronsysteem SourceSystem | Identificeert het bronsysteem waaruit de data is opgehaald, 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 belangrijk 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-instanties of geïntegreerde systemen, en waarborgt zo een duidelijke datalijn. Vindplaats Dit is meestal een statische waarde die je toevoegt tijdens het data-extractie-, transformatie- en laadproces (ETL), en identificeert de specifieke SAP S/4HANA of EWM-instantie. Voorbeelden SAP_EWM_PROD_EUS4H_US_100EWM_APAC_PRD | |||
| 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 Starttijd belangrijk voor het construeren van de chronologische volgorde van gebeurtenissen voor elke case. Het wordt gebruikt om doorlooptijden, wachttijden en verwerkingstijden te berekenen, die belangrijk zijn voor prestatieanalyse, knelpuntidentificatie en SLA-monitoring. Het belang Deze timestamp is belangrijk voor het chronologisch ordenen van gebeurtenissen en het berekenen van alle tijdsgebonden prestatiemaatstaven, 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 | |||
| Tijdstip van extractie LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit record voor het voor het laatst is bijgewerkt uit het bronsysteem. | ||
| Omschrijving Dit attribuut registreert wanneer de data voor het laatst uit het bronsysteem is opgehaald. Het biedt belangrijke context over de relevantie van de geanalyseerde data. Bij elke analyse of dashboard is het belangrijk om hoe actueel de data is 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 relevantie beheert. Het belang Geeft de relevantie van de data aan, wat belangrijk 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-extractieproces (ETL). Het weerspiegelt de timestamp van de het laden van de data. Voorbeelden 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| `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 belangrijk voor het analyseren van proces succespercentages en het vinden 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 vinden 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 belangrijk 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 | |||
| Eindtijd EventEndTime | De timestamp die aangeeft wanneer een activiteit of gebeurtenis is voltooid. | ||
| Omschrijving Dit attribuut registreert de datum en tijd waarop een specifieke magazijnactiviteit is beëindigd. Het is vaak hetzelfde als de Starttijd 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 belangrijk voor prestatiedashboards die de duur van specifieke stappen analyseren, zoals 'Picking & Packing Efficiency', en helpt te vinden welke taken de meeste tijd in beslag nemen. Het belang Maakt de precieze berekening mogelijk van de duur van individuele activiteiten, wat belangrijk is voor het vinden van tijdrovende stappen en bron-intensieve taken. Vindplaats Vaak hetzelfde als de start timestamp voor discrete gebeurtenissen. 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 ID 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 gegevens zijn belangrijk voor het dashboard 'Resource & Apparatuur Utilization'. Het maakt analyse van individuele of team prestaties mogelijk, helpt bij het vinden 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 bronbeheer en werkdrukverdeling ondersteunt. Vindplaats Doorgaans te vinden in de bevestigingsdata voor een magazijntaak, bijvoorbeeld in tabel /SCWM/ORDIM_C, veld UNAME. Voorbeelden JSMITHARODRIGUEZOPERATOR_05 | |||
| Magazijnordertype 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 | |||
| Materiaalnummer MaterialNumber | De unieke ID 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 belangrijk voor de dashboards 'Goederenontvangst & Opslagprestaties' en 'Doorlooptijd Kwaliteitsinspectie'. Het belang Maakt het filteren en segmenteren van procesdata per product mogelijk, wat belangrijk is voor het vinden 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 | |||
| End-to-End Cyclustijd EndToEndCycleTime | De totale verstreken tijd vanaf de creatie van de magazijnorder 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 metriek is de basis voor 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 vinden 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 gebeurtenis ('Warehouse Order Created') af te trekken van de timestamp van de laatste gebeurtenis ('Warehouse Order Completed'). Voorbeelden 8640017280043200 | |||
| Gebruikte apparatuur. EquipmentUsed | De ID 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 & Apparatuur Utilization' dashboard en de KPI 'Apparatuur 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 vinden van bron-beperkingen. Vindplaats Deze Informatie kan worden opgeslagen in de magazijntaak of orderdetails als bronbeheer 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 belangrijk voor het 'Inventory Discrepancy Analysis' dashboard en de KPI 'Inventory Accuracy Rate'. Door deze te vergelijken met de werkelijke hoeveelheid, kan het systeem afwijkingen vinden 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 vinden van afwijkingen, wat belangrijk 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 Aantal). 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 belangrijk 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 vinden, wat inzichten biedt in de efficiëntie van logistieke en transportplanning. Het belang Biedt de basis voor het meten van on-time verzendprestaties, wat belangrijk 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 metriek 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 verschillen gemakkelijk kan worden opgespoord en geanalyseerd. Vindplaats Berekend door de PlannedAantal af te trekken van de ActualAantal 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 ewaardeert of de uiteindelijke voltooiingsgebeurtenis van een warehouse order heeft plaatsgevonden op of vóór de gespecificeerde 'Requested Completion Date'. Dit attribuut is belangrijk 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 vinden 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 | |||
| Verplichte 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 belangrijk 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 ID 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 vinden 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 onmisbaar 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 Aantal) of afgeleid van bevestigde hoeveelheden. Voorbeelden 10049250 | |||
Magazijnactiviteiten
| 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 belangrijk 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 | |||
| Magazijnorder 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 vinden van vertragingen in werktoewijzing en toewijzing van middelen. 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 | |||
| Magazijnorder 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 belangrijk 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 | |||
| Opslag Taak 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 realtime 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 | |||
| Picking Taak 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 vinden. 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 | |||
| 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 belangrijke 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 | |||
| Inpakken 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 | |||
| Klaarzet 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 | |||
| 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 | |||
| Magazijnorder 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 vinden van upstream problemen in planning, voorraadnauwkeurigheid of orderbeheer. Vindplaats Vastgelegd door de wijziging in het statusveld (STAT) naar 'Annulerened' 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 | |||
| 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 | |||
| Orderverzameltaak 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 belangrijk 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 | |||
Extractiegidsen
Stappen
- Verplichte: Identificeer of Creëer CDS Views: De primaire databronnen zijn standaard SAP S/4HANA CDS Views voor Warehouse Management. De belangrijkste views zijn
I_WarehouseOrdervoor order-level gebeurtenissen enI_WarehouseTaskvoor taak-level gebeurtenissen. Andere views zoalsI_OutboundDeliveryItem,I_InboundDeliveryItemenI_EWMTransportationUnitzijn nodig voor gerelateerde logistieke gebeurtenissen. Zorg ervoor dat deze views actief zijn in je 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 bedrijfsactiviteit. - 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,ActiviteitNaam,EventTimeen andere vereiste en aanbevolen attributen 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' gebeurtenis te genereren met behulp van de creation timestamp. Voeg daaropvolgendeSELECTstatements toe voor 'Warehouse Order Completed' en 'Warehouse Order Annulerened' gebeurtenissen door te filteren op de order status en de juiste confirmation of change tijdstempels te gebruiken. - Model Magazijntaak Events: Voeg
SELECTstatements toe uitI_WarehouseTask. Genereer 'Putaway Task Created' en 'Putaway Task Confirmed' gebeurtenissen 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' gebeurtenissen op basis van hun respectievelijke process categories en gebruik de creation en confirmation tijdstempels. - Model Goederenbeweging Events: Join delivery-gerelateerde views aan warehouse taken 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 taak. - Model Laad- en Verpakkings Events: Selecteer uit
I_EWMTransportationUnitom 'Loading Started' en 'Loading Completed' gebeurtenissen vast te leggen met behulp van de dedicated tijdstempels. 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 proces. - 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 opgehaalde data is opgeslagen in een flat file format, zoals een CSV, met de kolomheaders die overeenkomen met de vereiste attributen voor ProcessMind (
WarehouseOrder,ActiviteitNaam,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 gebeurtenis 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 belangrijk 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 attributen 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
- Verplichte: Identificeer of Creëer CDS Views: De primaire databronnen zijn standaard SAP S/4HANA CDS Views voor Warehouse Management. De belangrijkste views zijn
I_WarehouseOrdervoor order-level gebeurtenissen enI_WarehouseTaskvoor taak-level gebeurtenissen. Andere views zoalsI_OutboundDeliveryItem,I_InboundDeliveryItemenI_EWMTransportationUnitzijn nodig voor gerelateerde logistieke gebeurtenissen. Zorg ervoor dat deze views actief zijn in je 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 bedrijfsactiviteit. - 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,ActiviteitNaam,EventTimeen andere vereiste en aanbevolen attributen 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' gebeurtenis te genereren met behulp van de creation timestamp. Voeg daaropvolgendeSELECTstatements toe voor 'Warehouse Order Completed' en 'Warehouse Order Annulerened' gebeurtenissen door te filteren op de order status en de juiste confirmation of change tijdstempels te gebruiken. - Model Magazijntaak Events: Voeg
SELECTstatements toe uitI_WarehouseTask. Genereer 'Putaway Task Created' en 'Putaway Task Confirmed' gebeurtenissen 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' gebeurtenissen op basis van hun respectievelijke process categories en gebruik de creation en confirmation tijdstempels. - Model Goederenbeweging Events: Join delivery-gerelateerde views aan warehouse taken 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 taak. - Model Laad- en Verpakkings Events: Selecteer uit
I_EWMTransportationUnitom 'Loading Started' en 'Loading Completed' gebeurtenissen vast te leggen met behulp van de dedicated tijdstempels. 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 proces. - 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 opgehaalde data is opgeslagen in een flat file format, zoals een CSV, met de kolomheaders die overeenkomen met de vereiste attributen voor ProcessMind (
WarehouseOrder,ActiviteitNaam,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 gebeurtenis 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 belangrijk 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 attributen 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