Uw Inventory Management Data Template
Uw Inventory Management Data Template
- Aanbevolen attributen om vast te leggen
- Belangrijkste activities om te volgen voor proces discovery
- Extractiehandleiding op maat voor SAP S/4HANA
Voorraadbeheer Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Tijdstip Gebeurtenis EventTime | De exacte datum en tijd waarop de voorraadactiviteit in het systeem is vastgelegd. | ||
| Omschrijving Event Time is de timestamp die exact vastlegt wanneer een activiteit plaatsvond. Dit datapunt is essentieel voor het chronologisch ordenen van events om de processtroom voor elke voorraadbatch te reconstrueren. Het dient als basis voor alle tijdgebaseerde process mining-analyses. De nauwkeurigheid van de Event Time is cruciaal voor het berekenen van key performance indicators zoals cyclusduren, doorlooptijden en looptijden. Het maakt de analyse van procesprestaties over verschillende tijdsperioden mogelijk, helpt bij het identificeren wanneer knelpunten optreden, en biedt de feitelijke basis voor het begrijpen van procesvertragingen, zoals de tijd die een batch in kwaliteitsinspectie doorbrengt voordat deze wordt vrijgegeven. Het belang Deze timestamp ordent gebeurtenissen chronologisch en is de basis voor alle duur- en prestatieberekeningen. Vindplaats Dit is doorgaans een combinatie van de boekingsdatum (MKPF-BUDAT) en invoertijd (MKPF-CPUTM) uit de materiaaldocument header tabel MKPF. Voorbeelden 2023-10-26T09:00:00Z2023-11-15T14:35:10Z2024-01-05T23:15:00Z | |||
| Voorraadbatch/Partij InventoryBatchLot | De unieke identificator voor een specifieke hoeveelheid van een product, die dient als case ID voor het volgen van de levenscyclus. | ||
| Omschrijving Het inventaris batch- of lotnummer is de primaire case identifier die alle activiteiten groepeert die gerelateerd zijn aan een specifieke, afzonderlijke hoeveelheid van een product. Dit maakt een complete chronologische weergave mogelijk van de reis van een voorraadhoeveelheid, vanaf de initiële ontvangst in het magazijn, via diverse interne bewegingen en statuswijzigingen, tot de uiteindelijke uitgifte voor verkoop, productie of afvoer. In procesanalyse is dit attribuut fundamenteel. Het stelt u in staat om de end-to-end stroom voor elke batch te traceren, doorlooptijden nauwkeurig te meten, procesvariaties te identificeren en te begrijpen hoe verschillende batches worden behandeld. Het analyseren van processen op batchniveau is cruciaal voor industrieën waar traceerbaarheid, kwaliteitscontrole en beheer van houdbaarheidsdata essentieel zijn, zoals farmacie, voedingsmiddelen en dranken, en chemicaliën. Het belang Dit is de kernidentificator die alle gerelateerde voorraad gebeurtenissen verbindt tot één case, waardoor end-to-end procesanalyse mogelijk wordt. Vindplaats Dit is doorgaans het Batchnummer, te vinden in SAP tabellen zoals MCHA (Batch Master) of MCH1 (Batches) in het veld CHARG. Voorbeelden B001-A452023L202405-XYZ789456123BATCH-05-24 | |||
| Activiteit ActivityName | De naam van de bedrijfsgebeurtenis die plaatsvond op een specifiek punt in het voorraadbeheerproces. | ||
| Omschrijving Het attribuut Het analyseren van activiteiten is de basis van process mining. Het maakt de visualisatie van de processtroom mogelijk, identificatie van frequente en zeldzame paden, detectie van knelpunten waar activiteiten worden vertraagd, en analyse van rework-loops. Door de volgorde en frequentie van activiteiten zoals 'Voorraad afgeschreven' of 'Kwaliteitsinspectie' te begrijpen, kunnen bedrijven gebieden voor procesverbetering en operationele efficiëntie aanwijzen. Het belang Het definieert de processtappen en maakt zo de visualisatie en analyse van de voorraadlevenscyclus mogelijk. Vindplaats Dit is een afgeleid attribuut, vaak gekoppeld van SAP Bewegingstypen (MSEG-BWART) of Transactiecodes (MKPF-TCODE2) naar gebruiksvriendelijke namen. Voorbeelden Goederenontvangst geboektInslagtransfer geboektGoederenuitgifte voor levering geboektVoorraad Afgeschreven | |||
| Gebruikersnaam UserName | Het gebruikers-ID van de persoon die de transactie in SAP heeft uitgevoerd. | ||
| Omschrijving Dit attribuut legt het SAP gebruikers-ID vast van de medewerker die het document heeft geboekt of de activiteit heeft uitgevoerd. Het biedt traceerbaarheid door aan te tonen wie verantwoordelijk is voor specifieke acties binnen het voorraadbeheerproces. Analyse per gebruiker is essentieel voor het begrijpen van prestaties, compliance en trainingsbehoeften. Zo gebruikt het Het belang Het zorgt voor verantwoording en helpt bij het identificeren van gebruikersspecifiek gedrag, trainingsbehoeften of compliance-problemen. Vindplaats Gevonden in de materiaaldocument header tabel MKPF, veld USNAM (Gebruikersnaam). Voorbeelden JSMITHMBROWNWAREHOUSE_OPS | |||
| Hoeveelheid Quantity | De hoeveelheid materiaal die betrokken is bij de voorraadbeweging. | ||
| Omschrijving Dit attribuut vertegenwoordigt de hoeveelheid materiaal die in een bepaalde activiteit is verplaatst, ontvangen, uitgegeven of aangepast. Het wordt vastgelegd in de basiseenheid van meting voor het materiaal. Het analyseren van de hoeveelheid is cruciaal voor het begrijpen van de schaal en impact van voorraadprocessen. Het maakt de creatie van dashboards mogelijk die het volume van afgehandelde goederen visualiseren, zoals 'Goederenuitgifte doorvoer per SKU'. Het wordt ook gebruikt om KPI's te berekenen zoals de 'Voorraad afgeschreven/afgevoerd ratio', wat een kwantitatieve dimensie toevoegt aan de procesanalyse die verder gaat dan alleen het tellen van gebeurtenissen. Het belang Het kwantificeert het volume van materiaal in elke activiteit, waardoor analyse van doorvoer, schrootvolume en aanpassingsimpact mogelijk wordt. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld MENGE (Hoeveelheid). Voorbeelden 10012.55000-10 | |||
| Materiaalnummer MaterialNumber | De unieke identificator voor het product of materiaal dat wordt beheerd. | ||
| Omschrijving Het materiaalnummer, vaak aangeduid als een SKU (Stock Keeping Unit), is de unieke code die aan een specifiek product is toegewezen. Het is een fundamenteel stamdata-element in voorraadbeheer, gebruikt om hoeveelheden, waarden en goederenbewegingen te volgen. Bij process mining maakt analyse op basis van materiaalnummer een productgerichte weergave van voorraadprocessen mogelijk. Het helpt vragen te beantwoorden zoals welke producten de langste kwaliteitsinspectietijden hebben, welke het meest worden afgeschreven, of welke het hoogste volume aan interne transfers hebben. Deze segmentatie is cruciaal voor het identificeren van productspecifieke problemen en het optimaliseren van voorraadstrategieën voor verschillende soorten goederen. Het belang Het maakt productsegmentatie van de analyse mogelijk, waardoor patronen en problemen die specifiek zijn voor bepaalde artikelen aan het licht komen. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld MATNR. Stamdata bevindt zich in tabel MARA. Voorbeelden RM-1001FG-2050-B100-400-A | |||
| Opslaglocatie StorageLocation | Een specifieke locatie binnen een Plant waar voorraad fysiek wordt opgeslagen. | ||
| Omschrijving Een Storage Location (opslaglocatie) is een organisatorische eenheid die differentiatie van materiaalvoorraden binnen een Plant mogelijk maakt. Een plant kan bijvoorbeeld aparte opslaglocaties hebben voor grondstoffen, eindproducten en kwaliteitsinspectievoorraad. Dit attribuut biedt een gedetailleerder niveau van locatie-informatie dan de Plant. Het wordt gebruikt in analyses om bewegingen tussen verschillende voorraadgebieden te begrijpen, zoals de doorlooptijd voor transfers van de ontvangstruimte naar het hoofdmagazijn. Het analyseren van opslagbenutting en bewegingsfrequentie per opslaglocatie helpt bij het optimaliseren van de magazijnindeling en interne logistiek. Het belang Het biedt een gedetailleerd overzicht van de voorraadlocatie binnen een fabriek, wat helpt bij de analyse van interne bewegingen en opslagefficiëntie. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld LGORT (Opslaglocatie). Voorbeelden 0001RM01FG01QI01 | |||
| Redencode beweging MovementReasonCode | Een code die de reden voor een voorraadbeweging specificeert. | ||
| Omschrijving De redencode voor de beweging biedt aanvullende context voor waarom een goederenbeweging werd uitgevoerd. Het wordt vaak gebruikt om ongeplande bewegingen te verklaren, zoals voorraadaanpassingen, retouren of afschrijvingen. Dit attribuut is uiterst waardevol voor hoofdoorzakenanalyse. Voor het Het belang Het verklaart het 'waarom' achter ongeplande voorraadbewegingen, waardoor gerichte hoofdoorzakenanalyse mogelijk wordt. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld GRUND (Reden voor Beweging). Voorbeelden 00010005102 | |||
| Type verplaatsing MovementType | Een driecijferige sleutel in SAP die bepaalt hoe een goederenbeweging wordt geboekt. | ||
| Omschrijving Het Bewegingstype is een kritieke controle sleutel in SAP voorraadbeheer die de kenmerken van een materiaalbeweging bepaalt. Het specificeert welke accounts worden bijgewerkt, hoe de scherm lay-out verschijnt voor de transactie, en welke hoeveelheids- of waardevellen worden bijgewerkt. Bijvoorbeeld, '101' is voor goederenontvangst, '311' is voor een overboeking, en '551' is voor afschrijving. Dit attribuut is vaak de bron voor het afleiden van de gebruiksvriendelijke 'Activiteit' naam. Het analyseren van processen per Bewegingstype maakt een gedetailleerde, technische weergave mogelijk van hoe voorraad stroomt. Het is essentieel voor het valideren van de nauwkeurigheid van de proceskaart en voor het identificeren van specifieke typen transacties die knelpunten of afwijkingen kunnen veroorzaken. Het belang Het biedt een precieze, technische classificatie van elke voorraad gebeurtenis, wat cruciaal is voor het afleiden van activiteiten en voor gedetailleerde analyse. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld BWART (Bewegingstype). Voorbeelden 101311261551601 | |||
| Vestiging Plant | De organisatie-eenheid die een faciliteit vertegenwoordigt waar voorraad zich bevindt, zoals een fabriek of distributiecentrum. | ||
| Omschrijving Een Plant is een centrale organisatorische eenheid in SAP die een productiefaciliteit, een centrale opslaglocatie of een hoofdkantoor kan vertegenwoordigen. Alle voorraad bevindt zich fysiek of logisch binnen een Plant. Analyseren per Plant is fundamenteel voor het vergelijken van procesprestaties op verschillende fysieke locaties. Het helpt vragen te beantwoorden als: 'Welke plant heeft de langste inslagcyclusduur?' of 'Is het percentage voorraadverschillen hoger in Plant A dan in Plant B?'. Deze geografische of organisatorische segmentatie is cruciaal voor het identificeren van locatiespecifieke problemen en het delen van best practices binnen de organisatie. Het belang Het maakt het vergelijken van voorraadprocessen en prestaties tussen verschillende bedrijfslocaties mogelijk. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld WERKS (Plant). Voorbeelden 10001710DE01US01 | |||
| Bronsysteem SourceSystem | Identificeert het bronsysteem waaruit de data is geëxtraheerd. | ||
| Omschrijving Dit attribuut specificeert het registratiesysteem waar de voorraadbeheerdata is ontstaan. In deze context zou het de specifieke SAP S/4HANA-instantie zijn. Deze informatie is cruciaal in omgevingen waar data kan worden opgehaald uit meerdere ERP's, warehouse management systemen of legacy platforms. Hoewel het statisch kan lijken in een single-systeem analyse, wordt het vitaal bij het samenvoegen van data uit verschillende bronnen om een holistisch procesbeeld te creëren. Het helpt bij datagovernance, het oplossen van data-extractieproblemen en het waarborgen van duidelijke data lineage. Het belang Het biedt context over de herkomst van de data, wat essentieel is voor datagovernance en multi-systeemanalyse. Vindplaats Dit is doorgaans een hardgecodeerde waarde die tijdens het data transformatieproces wordt ingesteld om de specifieke SAP S/4HANA-instantie te identificeren. Voorbeelden S4H_PROD_100SAP_S4_FINANCES4HANA_GLOBAL | |||
| Doorlooptijd kwaliteitsinspectie QualityInspectionCycleTime | De duur die een batch in kwaliteitsinspectie doorbrengt voordat deze wordt vrijgegeven. | ||
| Omschrijving Deze berekende metric meet de verstreken tijd tussen de activiteit 'Voorraad geboekt naar kwaliteitsinspectie' en de activiteit 'Voorraad kwaliteitsinspectie vrijgegeven' voor een gegeven voorraadbatch. Het vertegenwoordigt de tijd dat goederen niet beschikbaar zijn voor gebruik vanwege kwaliteitscontroleprocessen. Dit attribuut ondersteunt direct de Het belang Het kwantificeert vertragingen veroorzaakt door kwaliteitscontrole, en benadrukt kansen om de voorraadbeschikbaarheid en processnelheid te verhogen. Vindplaats Dit is een berekend veld, afgeleid door het tijdsverschil te vinden tussen de timestamps van de start- en eindactiviteiten van de kwaliteitsinspectiefase. Voorbeelden 2880086400172800 | |||
| Doorlooptijd orderafhandeling OrderFulfillmentCycleTime | De end-to-end duur vanaf het moment dat picking begint totdat de goederen worden uitgegeven voor levering. | ||
| Omschrijving Dit is een berekende metric die de totale tijd meet vanaf de activiteit 'Picking Initiated' tot de activiteit 'Goods Issue for Delivery Posted'. Het vertegenwoordigt de totale tijd die het magazijn nodig heeft om een klantorder voor te bereiden en te verzenden zodra het proces begint. Dit attribuut is een directe maatstaf voor de Het belang Het meet de snelheid en efficiëntie van het magazijnuitgifteproces, een sleutelfactor voor klanttevredenheid. Vindplaats Dit is een berekend attribuut, afgeleid door het tijdsverschil te berekenen tussen de gebeurtenissen 'Picking Initiated' en 'Goods Issue for Delivery Posted' voor elke batch. Voorbeelden 7200144003600 | |||
| Eenheid van Meting UnitOfMeasure | De eenheid waarin de hoeveelheid materiaal wordt gemeten (bijv. stuks, kilogram). | ||
| Omschrijving De Hoewel vaak gebruikt als een eenvoudige descriptor, is dit attribuut belangrijk voor het waarborgen van de data kwaliteit en voor analyses waarbij verschillende eenheden moeten worden geconverteerd naar een gemeenschappelijke standaard. Bijvoorbeeld, om de totale waarde van afgeschreven voorraad nauwkeurig te berekenen, moeten hoeveelheden in verschillende eenheden worden begrepen en potentieel geconverteerd. Het belang Het biedt essentiële context aan het Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld MEINS (Basiseenheid). Voorbeelden PCKGEAM | |||
| Laatste data-update LastDataUpdate | De tijdstempel die aangeeft wanneer de gegevens voor dit record het laatst zijn ververst vanuit het bronsysteem. | ||
| Omschrijving Dit attribuut registreert de datum en tijd van de meest recente data-extractie of update uit het bronsysteem. Het levert cruciale metadata over de actualiteit van de geanalyseerde informatie. Dit helpt gebruikers te begrijpen of zij naar bijna real-time data of een momentopname van een eerdere periode kijken. In elke analyse is het kennen van de actualiteit van de data essentieel voor het trekken van relevante en accurate conclusies. Dit veld stelt analisten en zakelijke gebruikers in staat om de actualiteit van de data te bevestigen en wordt vaak weergegeven in dashboards om context te bieden aan de gepresenteerde inzichten. Het belang Het informeert gebruikers over de actualiteit van de data, zodat analyses gebaseerd zijn op actuele informatie. Vindplaats Deze Voorbeelden 2024-05-21T08:00:00Z2024-05-20T08:00:00Z | |||
| Materiaaldocumentnummer MaterialDocumentNumber | Het unieke nummer dat het materiaaldocument identificeert dat de goederenbeweging registreert. | ||
| Omschrijving Wanneer een goederenbeweging in SAP wordt geboekt, genereert het systeem een materiaaldocument als bewijs van de beweging. Dit attribute is de unieke identificatie voor dat document. Eén enkel materiaaldocument kan meerdere items of activiteiten bevatten. In process mining is het Materiaaldocumentnummer een belangrijke transactionele identifier die kan worden gebruikt om gerelateerde events te groeperen die samen zijn geboekt. Het is ook essentieel voor auditing en om vanuit de procesanalyse in het bronsysteem in te zoomen om specifieke transacties te onderzoeken. Het belang Het dient als een transactiesleutel voor auditing en maakt het groeperen van samen uitgevoerde activiteiten mogelijk. Vindplaats Gevonden in tabellen MKPF (header) en MSEG (item), veld MBLNR (Nummer van Materiaaldocument). Voorbeelden 490000123450000056784900002345 | |||
| Opslagbak StorageBin | De meest gedetailleerde opslageenheid in een magazijn waar materialen fysiek zijn opgeslagen. | ||
| Omschrijving Een Storage Bin (opslaglocatie) vertegenwoordigt een specifieke coördinaat in een magazijn, zoals een stellinglocatie. Dit detailniveau wordt doorgaans gebruikt wanneer SAP Warehouse Management (WM) of Extended Warehouse Management (EWM) is geïmplementeerd. Voor het 'Warehouse Storage Utilization' dashboard is dit attribuut cruciaal. Het maakt analyse mogelijk van hoe effectief magazijnruimte wordt gebruikt, identificeert potentiële knelpunten in drukke gebieden, en kan inefficiënte inslag- of pickpaden onthullen. Het analyseren van bewegingen tussen opslaglocaties helpt bij het optimaliseren van de magazijnlay-out en het verminderen van reistijd voor operators. Het belang Het levert de meest gedetailleerde locatie data, wat analyse van magazijnruimtegebruik en operationele efficiëntie mogelijk maakt. Vindplaats Indien WM wordt gebruikt, is dit te vinden in transferorder tabellen zoals LTAK/LTAP. Voor voorraaddocumenten kan het in MSEG-LGPBE staan. Raadpleeg de SAP S/4HANA-documentatie. Voorbeelden A-01-01-AB-05-10-CRCV-AREA-01 | |||
| Vervaldatum ExpirationDate | De datum waarop de batch materiaal verloopt en niet langer bruikbaar is. | ||
| Omschrijving De houdbaarheidsdatum (SLED) is een cruciaal onderdeel van de stamdata voor bederfelijke of tijdgevoelige goederen. Deze wordt beheerd op batchniveau en bepaalt wanneer een product niet langer kan worden verkocht of verbruikt. Dit attribuut is essentieel voor het Het belang Het maakt de analyse van verouderde en verlopen voorraad mogelijk, wat helpt om verspilling en financieel verlies te minimaliseren. Vindplaats Gevonden in de batch mastertabel MCH1 of MCHA, veld VFDAT (Houdbaarheidsdatum). Voorbeelden 2024-12-312025-06-302024-09-01 | |||
| Voorraadtype StockType | Geeft de status van de voorraad aan, zoals vrij beschikbaar, in kwaliteitsinspectie of geblokkeerd. | ||
| Omschrijving Voorraadtype categoriseert voorraad op basis van bruikbaarheid. De hoofdtypen zijn vrije voorraad (direct beschikbaar), voorraad in kwaliteitsinspectie (wachtend op kwaliteitscontroles) en geblokkeerde voorraad (niet beschikbaar voor gebruik). Goederenbewegingen omvatten vaak het wijzigen van het voorraadtype. Het volgen van wijzigingen in het voorraadtype is fundamenteel voor het begrijpen van het proces van voorraadbeschikbaarheid. Het ondersteunt direct activiteiten zoals 'Voorraad geboekt naar kwaliteitsinspectie' en 'Voorraadstatus gewijzigd naar geblokkeerd'. Het analyseren van de tijd die in elk voorraadtype wordt doorgebracht, met name 'kwaliteitsinspectie', is cruciaal voor het identificeren van vertragingen die de beschikbaarheid van goederen voor verkoop of productie beïnvloeden. Het belang Het volgt de bruikbaarheidsstatus van de voorraad, wat cruciaal is voor het analyseren van vertragingen in kwaliteitscontroles en voorraadbeschikbaarheid. Vindplaats Gevonden in de materiaaldocument item tabel MSEG, veld INSMK (Voorraadtype). Voorbeelden Vrij gebruikKwaliteitsinspectieGeblokkeerde voorraad | |||
Voorraadbeheer Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Goederenontvangst geboekt | Markeert de initiële ontvangst van een voorraadbatch in het magazijn, meestal van een leverancier of productie. Deze gebeurtenis wordt expliciet vastgelegd in SAP S/4HANA wanneer een materiaaldocument wordt aangemaakt bij ontvangst van de goederen. | ||
| Het belang Dit is de primaire startgebeurtenis voor de voorraadlevenscyclus. Het analyseren van de tijd vanaf deze activiteit tot andere, zoals inslag, is cruciaal voor het meten van de efficiëntie van de ontvangst dock. Vindplaats Vastgelegd in de MATDOC-tabel. Geïdentificeerd door specifieke bewegingstypen (BWART), zoals 101 voor inkooporderontvangsten of 103 voor GR in geblokkeerde voorraad. Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met corresponderende goederenontvangst bewegingstypes. Gebeurtenistype explicit | |||
| Goederenuitgifte voor levering geboekt | Registreert de laatste stap van het uitgaande proces, waarbij het eigendom van de batch wordt overgedragen aan een klant of vervoerder. Dit is een expliciete transactie die de voorraad vermindert en in de boekhouding wordt geboekt. | ||
| Het belang Dit is een belangrijke voltooiingsgebeurtenis voor het orderafhandelingsproces. Het is cruciaal voor het meten van tijdige levering en het berekenen van de totale doorlooptijd van de orderafhandeling. Vindplaats Vastgelegd in de MATDOC-tabel. Geïdentificeerd door het bewegingstype (BWART) voor goederenuitgifte naar een verkooporderlevering, doorgaans 601. Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met bewegingstype 601. Gebeurtenistype explicit | |||
| Goederenuitgifte voor productie geboekt | Vertegenwoordigt de consumptie van een voorraadbatch door een productie- of procesorder. Deze transactie vermindert de voorraad en wijst de materiaalkosten toe aan de productieorder. | ||
| Het belang Dit is een primaire verbruiksgebeurtenis, die het einde van de voorraadlevenscyclus voor componenten markeert. Het is cruciaal voor het analyseren van materiaalbeschikbaarheid voor productie en verbruikspatronen. Vindplaats Vastgelegd in de MATDOC-tabel. Veelal geïdentificeerd door bewegingstypen (BWART) voor goederenuitgifte naar een order, zoals 261. Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met bewegingstype 261. Gebeurtenistype explicit | |||
| Inslagtransfer geboekt | Vertegenwoordigt de fysieke verplaatsing van de batch van een ontvangst- of verzamelgebied naar de uiteindelijke opslaglocatie of -bak. Dit wordt vastgelegd als een overboekingsmateriaaldocument in SAP. | ||
| Het belang Voltooi het inkomende ontvangstproces. De tijd die nodig is om deze activiteit te voltooien, bekend als inslagtijd, is een kritieke KPI voor magazijnefficiëntie. Vindplaats Vastgelegd in de MATDOC-tabel als een overboeking, vaak tussen opslaglocaties (bijv. bewegingstype 311). De specifieke beweging kan variëren op basis van de magazijnstructuur. Vastleggen Geïdentificeerd door transferboeking documenten in MATDOC die voorraad verplaatsen van een interim/ontvangst SLoc naar een finale opslag SLoc. Gebeurtenistype explicit | |||
| Voorraad Afgeschreven | Markeert de definitieve verwijdering van een voorraadbatch, waardoor deze permanent uit de voorraadadministratie wordt verwijderd. Dit gebeurt doorgaans met verlopen, beschadigde of verouderde voorraad. | ||
| Het belang Dit is een eindgebeurtenis die een financieel verlies vertegenwoordigt. Het analyseren van afschrijvingsgebeurtenissen helpt bij het identificeren van problemen met voorraadveroudering, afhandelingsprocedures of vraagvoorspelling. Vindplaats Vastgelegd in de MATDOC-tabel. Geïdentificeerd door bewegingstypen (BWART) voor afschrijving, zoals 551 (van vrije voorraad), 553 (van QI) of 555 (van geblokkeerde voorraad). Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met afboekings bewegingstypes (bijv. 551). Gebeurtenistype explicit | |||
| Voorraad kwaliteitscontrole vrijgegeven | Geeft aan dat een batch de kwaliteitsinspectie heeft doorstaan en nu beschikbaar is voor gebruik of inslag. Dit wordt geregistreerd als een expliciete overboeking van kwaliteitsvoorraad naar een ander voorraadtype, zoals vrije voorraad. | ||
| Het belang Deze mijlpaal markeert de voltooiing van het kwaliteitsproces, waardoor de voorraad beschikbaar komt. Vertragingen hier kunnen aanzienlijke downstream problemen veroorzaken in productie of fulfillment. Vindplaats Vastgelegd in de MATDOC-tabel als een overboeking. Doorgaans geïdentificeerd met bewegingstype (BWART) 321, waarbij voorraad van 'Kwaliteitscontrole' naar 'Vrij gebruik' wordt verplaatst. Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met bewegingstype 321. Gebeurtenistype explicit | |||
| Voorraadcorrectie geboekt | Registreert een wijziging in de voorraadhoeveelheid als gevolg van een fysieke voorraadtelling of andere discrepantie. Deze gebeurtenis past de boekvoorraad expliciet aan om overeen te komen met de fysieke telling. | ||
| Het belang Deze aanpassingen zijn cruciaal voor het handhaven van voorraadnauwkeurigheid. Een hoge frequentie van aanpassingen duidt op onderliggende problemen in voorraadbehandeling, beveiliging of gegevensinvoer. Vindplaats Vastgelegd in de MATDOC-tabel. Geïdentificeerd door fysieke voorraadbewegingstypen (BWART), zoals 701 (voorraadtoename) of 702 (voorraadafname). Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met fysieke voorraadcorrectie bewegingstypes (bijv. 701, 702). Gebeurtenistype explicit | |||
| Batch Status Gewijzigd | Weerspiegelt een wijziging in het batch-masterrecord, zoals het wijzigen van de status van 'Vrij' naar 'Beperkt'. Dit is geen materiaalbeweging, maar een wijziging in masterdata, die wordt gelogd. | ||
| Het belang Wijzigingen in de batchstatus hebben directe invloed op de bruikbaarheid ervan in verkoop of productie. Het analyseren van deze wijzigingen kan problemen aan het licht brengen met verlopende voorraad of kwaliteitscontrole die geen fysieke beweging met zich meebrengen. Vindplaats Afgeleid van wijzigingslogboeken voor de Batch Master tabellen (MCH1, MCHA). De tabellen CDHDR en CDPOS volgen wijzigingen in het batchstatusveld (MCH1-ZUSTD). Vastleggen Afgeleid van wijzigingsdocumenten in CDHDR/CDPOS voor het statusveld in de batch master record (MCH1-ZUSTD). Gebeurtenistype inferred | |||
| Interne voorraadtransfer geboekt | Legt de beweging van een voorraadbatch vast tussen verschillende opslaglocaties of bins binnen dezelfde plant. Dit is een expliciete transactie die een materiaaldocument creëert. | ||
| Het belang Het volgen van interne transfers helpt bij het analyseren van de operationele efficiëntie van magazijnen, het identificeren van onnodige bewegingen en het meten van de doorlooptijd voor voorraadaanvulling tussen locaties. Vindplaats Vastgelegd in de MATDOC-tabel. Veelal geïdentificeerd door bewegingstype (BWART) 311 voor transfers van opslaglocatie naar opslaglocatie. Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met bewegingstypes voor interne voorraadbewegingen (bijv. 311). Gebeurtenistype explicit | |||
| Picken gestart | Markeert de start van het orderafhandelingsproces waarbij een magazijntaak wordt aangemaakt om een batch uit de opslaglocatie te verzamelen. Dit wordt vaak vastgelegd bij het aanmaken van een Transfer Order of Warehouse Task. | ||
| Het belang Deze activiteit is de trigger voor het pickproces. Het analyseren van de tijd tussen deze gebeurtenis en de voltooiing van het picken helpt de efficiëntie van magazijnmedewerkers te meten en vertragingen te identificeren. Vindplaats Dit is doorgaans niet in MATDOC. In systemen met Warehouse Management (WM/EWM) wordt dit afgeleid uit de creatie-timestamp van een Transfer Order (LTAK-tabel) of Warehouse Task. Vastleggen Afgeleid van het creatierecord van een Transfer Order (in WM) of Warehouse Task (in EWM) gekoppeld aan de materiaalbatch. Gebeurtenistype inferred | |||
| Verkoopretour Ontvangen | Legt de retour van een eerder uitgegeven batch door een klant terug in het magazijn vast. Dit is een expliciete transactie die de voorraad verhoogt. | ||
| Het belang Het volgen van retouren is essentieel voor het begrijpen van productkwaliteitsproblemen en klantontevredenheid. Het proces voor het afhandelen en afvoeren van retouren kan ook een bron van inefficiëntie zijn. Vindplaats Vastgelegd in de MATDOC-tabel. Geïdentificeerd door bewegingstypen (BWART) voor verkoopretouren, zoals 651 (naar vrije voorraad) of 653 (naar kwaliteitsinspectie). Vastleggen Vastgelegd vanuit materiaaldocumenten in MATDOC met verkoopretour bewegingstypes (bijv. 651, 653). Gebeurtenistype explicit | |||
| Voorraad geboekt naar kwaliteitsinspectie | Vertegenwoordigt de verplaatsing van een ontvangen batch naar een kwaliteitsinspectiestatus, waardoor deze niet bruikbaar is totdat deze is vrijgegeven. Dit is een expliciete transactie in SAP, waarbij het voorraadtype van de batch wordt gewijzigd. | ||
| Het belang Deze activiteit initieert het kwaliteitsinspectieproces. De duur tussen deze activiteit en de vrijgave van QI is een belangrijke metric voor het begrijpen van kwaliteitsgerelateerde vertragingen. Vindplaats Vastgelegd in de MATDOC-tabel. Dit kan een goederenontvangstbeweging zijn (bijv. 101) met het voorraadtype (INSMK) ingesteld op 'Q' (Kwaliteitsinspectie) of een overboeking (bijv. 322). Vastleggen Geïdentificeerd door materiaaldocumenten in MATDOC die voorraad in het 'Kwaliteitsinspectie' voorraadtype plaatsen. Gebeurtenistype explicit | |||
| Voorraadstatus gewijzigd naar geblokkeerd | Vertegenwoordigt een wijziging in de status van de batch, waardoor deze niet beschikbaar is voor uitgifte, vaak als gevolg van schade, blokkadeverzoeken of andere redenen. Dit is een expliciete overboeking in SAP. | ||
| Het belang Markeert onderbrekingen in de voorraadbeschikbaarheid. Een hoge frequentie van blokkeringsgebeurtenissen kan duiden op problemen met handling, opslagcondities of leverancierskwaliteit. Vindplaats Vastgelegd in de MATDOC-tabel als een overboeking. Gebruikt veelal bewegingstype (BWART) 344 om voorraad van 'Geblokkeerd' naar 'Vrij' te verplaatsen, en 343 om van 'Vrij' naar 'Geblokkeerd' te verplaatsen. Deze activiteit betreft 343. Vastleggen Geïdentificeerd door materiaaldocumenten in MATDOC met bewegingstype 343. Gebeurtenistype explicit | |||
| Voorraadstatus gewijzigd naar vrij | Vertegenwoordigt een wijziging in de status van de batch, waarbij deze wordt vrijgegeven van een geblokkeerde status of kwaliteitsblokkade en beschikbaar wordt gemaakt voor gebruik. Dit wordt vastgelegd als een expliciete overboeking. | ||
| Het belang Deze activiteit markeert de oplossing van een voorraadblokkade. De tijd die de voorraad in een geblokkeerde staat doorbrengt, kan worden geanalyseerd om de oplossingsprocessen te verbeteren. Vindplaats Vastgelegd in de MATDOC-tabel als een overboeking. Bewegingstype (BWART) 344 verplaatst voorraad van 'Geblokkeerd' naar 'Vrij gebruik'. Vastleggen Geïdentificeerd door materiaaldocumenten in MATDOC met bewegingstype 344. Gebeurtenistype explicit | |||
Extractie Guides
Stappen
- Systeemtoegang Vaststellen: Zorg ervoor dat u een gebruiker heeft met de benodigde autorisaties om Core Data Services (CDS) views op te vragen in het SAP S/4HANA-systeem. Dit vereist doorgaans toegang verleend door een systeembeheerder.
- Kies een SQL Client: Selecteer een SQL client tool dat verbinding kan maken met de SAP HANA-database. Veelvoorkomende keuzes zijn SAP HANA Studio, SAP HANA Database Explorer, of tools van derden zoals DBeaver.
- Databaseverbinding Configureren: Maak met uw SQL client een nieuwe databaseverbinding. U hebt de hostnaam van de HANA-database, het poortnummer (doorgaans 3
15) en uw databasegebruikersgegevens nodig. - Bereid de SQL Query voor: Kopieer de complete SQL-query die in de sectie 'query' van dit document wordt verstrekt naar de editor van uw SQL client.
- Stel Query Parameters in: Zoek de placeholder-waarden binnen de query. U moet
I_MaterialDocumentItem.PostingDate BETWEEN 'YYYYMMDD' AND 'YYYYMMDD'vervangen door uw gewenste datumbereik, bijvoorbeeldBETWEEN '20230101' AND '20230630'. Werk ook alle bedrijfs- of plant-specifieke filters bij, zoalsMaterialDocumentItem.Plant IN ('Plant1', 'Plant2'), zodat deze overeenkomen met uw organisatiestructuur. - Voer de Query uit: Voer de gewijzigde SQL-query uit op de S/4HANA-database. De uitvoeringstijd zal variëren afhankelijk van het datumbereik en het volume van de inventarisdata in uw systeem.
- Controleer de data: Zodra de query is voltooid, controleert u de resultaten in uw SQL client om er zeker van te zijn dat deze correct en volledig zijn. Controleer op de aanwezigheid van verschillende activiteiten en de invulling van belangrijke attributen.
- Exporteer de Event Log: Exporteer de gehele resultatenset vanuit uw SQL client naar een CSV-bestand. Zorg ervoor dat de exportinstellingen UTF-8-codering gebruiken om karakterproblemen te voorkomen.
- Voorbereiden op upload: Benoem de kolommen in het CSV-bestand exact zoals gealiased in de query, bijvoorbeeld
InventoryBatchLot,ActivityName,EventTime, enzovoort. Dit bestand is nu klaar om te worden geüpload naar een process mining tool.
Configuratie
- Autorisaties: De gebruiker die de query uitvoert, heeft
SELECT-rechten nodig op de volgende CDS-views:I_MaterialDocumentItem,I_BatchChangeDocumentenI_WarehouseTask. Toegang tot het onderliggende databaseschema waarin deze views zich bevinden, is ook vereist. - Datumbereikfiltering: Het is cruciaal om een datumbereikfilter toe te passen op de velden
PostingDate,ChangeDocumentCreationDateofWarehouseTaskCreationDate. Een typisch bereik voor analyse is 3 tot 12 maanden. Queries voor meerdere jaren kunnen aanzienlijke prestatieproblemen veroorzaken. - Organisatorische filters: Voor betere prestaties en gerichte analyse, voeg
WHERE-clausules toe om te filteren opPlantofCompanyCode. Dit vermindert het datavolume en richt de extractie op relevante bedrijfsonderdelen. - Datavolume: Houd er rekening mee dat inventarisbeheersystemen een hoog datavolume genereren. Een breed datumbereik kan resulteren in miljoenen rijen, wat mogelijk zowel het bronsysteem tijdens extractie als de prestaties van uw clienttool beïnvloedt.
- Extended Warehouse Management (EWM): De activiteit 'Picking Initiated' is gebaseerd op de
I_WarehouseTaskCDS-view, die alleen wordt gevuld als u SAP Extended Warehouse Management gebruikt. Als uw organisatie de oudere Warehouse Management (WM)-module of alleen Inventory Management (IM) gebruikt, wordt deze specifieke activiteit niet geëxtraheerd.
a Voorbeeldquery sql
SELECT
mat_doc.Batch AS "InventoryBatchLot",
CASE
WHEN mat_doc.MovementType = '101' AND mat_doc.InventoryStockType = '2' THEN 'Stock Posted to Quality Inspection'
WHEN mat_doc.MovementType = '101' THEN 'Goods Receipt Posted'
WHEN mat_doc.MovementType = '321' THEN 'Quality Inspection Stock Released'
WHEN mat_doc.MovementType = '311' THEN 'Internal Stock Transfer Posted'
WHEN mat_doc.MovementType = '344' THEN 'Stock Status Changed to Blocked'
WHEN mat_doc.MovementType IN ('343', '322') THEN 'Stock Status Changed to Unrestricted'
WHEN mat_doc.MovementType IN ('701', '702') THEN 'Inventory Adjustment Posted'
WHEN mat_doc.MovementType = '601' THEN 'Goods Issue for Delivery Posted'
WHEN mat_doc.MovementType = '261' THEN 'Goods Issue for Production Posted'
WHEN mat_doc.MovementType IN ('651', '653') THEN 'Sales Return Received'
WHEN mat_doc.MovementType = '551' THEN 'Stock Scrapped'
WHEN mat_doc.MovementType = '313' THEN 'Put-Away Transfer Posted' -- Example for two-step transfers
ELSE 'Unknown Material Movement'
END AS "ActivityName",
TO_TIMESTAMP(mat_doc.PostingDate || LPAD(mat_doc.CreationTime, 6, '0'), 'YYYYMMDDHH24MISS') AS "EventTime",
mat_doc.Material AS "MaterialNumber",
mat_doc.CreatedByUser AS "UserName",
mat_doc.MovementType AS "MovementType",
mat_doc.Plant AS "Plant",
mat_doc.StorageLocation AS "StorageLocation",
mat_doc.QuantityInEntryUnit AS "Quantity",
mat_doc.ReasonForMovement AS "MovementReasonCode"
FROM
I_MaterialDocumentItem AS mat_doc
WHERE
mat_doc.Batch IS NOT NULL AND mat_doc.Batch <> ''
AND mat_doc.PostingDate BETWEEN '20230101' AND '20231231' -- Placeholder: Set your date range
-- AND mat_doc.Plant IN ('Plant1', 'Plant2') -- Placeholder: Add filters for relevant plants
UNION ALL
SELECT
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 3) AS "InventoryBatchLot",
'Batch Status Changed' AS "ActivityName",
change_doc.ChangeDocumentCreationDateTime AS "EventTime",
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 1) AS "MaterialNumber",
change_doc.ChangedByUser AS "UserName",
NULL AS "MovementType",
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 2) AS "Plant",
NULL AS "StorageLocation",
NULL AS "Quantity",
NULL AS "MovementReasonCode"
FROM
I_BatchChangeDocument AS change_doc
WHERE
change_doc.ChangeDocumentTable = 'MCHA' AND change_doc.ChangeDocumentTableFieldName = 'ZUSTD'
AND TO_VARCHAR(change_doc.ChangeDocumentCreationDate) BETWEEN '20230101' AND '20231231' -- Placeholder: Set your date range
UNION ALL
SELECT
wh_task.Batch AS "InventoryBatchLot",
'Picking Initiated' AS "ActivityName",
wh_task.WarehouseTaskCreationDateTime AS "EventTime",
wh_task.Product AS "MaterialNumber",
wh_task.CreatedByUser AS "UserName",
NULL AS "MovementType",
wh_task.Plant AS "Plant",
wh_task.SourceStorageLocation AS "StorageLocation",
wh_task.TargetQuantity AS "Quantity",
NULL AS "MovementReasonCode"
FROM
I_WarehouseTask AS wh_task
WHERE
wh_task.Batch IS NOT NULL AND wh_task.Batch <> ''
AND wh_task.WarehouseProcessType IN ('P210', 'P220') -- Placeholder: Adjust process types based on your picking configuration
AND TO_VARCHAR(wh_task.WarehouseTaskCreationDate) BETWEEN '20230101' AND '20231231'; -- Placeholder: Set your date range Stappen
- Systeemtoegang Vaststellen: Zorg ervoor dat u een gebruiker heeft met de benodigde autorisaties om Core Data Services (CDS) views op te vragen in het SAP S/4HANA-systeem. Dit vereist doorgaans toegang verleend door een systeembeheerder.
- Kies een SQL Client: Selecteer een SQL client tool dat verbinding kan maken met de SAP HANA-database. Veelvoorkomende keuzes zijn SAP HANA Studio, SAP HANA Database Explorer, of tools van derden zoals DBeaver.
- Databaseverbinding Configureren: Maak met uw SQL client een nieuwe databaseverbinding. U hebt de hostnaam van de HANA-database, het poortnummer (doorgaans 3
15) en uw databasegebruikersgegevens nodig. - Bereid de SQL Query voor: Kopieer de complete SQL-query die in de sectie 'query' van dit document wordt verstrekt naar de editor van uw SQL client.
- Stel Query Parameters in: Zoek de placeholder-waarden binnen de query. U moet
I_MaterialDocumentItem.PostingDate BETWEEN 'YYYYMMDD' AND 'YYYYMMDD'vervangen door uw gewenste datumbereik, bijvoorbeeldBETWEEN '20230101' AND '20230630'. Werk ook alle bedrijfs- of plant-specifieke filters bij, zoalsMaterialDocumentItem.Plant IN ('Plant1', 'Plant2'), zodat deze overeenkomen met uw organisatiestructuur. - Voer de Query uit: Voer de gewijzigde SQL-query uit op de S/4HANA-database. De uitvoeringstijd zal variëren afhankelijk van het datumbereik en het volume van de inventarisdata in uw systeem.
- Controleer de data: Zodra de query is voltooid, controleert u de resultaten in uw SQL client om er zeker van te zijn dat deze correct en volledig zijn. Controleer op de aanwezigheid van verschillende activiteiten en de invulling van belangrijke attributen.
- Exporteer de Event Log: Exporteer de gehele resultatenset vanuit uw SQL client naar een CSV-bestand. Zorg ervoor dat de exportinstellingen UTF-8-codering gebruiken om karakterproblemen te voorkomen.
- Voorbereiden op upload: Benoem de kolommen in het CSV-bestand exact zoals gealiased in de query, bijvoorbeeld
InventoryBatchLot,ActivityName,EventTime, enzovoort. Dit bestand is nu klaar om te worden geüpload naar een process mining tool.
Configuratie
- Autorisaties: De gebruiker die de query uitvoert, heeft
SELECT-rechten nodig op de volgende CDS-views:I_MaterialDocumentItem,I_BatchChangeDocumentenI_WarehouseTask. Toegang tot het onderliggende databaseschema waarin deze views zich bevinden, is ook vereist. - Datumbereikfiltering: Het is cruciaal om een datumbereikfilter toe te passen op de velden
PostingDate,ChangeDocumentCreationDateofWarehouseTaskCreationDate. Een typisch bereik voor analyse is 3 tot 12 maanden. Queries voor meerdere jaren kunnen aanzienlijke prestatieproblemen veroorzaken. - Organisatorische filters: Voor betere prestaties en gerichte analyse, voeg
WHERE-clausules toe om te filteren opPlantofCompanyCode. Dit vermindert het datavolume en richt de extractie op relevante bedrijfsonderdelen. - Datavolume: Houd er rekening mee dat inventarisbeheersystemen een hoog datavolume genereren. Een breed datumbereik kan resulteren in miljoenen rijen, wat mogelijk zowel het bronsysteem tijdens extractie als de prestaties van uw clienttool beïnvloedt.
- Extended Warehouse Management (EWM): De activiteit 'Picking Initiated' is gebaseerd op de
I_WarehouseTaskCDS-view, die alleen wordt gevuld als u SAP Extended Warehouse Management gebruikt. Als uw organisatie de oudere Warehouse Management (WM)-module of alleen Inventory Management (IM) gebruikt, wordt deze specifieke activiteit niet geëxtraheerd.
a Voorbeeldquery sql
SELECT
mat_doc.Batch AS "InventoryBatchLot",
CASE
WHEN mat_doc.MovementType = '101' AND mat_doc.InventoryStockType = '2' THEN 'Stock Posted to Quality Inspection'
WHEN mat_doc.MovementType = '101' THEN 'Goods Receipt Posted'
WHEN mat_doc.MovementType = '321' THEN 'Quality Inspection Stock Released'
WHEN mat_doc.MovementType = '311' THEN 'Internal Stock Transfer Posted'
WHEN mat_doc.MovementType = '344' THEN 'Stock Status Changed to Blocked'
WHEN mat_doc.MovementType IN ('343', '322') THEN 'Stock Status Changed to Unrestricted'
WHEN mat_doc.MovementType IN ('701', '702') THEN 'Inventory Adjustment Posted'
WHEN mat_doc.MovementType = '601' THEN 'Goods Issue for Delivery Posted'
WHEN mat_doc.MovementType = '261' THEN 'Goods Issue for Production Posted'
WHEN mat_doc.MovementType IN ('651', '653') THEN 'Sales Return Received'
WHEN mat_doc.MovementType = '551' THEN 'Stock Scrapped'
WHEN mat_doc.MovementType = '313' THEN 'Put-Away Transfer Posted' -- Example for two-step transfers
ELSE 'Unknown Material Movement'
END AS "ActivityName",
TO_TIMESTAMP(mat_doc.PostingDate || LPAD(mat_doc.CreationTime, 6, '0'), 'YYYYMMDDHH24MISS') AS "EventTime",
mat_doc.Material AS "MaterialNumber",
mat_doc.CreatedByUser AS "UserName",
mat_doc.MovementType AS "MovementType",
mat_doc.Plant AS "Plant",
mat_doc.StorageLocation AS "StorageLocation",
mat_doc.QuantityInEntryUnit AS "Quantity",
mat_doc.ReasonForMovement AS "MovementReasonCode"
FROM
I_MaterialDocumentItem AS mat_doc
WHERE
mat_doc.Batch IS NOT NULL AND mat_doc.Batch <> ''
AND mat_doc.PostingDate BETWEEN '20230101' AND '20231231' -- Placeholder: Set your date range
-- AND mat_doc.Plant IN ('Plant1', 'Plant2') -- Placeholder: Add filters for relevant plants
UNION ALL
SELECT
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 3) AS "InventoryBatchLot",
'Batch Status Changed' AS "ActivityName",
change_doc.ChangeDocumentCreationDateTime AS "EventTime",
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 1) AS "MaterialNumber",
change_doc.ChangedByUser AS "UserName",
NULL AS "MovementType",
SPLIT_PART(change_doc.ChangeableObjectDescription, '/', 2) AS "Plant",
NULL AS "StorageLocation",
NULL AS "Quantity",
NULL AS "MovementReasonCode"
FROM
I_BatchChangeDocument AS change_doc
WHERE
change_doc.ChangeDocumentTable = 'MCHA' AND change_doc.ChangeDocumentTableFieldName = 'ZUSTD'
AND TO_VARCHAR(change_doc.ChangeDocumentCreationDate) BETWEEN '20230101' AND '20231231' -- Placeholder: Set your date range
UNION ALL
SELECT
wh_task.Batch AS "InventoryBatchLot",
'Picking Initiated' AS "ActivityName",
wh_task.WarehouseTaskCreationDateTime AS "EventTime",
wh_task.Product AS "MaterialNumber",
wh_task.CreatedByUser AS "UserName",
NULL AS "MovementType",
wh_task.Plant AS "Plant",
wh_task.SourceStorageLocation AS "StorageLocation",
wh_task.TargetQuantity AS "Quantity",
NULL AS "MovementReasonCode"
FROM
I_WarehouseTask AS wh_task
WHERE
wh_task.Batch IS NOT NULL AND wh_task.Batch <> ''
AND wh_task.WarehouseProcessType IN ('P210', 'P220') -- Placeholder: Adjust process types based on your picking configuration
AND TO_VARCHAR(wh_task.WarehouseTaskCreationDate) BETWEEN '20230101' AND '20231231'; -- Placeholder: Set your date range Stappen
- Toegang tot de ABAP Editor: Log in op uw SAP S/4HANA-systeem. Open de ABAP Editor met transactiecode
SE38. - Maak een nieuw programma: Voer een naam in voor het nieuwe programma in het veld 'Programma', bijvoorbeeld
Z_PM_INVENTORY_EXTRACT, en klik op de knop 'Maken'. Geef een beschrijvende titel op, stel het 'Type' in op 'Uitvoerbaar programma' en sla het op in een package. - Definieer programma parameters: Definieer in de programma-editor het selectiescherm dat zal dienen als gebruikersinterface voor de extractie. Dit stelt gebruikers in staat parameters zoals het datumbereik en de plant voor de data-extractie te specificeren.
- Implementeer de extractielogica: Kopieer de volledige ABAP-code die wordt geleverd in de sectie 'Query' en plak deze in de ABAP Editor. Deze code is ontworpen om data te selecteren voor alle 14 vereiste inventarisactiviteiten uit verschillende SAP-tabellen.
- Begrijp de kernlogica: Het programma werkt door data te selecteren voor elke afzonderlijke inventarisactiviteit uit de brontabellen, zoals
MKPFenMSEGvoor materiaalbewegingen ofCDHDRenCDPOSvoor stamdatawijzigingen. Elke selectie wordt vervolgens gecombineerd metUNION ALLin één interne tabel die de event log vertegenwoordigt. - Configureer de bestandsoutput: Het laatste deel van de code verwerkt het schrijven van de geconsolideerde data uit de interne tabel naar een bestand. Het gebruikt de
OPEN DATASET-instructie om een bestand te creëren op de SAP-applicatieserver. U moet een geldig serverpad opgeven waar de SAP-systeemgebruiker schrijfrechten heeft. - Voer het programma uit: Sla het ABAP-programma op en activeer het (Ctrl+F3). Voer het uit door op F8 te drukken. Voer op het selectiescherm het gewenste datumbereik en eventuele andere relevante filters in, zoals Plant of Bedrijfscode.
- Draai als een achtergrondtaak: Voor grote datavolumes is het cruciaal om het programma als een achtergrondtaak uit te voeren om sessietime-outs te voorkomen. Ga vanaf het uitvoerscherm (F8) naar het menu
Programma -> Uitvoeren op de achtergrond. Plan de taak om buiten piekuren uit te voeren. - Haal het uitvoerbestand op: Zodra de taak is voltooid, zoekt u het uitvoerbestand op de SAP-applicatieserver. Gebruik transactiecode
AL11om door de servermappen te bladeren en uw bestand te vinden. Gebruik transactieCG3Yom het bestand van de applicatieserver naar uw lokale computer te downloaden. - Voorbereiden op upload: Open het gedownloade bestand in een teksteditor of spreadsheetsoftware. Zorg ervoor dat het is geformatteerd als een CSV-bestand met een headerrij, met een komma als scheidingsteken en dubbele aanhalingstekens als tekstbegrenzer. Controleer of de kolomnamen overeenkomen met de vereisten voordat u uploadt naar de process mining tool.
Configuratie
- Boekingsdatumbereik: Dit is de meest kritieke parameter. We raden aan data in beheersbare batches, zoals 3-6 maanden per keer, te extraheren om goede prestaties te garanderen en systeemtime-outs te voorkomen.
- Plantfilter: Het is sterk aan te raden te filteren op één of meer specifieke Plants (
WERKS). Het gelijktijdig uitvoeren van de extractie voor alle plants kan extreem resource-intensief zijn. - Bedrijfscodefilter: U kunt een optioneel filter voor Bedrijfscode (
BUKRS) toevoegen om de datareikwijdte verder te beperken als uw organisatie met meerdere bedrijfscodes binnen hetzelfde systeem werkt. - Bestandspad applicatieserver: Het ABAP-programma vereist een vooraf gedefinieerd, geldig directorystructuurpad op de SAP-applicatieserver. Zorg ervoor dat de SAP-systeemgebruiker (
SY-UNAME) de benodigde OS-niveau machtigingen heeft om bestanden naar deze directory te schrijven. - Autorisaties: De gebruiker die deze extractie uitvoert, heeft autorisaties nodig voor transactie
SE38(om het programma te creëren en uit te voeren), display-toegang tot tabellenMKPF,MSEG,MCH1,CDHDR,CDPOS,LTAKenLTAP, en de mogelijkheid om achtergrondtaken (SM36/SM37) te plannen.
a Voorbeeldquery abap
REPORT Z_PM_INVENTORY_EXTRACT.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_budat FOR sy-datum OBLIGATORY.
SELECT-OPTIONS: s_werks FOR mseg-werks.
PARAMETERS: p_fpath TYPE string DEFAULT '/usr/sap/trans/tmp/inventory_log.csv' OBLIGATORY.
" ====================================================================
" DATA STRUCTURES
" ====================================================================
TYPES: BEGIN OF ty_event_log,
InventoryBatchLot TYPE charg,
ActivityName TYPE string,
EventTime TYPE string,
MaterialNumber TYPE matnr,
UserName TYPE xubname,
MovementType TYPE bwart,
Plant TYPE werks_d,
StorageLocation TYPE lgort_d,
Quantity TYPE menge_d,
MovementReasonCode TYPE grund,
END OF ty_event_log.
DATA: lt_event_log TYPE TABLE OF ty_event_log.
" ====================================================================
" DATA SELECTION
" ====================================================================
START-OF-SELECTION.
SELECT
mseg~charg AS InventoryBatchLot,
'Goods Receipt Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart IN ('101', '103', '105', '501', '521', '561')
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
CASE mseg~shkzg
WHEN 'H' THEN 'Stock Posted to Quality Inspection'
WHEN 'S' THEN 'Quality Inspection Stock Released'
END AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart = '321' " For QI to Unrestricted
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Put-Away Transfer Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart = '311' AND mseg~shkzg = 'H' " Assume put-away is the credit side
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Internal Stock Transfer Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart IN ('301', '311', '313', '315')
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
CASE mseg~bwart
WHEN '343' THEN 'Stock Status Changed to Blocked'
WHEN '344' THEN 'Stock Status Changed to Unrestricted'
END AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart IN ('343', '344')
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Inventory Adjustment Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart IN ('701', '702', '711', '712')
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Goods Issue for Delivery Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart = '601'
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Goods Issue for Production Posted' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart = '261'
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Sales Return Received' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart IN ('651', '653')
UNION ALL
SELECT
mseg~charg AS InventoryBatchLot,
'Stock Scrapped' AS ActivityName,
CONCAT( mkpf~cpudt, mkpf~cputm ) AS EventTime,
mseg~matnr AS MaterialNumber,
mkpf~usnam AS UserName,
mseg~bwart AS MovementType,
mseg~werks AS Plant,
mseg~lgort AS StorageLocation,
mseg~menge AS Quantity,
mseg~grund AS MovementReasonCode
FROM mseg
JOIN mkpf ON mkpf~mblnr = mseg~mblnr AND mkpf~mjahr = mseg~mjahr
WHERE mkpf~budat IN s_budat
AND mseg~werks IN s_werks
AND mseg~charg IS NOT NULL AND mseg~charg <> ''
AND mseg~bwart = '551'
UNION ALL
SELECT
ltap~charg AS InventoryBatchLot,
'Picking Initiated' AS ActivityName,
CONCAT( ltak~bdatu, ltak~bzeit ) AS EventTime,
ltap~matnr AS MaterialNumber,
ltak~bname AS UserName,
ltak~bwart AS MovementType,
ltap~werks AS Plant,
ltap~lgort AS StorageLocation,
ltap~nista AS Quantity,
'' AS MovementReasonCode
FROM ltap
JOIN ltak ON ltak~tanum = ltap~tanum
WHERE ltak~bdatu IN s_budat
AND ltap~werks IN s_werks
AND ltap~charg IS NOT NULL AND ltap~charg <> ''
UNION ALL
SELECT
SUBSTRING( cdhdr~objectid, 5, 18 ) AS InventoryBatchLot, " Object ID for BATCH is MATNR+WERKS+CHARG
'Batch Status Changed' AS ActivityName,
CONCAT( cdhdr~udate, cdhdr~utime ) AS EventTime,
SUBSTRING( cdhdr~objectid, 1, 4 ) AS MaterialNumber,
cdhdr~username AS UserName,
'' AS MovementType,
'' AS Plant,
'' AS StorageLocation,
0 AS Quantity,
'' AS MovementReasonCode
FROM cdhdr
JOIN cdpos ON cdpos~objectclas = cdhdr~objectclas
AND cdpos~objectid = cdhdr~objectid
AND cdpos~changenr = cdhdr~changenr
WHERE cdhdr~udate IN s_budat
AND cdhdr~objectclas = 'BATCH'
AND cdpos~tabname = 'MCH1'
AND cdpos~fname = 'ZUSTD'
INTO TABLE @lt_event_log.
" ====================================================================
" WRITE OUTPUT FILE
" ====================================================================
DATA: lv_string TYPE string.
DATA: lo_conv TYPE REF TO cl_abap_conv_out_ce.
lo_conv = cl_abap_conv_out_ce=>create( encoding = 'UTF-8' ).
OPEN DATASET p_fpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc <> 0.
MESSAGE 'Error opening file.' TYPE 'E'.
RETURN.
ENDIF.
" Write Header
lv_string = 'InventoryBatchLot,ActivityName,EventTime,MaterialNumber,UserName,MovementType,Plant,StorageLocation,Quantity,MovementReasonCode'.
TRANSFER lv_string TO p_fpath.
" Write Data
LOOP AT lt_event_log ASSIGNING FIELD-SYMBOL(<fs_log>).
CONCATENATE
<fs_log>-InventoryBatchLot
<fs_log>-ActivityName
<fs_log>-EventTime
<fs_log>-MaterialNumber
<fs_log>-UserName
<fs_log>-MovementType
<fs_log>-Plant
<fs_log>-StorageLocation
<fs_log>-Quantity
<fs_log>-MovementReasonCode
INTO lv_string
SEPARATED BY ','.
TRANSFER lv_string TO p_fpath.
ENDLOOP.
CLOSE DATASET p_fpath.
WRITE: 'Extraction complete. File written to:', p_fpath.