Datatemplate voor magazijnbeheer
Datatemplate voor magazijnbeheer
- Aanbevolen attributen voor een volledige analyse
- Belangrijke activiteiten om in de materiaalstroom te volgen
- Praktische uitleg over data-extractie uit Blue Yonder WMS
Attributen voor magazijnbeheer
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De naam van de specifieke magazijntaak of gebeurtenis, zoals ‘Goederen gepickt’ of ‘Zending vertrokken’. | ||
| Beschrijving Dit attribuut beschrijft de specifieke stap of taak in het magazijnproces. Elke gebeurtenis in het proceslogboek heeft een activiteitsnaam. Samen vormen die de reeks stappen van het proces. Bij analyses is de activiteitsnaam onmisbaar om de proceskaart te ontdekken, overgangen tussen stappen te analyseren en bottlenecks of afwijkingen van de standaardprocedure te vinden. Het attribuut wordt gebruikt in vrijwel alle process mining-analyses, van conformancechecks tot prestatiemonitoring. Waarom dit belangrijk is Dit attribuut is belangrijk voor het opbouwen van de proceskaart. Het beschrijft de afzonderlijke stappen en maakt het mogelijk het procesverloop zichtbaar te maken en te analyseren. Waar vind je dit? Deze informatie staat meestal in tabellen met magazijntaken of gebeurtenissen en is vaak afgeleid van een taaktype of statuscode. Voorbeelden Verzameltaak aangemaaktGoederen uit opslag verzameldZending vertrokken | |||
| Magazijnorder WarehouseOrder | De unieke identificatiecode van een magazijnorder. Deze dient als primaire case om alle bijbehorende logistieke activiteiten te volgen, van aanmaak tot afronding. | ||
| Beschrijving De magazijnorder is de centrale identificatiecode voor alle gebeurtenissen en taken rond een specifieke logistieke opdracht, zoals een inkomende goederenontvangst of een uitgaande zending. De order vertegenwoordigt een volledige werkeenheid in het magazijn. Bij process mining gebruik je dit attribuut om de case te definiëren en de volledige levenscyclus van de order te analyseren. Door alle activiteiten van één magazijnorder te volgen, kunnen analisten de totale doorlooptijd van de orderafhandeling meten, veelvoorkomende procesvarianten herkennen en het volledige traject van een order door het magazijn in kaart brengen. Waarom dit belangrijk is Dit is de belangrijkste identificatiecode van de case. Hiermee koppel je alle bijbehorende magazijnactiviteiten aan elkaar en kun je het volledige proces van orderafhandeling of goederenontvangst analyseren. Waar vind je dit? Dit is meestal de primaire sleutel in de tabel met kopgegevens van de magazijnorder. Raadpleeg de documentatie van Blue Yonder WMS voor tabellen over orderbeheer. Voorbeelden WO-0012845WO-0012991WO-0013057 | |||
| Starttijd van gebeurtenis EventStartTime | De timestamp waarop een specifieke magazijnactiviteit of gebeurtenis begon. | ||
| Beschrijving Dit attribuut registreert de datum en tijd waarop een magazijntaak of gebeurtenis is gestart. Zo zie je in welke volgorde activiteiten binnen een case plaatsvonden. Deze timestamp is nodig voor alle tijdsanalyses met process mining. Je gebruikt hem om gebeurtenissen te ordenen, doorlooptijden tussen activiteiten te berekenen, de totale procesduur te meten en wachttijden of vertragingen te vinden. Hij vormt de basis voor prestatieanalyses en is nodig om de proceskaart te animeren. Waarom dit belangrijk is De starttimestamp is nodig om gebeurtenissen chronologisch te ordenen en prestatiemaatstaven zoals doorlooptijden en wachttijden te berekenen. Waar vind je dit? Te vinden in gebeurtenislogboeken of taaktabellen, als aanmaak- of starttijd van een vastgelegde actie. Voorbeelden 2023-10-26T08:30:00Z2023-10-26T09:15:10Z2023-10-26T11:05:45Z | |||
| Bronsysteem SourceSystem | Het systeem waaruit de data is gehaald, in dit geval Blue Yonder WMS. | ||
| Beschrijving Dit attribuut geeft aan uit welk systeem de gebeurtenisdata afkomstig is. In een moderne IT-omgeving kan data voor één end-to-endproces uit meerdere systemen komen, zoals een ERP-, WMS- en TMS-systeem. Door het bronsysteem vast te leggen, kun je data beheren, problemen oplossen en de context van de data begrijpen. Je kunt problemen met de datakwaliteit terugleiden naar de bron. Dit is ook nodig wanneer je data uit meerdere bronnen samenvoegt tot één procesoverzicht. Waarom dit belangrijk is Hiermee kun je de herkomst van data achterhalen en data valideren. Dat is ook nuttig wanneer data uit meerdere systemen wordt samengevoegd. Waar vind je dit? Dit is meestal een vaste waarde die tijdens het data-extractieproces wordt toegevoegd om de herkomst van de dataset aan te geven. Voorbeelden BlueYonderWMS_USBlueYonderWMS_EU | |||
| Laatste data-update LastDataUpdate | Timestamp waarop de data voor deze registratie voor het laatst uit het bronsysteem is bijgewerkt. | ||
| Beschrijving Dit attribuut registreert de datum en tijd waarop de dataset voor het laatst uit Blue Yonder WMS is gehaald of bijgewerkt. Zo zie je hoe actueel de geanalyseerde data is. Deze timestamp is belangrijk voor het beheer van data en laat gebruikers zien hoe recent de analyse is. Belanghebbenden weten zo op welke data de analyse is gebaseerd en kunnen erop vertrouwen dat die recent en relevant is. Waarom dit belangrijk is Deze timestamp laat zien hoe actueel de data is en welke periode de analyse beslaat. Waar vind je dit? Dit metadataveld wordt meestal aangemaakt en toegevoegd tijdens het data-extractieproces (ETL). Voorbeelden 2024-01-15T04:00:00Z2024-01-16T04:00:00Z | |||
| Eindtijd van gebeurtenis EventEndTime | De timestamp waarop een specifieke magazijnactiviteit of gebeurtenis is afgerond. | ||
| Beschrijving Dit attribuut registreert de datum en tijd waarop een magazijntaak of gebeurtenis is afgerond. Als deze informatie beschikbaar is, kun je de verwerkingstijd van elke activiteit nauwkeurig meten. Met zowel een start- als eindtijd kun je de prestaties gedetailleerder analyseren. Je kunt wachttijd, de tijd tussen activiteiten, onderscheiden van verwerkingstijd, de duur van de activiteit zelf. Zo zie je of vertragingen ontstaan doordat werk blijft liggen of doordat taken te lang duren. Waarom dit belangrijk is Hiermee bereken je de verwerkingstijd van een activiteit nauwkeurig en onderscheid je die van de wachttijd. Dat helpt om verbeteringen gericht aan te pakken. Waar vind je dit? Te vinden in gebeurtenislogboeken of taaktabellen, als afrondings- of sluitingstijd van een vastgelegde actie. Voorbeelden 2023-10-26T08:35:12Z2023-10-26T09:20:05Z2023-10-26T11:06:00Z | |||
| Gebruikers-/medewerkers-ID UserOperatorId | De identificatiecode van de magazijnmedewerker die de activiteit heeft uitgevoerd. | ||
| Beschrijving Dit attribuut bevat de unieke ID van de persoon die een magazijntaak uitvoert, zoals picking, inpakken of wegzetten. Zo koppel je procesactiviteiten aan medewerkers. Door activiteiten per gebruikers-/medewerkers-ID te analyseren, krijg je inzicht in de inzet van medewerkers, de verdeling van het werk en individuele prestaties. Je ziet bijvoorbeeld welke medewerkers het efficiëntst werken, wie extra training nodig heeft en hoe taken binnen een team zijn verdeeld. Dit is een belangrijke dimensie voor het dashboard over de inzet van magazijnmedewerkers en materieel. Waarom dit belangrijk is Met dit attribuut koppel je processtappen aan de medewerkers die ze hebben uitgevoerd. Zo kun je prestaties, werkbelasting en trainingsbehoeften analyseren. Waar vind je dit? Meestal te vinden in taak- of transactietabellen, gekoppeld aan de gebruiker die tijdens de handeling was ingelogd op het systeem of mobiele apparaat. Voorbeelden JSMITHBWILLISAMILLER | |||
| Geplande hoeveelheid PlannedQuantity | Het verwachte aantal artikelen voor een taak, bijvoorbeeld het aantal dat moet worden gepickt of ontvangen. | ||
| Beschrijving De geplande hoeveelheid is het aantal eenheden dat de magazijnorder voor een bepaalde taak voorschrijft. Bij een inkomende levering is dit de hoeveelheid die van de leverancier wordt verwacht. Bij een picktaak is het de hoeveelheid die de klantorder vraagt. Dit attribuut is belangrijk voor nauwkeurigheidsanalyses. Door de geplande hoeveelheid te vergelijken met de werkelijke hoeveelheid, kun je verschillen bij ontvangst, picking of voorraadcontroles opsporen. Het ondersteunt KPI’s zoals het percentage afwijkingen in gepickte hoeveelheden en is nodig voor het dashboard over nauwkeurigheid van hoeveelheden. Waarom dit belangrijk is Dit is de basis voor het meten van nauwkeurigheid en het opsporen van afwijkingen in hoeveelheden bij ontvangst en picking. Waar vind je dit? Te vinden in de detail- of orderregeltabellen van magazijnorders of specifieke taken. Voorbeelden 1005024 | |||
| Gevraagde einddatum RequestedCompletionDate | De datum en tijd waarop de magazijnorder volgens planning of verzoek moet zijn afgerond en verzonden. | ||
| Beschrijving De gevraagde einddatum is de service level agreement (SLA) of streefdatum voor de afhandeling van een uitgaande magazijnorder. Uiterlijk op deze datum moeten de goederen zijn gepickt en ingepakt, en klaarstaan voor verzending. Deze datum is de maatstaf voor de werkelijke prestaties. Je berekent er de KPI voor tijdige verzending mee door de datum te vergelijken met de werkelijke vertrektimestamp. Door orders op basis van dit attribuut te analyseren, zie je welke orders risico lopen op vertraging en wat de oorzaken zijn van overschrijdingen van de SLA. Waarom dit belangrijk is Dit attribuut is de maatstaf voor tijdige verzending en is nodig om de KPI voor het percentage tijdig verzonden orders te berekenen. Waar vind je dit? Meestal opgeslagen in de tabel met kopgegevens van de magazijnorder, vaak overgenomen uit de oorspronkelijke verkooporder of leveringsaanvraag. Voorbeelden 2023-10-27T17:00:00Z2023-10-28T12:00:00Z2023-11-01T17:00:00Z | |||
| Opslaglocatie StorageLocation | De specifieke locatie in het magazijn, zoals een vak of gangpad, waar goederen zijn opgeslagen of worden gepickt. | ||
| Beschrijving Dit attribuut geeft de fysieke locatie in het magazijn aan die bij een taak hoort. Bij het wegzetten is dit het bestemmingsvak. Bij picking is het de bronlocatie. De locatie kan zijn vastgelegd als een samengestelde code met gangpad, stelling, plank en vaknummer. Door data per opslaglocatie te analyseren, krijg je inzicht in de efficiëntie van de magazijnindeling, de opslagstrategie en verplaatsingen van medewerkers en materieel. Je kunt drukke zones, onderbenutte plekken en mogelijke bottlenecks in de goederenstroom opsporen. Dit attribuut is een belangrijke dimensie voor het dashboard over trends in het gebruik van opslaglocaties. Waarom dit belangrijk is Dit geeft context voor analyses van de magazijnindeling en de opslagstrategie, en helpt bottlenecks bij verplaatsingen op te sporen. Waar vind je dit? Beschikbaar in tabellen over voorraad, magazijntaken zoals picking en wegzetten, en stamgegevens van opslagvakken. Voorbeelden A1-R03-S02-B01B5-R10-S04-B05C2-R01-S01-B02 | |||
| Prioriteitsniveau PriorityLevel | De prioriteit van de magazijnorder, bijvoorbeeld ‘Hoog’, ‘Standaard’ of ‘Laag’. | ||
| Beschrijving Het prioriteitsniveau geeft aan hoe dringend een magazijnorder is. Orders met hoge prioriteit, zoals spoedzendingen, moeten sneller worden verwerkt dan standaardorders. Het WMS gebruikt dit attribuut om taken te ordenen en bronnen toe te wijzen. Met process mining kun je analyseren of de prioriteitsregels werken. Het dashboard voor orderafhandeling met hoge prioriteit gebruikt dit veld om spoedorders te filteren en hun doorlooptijden met die van standaardorders te vergelijken. Zo zie je of orders met hoge prioriteit echt sneller door het proces gaan of bij dezelfde bottlenecks blijven steken. Waarom dit belangrijk is Hiermee kun je nagaan of orders met hoge prioriteit sneller worden verwerkt dan standaardorders en of de prioriteitsregels werken. Waar vind je dit? Deze informatie staat meestal in de tabel met kopgegevens van de magazijnorder. Voorbeelden HoogStandaardLaag | |||
| Werkelijke hoeveelheid ActualQuantity | Het werkelijke aantal artikelen dat tijdens een taak is verwerkt, bijvoorbeeld het aantal getelde of gepickte artikelen. | ||
| Beschrijving De werkelijke hoeveelheid is het aantal eenheden dat een magazijnmedewerker tijdens een taak fysiek heeft verwerkt. Dit kan het aantal ontvangen artikelen van een leverancier zijn, het aantal eenheden dat uit een opslagvak is gepickt of de hoeveelheid die in een verzendcontainer is ingepakt. Door dit attribuut met de geplande hoeveelheid te vergelijken, ontdek je uitzonderingen en fouten in het proces. Het is de belangrijkste maatstaf voor het berekenen van afwijkingspercentages, die iets zeggen over de proceskwaliteit. Deze data helpt problemen met leverancierszendingen, pickfouten of onjuiste voorraadgegevens op te sporen. Waarom dit belangrijk is Door dit met de geplande hoeveelheid te vergelijken, kun je procesfouten opsporen en belangrijke kwaliteits-KPI’s berekenen, zoals afwijkingspercentages. Waar vind je dit? Te vinden in tabellen met taakbevestigingen of transactielogboeken, waarin medewerkers de uitgevoerde hoeveelheid vastleggen. Voorbeelden 1004924 | |||
| Hoeveelheid wijkt af IsQuantityMismatch | Een booleaanse markering die aangeeft of de werkelijke hoeveelheid afwijkt van de geplande hoeveelheid voor een taak. | ||
| Beschrijving Dit berekende attribuut geeft eenvoudig aan of de hoeveelheid bij een taak, zoals picking of ontvangst, afwijkt. De waarde is waar wanneer de ‘Werkelijke hoeveelheid’ niet gelijk is aan de ‘Geplande hoeveelheid’. Met deze markering kun je fouten in het proces eenvoudig vinden en tellen. Je berekent er KPI’s mee, zoals het percentage afwijkingen in gepickte en inkomende hoeveelheden. Ook kun je de oorzaken onderzoeken door te filteren op gebeurtenissen met afwijkende hoeveelheden en te zoeken naar patronen bij producten, medewerkers of locaties. Waarom dit belangrijk is Dit markeert gebeurtenissen met fouten in de hoeveelheid. Zo kun je afwijkingspercentages berekenen en taken met onjuiste hoeveelheden gericht analyseren. Waar vind je dit? Berekend door voor elke relevante activiteit de velden PlannedQuantity en ActualQuantity te vergelijken. Voorbeelden falsetruefalse | |||
| Magazijn-ID WarehouseId | Identificatiecode van het magazijn of distributiecentrum waar de activiteit plaatsvond. | ||
| Beschrijving De magazijn-ID geeft aan in welke vestiging het proces plaatsvindt. Dit is belangrijk voor organisaties met meerdere distributiecentra. Met dit attribuut kun je vestigingen vergelijken en prestaties benchmarken. Door de data op magazijn-ID te filteren of op te splitsen, kunnen bedrijven prestaties vergelijken, goede werkwijzen bij best presterende vestigingen vinden en onderzoeken waarom andere vestigingen achterblijven. Zo kun je de bedrijfsvoering op meerdere locaties analyseren. Waarom dit belangrijk is Voor organisaties met meerdere locaties is dit attribuut nodig om prestaties te benchmarken en processen tussen vestigingen te vergelijken. Waar vind je dit? Dit is vaak een veld op organisatieniveau dat in vrijwel alle transactietabellen beschikbaar is. De waarde kan ook worden afgeleid van de systeeminstantie. Voorbeelden WHC-01DC-EAST-03FAC-WEST | |||
| Materieel-ID EquipmentId | Identificatiecode van het gebruikte materieel voor goederenverplaatsing, zoals een specifieke heftruck of transportband. | ||
| Beschrijving De materieel-ID geeft aan welk apparaat of welk materieel is gebruikt voor een magazijntaak. Denk aan heftrucks, palletwagens, automatisch geleide voertuigen (AGV’s) of specifieke inpakstations. Met dit attribuut kun je het gebruik, de prestaties en het onderhoud van materieel analyseren. Door activiteiten per apparaat te volgen, kunnen managers zien welk materieel te veel of te weinig wordt gebruikt, de efficiëntie van verschillende typen machines vergelijken en onderhoudsplanningen onderbouwen. Dit is een belangrijke dimensie voor het dashboard over de inzet van magazijnmedewerkers en materieel. Waarom dit belangrijk is Hiermee kun je het gebruik en de prestaties van materieel analyseren en de inzet en onderhoudsplanning verbeteren. Waar vind je dit? Kan zijn vastgelegd in logboeken van taakuitvoering, vooral wanneer medewerkers zich op het materieel aanmelden. Voorbeelden FORKLIFT-07AGV-03PACKSTATION-12 | |||
| Op tijd verzonden IsOnTimeShipment | Een booleaanse markering die waar is als de zending op of vóór de gevraagde einddatum is vertrokken. | ||
| Beschrijving Dit berekende attribuut geeft eenvoudig aan of een order aan de verzend-SLA heeft voldaan. De waarde wordt bepaald door de timestamp van de activiteit ‘Zending vertrokken’ te vergelijken met de gevraagde einddatum van de order. Met deze markering kun je prestaties rond tijdige verzending eenvoudig analyseren en visualiseren. Je kunt ermee filteren en totalen berekenen voor de KPI voor tijdige verzending en het bijbehorende dashboard. Ook kun je de oorzaken van vertragingen onderzoeken en terugkerende kenmerken van te laat verzonden orders vinden. Waarom dit belangrijk is Met deze booleaanse markering bereken je eenvoudig de KPI voor tijdige verzending en filter je op kenmerken van te laat verzonden orders. Waar vind je dit? Berekend door de EventStartTime van de activiteit ‘Zending vertrokken’ te vergelijken met het attribuut RequestedCompletionDate. Voorbeelden truefalsetrue | |||
| Product-SKU ProductSku | De Stock Keeping Unit (SKU) of het materiaalnummer van het artikel dat wordt verwerkt. | ||
| Beschrijving Dit attribuut geeft aan om welk product het bij een magazijntaak gaat. Het laat in detail zien welke materialen worden verplaatst, opgeslagen, gepickt en ingepakt. Door het proces per product-SKU te analyseren, kun je patronen voor specifieke artikelen ontdekken. Bij sommige producten komen bijvoorbeeld vaker pickfouten voor, duurt het wegzetten langer door speciale verwerkingsvereisten of zijn de opslaglocaties onpraktisch. Zo kun je processen en opslagstrategieën per product verbeteren. Waarom dit belangrijk is Hiermee kun je per product analyseren welke artikelen vertragingen of fouten veroorzaken of speciale verwerking nodig hebben. Waar vind je dit? Deze informatie staat op regelniveau in de tabellen van de magazijnorder of taak. Voorbeelden PN-A5540-BSKU-300-RED-LGHW-88201 | |||
| Taakstatus TaskStatus | De eindstatus van een taak, bijvoorbeeld ‘Completed’, ‘Canceled’ of ‘Failed’. | ||
| Beschrijving Dit attribuut beschrijft de uitkomst van een specifieke magazijntaak. Veel taken worden succesvol afgerond, maar een leidinggevende kan een taak annuleren of een taak kan mislukken door een systeem- of operationeel probleem. Zo krijg je meer context dan met alleen de activiteitsnaam. Door taken op status te analyseren, kun je uitzonderingen en procesproblemen onderzoeken. Veel geannuleerde of mislukte taken kunnen wijzen op problemen met de voorraadnauwkeurigheid, de systeemconfiguratie of de training van medewerkers. Je ziet welke activiteiten vaak misgaan en verder onderzoek nodig hebben. Waarom dit belangrijk is Dit geeft de uitkomst van een activiteit aan. Zo kun je uitzonderingen zoals geannuleerde of mislukte taken analyseren en mogelijke operationele problemen opsporen. Waar vind je dit? Meestal te vinden in de taakentabel, waar de eindstatus van de taak is vastgelegd. Voorbeelden AfgerondGeannuleerdIn de wacht | |||
| Type magazijnorder WarehouseOrderType | Geeft het type magazijnorder aan, bijvoorbeeld inkomende goederenontvangst, uitgaande zending of interne verplaatsing. | ||
| Beschrijving Dit attribuut geeft aan wat het doel van de magazijnorder is. Veelvoorkomende typen zijn inkomende leveringen van leveranciers, uitgaande zendingen naar klanten, retourverwerking en interne voorraadverplaatsingen tussen magazijnlocaties. Het proces opdelen op basis van het type magazijnorder is een eerste stap in elke analyse. Inkomende en uitgaande processen verschillen vaak sterk in stappen, bronnen en prestatiedoelen. Met dit attribuut kun je de data filteren en één specifiek proces afzonderlijk analyseren, zoals goederenontvangst of orderafhandeling. Waarom dit belangrijk is Hiermee kun je verschillende processen, zoals inkomende en uitgaande goederenstromen, afzonderlijk analyseren en vergelijken. Ze hebben elk hun eigen verloop en doelen. Waar vind je dit? Te vinden in de tabel met kopgegevens van de magazijnorder, meestal in een veld voor documenttype of ordercategorie. Voorbeelden Inkomende leveringUitgaande zendingInterne verplaatsing | |||
| Zending-ID ShipmentId | De unieke identificatiecode van de uitgaande zending waartoe een magazijnorder behoort. | ||
| Beschrijving De zending-ID is een identificatiecode op een hoger niveau. Hiermee kun je meerdere magazijnorders groeperen als ze met dezelfde vrachtwagen of container worden verzonden. Bij één order kan deze ID gelijk zijn aan het nummer van de magazijnorder of levering. Met analyses op basis van de zending-ID krijg je inzicht in het verzendproces. Je kunt zien hoe orders worden samengevoegd, de tijd tussen het klaarzetten en het vertrek van een volle vrachtwagen meten en de efficiëntie van de verzendafdeling analyseren. De ID koppelt magazijnactiviteiten aan het laatste transportdeel van de toeleveringsketen. Waarom dit belangrijk is Hiermee groepeer je magazijnorders die samen worden verzonden. Zo kun je het samenvoegen van zendingen en het verzendproces analyseren. Waar vind je dit? Te vinden in tabellen over zendingen of transport, gekoppeld aan de magazijnorders. Voorbeelden SHP-45000123SHP-45000124SHP-45000125 | |||
Activiteiten in magazijnbeheer
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Goederen ontvangen en geteld | Deze gebeurtenis betekent dat de goederen zijn gelost en gescand en dat de aantallen zijn gecontroleerd aan de hand van de leveringsdocumenten. Meestal wordt dit vastgelegd wanneer een medewerker bij de ontvangst de ontvangen aantallen van elk artikel in de inkomende order bevestigt. | ||
| Waarom dit belangrijk is Dit is een belangrijke mijlpaal: de voorraad is nu officieel beschikbaar in het systeem, maar nog niet klaar voor orderafhandeling. De duur en nauwkeurigheid van deze stap hebben direct invloed op het zicht op de voorraad en de start van het wegzetten. Waar vind je dit? Dit is een expliciete transactie in de voorraad- of ontvangstlogs. Zoek naar transacties voor het boeken van goederenontvangst of statuswijzigingen van orderregels voor inkomende leveringen naar ‘Ontvangen’. Vastleggen Timestamp van de transactie die de ontvangst van goederen bevestigt. Gebeurtenistype explicit | |||
| Goederen op opslaglocatie gezet | Deze gebeurtenis bevestigt dat de goederen naar de aangewezen opslaglocatie zijn verplaatst en daar zijn gescand. De gebeurtenis wordt vastgelegd wanneer een medewerker de wegzettaak afrondt, meestal met een draagbaar RF-apparaat. | ||
| Waarom dit belangrijk is Dit markeert het einde van het proces voor inkomende goederen. De voorraad is nu beschikbaar voor orderafhandeling. De tijd tussen ontvangst en dit moment is belangrijk voor het dashboard ‘Doorlooptijd van goederenontvangst tot wegzetten’. Waar vind je dit? Vastgelegd als transactie met timestamp wanneer de status van de wegzettaak wordt gewijzigd naar ‘Afgerond’ of ‘Bevestigd’. Deze data staat in de tabellen voor magazijntaken of verplaatsingsorders. Vastleggen Bevestigingstimestamp van de wegzettaak. Gebeurtenistype explicit | |||
| Magazijnorder aangemaakt | Deze gebeurtenis markeert het aanmaken van een magazijnorder. Dit is het centrale document voor het beheer van inkomende, uitgaande of interne magazijntaken. De gebeurtenis wordt meestal vastgelegd als een expliciete transactie wanneer een nieuwe order handmatig of via een koppeling in Blue Yonder WMS wordt ingevoerd. | ||
| Waarom dit belangrijk is Dit is het officiële begin van het proces. Door de tijd tussen deze gebeurtenis en de afronding te analyseren, bepaal je de totale doorlooptijd van de orderafhandeling. Die is belangrijk om de algehele efficiëntie en het nakomen van service level agreements te meten. Waar vind je dit? Deze gebeurtenis staat waarschijnlijk in een tabel met orderkoppen, vastgelegd met de aanmaaktimestamp van de magazijnorder. Zoek naar tabellen zoals Vastleggen De aanmaaktimestamp van de magazijnorder. Gebeurtenistype explicit | |||
| Magazijnorder afgerond | Dit is de eindstatus van de magazijnorder. Alle bijbehorende activiteiten, waaronder de verzending, zijn afgerond en de order is gesloten. Dit wordt vastgelegd wanneer de levenscyclusstatus van de order wordt gewijzigd in ‘Completed’ of ‘Closed’. | ||
| Waarom dit belangrijk is Met deze activiteit eindigt de case definitief. Zo omvat de procesanalyse de volledige levenscyclus van elke order, van begin tot eind. Waar vind je dit? Dit kan worden afgeleid uit een statuswijziging in de tabel met kopgegevens van de magazijnorder. Zoek naar een eindstatus zoals ‘Completed’, ‘Closed’ of ‘Invoiced’ en de timestamp van die statuswijziging. Vastleggen Afgeleid uit de timestamp van de laatste statuswijziging in de kopgegevens van de order. Gebeurtenistype inferred | |||
| Verzameltaak aangemaakt | Deze gebeurtenis markeert het aanmaken van een taak voor een medewerker om goederen van een opslaglocatie te halen voor een uitgaande order. De WMS genereert deze gebeurtenis expliciet wanneer een uitgaande order wordt vrijgegeven om te verzamelen. | ||
| Waarom dit belangrijk is Dit is het begin van het fysieke proces voor uitgaande goederen. Door de tijd tussen het aanmaken van de order en de verzameltaak te analyseren, zie je vertragingen bij de orderverwerking en toewijzing. Waar vind je dit? Vastgelegd in de tabellen voor taakbeheer of magazijnbesturing. Dit komt overeen met de aanmaaktimestamp van verzameltaken die aan de magazijnorder zijn gekoppeld. Vastleggen Aanmaaktimestamp van de automatisch gegenereerde verzameltaak. Gebeurtenistype explicit | |||
| Zending vertrokken | Deze gebeurtenis geeft aan dat de ingepakte goederen op de vrachtwagen van de vervoerder zijn geladen en dat de vrachtwagen het magazijn heeft verlaten. Meestal wordt dit vastgelegd wanneer in het systeem een ‘Goods Issue’ wordt geboekt, waarmee de zending wordt afgerond. | ||
| Waarom dit belangrijk is Dit is een belangrijk moment: vanaf hier is het magazijn niet langer verantwoordelijk voor de order. Het is het laatste datapunt voor het meten van tijdige verzending en de totale doorlooptijd van de orderafhandeling. Waar vind je dit? Dit is een belangrijke financiële en logistieke transactie, vaak ‘Post Goods Issue’ (PGI) genoemd. De timestamp van deze transactie geldt als het vertrekmoment en staat meestal in de tabellen voor uitgaande leveringen of zendingen. Vastleggen Timestamp van de transactie Post Goods Issue (PGI). Gebeurtenistype explicit | |||
| Goederen aangekomen bij de laad- en losplaats | Deze activiteit markeert de fysieke aankomst van een vrachtwagen of vervoerder bij de ontvangstlocatie van het magazijn, voordat het lossen begint. De gebeurtenis wordt vaak expliciet vastgelegd door een module voor terreinbeheer of wanneer een medewerker bij de poort de levering registreert. | ||
| Waarom dit belangrijk is Door de aankomsttijd bij te houden, meet je of vervoerders op tijd zijn en zie je hoeveel tijd er zit tussen hun aankomst en de start van de ontvangst. Zo worden mogelijke bottlenecks op het terrein of bij de ontvangstdeuren zichtbaar. Waar vind je dit? Meestal vastgelegd in een module voor terreinbeheer of poortcontrole in Blue Yonder WMS. Een medewerker bij de ontvangst kan de timestamp ook handmatig invoeren wanneer de vrachtwagen aankomt. Vastleggen Timestamp van de registratie van de vervoerder bij aankomst. Gebeurtenistype explicit | |||
| Goederen ingepakt | Deze gebeurtenis bevestigt dat alle artikelen voor een zending in verzendverpakkingen zijn gedaan en dat de labels zijn aangemaakt. De gebeurtenis wordt vastgelegd wanneer de medewerker bevestigt dat het inpakken van de order in het systeem is afgerond. | ||
| Waarom dit belangrijk is Hiermee zijn de activiteiten in het magazijn die waarde toevoegen afgerond. De tijd tussen dit moment en het vertrek van de zending bestaat uit het klaarzetten en laden. In deze fase kunnen vertragingen ontstaan. Waar vind je dit? Dit is een expliciete transactie die wordt vastgelegd wanneer het inpakproces is afgerond. Zoek naar een statuswijziging van de uitgaande levering naar ‘Packed’ of naar een timestamp van de afronding in de transactie van het inpakstation. Vastleggen Timestamp van de transactie ‘Confirm Packing’ of ‘Close Container’. Gebeurtenistype explicit | |||
| Goederen uit opslag verzameld | Dit markeert de afronding van de verzameltaak. Een medewerker heeft de artikelen opgehaald en de handeling in het systeem bevestigd. De gebeurtenis wordt vastgelegd wanneer de medewerker de artikelen scant en het verzamelen op het apparaat bevestigt. | ||
| Waarom dit belangrijk is Deze mijlpaal sluit de verzamelstap af. De nauwkeurigheid en duur van deze activiteit zijn belangrijk voor een efficiënte orderafhandeling en vormen de basis voor de analyse ‘Nauwkeurigheid van het verzamelen’. Waar vind je dit? Vastgelegd met de bevestigingstimestamp wanneer de status van de verzameltaak wordt gewijzigd naar ‘Afgerond’. Deze data staat in de tabellen voor magazijntaken en is vaak gekoppeld aan de medewerker en de gebruikte apparatuur. Vastleggen Bevestigingstimestamp van de verzameltaak. Gebeurtenistype explicit | |||
| Inkomende levering gemeld | Dit is de ontvangst van een Advanced Shipping Notification (ASN) van een leverancier. De melding geeft aan dat goederen onderweg zijn naar het magazijn. De gebeurtenis wordt expliciet vastgelegd wanneer het systeem een ASN ontvangt en verwerkt, vaak via EDI of een portaal. | ||
| Waarom dit belangrijk is Deze activiteit start de planning van inkomende goederen en de toewijzing van capaciteit. De tijd tussen de melding en de fysieke ontvangst van de goederen is een belangrijke KPI voor het meten van leveranciersprestaties en het zicht op inkomende leveringen. Waar vind je dit? Vastgelegd in ASN-ontvangstlogs of via de aanmaaktimestamp van het document voor de inkomende levering in Blue Yonder WMS. Controleer tabellen over ASN’s of meldingen van inkomende zendingen. Vastleggen Timestamp van de ASN of het aanmaken van het document voor de inkomende levering. Gebeurtenistype explicit | |||
| Klaargezet voor verzending | Dit is de verplaatsing van ingepakte containers van de inpakzone naar een aangewezen verzendzone, waar ze wachten tot de vervoerder ze ophaalt. De gebeurtenis wordt vastgelegd wanneer een medewerker bevestigt dat de laadeenheid naar de verzendzone is verplaatst. | ||
| Waarom dit belangrijk is Met deze activiteit kun je de wachttijd analyseren: hoelang ingepakte orders wachten voordat ze worden geladen. Lange wachttijden kunnen wijzen op slechte afstemming met vervoerders of inefficiënt gebruik van de verzendzone. Waar vind je dit? Deze gebeurtenis kan worden afgeleid uit een locatiewijziging van de laadeenheid of verzendcontainer naar een verzendlocatie. Ook kan het gaan om een expliciete bevestiging van de taak ‘Move to Stage’. Vastleggen Afgeleid uit voorraadmutatielogboeken waarin de verplaatsing naar een verzendvak staat. Gebeurtenistype inferred | |||
| Kwaliteitscontrole uitgevoerd | Dit is een kwaliteitscontrole van ontvangen goederen. De controle kan een standaardstap zijn voor bepaalde materialen of worden gestart door een uitzondering. De gebeurtenis wordt vastgelegd wanneer een kwaliteitscontroleur de bevindingen in het systeem registreert. | ||
| Waarom dit belangrijk is Kwaliteitscontroles kunnen de ontvangst van goederen flink vertragen. Door de frequentie en duur ervan te analyseren, spoor je kwaliteitsproblemen bij leveranciers en bottlenecks in de workflow voor kwaliteitscontroles op. Waar vind je dit? Vastgelegd in modules voor kwaliteitsbeheer (QM) of in logs die bij de inkomende levering horen. Zoek naar specifieke transactiecodes voor kwaliteitscontroleresultaten of statuswijzigingen van de voorraad naar ‘Kwaliteitsblokkering’. Vastleggen Timestamp van de afronding van de kwaliteitscontrole of van de statuswijziging. Gebeurtenistype explicit | |||
| Magazijnorder geannuleerd | Dit is de annulering van een magazijnorder voordat deze volledig is verwerkt of verzonden. De gebeurtenis wordt vastgelegd wanneer een gebruiker een annuleringsactie uitvoert en de status van de order wijzigt in ‘Canceled’. | ||
| Waarom dit belangrijk is Door annuleringen te analyseren, kun je oorzaken van procesproblemen opsporen, zoals voorraadtekorten of wijzigingen bij de klant. Dit is een belangrijke eindgebeurtenis om procesafwijkingen en uitval te begrijpen. Waar vind je dit? Meestal wordt deze gebeurtenis afgeleid van de eindstatus van de magazijnorder. Daarvoor wordt de timestamp gebruikt waarop de status verandert in ‘Canceled’ of ‘Deleted’. Vastleggen Afgeleid uit de timestamp van een statuswijziging naar ‘Canceled’. Gebeurtenistype inferred | |||
| Taak voor het wegzetten aangemaakt | Deze activiteit markeert het moment waarop het systeem een taak aanmaakt om ontvangen goederen van de ontvangstlocatie naar een opslaglocatie te verplaatsen. Dit is een expliciete systeemgebeurtenis die de WMS-logica genereert om een magazijnmedewerker aan te sturen. | ||
| Waarom dit belangrijk is Dit is het begin van het wegzetproces. Vertraging tussen de goederenontvangst en het aanmaken van de wegzettaak kan wijzen op problemen met de systeemconfiguratie of prestaties. De goederen blijven dan in de ontvangstzone staan. Waar vind je dit? Aangemaakt en vastgelegd in de tabellen voor taakbeheer of magazijnbesturing. Zoek naar de aanmaaktimestamp van wegzettaken of verplaatsingsorders die aan de inkomende levering zijn gekoppeld. Vastleggen Aanmaaktimestamp van de automatisch gegenereerde wegzettaak. Gebeurtenistype explicit | |||
| Verpakken gestart | Deze activiteit markeert de start van het verpakken bij een inpakstation. Meestal wordt dit vastgelegd wanneer een medewerker de verzamelde artikelen of de orderbak scant om de zending klaar te maken. | ||
| Waarom dit belangrijk is Deze gebeurtenis markeert de overdracht van verzamelen naar verpakken. Zo kun je de verpakkingsstap apart analyseren en bottlenecks in het verpakkingsgebied opsporen. Waar vind je dit? Dit kan een expliciet transactielogboek zijn van de gebruikersinterface van een inpakstation. Het kan ook worden afgeleid van de eerste activiteit met een timestamp die voor deze order aan een inpakwerkplek is gekoppeld. Vastleggen Timestamp van de transactie ‘Start Packing’ bij een inpakstation. Gebeurtenistype explicit | |||
Extractiegidsen
Stappen
- Vereisten en toegang: Zorg dat je een gebruikersaccount voor Blue Yonder WMS hebt met de juiste rechten om MOCA-opdrachten uit te voeren en toegang te krijgen tot de benodigde tabellen, zoals ord_hdr, pckwrk_dtl en invmov. Je hebt toegang nodig tot een MOCA-client, zoals de MOCA Console of een opdrachtregelinterface.
- Controleer en pas het MOCA-script aan: Kopieer het meegeleverde MOCA-script. Controleer zorgvuldig of de tabel- en kolomnamen overeenkomen met jouw Blue Yonder WMS-implementatie. Let vooral op tijdelijke aanduidingen zoals
@[where_clause_dates]en@[where_clause_warehouse]; vervang deze door echte waarden. - Stel de extractieparameters in: Vervang de tijdelijke variabelen in het script. Geef voor
@[where_clause_dates]een specifieke periode op, bijvoorbeeldwhere adddte between 'YYYY-MM-DD' and 'YYYY-MM-DD'. Geef voor@[where_clause_warehouse]de magazijn-ID’s op die je wilt extraheren, bijvoorbeeldwhere wh_id = '[Your Warehouse ID]'. - Maak verbinding met de MOCA-server: Start je MOCA-client, bijvoorbeeld MOCA Console, en maak verbinding met de juiste Blue Yonder WMS-omgeving.
- Voer het MOCA-script uit: Plak het aangepaste script in MOCA Console en voer de opdracht uit. Het script wordt op de server uitgevoerd en verzamelt data voor alle opgegeven activiteiten.
- Houd de uitvoering in de gaten: Bij grote datasets kan de query veel tijd kosten. Controleer de console op foutmeldingen en waarschuwingen over de prestaties. Loopt de query vast door een time-out, voer deze dan uit voor kleinere perioden.
- Exporteer de resultaten naar een bestand: Na een geslaagde uitvoering verschijnen de resultaten in de console. Gebruik de exportfunctie van de client om de uitvoer als CSV-bestand op te slaan. Vanaf de opdrachtregel kun je de uitvoer bijvoorbeeld rechtstreeks naar een bestand sturen:
mocarun -S "[Your MOCA Script]" > event_log.csv. - Maak het CSV-bestand klaar voor ProcessMind: Open het geëxporteerde CSV-bestand. Controleer of de kolomkoppen overeenkomen met de attributen in de query, zoals
WarehouseOrder,ActivityNameenEventStartTime. Sla het bestand op met UTF-8-codering om problemen met tekens bij het uploaden te voorkomen. - Controleer en upload: Controleer het bestand nog een keer op duidelijke fouten of afwijkingen. Upload het CSV-bestand daarna naar ProcessMind voor analyse.
Configuratie
- Periode: Extraheer bij voorkeur data over een periode van 3 tot 6 maanden, zodat de steekproef verschillende procesvarianten bevat. Pas de tijdelijke datumfilter
@[where_clause_dates]toe op de primaire timestampkolom in elke SELECT-instructie, zoalsadddteofmoddte. - Filters voor magazijn en klant: Gebruik altijd filters om de extractie af te bakenen. Gebruik de tijdelijke aanduiding
@[where_clause_warehouse]om te filteren op specifieke magazijn-ID’s (wh_id) en, indien van toepassing, klant-ID’s (client_id). Dit is belangrijk voor de prestaties en de relevantie van de data. - Filters voor ordertype: Overweeg specifieke magazijnordertypen (
ordtyp) te filteren om de analyse af te bakenen. Je kunt bijvoorbeeld alleen uitgaande klantorders of inkomende inkooporders analyseren. Voeg dit toe aan de WHERE-clausule in de relevante delen van het script. - Prestaties: Het extractiescript koppelt meerdere grote tabellen en voegt resultaten samen. Plan de extractie buiten piekuren om de systeemprestaties niet te beïnvloeden. In zeer grote omgevingen is het verstandig om data in kleinere, opeenvolgende batches te extraheren, bijvoorbeeld één maand per keer.
- Vereisten: De gebruiker die het script uitvoert, moet leestoegang hebben tot alle tabellen in de query, waaronder
ord_hdr,ord_dtl,invmov,pckwrk_dtl,asnhdrentrn_log. De gebruiker moet ook bevoegd zijn om MOCA-opdrachten uit te voeren.
a Voorbeeldquery sql
publish data
where wh_id = '[Your Warehouse ID]'
and event_time between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
|
[
/* 1. Warehouse Order Created */
select
ordnum as WarehouseOrder,
'Warehouse Order Created' as ActivityName,
adddte as EventStartTime,
moddte as EventEndTime,
add_usr_id as UserOperatorId,
ordqty as PlannedQuantity,
null as ActualQuantity,
null as StorageLocation,
req_ship_dte as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from ord_hdr
where ordtyp in ('ORD', 'INB')
and adddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 2. Inbound Delivery Notified */
select
supnum as WarehouseOrder, /* ASN number often used as the order key for inbound */
'Inbound Delivery Notified' as ActivityName,
adddte as EventStartTime,
moddte as EventEndTime,
add_usr_id as UserOperatorId,
null as PlannedQuantity,
null as ActualQuantity,
null as StorageLocation,
expdte as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from asnhdr
where adddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 3. Goods Arrived at Dock */
select
refnum as WarehouseOrder,
'Goods Arrived at Dock' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
null as PlannedQuantity,
null as ActualQuantity,
dstloc as StorageLocation, /* Typically a receiving dock location */
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from trn_log
where trncod = 'RCV_ARVL'
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 4. Goods Received and Counted */
select
ordnum as WarehouseOrder,
'Goods Received and Counted' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
untqty as PlannedQuantity,
actqty as ActualQuantity,
srcloc as StorageLocation,
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from invmov
where trntyp = 'R' /* Standard receipt transaction type */
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 5. Quality Inspection Performed */
select
ordnum as WarehouseOrder,
'Quality Inspection Performed' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
untqty as PlannedQuantity,
actqty as ActualQuantity,
srcloc as StorageLocation,
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from invmov
where trntyp = 'H' and trncod = 'QA_CMP' /* Example transaction for QA Hold Release/Complete */
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 6. Putaway Task Created */
select
ordnum as WarehouseOrder,
'Putaway Task Created' as ActivityName,
adddte as EventStartTime,
moddte as EventEndTime,
add_usr_id as UserOperatorId,
pckqty as PlannedQuantity,
null as ActualQuantity,
srcloc as StorageLocation,
null as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from pckwrk_dtl
where wrktyp = 'P' /* Putaway work type */
and adddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 7. Goods Put Away in Storage */
select
ordnum as WarehouseOrder,
'Goods Put Away in Storage' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
untqty as PlannedQuantity,
actqty as ActualQuantity,
dstloc as StorageLocation,
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from invmov
where trntyp = 'M' and trncod = 'PUTAWAY' /* Move transaction for putaway */
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 8. Picking Task Created */
select
ordnum as WarehouseOrder,
'Picking Task Created' as ActivityName,
adddte as EventStartTime,
moddte as EventEndTime,
add_usr_id as UserOperatorId,
pckqty as PlannedQuantity,
null as ActualQuantity,
srcloc as StorageLocation,
null as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from pckwrk_dtl
where wrktyp = 'O' /* Outbound Picking work type */
and adddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 9. Goods Picked from Storage */
select
ordnum as WarehouseOrder,
'Goods Picked from Storage' as ActivityName,
pk_end_dte as EventStartTime,
pk_end_dte as EventEndTime,
pckr_id as UserOperatorId,
pckqty as PlannedQuantity,
actqty as ActualQuantity,
srcloc as StorageLocation,
null as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from pckwrk_dtl
where wrktyp = 'O'
and statcod = 'P' /* Status 'Picked' */
and pk_end_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 10. Packing Initiated */
select
ordnum as WarehouseOrder,
'Packing Initiated' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
null as PlannedQuantity,
null as ActualQuantity,
dstloc as StorageLocation, /* Packing station */
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from trn_log
where trncod = 'PACK_INIT'
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 11. Goods Packed */
select
ordnum as WarehouseOrder,
'Goods Packed' as ActivityName,
moddte as EventStartTime,
moddte as EventEndTime,
mod_usr_id as UserOperatorId,
null as PlannedQuantity,
null as ActualQuantity,
null as StorageLocation,
req_ship_dte as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from ord_hdr
where statcod >= 80 and statcod < 90 /* Example status range for Packed */
and moddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 12. Staging for Shipment */
select
ordnum as WarehouseOrder,
'Staging for Shipment' as ActivityName,
cmpl_dte as EventStartTime,
cmpl_dte as EventEndTime,
mod_usr_id as UserOperatorId,
untqty as PlannedQuantity,
actqty as ActualQuantity,
dstloc as StorageLocation, /* Staging lane */
null as RequestedCompletionDate,
null as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from invmov
where trncod = 'STG_MOVE' /* Move to staging transaction */
and cmpl_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 13. Shipment Dispatched */
select
ordnum as WarehouseOrder,
'Shipment Dispatched' as ActivityName,
act_ship_dte as EventStartTime,
act_ship_dte as EventEndTime,
mod_usr_id as UserOperatorId,
ordqty as PlannedQuantity,
shpqty as ActualQuantity,
null as StorageLocation,
req_ship_dte as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from ord_hdr
where statcod = 90 /* Status Shipped */
and act_ship_dte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 14. Warehouse Order Completed */
select
ordnum as WarehouseOrder,
'Warehouse Order Completed' as ActivityName,
moddte as EventStartTime,
moddte as EventEndTime,
mod_usr_id as UserOperatorId,
ordqty as PlannedQuantity,
shpqty as ActualQuantity,
null as StorageLocation,
req_ship_dte as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from ord_hdr
where statcod = 99 /* Status Completed/Closed */
and moddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
union all
/* 15. Warehouse Order Canceled */
select
ordnum as WarehouseOrder,
'Warehouse Order Canceled' as ActivityName,
moddte as EventStartTime,
moddte as EventEndTime,
mod_usr_id as UserOperatorId,
ordqty as PlannedQuantity,
null as ActualQuantity,
null as StorageLocation,
req_ship_dte as RequestedCompletionDate,
prifld as PriorityLevel,
'Blue Yonder WMS' as SourceSystem,
sysdate as LastDataUpdate
from ord_hdr
where statcod = 91 /* Example Canceled status */
and moddte between to_date(@start_date, 'YYYY-MM-DD') and to_date(@end_date, 'YYYY-MM-DD')
and wh_id = '[Your Warehouse ID]'
] Stappen
- Maak verbinding met de database: Vraag inloggegevens met alleen-lezenrechten en verbindingsgegevens op, zoals serveradres, databasenaam en poort, voor de onderliggende Blue Yonder WMS-database. Dit is meestal Oracle of SQL Server. Maak verbinding met een gangbare SQL-client, zoals DBeaver, Oracle SQL Developer of SQL Server Management Studio.
- Zoek de belangrijkste WMS-tabellen op: De meegeleverde query gebruikt standaardtabellen van Blue Yonder WMS, zoals
ord(orders),pckwrk(pickwerk),wrkque(werkwachtrij),invmov(voorraadmutaties) enlodhdr(laadkop). Controleer de tabelnamen en kolomstructuren in de data dictionary van je systeem, omdat aanpassingen mogelijk zijn. - Controleer en parameteriseer de SQL-query: Kopieer het meegeleverde SQL-script naar je SQL-client. Zoek de tijdelijke variabelen in de Common Table Expression (CTE)
BaseOrdersbovenaan het script. - Stel de periode in: Pas de clausules
adddte >= 'YYYY-MM-DD'enadddte < 'YYYY-MM-DD'aan om de periode voor de data-extractie vast te leggen. Voor een eerste analyse is een periode van 3 tot 6 maanden aan te raden. - Pas systeemspecifieke filters toe: Pas het filter
wh_id = '[Your_Warehouse_ID]'aan om de extractie tot één magazijn te beperken. Voeg zo nodig andere filters toe of pas ze aan, bijvoorbeeldclient_idvoor omgevingen met meerdere klanten. - Voer het extractiescript uit: Voer het volledige SQL-script uit. De query voegt gebeurtenissen uit meerdere tabellen samen tot één event log. De uitvoeringstijd hangt af van de gekozen periode en de hoeveelheid data.
- Controleer de eerste resultaten: Bekijk de uitvoer zodra de query klaar is. Controleer of de kolommen
WarehouseOrder,ActivityNameenEventStartTimenaar verwachting zijn gevuld. Het aantal rijen hoort aanzienlijk hoger te zijn dan het aantal unieke magazijnorders. - Exporteer het event log: Exporteer de queryresultaten naar een CSV-bestand. Stel de codering in op UTF-8 om problemen met tekens bij het uploaden te voorkomen.
- Maak het bestand klaar om te uploaden: Controleer of de kolomkoppen in het geëxporteerde CSV-bestand overeenkomen met de vereiste attributen, bijvoorbeeld
WarehouseOrder,ActivityNameenEventStartTime. Het bestand is nu klaar om naar de process mining-software te uploaden.
Configuratie
- Vereisten: Je hebt SQL-toegang met alleen-lezenrechten nodig tot de Blue Yonder WMS-database. Kennis van de specifieke WMS-configuratie en het datamodel van je organisatie is een plus.
- Databaseverbinding: Voor deze methode is een rechtstreekse databaseverbinding nodig. Controleer vooraf of de benodigde firewallregels en netwerktoegangsrechten zijn ingesteld.
- Filteren op periode: Stel in de WHERE-clausule van de query een specifieke periode in om de hoeveelheid data te beperken. Meestal is 3 tot 6 maanden voldoende voor een bruikbare analyse, zonder de database te zwaar te belasten.
- Filteren op magazijn en klant: Filter in omgevingen met meerdere magazijnen of klanten altijd op de juiste
wh_id(magazijn-ID) enclient_id(klant-ID). Zo blijft de analyse gericht en de dataset beheersbaar. - Prestaties: Een query op een live productiedatabase kan de systeemprestaties beïnvloeden. Voer de query bij voorkeur buiten piekuren uit, of gebruik een aparte rapportagedatabase of replicadatabase als die beschikbaar is.
- Systeemspecifieke aanpassingen: De meegeleverde query gebruikt standaardtabel- en kolomnamen. Mogelijk moet je deze aanpassen aan wijzigingen of versieverschillen in jouw Blue Yonder WMS-omgeving. Vraag je interne WMS-beheerder om advies of raadpleeg de data dictionary.
a Voorbeeldquery sql
WITH BaseOrders AS (
SELECT
ordnum AS WarehouseOrder
FROM
ord
WHERE
adddte >= '2023-01-01' -- Placeholder: Set your start date
AND adddte < '2023-07-01' -- Placeholder: Set your end date
AND wh_id = '[Your_Warehouse_ID]' -- Placeholder: Set your warehouse ID
)
-- 1. Warehouse Order Created
SELECT
o.ordnum AS WarehouseOrder,
'Warehouse Order Created' AS ActivityName,
o.adddte AS EventStartTime,
o.adddte AS EventEndTime,
o.add_usr_id AS UserOperatorId,
o.req_shp_dte AS RequestedCompletionDate,
o.prirty AS PriorityLevel,
CAST(o.ordqty AS DECIMAL(18, 4)) AS PlannedQuantity,
NULL AS ActualQuantity,
NULL AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM ord o
WHERE o.ordnum IN (SELECT WarehouseOrder FROM BaseOrders)
UNION ALL
-- 2. Inbound Delivery Notified (ASN Received)
SELECT
a.ordnum AS WarehouseOrder,
'Inbound Delivery Notified' AS ActivityName,
a.adddte AS EventStartTime,
a.adddte AS EventEndTime,
a.add_usr_id AS UserOperatorId,
a.exp_arv_dte AS RequestedCompletionDate,
NULL AS PriorityLevel,
CAST(ad.qtyord AS DECIMAL(18, 4)) AS PlannedQuantity,
NULL AS ActualQuantity,
NULL AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM asnhdr a
JOIN asndtl ad ON a.asnhdr_id = ad.asnhdr_id
WHERE a.ordnum IN (SELECT WarehouseOrder FROM BaseOrders)
UNION ALL
-- 3. Goods Arrived at Dock
SELECT
t.ordnum AS WarehouseOrder,
'Goods Arrived at Dock' AS ActivityName,
t.checkin_dte AS EventStartTime,
t.checkin_dte AS EventEndTime,
t.usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
NULL AS ActualQuantity,
t.dock_loc AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM trk_log t -- Note: Yard management table may vary
WHERE t.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND t.checkin_dte IS NOT NULL
UNION ALL
-- 4. Goods Received and Counted
SELECT
i.ordnum AS WarehouseOrder,
'Goods Received and Counted' AS ActivityName,
i.moddte AS EventStartTime,
i.moddte AS EventEndTime,
i.mod_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
CAST(i.qtyexp AS DECIMAL(18, 4)) AS PlannedQuantity,
CAST(i.qtyrcv AS DECIMAL(18, 4)) AS ActualQuantity,
i.inv_loc AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM rcvlin i -- Receiving Line table
WHERE i.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND i.qtyrcv > 0
UNION ALL
-- 5. Quality Inspection Performed
SELECT
q.ordnum AS WarehouseOrder,
'Quality Inspection Performed' AS ActivityName,
q.insp_dte AS EventStartTime,
q.insp_dte AS EventEndTime,
q.usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
CAST(q.insp_qty AS DECIMAL(18, 4)) AS PlannedQuantity,
CAST(q.act_qty AS DECIMAL(18, 4)) AS ActualQuantity,
q.stoloc AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM qc_log q -- Quality Control log table may vary
WHERE q.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND q.status = 'COMPLETED'
UNION ALL
-- 6. Putaway Task Created
SELECT
w.ordnum AS WarehouseOrder,
'Putaway Task Created' AS ActivityName,
w.adddte AS EventStartTime,
NULL AS EventEndTime,
w.add_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
w.wrkprt AS PriorityLevel,
CAST(w.untqty AS DECIMAL(18, 4)) AS PlannedQuantity,
NULL AS ActualQuantity,
w.frmloc AS StorageLocation, -- From receiving dock
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM wrkque w
WHERE w.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND w.wrktyp = 'PUTAWAY'
UNION ALL
-- 7. Goods Put Away in Storage
SELECT
m.ordnum AS WarehouseOrder,
'Goods Put Away in Storage' AS ActivityName,
m.adddte AS EventStartTime,
m.adddte AS EventEndTime,
m.usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
CAST(m.movqty AS DECIMAL(18, 4)) AS ActualQuantity,
m.toloc AS StorageLocation, -- Destination storage location
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM invmov m -- Inventory Movement table
WHERE m.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND m.trntyp = 'PUTFIN' -- Putaway Finish transaction type
UNION ALL
-- 8. Picking Task Created
SELECT
w.ordnum AS WarehouseOrder,
'Picking Task Created' AS ActivityName,
w.adddte AS EventStartTime,
NULL AS EventEndTime,
w.add_usr_id AS UserOperatorId,
o.req_shp_dte AS RequestedCompletionDate,
w.wrkprt AS PriorityLevel,
CAST(w.untqty AS DECIMAL(18, 4)) AS PlannedQuantity,
NULL AS ActualQuantity,
w.frmloc AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM wrkque w
JOIN ord o ON w.ordnum = o.ordnum
WHERE w.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND w.wrktyp = 'PICK'
UNION ALL
-- 9. Goods Picked from Storage
SELECT
p.ordnum AS WarehouseOrder,
'Goods Picked from Storage' AS ActivityName,
p.moddte AS EventStartTime,
p.moddte AS EventEndTime,
p.mod_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
CAST(p.pckqty AS DECIMAL(18, 4)) AS PlannedQuantity, -- Often planned and actual are the same here
CAST(p.pckqty AS DECIMAL(18, 4)) AS ActualQuantity,
p.pckloc AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM pckwrk p
WHERE p.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND p.wrksts = 'C' -- Status for Completed Pick
UNION ALL
-- 10. Packing Initiated
SELECT
s.ordnum AS WarehouseOrder,
'Packing Initiated' AS ActivityName,
s.moddte AS EventStartTime,
NULL AS EventEndTime,
s.mod_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
NULL AS ActualQuantity,
s.pckstn AS StorageLocation, -- Packing Station
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM ord_status_log s -- Status log table may vary
WHERE s.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND s.ordsta = 'PCK_START'
UNION ALL
-- 11. Goods Packed
SELECT
c.ordnum AS WarehouseOrder,
'Goods Packed' AS ActivityName,
c.moddte AS EventStartTime,
c.moddte AS EventEndTime,
c.mod_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
CAST(c.actqty AS DECIMAL(18, 4)) AS ActualQuantity,
c.pckstn AS StorageLocation, -- Packing Station
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM ship_cntr c -- Shipping Container table
WHERE c.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND c.cntr_sts = 'PACKED'
UNION ALL
-- 12. Staging for Shipment
SELECT
m.ordnum AS WarehouseOrder,
'Staging for Shipment' AS ActivityName,
m.adddte AS EventStartTime,
m.adddte AS EventEndTime,
m.usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
CAST(m.movqty AS DECIMAL(18, 4)) AS ActualQuantity,
m.toloc AS StorageLocation, -- Staging location
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM invmov m
WHERE m.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND m.trntyp = 'STAGEMOV' -- Staging Movement transaction type
UNION ALL
-- 13. Shipment Dispatched
SELECT
l.ordnum AS WarehouseOrder,
'Shipment Dispatched' AS ActivityName,
l.shp_dte AS EventStartTime,
l.shp_dte AS EventEndTime,
l.mod_usr_id AS UserOperatorId,
NULL AS RequestedCompletionDate,
NULL AS PriorityLevel,
NULL AS PlannedQuantity,
CAST(sl.shpqty AS DECIMAL(18, 4)) AS ActualQuantity,
l.wh_id AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM lodhdr l
JOIN ship_line sl ON l.lodnum = sl.lodnum
WHERE l.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND l.lodsts = 'S' -- Shipped status
UNION ALL
-- 14. Warehouse Order Completed
SELECT
o.ordnum AS WarehouseOrder,
'Warehouse Order Completed' AS ActivityName,
o.moddte AS EventStartTime,
o.moddte AS EventEndTime,
o.mod_usr_id AS UserOperatorId,
o.req_shp_dte AS RequestedCompletionDate,
o.prirty AS PriorityLevel,
CAST(o.ordqty AS DECIMAL(18, 4)) AS PlannedQuantity,
CAST(o.shpqty AS DECIMAL(18, 4)) AS ActualQuantity,
NULL AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM ord o
WHERE o.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND o.ordsta = 'C' -- Status for Completed
UNION ALL
-- 15. Warehouse Order Canceled
SELECT
o.ordnum AS WarehouseOrder,
'Warehouse Order Canceled' AS ActivityName,
o.moddte AS EventStartTime,
o.moddte AS EventEndTime,
o.mod_usr_id AS UserOperatorId,
o.req_shp_dte AS RequestedCompletionDate,
o.prirty AS PriorityLevel,
CAST(o.ordqty AS DECIMAL(18, 4)) AS PlannedQuantity,
NULL AS ActualQuantity,
NULL AS StorageLocation,
'Blue Yonder WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM ord o
WHERE o.ordnum IN (SELECT WarehouseOrder FROM BaseOrders) AND o.ordsta = 'X'; -- Status for Canceled Klaar om te beginnen?
Gebruik deze template als startpunt voor process mining en ontdek hoe je magazijnprocessen efficiënter maakt. Begin vandaag nog met het optimaliseren van de materiaalstroom.
Haal vandaag meer uit Blue Yonder WMS
Spoor bottlenecks op, voorkom pickfouten en bereik een voorraadnauwkeurigheid van 99,5%.
Geen creditcard nodig. Je kunt 14 dagen gratis gebruikmaken van de proefperiode.