Uw Record to report - Periodeafsluiting & Reconciliatie datatemplate
Uw Record to report - Periodeafsluiting & Reconciliatie datatemplate
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Richtlijnen voor data-extractie
Record to report - Attributen Periodeafsluiting & Reconciliatie
| Naam | Omschrijving | ||
|---|---|---|---|
| Financiële periode FinancialPeriod | Een unieke kenmerk voor de financiële rapportagecyclus, doorgaans een combinatie van het fiscale jaar en de boekingsperiode. | ||
| Omschrijving De financiële periode dient als de primaire case kenmerk, die alle activiteiten groepeert die gerelateerd zijn aan het afsluiten en reconciliëren van accounts voor die specifieke rapportagecyclus, zoals '2023-12' voor december 2023. Dit maakt een grondige analyse van het gehele periodeafsluitingsproces van begin tot eind voor elke afzonderlijke periode mogelijk. In analyse maakt dit het mogelijk om de end-to-end doorlooptijd voor elke afsluiting te volgen, de prestaties tussen verschillende periodes te vergelijken, en trends of afwijkingen te vinden. Door elke financiële periode als een unieke case te definiëren, is het mogelijk om de efficiëntie, knelpunten en variaties in het afsluitingsproces over tijd te visualiseren en te meten. Het belang Het is de essentiële case kenmerk die de analyse kadert, waardoor periode-op-periodevergelijkingen van afsluitcyclustijden, workloads en proces-compliance mogelijk zijn. Vindplaats Dit attribuut wordt doorgaans afgeleid door het boekjaar (GJAHR) en de boekingsperiode (MONAT) uit financiële documentkopteksten te concateneren, bijvoorbeeld uit de BKPF-tabel. Voorbeelden 2023-122024-032023-Q4 | |||
| Activiteit ActivityName | De naam van de specifieke bedrijfs-gebeurtenis of taak die is uitgevoerd tijdens het periodeafsluitingsproces. | ||
| Omschrijving Dit attribuut registreert de afzonderlijke stappen die binnen de Record to report-cyclus zijn ondernomen, zoals 'Correctiejournaalpost geboekt' of 'Financiële overzichten gegenereerd'. Dit vormt de basis van de proceskaart, en toont de reeks gebeurtenissen die de periodeafsluiting vormen. Het analyseren van activiteiten vormt de basis voor process mining. Het helpt de processtroom te visualiseren, de volgorde van taken te vinden, procesvariaties te bekijken en de frequentie en duur van elke stap te meten. Dit is belangrijk voor het opsporen van knelpunten, niet-standaard procespaden en kansen voor standaardisatie of automatisering. Het belang Dit attribuut is verplicht voor het construeren van de proceskaart, waardoor de visualisatie en analyse van de volgorde van taken in de periodeafsluiting mogelijk is. Vindplaats Dit is afgeleid van een combinatie van SAP-transactiecodes (TCODE), documenttypes (BLART), of specifieke programma-uitvoeringen (bijv. FAGL_FCV voor vreemde valuta waardering). Voorbeelden Corrigerende Journaalboekingen GeboektAccount Reconciliation StartedPeriode Afgesloten Voor Boekingen | |||
| Bronsysteem SourceSystem | De identificatie van het bronsysteem waaruit de `data` is opgehaald. | ||
| Omschrijving Dit attribuut specificeert de herkomst van de gebeurtenis data, zoals de specifieke SAP ECC instantienaam of ID. In organisaties met meerdere ERP's of financiële systemen is dit veld belangrijk voor het onderscheiden van data uit verschillende bronnen. Zelfs in een single-system landschap dient het als een belangrijk stuk metadata voor data governance, auditing en probleemoplossing. Het bevestigt de herkomst van de data, wat belangrijk is voor het opbouwen van vertrouwen in de analyse en het waarborgen van duidelijke data lineage. Het belang Biedt benodigde data lineage, bevestigt de herkomst van de data voor governance, en is belangrijk in omgevingen met meerdere systemen om processen te onderscheiden. Vindplaats Dit is typically a static waarde added during the data-extractieprocess, identifying the specific SAP client and system ID (e.g., from table T000). Voorbeelden ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| TijdsTip Gebeurtenis EventTime | De timestamp die aangeeft wanneer een activiteit of gebeurtenis heeft plaatsgevonden. | ||
| Omschrijving De Event Time geeft de precieze datum en tijd voor elke activiteit in het proces, en dient als de chronologische basis voor de analyse. Het is doorgaans een combinatie van de aanmaakdatum en -tijd van het document. Deze timestamp is belangrijk voor het correct ordenen van gebeurtenissen om de processtroom te reconstrueren. Het wordt gebruikt om alle op duur gebaseerde meetwaarden te berekenen, inclusief doorlooptijden tussen activiteiten, wachttijden en de totale duur van de periodeafsluiting. Het analyseren van tijdstempels helpt bij het vinden van vertragingen en het begrijpen van de planning en tijdsverloop van de werkzaamheden. Het belang Als verplicht attribuut biedt het de chronologische volgorde van gebeurtenissen, wat nodig is voor het berekenen van cyclustijden en het bekijken van procesknelpunten. Vindplaats Dit is doorgaans afkomstig van de documentboekingsdatum (CPUDT) en boekingstijd (CPUTM) in de BKPF-tabel voor financiële documenten. Voorbeelden 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Tijdstip van extractie LastDataUpdate | De timestamp waarop de data voor het voor het laatst is bijgewerkt of opgehaald uit het bronsysteem. | ||
| Omschrijving Dit attribuut geeft de relevantie van de geanalyseerde data aan. Het toont de datum en tijd waarop de data pijplijn voor het laatst is uitgevoerd, wat context biedt voor de recentheid van de procesinzichten. Voor dashboards, met name die de real-time voortgang volgen, is deze timestamp van belangrijk belang voor gebruikers om te begrijpen of ze naar up-to-the-minute Informatie of data van een voorgaande dag kijken. Het beheert gebruikersverwachtingen en is belangrijk voor een correcte interpretatie van de analyse. Het belang Informeert gebruikers over de relevantie van de data, wat belangrijk is om ervoor te zorgen dat analyses en dashboards tijdig en relevant zijn. Vindplaats Deze timestamp wordt gegenereerd en toegevoegd door de data-extractie- of ETL-tool aan het einde van elk dataloadproces. Voorbeelden 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Bedrag In Lokale Valuta DMBTR | De financiële waarde van een transacpakketegelitem, uitgedrukt in de lokale valuta van de bedrijfscode. | ||
| Omschrijving Dit attribuut vertegenwoordigt de financiële waarde geassocieerd met een financiële boeking. Het is de basis kwantitatieve maatstaf van de impact van een transactie op het grootboek. Het analyseren van het bedrag is belangrijk voor het prioriteren van problemen en het begrijpen van financieel risico. Het 'Adjusting Entries Volume Analysis' dashboard wordt bijvoorbeeld veel krachtiger wanneer het onderscheid kan maken tussen een groot volume aan correcties met lage waarde en een laag volume aan correcties met hoogwaardige. Het helpt de aandacht te richten op transacties die financieel materieel zijn. Het belang Kwantificeert de financiële impact van transacties, waardoor analyse op basis van materialiteit mogelijk is, zoals het vinden van waardevolle correctieboekingen. Vindplaats Beschikbaar in de documentregel-tabel, BSEG (DMBTR). Voorbeelden 1500.75-25000.00123456.00 | |||
| Bedrijfscode BUKRS | De onderdeel die een juridische entiteit vertegenwoordigt waarvoor financiële overzichten worden gegenereerd. | ||
| Omschrijving De bedrijfscode is een fundamentele onderdeel in SAP Financials. Het vertegenwoordigt een onafhankelijke onderneming met een eigen set van gebalanceerde boeken. Alle financiële transacties worden geboekt op bedrijfscodeniveau. In process mining is filteren op bedrijfscode belangrijk voor het vergelijken van het periodeafsluitingsproces tussen verschillende juridische entiteiten binnen een onderneming. Dit maakt het mogelijk om best practices in goed presterende entiteiten te vinden en entiteiten aan te wijzen die worstelen met vertragingen, hoge correctievolumes of procesafwijkingen. Het is een sleuteldimensie voor het segmenteren van de analyse. Het belang Maakt de vergelijking van period close prestaties en compliance mogelijk tussen verschillende juridische entiteiten, wat belangrijk is voor financiële analyse op groepsniveau. Vindplaats Dit veld is beschikbaar in bijna alle financiële documenttabellen in SAP, voornamelijk BKPF (Header) en BSEG (Line Item). Voorbeelden 10002000US01DE01 | |||
| Documentnummer BELNR | De unieke ID voor een boekingsdocument binnen een boekjaar en bedrijfscode. | ||
| Omschrijving Het boekingsdocumentnummer is de primary key voor financiële boekingen in SAP. Elk journaalpost, factuur of betalingsdocument krijgt een uniek nummer toegewezen. Hoewel doorgaans niet gebruikt voor procesanalyse op hoog niveau, is het documentnummer zeer waardevol voor drill-down mogelijkheden. Vanaf een process mining dashboard kunnen analysesten het documentnummer gebruiken om direct terug te navigeren naar de specifieke transactie in SAP voor gedetailleerd onderzoek van afwijkingen, zoals een grote correctieboeking of een vertraagd reconciliatie-item. Het biedt een directe link van het inzicht naar de brontransactie. Het belang Biedt een directe link naar de brontransactie in SAP, wat gedetailleerde drill-down analyse vanuit de procesweergave naar specifieke boekhoudkundige entries mogelijk maakt. Vindplaats Te vinden in de BKPF-tabel (BELNR) als de primary key. Voorbeelden 100000456719000001233000008901 | |||
| Documenttype BLART | Een code die verschillende typen boekingsdocumenten classificeert. | ||
| Omschrijving Het documenttype wordt in SAP gebruikt om te onderscheiden tussen diverse bedrijfstransacties, zoals leveranciersfacturen (KR), klantbetalingen (DZ) en grootboekboekingen (SA). Het controleert ook eigenschappen zoals het documentnummerseries. Voor analyse van de periodeafsluiting is het documenttype een krachtig filter. Het kan worden gebruikt om specifieke soorten activiteiten te isoleren, zoals opboekingen, voorzieningen of omkeringsboekingen. Dit helpt bij het analyseren van het volume en de financiële impact van verschillende afsluitingsgerelateerde transacties en kan worden gebruikt om specifieke activiteiten in het procesmodel te definiëren. Het belang Helpt bij het classificeren en filteren van transacties, waardoor het mogelijk wordt om specifieke activiteiten zoals overlopende posten, terugboekingen of intercompany-boekingen te isoleren en te analyseren. Vindplaats Te vinden in de documentkopteksttabel, BKPF (BLART). Voorbeelden SAABKR | |||
| Grootboekrekening HKONT | Het grootboekrekeningnummer waarnaar een regelitem wordt geboekt. | ||
| Omschrijving De grootboekrekening (GL Account) is een kernstamdata-element in finance dat transacties classificeert. Elke financiële boeking wordt toegewezen aan één of meerdere grootboekrekeningen. In de context van de periodeafsluiting is het analyseren van activiteiten per grootboekrekening belangrijk voor de dashboards 'Account Reconciliation Bottlenecks' en 'Adjusting Entries Volume Analysis'. Het helpt te vinden welke rekeningen het moeilijkst te reconciliëren zijn, welke de meeste aanpassingen vereisen, en waar het risico op materiële afwijkingen het hoogst kan zijn. Deze focus stelt teams in staat hun inspanningen te prioriteren op problematische rekeningen. Het belang Maakt gerichte analyse van reconciliaties en aanpassingsboekingen mogelijk, wat helpt bij het vinden van problematische accounts die vertragingen veroorzaken of frequente correcties vereisen. Vindplaats Beschikbaar in de financiële documentregel-tabel, BSEG (HKONT). Voorbeelden 113100400500750000 | |||
| Journaalboekingentype JournalEntryType | Een classificatie van journaalboekingen, zoals 'Standaard', 'Adjusting', 'Accrual', of 'Reversal'. | ||
| Omschrijving Dit is een afgeleid attribuut dat financiële documenten categoriseert op basis van hun bedrijfsdoel binnen het afsluitingsproces. Het wordt vaak bepaald door een combinatie van documenttype (BLART), omkeringsreden (STGRD), of specifieke grootboekrekeningen die worden gebruikt. Deze classificatie is onmisbaar voor het 'Adjusting Entries Volume Analysis' dashboard en gerelateerde KPI's. Door expliciet aanpassings- of opboekingsboekingen te vinden, kunnen analysesten hun volume en waarde meten, trends over tijd volgen en de grondoorzaken van hun noodzaak onderzoeken. Het helpt routine operationele boekingen te onderscheiden van einde-periode aanpassingen. Het belang Categoriseert boekingen voor gerichte analyse, waardoor het mogelijk is om belangrijke boekingstypen zoals aanpassingen en accruals te volgen en te meten, welke indicatoren zijn voor procesgezondheid. Vindplaats Dit is een afgeleid veld. Logica moet worden gedefinieerd op basis van bedrijfsregels, doorgaans met behulp van velden zoals Document Type (BLART) uit BKPF. Voorbeelden CorrigerendAccrualTerugboekingStandaard | |||
| Verantwoordelijke Gebruiker USNAM | De SAP-gebruikers-ID van de persoon die de transactie heeft aangemaakt of uitgevoerd. | ||
| Omschrijving Dit veld registreert de gebruiker die een document heeft geboekt, een rapport heeft uitgevoerd of een afsluitingsgerelateerd programma heeft gestart. Het identificeert de persoon die verantwoordelijk is voor een bepaalde activiteit. Analyseren per gebruiker is belangrijk voor het begrijpen van de werkbelastingverdeling, het vinden van trainingsbehoeften en het onderzoeken van procesafwijkingen. Dashboards die activiteiten per gebruiker tonen, kunnen overbelaste teamleden of individuen die niet-standaard procedures volgen, benadrukken. Het helpt ook bij prestatiebeheer en toewijzing van middelen binnen het finance-team. Het belang Maakt analyse mogelijk van werklastverdeling, teamprestaties en de identificatie van procesafwijkingen gekoppeld aan specifieke individuen. Vindplaats Beschikbaar in de BKPF-tabel (USNAM) voor het aanmaken van documenten. Voor batchjobs is het te vinden in TBTCO (SDLUNAME). Voorbeelden JSMITHRDOEFIN_ADMIN | |||
| Afdeling Department | De functionele afdeling of kostenplaats die verantwoordelijk is voor de activiteit of transactie. | ||
| Omschrijving Dit attribuut identificeert de bedrijfsafdeling, zoals 'Finance', 'Sales' of 'Logistics', die aan een transactie is gekoppeld. Dit wordt vaak afgeleid van de kostenplaats stamdata die gekoppeld is aan een boeking of de stamdata van de gebruiker. Analyseren per afdeling ondersteunt het 'Close Team Workload Distribution' dashboard. Het helpt te begrijpen hoe verschillende bedrijfsfuncties bijdragen aan de workload aan het einde van de periode, met name in termen van het initiëren van transacties die later aanpassingen of reconciliaties kunnen vereisen. Het kan gebieden buiten het kern finance-team belichten die impact hebben op het afsluitingsproces. Het belang Helpt bij het analyseren van workload en procesnaleving binnen verschillende bedrijfsfuncties, en onthult hoe diverse afdelingen de efficiëntie van de financiële afsluiting beïnvloeden. Vindplaats Vaak afgeleid van het Kostenplaats (KOSTL) in BSEG of van de HR-stamdata van de verantwoordelijke gebruiker. Dit kan het koppelen van meerdere tabellen vereisen. Voorbeelden Corporate FinanceCrediteurenFP&A | |||
| Annuleringsreden ReversalReason | Een code die de reden aangeeft waarom een financieel document werd reversed. | ||
| Omschrijving Wanneer een document in SAP wordt geannuleerd, kan een redencode worden toegewezen om het doel van de annulering uit te leggen, bijvoorbeeld 'Annulering in huidige periode' of 'Onjuiste invoer'. Dit attribuut biedt belangrijke context voor de reden waarom rework plaatsvindt. Het analyseren van annuleringsredenen helpt patronen in fouten te vinden, zoals incorrecte data-invoer of verkeerde datums. Dit inzicht kan worden gebruikt om preventieve maatregelen te implementeren, training te verbeteren of systeemcontroles te versterken om het aantal fouten en daaropvolgende annuleringen te verminderen, leidend tot een efficiëntere afsluiting. Het belang Biedt direct inzicht in de grondoorzaken van fouten en rework, wat helpt bij het vinden van kansen voor procesverbetering en foutpreventie. Vindplaats Te vinden in de documentkopteksttabel, BKPF (STGRD). Voorbeelden 010205 | |||
| Beoogde Afrondingsdatum TargetCompletionDate | De geplande deadline of vervaldatum voor een activiteit of de gehele periodeafsluiting. | ||
| Omschrijving De Target Completion Date vertegenwoordigt het schema waartegen het periodeafsluitingsproces wordt gemeten. Het is de deadline waartegen specifieke mijlpalen of de uiteindelijke afsluiting voltooid moeten zijn. Dit attribuut is belangrijk voor elke prestatie- of compliance-gerelateerde analyse. Het wordt gebruikt om de 'On-Time Period Close Rate' KPI te berekenen en het 'Close Compliance & Overdue Tasks' dashboard aan te drijven. Door de daadwerkelijke gebeurtenis time te vergelijken met deze target date, kan het systeem bepalen of taken op schema liggen, te laat zijn, of het risico lopen te laat te zijn, wat proactief management van het afsluitingsproces mogelijk maakt. Het belang Maakt compliance en prestatiesmonitoring mogelijk door een basislijn te bieden om te meten of afsluitingsactiviteiten op tijd worden voltooid, ter ondersteuning van on-time delivery KPI's. Vindplaats Dit zijn doorgaans stamdata die worden bijgehouden in een aparte kalender, een closing cockpit tool (zoals SAP Financial Closing cockpit), of een spreadsheet. Het maakt geen deel uit van transactionele data. Voorbeelden 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| Boekjaar GJAHR | Het boekjaar waarin de transactie werd geboekt. | ||
| Omschrijving Het boekjaar is een fundamenteel element voor het organiseren van financiële data. Het is een sleutelcomponent van de Financial Period case ID en biedt essentiële context voor alle transacties. Hoewel vaak onderdeel van de case ID, is het hebben van Fiscal Year als een apart attribuut nuttig voor lange termijn trendanalyse. Het maakt jaar-op-jaar vergelijkingen mogelijk van close doorlooptijden, adjustment volumes of andere KPI's, wat helpt bij het vinden van verbeteringen of verslechteringen in prestaties over meerdere jaren. Het belang Biedt essentiële tijdscontext en maakt jaar-op-jaar prestatievergelijkingen van het afsluitingsproces mogelijk. Vindplaats Beschikbaar in de documentkoptabel, BKPF (GJAHR). Voorbeelden 202320242022 | |||
| Handelspartner VBUND | De identificatie van de gelieerde groepsmaatschappij betrokken bij een intercompany-transactie. | ||
| Omschrijving De Trading Partner ID wordt gebruikt om de andere bedrijfscode te vinden die deelneemt aan een intercompany-transactie. Dit is belangrijk voor de reconciliatie van rekeningen tussen gerelateerde juridische entiteiten. Dit attribuut ondersteunt direct het 'Intercompany Reconciliation Flow' dashboard en de 'Intercompany Recon. Cycle Time' KPI. Door te filteren op transacties waarbij een Trading Partner aanwezig is, kan de analyse zich specifiek richten op de efficiëntie en tijdigheid van het intercompany-reconciliatieproces, wat vaak een belangrijk pijnpunt is tijdens de periodeafsluiting. Het belang Identificeert specifiek intercompany-transacties, waardoor een gerichte analyse van het vaak complexe en tijdrovende intercompany-reconciliatieproces mogelijk is. Vindplaats Gevonden in de documentregel-tabel, BSEG (VBUND). Voorbeelden 1000US013000 | |||
| Is Geautomatiseerd IsAutomated | Een indicator die aangeeft of een activiteit werd uitgevoerd door een menselijke gebruiker of een geautomatiseerd systeem. | ||
| Omschrijving Dit boolean attribuut onderscheidt handmatige taken van taken die automatisch door het systeem worden uitgevoerd, zoals een geplande batch job voor vreemde valuta waardering of een bot die terugkerende entries boekt. Dit wordt vaak bepaald door de user name geassocieerd met de transactie te analyseren (bijv. 'BATCHUSER'). Het begrijpen van de mate van automatisering is belangrijk voor het vinden van kansen voor efficiëntiewinsten. Het analyseren van dit attribuut helpt visualiseren welke delen van het proces handmatig zijn en potentieel rijp zijn voor automatisering. Het helpt ook bij het nauwkeurig inschatten van de menselijke workload door systeem-gegenereerde activiteiten uit te sluiten. Het belang Onderscheidt handmatige en systeemgestuurde activiteiten, wat belangrijk is voor het vinden van automatiseringsmogelijkheden en het nauwkeurig meten van handmatige workloads. Vindplaats Dit is een afgeleid attribuut. De logica is doorgaans gebaseerd op de Gebruiker Naam (USNAM), waarbij een lijst van bekende systeem- of batch user ID's een geautomatiseerde taak aangeeft. Voorbeelden truefalse | |||
| Is herstelwerk IsRework | Een berekende vlag die activiteiten identificeert die herstelwerk vertegenwoordigen, zoals een reversal of een afgekeurde reconciliatie. | ||
| Omschrijving Dit boolean attribuut markeert gebeurtenissen of volgordes van gebeurtenissen die inefficiënte loops of correcties in het proces aangeven. Bijvoorbeeld, een 'Reconciliation Reviewed' activiteit gevolgd door nog een 'Adjusting Journal Entry Posted' op dezelfde rekening kan als herstelwerk worden gemarkeerd. Dit attribuut is belangrijk voor het kwantificeren van procesverspilling en ondersteunt het 'Reconciliation Rework Instances' dashboard en de 'Reconciliation Rework Rate' KPI. Door herstelwerk te isoleren, kunnen teams de grondoorzaken onderzoeken, de impact op doorlooptijd meten en de effectiviteit van procesverbeteringsinitiatieven volgen die gericht zijn op het direct goed doen. Het belang Kwantificeert procesinefficiëntie door activiteiten te markeren die correcties of herhalingen zijn, wat helpt om verspilde inspanning te meten en te verminderen. Vindplaats Dit is een berekend attribuut. De logica wordt gedefinieerd in de process mining-tool op basis van specifieke activiteitenvolgordes (bijv. loops) of attributen (bijv. ReversalReason is niet nul). Voorbeelden truefalse | |||
| Is te laat IsOverdue | Een berekende vlag die aangeeft of een activiteit is voltooid na de geplande streefdatum. | ||
| Omschrijving Dit boolean attribuut vergelijkt de daadwerkelijke voltooiingstijd van een activiteit (EventTime) met de geplande deadline (TargetCompletionDate). Als de gebeurtenis time later is dan de target, wordt de vlag op 'true' gezet. Dit attribuut ondersteunt direct het 'Close Compliance & Overdue Tasks' dashboard en de 'On-Time Period Close Rate' KPI. Het geeft een duidelijk en onmiddellijk signaal van afwijkingen in het schema, waardoor managers snel te late taken kunnen vinden, de impact op de algehele tijdlijn kunnen begrijpen en teams verantwoordelijk kunnen houden voor het nakomen van deadlines. Het belang Biedt een duidelijke indicator van non-naleving van schema's, waardoor late taken snel kunnen worden geïdentificeerd en de on-time prestatie gemeten kan worden. Vindplaats Dit is een berekend attribuut, gecomputeerd in de process mining-tool door de EventTime te vergelijken met de TargetCompletionDate. Voorbeelden truefalse | |||
| Reconciliatiestatus ReconciliationStatus | De huidige status van een rekeningreconciliatie, zoals 'Open', 'Ter beoordeling' of 'Goedgekeurd'. | ||
| Omschrijving Dit attribuut volgt de status van een rekeningreconciliatie naarmate deze door de workflow beweegt. Het geeft aan of een reconciliatie is gestart, ingediend ter beoordeling, goedgekeurd of afgewezen. Dit is een sleutelattribuut voor het real-time monitoren van de voortgang van reconciliatieactiviteiten. Het helpt te vinden welke reconciliaties vastzitten en hoe lang, en ondersteunt KPI's zoals 'Account Reconciliation Cycle Time'. Het biedt zichtbaarheid in het goedkeuringsproces en is belangrijk voor dashboards die reconciliatie knelpunten en team workload volgen. Het belang Biedt inzicht in de reconciliatieworkflow, waardoor de voortgang kan worden gevolgd, knelpunten kunnen worden geïdentificeerd en beoordelings- en goedkeuringstijden gemeten kunnen worden. Vindplaats Deze Informatie bevindt zich vaak in een aparte reconciliatietool (bijv. SAP Account Substantiation and Automation by BlackLine) of een custom statusveld. Het is doorgaans geen standaardveld in BKPF/BSEG. Voorbeelden Niet gestartIn uitvoeringGoedgekeurdAfgewezen | |||
Record to report - Activiteiten Periodeafsluiting & Reconciliatie
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Account Reconciliation Started | Vertegenwoordigt het begin van het reconciliatieproces voor een reeks grootboekrekeningen voor de periode. In standaard SAP ECC is dit geen afzonderlijke gebeurtenis en wordt het doorgaans afgeleid uit gerelateerde activiteiten, zoals het voor de eerste keer uitvoeren van een belangrijk rapport. | ||
| Het belang Deze activiteit vestigt een belangrijke mijlpaal om de duur van de gehele reconciliatiefase te meten. Begrijpen wanneer reconciliatie begint is belangrijk voor de Account Reconciliation Cycle Time KPI. Vindplaats Deze gebeurtenis wordt niet expliciet gelogd. Het moet worden afgeleid uit andere databronnen, zoals de systeemauditlog (transactie STAD) voor de eerste uitvoering van een saldoweergave rapport zoals FAGLB03 of FS10N. Vastleggen Afleiden uit de eerste uitvoering van relevante rapporttransacties (bijv. FAGLB03) in systeemlogs. Gebeurtenistype inferred | |||
| Corrigerende Journaalboekingen Geboekt | Een corrigerende journaalboeking wordt geboekt om accountsaldi te corrigeren nadat de initiële transactieverwerking voor de periode is voltooid. Dit gebeurtenis wordt vastgelegd als een standaard financiële documentboeking in SAP. | ||
| Het belang Dit is belangrijk voor de 'Adjusting Entries Volume Analysis'. Een hoog volume aan correcties duidt op problemen met de nauwkeurigheid van upstream-processen en is een belangrijk doelwit voor procesverbeteringsinitiatieven. Vindplaats Gevonden in tabellen BKPF en BSEG. Deze boekingen worden doorgaans geïdentificeerd door een specifiek documenttype (BKPF-BLART) gereserveerd voor aanpassingen, of door te zijn geboekt in speciale afsluitperioden, zoals 13 t/m 16. Vastleggen Filter BKPF op documenten die in speciale perioden zijn geboekt of met aanpassingsdocumenttypen. Gebeurtenistype explicit | |||
| Financiële overzichten gegenereerd | Dit vertegenwoordigt het moment waarop officiële financiële overzichten, zoals de winst- en verliesrekening en balans, worden gegenereerd. Deze activiteit wordt doorgaans vastgelegd door de uitvoering van een specifiek rapportageprogramma te volgen. | ||
| Het belang Dit is een belangrijke mijlpaal die het einde van de dataverwerking en het begin van de uiteindelijke beoordelings- en goedkeuringsfase markeert. De tijd vanaf deze gebeurtenis tot goedkeuring is een belangrijke KPI. Vindplaats Afgeleid uit systeem auditlogs, zoals STAD, die de uitvoering van het financiële overzicht generatieprogramma vastleggen, meestel transactie F.01. Vastleggen Uit systeemlogs (STAD) die de uitvoering van financiële overzichtstransactie F.01 volgen. Gebeurtenistype inferred | |||
| Periode Afgesloten Voor Boekingen | Vertegenwoordigt de formele afsluiting van een boekingsperiode, wat verdere operationele journaalboekingen voorkomt. Dit waarborgt de integriteit van de financiële data voor de afgesloten periode en is een expliciete configuratiewijziging. | ||
| Het belang Dit is de definitieve eind gebeurtenis voor het periodeafsluitingsproces. Het is belangrijk voor het nauwkeurig berekenen van de totale Period Close Cycle Time en het meten van on-time prestaties. Vindplaats De afsluiting van periodes via transactie OB52 wordt vastgelegd. Deze wijzigingen zijn te vinden door de wijzigingsdocumenten (tabellen CDHDR en CDPOS) te analyseren voor configuratietabel T001B. Vastleggen Extraheer uit wijzigingsdocumenten (CDHDR/CDPOS) voor tabel T001B. Gebeurtenistype explicit | |||
| Periode Geopend Voor Boekingen | Dit markeert de officiële start van een financiële periode, waardoor transacties naar het grootboek kunnen worden geboekt. Dit is een expliciete configuratiewijziging die wordt uitgevoerd door een geautoriseerde gebruiker om een specifieke periode voor boekingen in één of meerdere bedrijfscodes te openen. | ||
| Het belang Deze activiteit dient als de definitieve start gebeurtenis voor de periodeafsluitingscase. Het analyseren van de tijd vanaf dit punt helpt bij het begrijpen van de volledige levenscyclus van de financiële periode. Vindplaats Wijzigingen in boekingsperioden via transactie OB52 worden gelogd. Deze wijzigingen kunnen worden opgehaald door de wijzigingsdocumenten voor de onderliggende configuratietabel T001B te analyseren, doorgaans met behulp van tabellen CDHDR en CDPOS. Vastleggen Extraheer uit wijzigingsdocumenten (CDHDR/CDPOS) voor tabel T001B. Gebeurtenistype explicit | |||
| Valutawaarderun | Dit vertegenwoordigt de uitvoering van een programma om openstaande posten en saldi, vastgelegd in vreemde valuta, opnieuw te waarderen met behulp van einde-periode wisselkoersen. Dit wordt doorgaans als een batch job uitgevoerd als onderdeel van de einde-periode afsluitingsstappen. | ||
| Het belang Dit is een belangrijke stap om nauwkeurige financiële rapportage in multinationale organisaties te waarborgen. Het analyseren van de timing en duur helpt bij het vinden van automatiserings- en prestatieoptimalisatiemogelijkheden. Vindplaats Vastgelegd vanuit de uitvoeringslogs van het programma voor waardering vreemde valuta, zoals FAGL_FCV of F.05. Batch job details uit tabellen zoals TBTCO en TBTCP bieden uitvoerings tijdstempels. Vastleggen Uit batch job logs (tabel TBTCO) voor programma FAGL_FC_VALUATION of SAPF100. Gebeurtenistype explicit | |||
| GR/IR Vereffeningsrun Uitgevoerd | De uitvoering van het geautomatiseerde afstemmingsprogramma voor de rekening Goederenontvangst/Factuurontvangst (GR/IR). Dit programma koppelt overeenkomstige goederenontvangsten en factuurontvangsten en boekt de items tegen elkaar af. | ||
| Het belang De GR/IR-rekening is een frequente bron van reconciliatieproblemen. Het monitoren van deze activiteit zorgt ervoor dat de geautomatiseerde stap correct verloopt en helpt het volume van uitzonderingen die handmatige opvolging vereisen te kwantificeren. Vindplaats Uitvoering wordt vastgelegd in batch job logs (transactie SM37). Het programma is doorgaans SAPF124, uitgevoerd via transactie F.13. Job log tabellen zoals TBTCO bieden de benodigde tijdstempels. Vastleggen Uit batch job logs (tabel TBTCO) voor clearing programma SAPF124. Gebeurtenistype explicit | |||
| Intercompany Document Afgestemd | Deze activiteit markeert het afboeken van een openstaand item tussen twee verschillende bedrijfscodes, wat aangeeft dat een intercompany-transactie is afgewikkeld of gereconcilieerd. Dit wordt vastgelegd als een expliciete financiële boeking in SAP, doorgaans een afboekingsdocument. | ||
| Het belang Vertragingen bij het afstemmen van intercompany items zijn een veelvoorkomend knelpunt in het afsluitproces. Het volgen van deze activiteit is belangrijk voor het meten en verbeteren van de intercompany reconciliatie cyclustijd. Vindplaats Geïdentificeerd uit financiële documenten in BKPF en BSEG. Een clearing document koppelt en sluit openstaande items, en de clearingdatum (BSEG-AUGDT) dient als de gebeurtenis timestamp. Intercompany transacties worden geïdentificeerd door trading partner velden. Vastleggen Identificeer clearing documenten in BKPF/BSEG die items met trading partners betreffen. Gebeurtenistype explicit | |||
| Proef- en Saldibalans Rapport Gegenereerd | Markeert de uitvoering van een rapport om de proef- en saldibalans te genereren. Dit is een essentiële stap om te verifiëren dat het totaal van debet gelijk is aan het totaal van credit, alvorens de officiële financiële overzichten op te stellen. | ||
| Het belang Dit is een belangrijke kwaliteitscontrole vóór de definitieve rapportage. Herhaalde uitvoeringen van dit rapport kunnen erop duiden dat onderliggende data-issues worden gevonden en gecorrigeerd, wat mogelijk vertragingen veroorzaakt. Vindplaats Afgeleid uit systeem auditlogs, zoals transactie STAD, die de uitvoering van proefbalansrapportagetransacties zoals S_ALR_87012277 of F.01 kunnen vastleggen. Vastleggen Uit systeemlogs (STAD) die de uitvoering van rapportage transactiecodes volgen. Gebeurtenistype inferred | |||
| Reconciliatie Beoordeeld | Geeft aan dat een reconciliatie voor een specifieke account of groep accounts is beoordeeld en bevestigd. In standaard SAP ECC is dit geen expliciet gelogd gebeurtenis en wordt het vaak beheerd via offline controles of custom oplossingen. | ||
| Het belang Het monitoren van de timing van reviews is belangrijk voor het vinden van knelpunten in de controle- en toezichtfasen van het afsluitingsproces. Het kan vertragingen inzichtelijk maken die worden veroorzaakt door de beschikbaarheid van management of rework. Vindplaats Deze Informatie is niet beschikbaar in standaard ECC-tabellen. Het zou een custom solution vereisen, zoals een statusveld in een custom Z-tabel, een eenvoudige workflow of integratie met een gespecialiseerde third-party reconciliatietool. Vastleggen Leg statuswijziging vast vanuit een custom workflow of Z-tabel indien geïmplementeerd. Gebeurtenistype inferred | |||
| Tegenboeking Geboekt | Deze activiteit legt de boeking vast van een document dat een eerder geplaatste journaalpost omkeert, vaak om een fout te corrigeren. SAP creëert een expliciete link tussen het omkeringsdocument en het herkomstele document. | ||
| Het belang Een groot aantal reversals wijst op potentiële problemen met de datanauwkeurigheid of procescontroles. Het volgen van deze gebeurtenissen helpt om first-time-right rates te meten en gebieden te vinden die verbetering behoeven. Vindplaats Omkeringsdocumenten zijn te vinden in de BKPF-tabel. Ze worden vaak aangemaakt met transactie FB08 en bevatten een verwijzing naar het omgekeerde documentnummer in het veld BKPF-STBLG. Vastleggen Identificeer documenten waarbij BKPF-STBLG is gevuld of gemaakt via reversal T-codes. Gebeurtenistype explicit | |||
| Transitorische Post of Voorziening Geboekt | Dit vertegenwoordigt het vastleggen van een journaalpost voor een opboeking, uitstelpost of voorziening, die doorgaans aan het einde van een periode worden geboekt. Dit is geen afzonderlijk gebeurtenis type in SAP, maar wordt afgeleid door specifieke journaalposten te vinden op basis van hun kenmerken. | ||
| Het belang Het isoleren van deze boekingen helpt bij het analyseren van het subproces voor het beheren van schattingen. Een hoog volume of frequente aanpassingen aan accruals kunnen duiden op gebieden voor procesverbetering. Vindplaats Afgeleid uit de financiële documenttabellen BKPF en BSEG. Boekingen kunnen worden geïdentificeerd door te filteren op een specifiek documenttype (BKPF-BLART), een unieke grootboekrekening (BSEG-HKONT), of keywords in de koptekst (BKPF-BKTXT). Vastleggen Filter BKPF/BSEG tabellen op documenttype, specifieke grootboekrekeningen of tekstvelden. Gebeurtenistype inferred | |||
Extractiegidsen
Stappen
- Toegang SAP Query Tool: Log in op uw SAP ECC systeem. Ga naar transactiecode
SQVI(QuickViewer). 2. Nieuwe Query Aanmaken: Voer een naam in voor uw query, bijvoorbeeldZ_R2R_PERIOD_CLOSE, en klik op 'Aanmaken'. Geef in het pop-upvenster een beschrijvende titel op, zoals 'Record to report Periode Afsluiting Extractie'. Voor de 'Data source' selecteert u 'Table join'. 3. Definieer Tabel Joins: Voeg de primaire tabelBKPF(Boekhouding Document Header) toe. Voeg vervolgens de tabelBSEG(Boekhouding Document Segment) toe. SAP zal de join-condities automatisch voorstellen (MANDT, BUKRS, BELNR, GJAHR), welke u dient te verifiëren en accepteren. Voor period open- en close-activiteiten heeft u een aparte query nodig dieCDHDRenCDPOSjoint. 4. Selecteer Output Velden (List Fields): Navigeer naar het tabblad 'List fld. select.'. Selecteer de velden die nodig zijn voor de event log uit de beschikbare tabellen. Dit omvatBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTR, en andere indien nodig. 5. Definieer Input Parameters (Selection Fields): Navigeer naar het tabblad 'Selection velden'. Kies de velden die zullen worden gebruikt om de data te filteren tijdens de uitvoering. De belangrijkste velden zijnBKPF-BUKRS(Company Code) enBKPF-GJAHR(Fiscal Year). U kunt ookBKPF-MONAT(Posting Period) enBKPF-BLART(Document Type) toevoegen. 6. Maak Varianten voor Elke Activiteit: Omdat SQVI geen verschillende dataselecties (zoals een SQL UNION) kan combineren, moet u de query meerdere keren uitvoeren. Voor elke activiteit (bijv. 'Accrual Or Provision Posted'), voert u de query uit en voert u specifieke filterwaarden in op het selectiescherm, zoals een lijst met documenttypen die relevant zijn voor overlopende posten. Sla deze set selectiecriteria op als een variant. Herhaal dit proces voor elke extraheerbare activiteit. 7. Uitvoeren en Data Extraheren: Voer de query uit voor elke variant die u hebt gemaakt. Dit zal de query uitvoeren met de specifieke filters voor die activiteit. 8. Resultaten Exporteren: Exporteer in het resultaatenscherm de data naar een lokaal bestand. Het meest voorkomende formaat is 'Spreadsheet'. Herhaal de export voor elke variant. 9. Data Combineren en Transformeren: Open de geëxporteerde bestanden in een spreadsheetprogramma of gebruik een scriptingtool. Combineer handmatig de data van alle bestanden tot één masterbestand. 10. Voeg Constante en Berekende Kolommen Toe: Voeg in het gecombineerde bestand de kolommen toe die niet direct uit SAP-tabellen zijn opgehaald. Dit omvatActiviteitNaam(handmatig in te stellen op basis van welke variant de data afkomstig is),FinancialPeriod(door Fiscaal Jaar en Periode te concatenen),EventTime(door datum- en tijdvelden te combineren),Bronsysteem, enLastDataUpdate. 11. Formaat voor Upload: Zorg ervoor dat het uiteindelijke bestand wordt opgeslagen in een CSV- of Excel-formaat met de juiste kolomkoppen zoals vereist voor uw process mining-tool. Verifieer datatypen en opmaak voordat u uploadt.
Configuratie
- Data Source: Table Join in SAP Query (SQVI). Belangrijke tabellen zijn BKPF, BSEG, CDHDR en CDPOS. * Date Range: Het wordt aanbevolen data te extraheren voor een periode van ten minste 3 tot 6 volledige financiële perioden om patronen te vinden. Stel het filter in op
BKPF-GJAHR(Fiscaal Jaar) enBKPF-MONAT(Periode). * Company Code Filter: Filter altijd opBKPF-BUKRS(Company Code) om het data volume te beperken en de analyse te richten op specifieke juridische entiteiten. Het extraheren van alle company codes tegelijk wordt niet aanbevolen. * Document Type Filter: Gebruik filters opBKPF-BLART(Document Type) om specifieke activiteiten zoals overlopende posten, aanpassingen of reversals te isoleren. U zult de relevante documenttypen voor uw organisatie moeten achterhalen. * Prerequisites: De gebruiker die de extractie uitvoert, heeft autorisatie nodig om deSQVI-transactie te gebruiken en display-toegang tot de relevante financiële tabellen (bijv. autorisatie-object S_TABU_DIS). * Performance Considerations: Het joinen van BKPF en BSEG kan bron-intensief zijn. Voer de extractie uit tijdens daluren. Vermijd het gebruik van zeer brede datumbereiken of het open laten van het Company Code-filter, aangezien dit kan leiden tot geheugenproblemen of timeouts.
a Voorbeeldquery config
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Stappen
- Program Scoping en Ontwerp: Definieer de specifieke logica voor het vinden van elk van de 12 vereiste activiteiten. Raadpleeg bedrijfsproces owners en SAP functionele analysesten om de documenttypen, grootboekrekeningen en programmanamen te bevestigen die geassocieerd zijn met periode-afsluitactiviteiten in uw specifieke SAP ECC-omgeving.
- ABAP Programma Maken: Gebruikmakend van transactie
SE38(ABAP Bewerkenor), maakt u een nieuw uitvoerbaar programma aan, bijvoorbeeldZ_PM_R2R_EXTRACTION. Geef een beschrijvende titel op en stel het programmatype in op 'Executable Program'. - Selectiescherm Definiëren: Definieer in het programma een selectiescherm met behulp van
PARAMETERSenSELECT-OPTIONS. Dit scherm stelt gebruikers in staat de extractiescope te specificeren, inclusief Company Code (BUKRS), Fiscaal Jaar (GJAHR) en Posting Period (MONAT). Dit is belangrijk voor het beheersen van het data volume. - Datastructuren Declaren: Definieer een interne tabelstructuur die de uiteindelijke gebeurtenislog-data zal bevatten. Deze structuur moet alle vereiste en aanbevolen
attributenomvatten:FinancialPeriod,ActiviteitNaam,EventTime,Bronsysteem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRenJournalEntryType. - Data Extractie Logica Implementeren: Schrijf de kern ABAP-logica om data te selecteren voor elk van de 12 activiteiten. Voor elke activiteit bevraagt u de relevante SAP-tabellen (bijv. BKPF, BSEG, TBTCO, CDHDR) en vult u een intermediaire interne tabel. Gebruik de logica die wordt geboden in de bijbehorende ABAP query sectie als template.
- Afgeleide Activiteiten Identificeren: Voor activiteiten die niet expliciet worden gelogd in standaard SAP, zoals 'Account Reconciliation Started' of 'Reconciliation Reviewed', implementeert u de overeengekomen inferentielogica. Dit kan inhouden dat u controleert op de eerste uitvoering van een specifiek rapport of custom 'Z-tabellen' bevraagt als deze bestaan.
- Event Data Consolideren: Nadat data voor alle individuele activiteiten is opgehaald, voegt u de records van elke intermediaire tabel toe aan de uiteindelijke geconsolideerde interne tabel. Zorg ervoor dat het
EventTime-veld correct wordt gevuld vanuit het relevante bronveld, zoals documentboekingsdatum/-tijd of jobstartdatum/-tijd. - Data Standaardiseren en Formatteren: Voordat u output genereert, standaardiseert u sleutelvelden. Combineer het fiscale jaar en de periode in de
FinancialPeriod-kenmerk. Stel statische waarden in voorBronsysteemenLastDataUpdate. Zorg ervoor dattijdstempelseen consistent formaat hebben. - Output Functiealiteit Ontwikkelen: Voeg functionaliteit toe aan het programma om de uiteindelijke interne tabel te exporteren. De meest gebruikelijke methode is om de data naar een CSV- of tab-gescheiden bestand te schrijven op de SAP Application Server (met
OPEN DATASET) of om de gebruiker toe te staan het direct naar hun lokale machine te downloaden (met functiemodule GUI_DOWNLOAD). - Testen en Valideren: Test het programma grondig met een representatieve dataset die meerdere company codes en perioden omvat. Gebruik de validatiestappen om de datanauwkeurigheid en -volledigheid te waarborgen. Verfijn de selectielogica op basis van feedback van functionele experts.
- Uitvoering Plannen (Optioneel): Zodra gevalideerd, kan het programma worden gepland om als een background job te draaien via transactie
SM36. Dit maakt geautomatiseerde, periodieke extractie van de event log mogelijk zonder handmatige tussenkomst.
Configuratie
- Selection Criteria: Het programma dient een selectiescherm te bevatten om de data te filteren. Belangrijke filters zijn onder andere:
Company Code (BUKRS): Verplicht om de scope te beperken tot relevante juridische entiteiten.Fiscal Year (GJAHR): Verplicht om het primaire jaar voor de extractie te definiëren.Posting Period (MONAT): Verplicht om de specifieke financiële perioden te selecteren.
- Activiteit-Specific Configuration: Veel selecties zijn afhankelijk van uw specifieke SAP-configuratie. Deze moeten configureerbaar zijn als parameters of constanten binnen het programma:
Accrual/Provision Document Types: Een lijst met documenttypen (BLART) die worden gebruikt om boekingen voor overlopende activa en passiva te vinden.Adjusting Entry Document Types: Een lijst met documenttypen die worden gebruikt om corrigerende journaalboekingen te vinden.Background Job/Program Naams: De technische namen van de programma's die worden gebruikt voor waardering vreemde valuta (bijv.FAGL_FCV), GR/IR-afrekening (bijv.SAPF124), proefbalansrapporten en het genereren van financiële overzichten (bijv.RFBILA00).
- Date Range: Hoewel de primaire selectie gebaseerd is op fiscaal jaar en periode, dient de onderliggende logica rekening te houden met de volledige datum en tijd van de gebeurtenissen. Voor een initiële analyse wordt aanbevolen data te extraheren voor de laatste 3 tot 6 afgesloten financiële perioden.
- Performance: Voor grote SAP-omgevingen is de prestaties van het programma belangrijk. Zorg ervoor dat databaseselecties indexvelden gebruiken, vooral op tabellen zoals
BKPFenBSEG. Vermijd het selecteren van alle velden (SELECT *) en verwerk data in beheersbare pakketten indien nodig. - Authorizations: De gebruiker of het serviceaccount dat dit programma uitvoert, vereist autorisatie om toegang te krijgen tot alle bevraagde tabellen (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) en om transacties zoalsSE38(voor ontwikkeling) enSM37/SM36(voor planning en monitoring) uit te voeren.
a Voorbeeldquery abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Stappen
- Verplichten Verzamelen: Verkrijg read-only toegangsgegevens voor de onderliggende SAP ECC-database. Identificeer het juiste databaseschema, wat doorgaans
SAPSR3is of een vergelijkbare naam die door je databasebeheerder wordt verstrekt. - Systeemconfiguratie Identificeren: Raadpleeg uw SAP Finance-team om de specifieke
Company Codes(BUKRS) en de financiële perioden die u wilt analyseren te bepalen. Cruciaal is het vinden van de specifiekeDocument Types(BLART) die in je systeem worden gebruikt voor 'Accrual Or Provision Posted', 'Adjusting Journal Entry Posted' en 'Intercompany' transacties. - Programma- en Jobnamen Verifiëren: Bevestig de programmanamen voor belangrijke batchjobs zoals waardering vreemde valuta (bijv.
FAGL_FCV), GR/IR-afrekening (bijv.SAPF124), proefbalansrapporten (bijv.RFBILA00) en het genereren van financiële overzichten (bijv.RFBILA00). Deze kunnen worden gevonden door geplande jobs in transactieSM37te controleren. - SQL Query Aanpassen: Kopieer de verstrekte SQL-query naar een teksteditor of SQL-client. Vervang de placeholder-variabelen
{{start_date}},{{end_date}}en{{company_codes}}door de daadwerkelijke waarden voor uw analyse. Werk de lijsten met documenttypen en programmanamen bij op basis van de Informatie die in de vorige stappen is verzameld. - Verbinden met de Database: Gebruik een standaard SQL-clienttool, zoals DBeaver, SQL Server Management Studio of Oracle SQL Developer, om verbinding te maken met de SAP-database met behulp van de verkregen inloggegevens.
- Query Uitvoeren: Voer de aangepaste SQL-query uit op de database. Afhankelijk van het datumbereik en de grootte van uw financiële tabellen, kan deze query aanzienlijke tijd in beslag nemen.
- Initiële Resultaten Controleren: Nadat de query is voltooid, voert u een snelle controle uit van de output. Controleer op een redelijk aantal rijen, zorg ervoor dat alle kolommen aanwezig zijn en verifieer dat verschillende
ActiviteitNaam-waarden in de resultaten zijn opgenomen. - Data Exporteren: Exporteer de volledige resultatenset vanuit uw SQL-client naar een CSV-bestand. Zorg ervoor dat het bestand wordt opgeslagen met UTF-8-codering om karakterproblemen te voorkomen.
- Voorbereiden op Upload: Voordat u uploadt naar een process mining-tool, bevestigt u dat de kolomkoppen in het CSV-bestand exact overeenkomen met de vereiste attribuut namen (
FinancialPeriod,ActiviteitNaam,EventTime, enz.). Verifieer ook dat deEventTime-kolom een consistent timestamp-formaat heeft, zoalsYYYY-MM-DD HH:MI:SS.
Configuratie
- Database Credentials: Er is een read-only databasegebruiker nodig met toegang tot de kern SAP financiële en systeemtabellen. Dit omvat tabellen zoals
BKPF,BSEG,TBTCO,CDHDRenCDPOS. - Date Range: We raden aan data te extraheren voor ten minste 3 tot 6 volledige financiële perioden om betekenisvolle procesvariaties vast te leggen. Houd er rekening mee dat grotere datumbereiken de uitvoeringstijd van de query aanzienlijk zullen verlengen.
- Company Codes (
BUKRS): Filter altijd op een specifieke lijst van company codes. Het uitvoeren van de query voor alle company codes op een groot systeem is niet haalbaar en zal waarschijnlijk prestatieproblemen veroorzaken. - Document Types (
BLART): De identificatie van journaalboekingstypen, zoals overlopende posten en aanpassingen, is volledig afhankelijk van de specifieke SAP-configuratie van uw organisatie. U moet de juiste documenttypecodes opgeven in deWHERE-clausules van de query voor een accurate activiteitsclassificatie. - Program and Job Naams: De query gebruikt veelvoorkomende programmanamen voor geautomatiseerde afsluitstappen. Uw systeem gebruikt mogelijk aangepaste wrapperprogramma's of andere jobnamen. Controleer deze in transactie
SM37en werk de query dienovereenkomstig bij. - Performance Considerations: Deze query heeft toegang tot zeer grote tabellen, met name
BSEGenCDPOS. Het wordt sterk aanbevolen deze extractie buiten kantooruren uit te voeren om de systeemprestaties niet te beïnvloeden. Het toepassen van smalle datum- en company code-filters is de meest effectieve manier om de uitvoeringstijd te beheren.
a Voorbeeldquery sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
;