Datatemplate voor debiteurenbeheer
Datatemplate voor debiteurenbeheer
- Aanbevolen attributen voor een volledige analyse van debiteurenbeheer
- Belangrijke procesactiviteiten en momenten om te volgen
- Extractie-instructies voor Oracle Fusion Financials
Attributen voor debiteurenbeheer
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke gebeurtenis of handeling in het debiteurenproces. | ||
| Beschrijving Dit attribuut beschrijft de processtap, zoals een factuur aanmaken, een betaling boeken of een geschil openen. Het bepaalt de processtroom en maakt het mogelijk de volgorde van gebeurtenissen weer te geven. Analisten gebruiken dit veld om procesvarianten, lussen en bottlenecks te vinden. Het is nodig om te controleren of standaardprocedures worden gevolgd en om te berekenen hoe vaak specifieke gebeurtenissen voorkomen, zoals herstelwerk of handmatige tussenkomst. Waarom dit belangrijk is Nodig om de processtroom vast te leggen en de volgorde van gebeurtenissen weer te geven. Waar vind je dit? Afgeleid uit transactiegeschiedenistabellen, zoals AR_PAYMENT_SCHEDULES_ALL en RA_CUST_TRX_LINE_GL_DIST_ALL. Voorbeelden Factuur aangemaaktBetalingsherinnering verzondenDeelbetaling geboektGeschil geopend | |||
| Factuurnummer InvoiceNumber | De unieke identificatiecode die in Oracle Fusion aan de factuurtransactie wordt toegekend. | ||
| Beschrijving Dit attribuut is de unieke sleutel waarmee financiële verplichtingen in de module Accounts Receivable worden geïdentificeerd. Het koppelt alle latere activiteiten, zoals aanpassingen, geschillen en betalingen, aan de oorspronkelijke verkooptransactie. Bij process mining is dit attribuut de Case-ID. Analisten kunnen hiermee de volledige levenscyclus van een vordering volgen, vanaf het aanmaken tot de volledige betaling of afboeking. Zo kunnen ze doorlooptijden en procesvarianten berekenen. Waarom dit belangrijk is Dit is de basiseenheid voor het volgen van de levenscyclus van krediet tot betaling. Waar vind je dit? Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Voorbeelden INV-2023-00110056789AR-99887755002211 | |||
| Timestamp van gebeurtenis EventStartDateTime | De datum en tijd waarop een activiteit plaatsvond. | ||
| Beschrijving Dit attribuut registreert het exacte moment waarop een activiteit in het systeem plaatsvond. Het wordt gebruikt om gebeurtenissen chronologisch te ordenen en vormt de basis voor alle tijdsberekeningen in process mining. Met timestamps kan de organisatie de doorlooptijd tussen activiteiten berekenen, bijvoorbeeld de tijd tussen het aanmaken en verzenden van een factuur. Dit is belangrijk voor KPI’s zoals Days Sales Outstanding en voor het herkennen van patronen in betaalgedrag. Waarom dit belangrijk is De basis voor het berekenen van duur en doorlooptijden. Waar vind je dit? Oracle Fusion Financials: de kolommen CREATION_DATE of LAST_UPDATE_DATE in verschillende transactietabellen. Voorbeelden 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| Bronsysteem SourceSystem | Het systeem waarin de data oorspronkelijk is vastgelegd. | ||
| Beschrijving Dit attribuut geeft aan uit welke softwareomgeving de procesdata is gehaald. In dit geval bevestigt het dat de data afkomstig is uit Oracle Fusion Financials. Bij data-extractie uit één systeem is de waarde vaak altijd hetzelfde. Het attribuut wordt belangrijk wanneer data uit meerdere ERP-instanties wordt samengevoegd of wanneer tools voor incasso van derden worden gekoppeld. Zo blijven de herkomst en traceerbaarheid van data in proceslandschappen met meerdere systemen duidelijk. Waarom dit belangrijk is Maakt de herkomst van data inzichtelijk en onderscheidt verschillende ERP-instanties. Waar vind je dit? Vast ingesteld tijdens de extractie of geconfigureerd in de datapijplijn. Voorbeelden Oracle Fusion FinancialsOracle Cloud ERP - VSOracle Cloud ERP - EMEA | |||
| Laatste data-update LastDataUpdate | De timestamp waarop de data voor het laatst is vernieuwd in de process mining-tool. | ||
| Beschrijving Dit attribuut geeft aan wanneer de dataset voor het laatst is gesynchroniseerd met het bronsysteem Oracle. Zo kunnen gebruikers zien hoe actueel de analyse is en of de inzichten de huidige bedrijfsvoering weergeven. Controleer dit veld om te zien of dashboards actuele informatie tonen. Dat is vooral belangrijk bij het monitoren van openstaande geschillen of niet-toegepaste betalingen. Waarom dit belangrijk is Geeft context over de actualiteit en betrouwbaarheid van de data. Waar vind je dit? Systeemtijd op het moment van extractie. Voorbeelden 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| Bedrijfseenheid BusinessUnit | De operationele eenheid binnen de organisatie die verantwoordelijk is voor de factuur. | ||
| Beschrijving Dit attribuut verwijst naar de Organization ID in Oracle Fusion en staat voor de specifieke bedrijfseenheid of divisie waartoe de vordering behoort. Hiermee kun je de procesprestaties per onderdeel van de organisatie vergelijken. Door KPI’s zoals de doorlooptijd van geschillenafhandeling of Days Sales Outstanding tussen bedrijfseenheden te vergelijken, kan het management goed presterende teams herkennen en goede werkwijzen standaardiseren. Ook wordt duidelijk waar extra bronnen of een herziening van het proces nodig zijn. Waarom dit belangrijk is Belangrijke dimensie voor benchmarking en vergelijking van prestaties tussen organisatieonderdelen. Waar vind je dit? Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME, gekoppeld via ORG_ID. Voorbeelden Verkoop Oost-VSDienstverlening EMEAProductie APAC | |||
| Factuurbedrag InvoiceAmount | Het totale bedrag van de factuur. | ||
| Beschrijving Dit attribuut geeft het oorspronkelijke verschuldigde bedrag op de factuur weer. Het is een belangrijke wegingsfactor voor veel analyses, zodat de organisatie transacties met een hoge waarde voorrang kan geven boven grote aantallen transacties met een lage waarde. In het overzicht 'Niet-toegepaste credits en omzetverlies' helpt dit veld de financiële impact van onopgeloste posten te bepalen. Het wordt ook gebruikt om de gewogen gemiddelde Days Sales Outstanding te berekenen, voor een financieel perspectief op de procesefficiëntie. Waarom dit belangrijk is Geeft de analyse een financiële weging en ondersteunt prioritering op basis van waarde. Waar vind je dit? Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Voorbeelden 1500.00250.5010000.00 | |||
| Geautomatiseerd IsAutomated | Geeft aan of de activiteit zonder menselijke tussenkomst is uitgevoerd. | ||
| Beschrijving Dit booleaanse attribuut geeft aan of een systeemproces, zoals AutoInvoice of AutoLockbox, de activiteit heeft uitgevoerd of dat een medewerker dit heeft gedaan. Het is de belangrijkste factor voor de KPI ‘Automatiseringspercentage van kasverwerking’. Door de verhouding tussen geautomatiseerde en handmatige activiteiten in de tijd te volgen, kan de organisatie nagaan of initiatieven voor digitale transformatie resultaat opleveren. Ook wordt duidelijk welke processtappen nog steeds handmatig verlopen. Waarom dit belangrijk is Belangrijke metriek voor het meten van digitale transformatie en efficiëntie. Waar vind je dit? Berekende logica op basis van UserName, bijvoorbeeld: als User == 'BATCH_USER', dan true. Voorbeelden truefalse | |||
| Gebruikersnaam UserName | De systeemgebruiker die de activiteit heeft uitgevoerd. | ||
| Beschrijving Dit attribuut registreert de aanmeldings-ID of naam van degene die de activiteit heeft uitgevoerd, bijvoorbeeld een factuur heeft geboekt of een bankafschrift heeft afgestemd. Het wordt gekoppeld aan het generieke veld ‘Gebruiker’. Deze data is belangrijk voor compliance-audits en voor het dashboard ‘Doorvoer van incassomedewerkers’. Je kunt hiermee systeemacties, vaak uitgevoerd door een gebruiker met de naam ‘Systeem’, onderscheiden van acties van medewerkers. Dat helpt bij de analyse van automatisering. Waarom dit belangrijk is Maakt prestatiemetingen per gebruiker en analyse van functiescheiding mogelijk. Waar vind je dit? Oracle Fusion Financials: de kolommen CREATED_BY of LAST_UPDATED_BY, gekoppeld aan gebruikerstabellen. Voorbeelden sysadminjsmithfinance_batch_job | |||
| Klantnaam CustomerName | De naam van de partij aan wie de transactie wordt gefactureerd. | ||
| Beschrijving Dit attribuut identificeert de klant bij de factuur. Het is belangrijk om betaalgedrag, het aantal geschillen en de effectiviteit van incasso per klant te analyseren. Analisten gebruiken dit veld om klanten te vinden die vaak te laat betalen of geschillen indienen. Dit inzicht ondersteunt het dashboard 'Analyse van klantbetaalgedrag' en helpt om kredietvoorwaarden en incassostrategieën af te stemmen op individuele klantprofielen. Waarom dit belangrijk is Essentieel voor klantgerichte analyses en risicoprofielen. Waar vind je dit? Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME, gekoppeld via BILL_TO_CUSTOMER_ID. Voorbeelden Acme CorpGlobex CorporationSoylent Corp | |||
| Klantsegment CustomerSegment | De indeling van klanten op basis van omvang, sector of risico. | ||
| Beschrijving Met dit attribuut worden klanten ingedeeld in groepen zoals Strategisch, Enterprise, mkb of Hoog risico. De indeling is vaak afgeleid van de klantklasse of profielklasse in Oracle Fusion. Zo kun je procesvarianten in verschillende marktsegmenten analyseren. Je kunt bijvoorbeeld nagaan of strategische klanten de afgesproken persoonlijke service krijgen en of klanten met een hoog risico nauwlettend worden gevolgd op naleving van betalingsafspraken. Waarom dit belangrijk is Maakt een analyse per segment van incassostrategieën en risico mogelijk. Waar vind je dit? Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Voorbeelden EnterpriseKleinbedrijfOverheidHoog risico | |||
| Naam incassomedewerker CollectorName | De naam van de incassomedewerker of bron die aan de factuur is toegewezen. | ||
| Beschrijving Dit attribuut identificeert de medewerker of het teamlid dat verantwoordelijk is voor het innen van de betaling voor de factuur. Het is de belangrijkste dimensie voor het dashboard 'Doorvoer per incassomedewerker'. Met data uit dit veld kan de organisatie de productiviteit per medewerker meten, opleidingsbehoeften vaststellen en de werkdruk verdelen. Het maakt verantwoordelijkheden duidelijk en helpt de incasso binnen het financiële team te standaardiseren. Waarom dit belangrijk is Belangrijk voor analyses van bronprestaties en de verdeling van de werkdruk. Waar vind je dit? Oracle Fusion Financials: AR_COLLECTORS.NAME, gekoppeld aan het klantprofiel. Voorbeelden John SmithCollectieteam AJane Doe | |||
| Transactietype TransactionType | De classificatie van het debiteurendocument (factuur, creditnota of debetnota). | ||
| Beschrijving Dit attribuut maakt onderscheid tussen verschillende soorten financiële documenten. Veelvoorkomende waarden zijn factuur, creditnota en debetnota. Dit onderscheid is belangrijk voor het dashboard 'Aantal creditnota’s en herstelwerk'. Door op dit attribuut te filteren, kunnen analisten lussen met herstelwerk door creditnota’s apart bekijken of zich richten op de reguliere factuurstroom. Zo wordt duidelijk waaruit het werk rond debiteuren bestaat. Waarom dit belangrijk is Onderscheidt reguliere facturen van aanpassingen en correcties. Waar vind je dit? Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Voorbeelden FactuurCreditnotaDebetnotaTerugboeking | |||
| Vervaldatum DueDate | De datum waarop de betaling uiterlijk wordt verwacht. | ||
| Beschrijving Dit attribuut bevat de uiterste betaaldatum, berekend op basis van de factuurdatum en de betalingsvoorwaarden. Het is het uitgangspunt om te bepalen of een betaling te laat is. De KPI ‘Afwijking in timing van betalingsherinneringen’ gebruikt deze datum om te meten hoe vroeg het team actie onderneemt. Ook bepaalt de datum in ouderdomsrapportages of een vordering nog niet vervallen of achterstallig is. Waarom dit belangrijk is De belangrijkste referentiedatum om betalingsachterstanden en tijdige betalingen vast te stellen. Waar vind je dit? Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Voorbeelden 2023-11-302023-12-152024-01-01 | |||
| Betalingsvoorwaarden PaymentTerms | De afgesproken betalingstermijn, bijvoorbeeld 30 dagen netto. | ||
| Beschrijving Dit attribuut bevat de contractueel afgesproken betalingstermijn. De termijn wordt gebruikt om de vervaldatum te berekenen en is belangrijk voor het dashboard ‘Effectiviteit van de incassostrategie’. Verschillen in betalingsvoorwaarden tussen klanten kunnen verschillen in DSO verklaren. Met dit attribuut kunnen analisten de prestatiegegevens normaliseren. Zo wordt een klant met een betalingstermijn van 60 dagen niet onterecht aangemerkt als een trage betaler ten opzichte van een klant met een termijn van 30 dagen. Waarom dit belangrijk is Zet de snelheid van betalingen af tegen de contractuele afspraken. Waar vind je dit? Oracle Fusion Financials: RA_TERMS.NAME Voorbeelden 30 dagen nettoDirect2/10, 30 dagen netto60 dagen netto | |||
| Herkomst CreationSource | De herkomst van de factuur: handmatig aangemaakt of geïmporteerd. | ||
| Beschrijving Dit attribuut laat zien hoe de factuur in Oracle is ingevoerd, bijvoorbeeld via ‘Handmatige invoer’, ‘AutoInvoice’ of een specifieke externe gegevensstroom. Het is een benadering van de generieke mapping ‘Kanaal’. Dit is belangrijk voor het dashboard ‘Monitor voor automatisering van kasverwerking’. Zo kun je onderscheid maken tussen volledig digitale processen en processen waarvoor handmatige inrichting nodig is. Veel facturen met de waarde ‘Handmatige invoer’ kunnen wijzen op ontbrekende integratie met eerdere systemen of tekortkomingen in het systeem. Waarom dit belangrijk is Geeft aan in hoeverre het proces eerder in de keten is geautomatiseerd en waar de data vandaan komt. Waar vind je dit? Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Voorbeelden AutoInvoiceHandmatigProjectimplementatieOrderbeheer | |||
| Herstelwerk IsRework | Geeft aan of de factuur correctierondes of geschilrondes heeft doorlopen. | ||
| Beschrijving Dit booleaanse attribuut geeft aan of er bij een factuur activiteiten hebben plaatsgevonden die verband houden met foutcorrecties, zoals ‘Creditnota aangemaakt’ of ‘Factuur aangepast’. Het ondersteunt het dashboard ‘Volume creditnota’s en herstelwerk’. Door gevallen met herstelwerk te herkennen, kun je de ideale route onderscheiden van problematische routes. Een hoog percentage herstelwerk wijst vaak op problemen met de datakwaliteit in stamgegevens of bij het invoeren van verkooporders. Waarom dit belangrijk is Brengt verspilling en inefficiëntie in het procesverloop aan het licht. Waar vind je dit? Berekend: true als de case ‘Creditnota aangemaakt’ of ‘Geschil geopend’ bevat. Voorbeelden truefalse | |||
| Reden van geschil DisputeReason | De categorie of reden die wordt vastgelegd wanneer een geschil wordt geopend. | ||
| Beschrijving Dit attribuut legt de opgegeven reden vast wanneer de activiteit ‘Geschil geopend’ plaatsvindt. Veelvoorkomende waarden zijn bijvoorbeeld ‘Prijsfout’, ‘Afwijkend aantal’ of ‘Beschadigde goederen’. Door dit attribuut te analyseren in het dashboard ‘Levenscyclus en bottlenecks van geschillen’ kun je de oorzaken van betalingsvertragingen achterhalen. Komt ‘Prijsfout’ vaak voor, dan weet het bedrijf dat het verkoopofferteproces eerder in de keten onderzocht moet worden, en niet alleen het incassoproces. Waarom dit belangrijk is Belangrijk om de oorzaken van betalingsvertragingen en herstelwerk te achterhalen. Waar vind je dit? Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE of AR_DISPUTE_HISTORY. Voorbeelden PrijsverschilBelastingfoutGoederen niet ontvangenDubbele facturering | |||
| Regio Region | Geografische regio van de bedrijfseenheid of klant. | ||
| Beschrijving Dit attribuut koppelt de transactie aan een groter geografisch gebied, zoals Noord-Amerika, EMEA of APAC. Het is nuttig voor rapportages op hoofdlijnen en voor het dashboard ‘Trends in DSO en de kascyclus’. Met een regionale analyse kun je rekening houden met verschillen in betaalgedrag, zoals langere gebruikelijke betalingstermijnen in Zuid-Europa dan in de VS. Zo worden wereldwijde KPI’s in de juiste lokale context geïnterpreteerd. Waarom dit belangrijk is Biedt een geografische indeling op hoofdlijnen voor wereldwijde rapportages. Waar vind je dit? Oracle Fusion Financials: afgeleid van de bedrijfseenheid of het klantadres. Voorbeelden Noord-AmerikaEMEAAPACLATAM | |||
| Uiterste datum voor korting DiscountEligibilityDate | De laatste datum waarop een klant kan betalen om korting te krijgen voor vroege betaling. | ||
| Beschrijving Dit attribuut geeft de uiterste datum aan waarop de klant gebruik kan maken van voorwaarden zoals ‘2/10, 30 dagen netto’ (2% korting bij betaling binnen 10 dagen). Het is nodig voor het dashboard ‘Analyse van korting bij vroege betaling’. Door betalingen met deze datum te vergelijken, kun je het percentage vaststellen van klanten dat korting voor vroege betaling benut. Zo zie je of de kortingsstrategie de kasstroom daadwerkelijk versnelt of dat klanten de korting laten liggen. Waarom dit belangrijk is Helpt de effectiviteit van kortingen en de versnelling van de kasstroom te analyseren. Waar vind je dit? Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Voorbeelden 2023-11-102023-12-05 | |||
| Valutacode CurrencyCode | De valuta waarin het factuurbedrag is uitgedrukt. | ||
| Beschrijving Dit attribuut geeft de valuta aan, zoals USD of EUR, waarin de financiële bedragen zijn uitgedrukt. Zo kun je het factuurbedrag correct interpreteren en bedragen omrekenen als rapportage in één wereldwijde valuta nodig is. Voor internationale organisaties helpt dit attribuut om incassoprestaties in verschillende economische regio’s te analyseren. Financiële teams kunnen zo valuta-effecten onderscheiden van de prestaties van operationele processen. Waarom dit belangrijk is Geeft financiële waarden context in omgevingen met meerdere valuta. Waar vind je dit? Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Voorbeelden USDEURGBPJPY | |||
Activiteiten voor debiteurenbeheer
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Deelbetaling geboekt | Dit gebeurt wanneer een ontvangst op de factuur wordt toegepast, maar lager is dan het totale openstaande bedrag. De factuur blijft open met een lager saldo. | ||
| Waarom dit belangrijk is Een hoge frequentie wijst op versnipperd betaalgedrag (KPI voor frequentie van deelbetalingen), wat meer afstemmingswerk oplevert. Waar vind je dit? Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL, waar STATUS = 'APP' en AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur aangemaakt | Deze activiteit markeert het moment waarop de factuurrecord voor het eerst in het systeem wordt aangemaakt. De timestamp geeft aan wanneer de transactieheader voor het eerst wordt opgeslagen in de Oracle Receivables-tabellen. | ||
| Waarom dit belangrijk is Dit markeert het begin van de levenscyclus van het proces en vormt het uitgangspunt voor ouderdomsberekeningen. Nodig om de totale doorlooptijd en de tijd tot verzending te berekenen. Waar vind je dit? Afgeleid uit de tabel RA_CUSTOMER_TRX_ALL, met de kolom CREATION_DATE of TRX_DATE. Vastleggen Geregistreerd wanneer de transactieregel wordt toegevoegd Gebeurtenistype explicit | |||
| Factuur afgerond | Geeft aan dat het aanmaken van de factuur is afgerond en dat de factuur klaar is voor verwerking, afdrukken en boeken. Dit gebeurt wanneer de transactiestatus verandert van onvolledig naar afgerond. | ||
| Waarom dit belangrijk is Maakt onderscheid tussen de tijd voor het opstellen en de verwerkingstijd. Vertragingen wijzen hier op bottlenecks in het interne proces voor het aanmaken van facturen. Waar vind je dit? Herkenbaar aan de wijziging van COMPLETE_FLAG in RA_CUSTOMER_TRX_ALL naar 'Y'. Vastleggen Vergelijk het statusveld voor en na de wijziging Gebeurtenistype inferred | |||
| Factuur afgesloten | De eindstatus waarbij de factuur in het systeem wordt afgesloten, meestal omdat het saldo door een betaling, creditnota of aanpassing op nul staat. | ||
| Waarom dit belangrijk is De timestamp van deze gebeurtenis wordt gebruikt om Days Sales Outstanding (DSO) te berekenen. Dit is het einde van de procesinstantie. Waar vind je dit? Herkenbaar wanneer STATUS in AR_PAYMENT_SCHEDULES_ALL verandert naar 'CL' (Closed). Vastleggen Vergelijk het statusveld voor en na de wijziging Gebeurtenistype inferred | |||
| Factuur verzonden | Dit is het versturen van de factuur naar de klant, per post, e-mail of XML. Hiermee gaat de factuur over van de organisatie naar de klant. | ||
| Waarom dit belangrijk is Belangrijk om de prestaties van de factuurverzending te meten. De tijd tussen aanmaken en verzenden vertraagt de incassocyclus. Waar vind je dit? Af te leiden uit PRINTING_ORIGINAL_DATE in RA_CUSTOMER_TRX_ALL of uit specifieke logs in Oracle Collaboration Messaging Framework bij gebruik van XML. Vastleggen Vergelijk het statusveld voor en na de wijziging Gebeurtenistype inferred | |||
| Volledige betaling ontvangen | Dit gebeurt wanneer een ontvangst het factuursaldo tot nul verlaagt. Dit is de belangrijkste succesvolle uitkomst van het incassoproces. | ||
| Waarom dit belangrijk is Belangrijk voor analyses van betalingskortingen. Het tijdstip van deze gebeurtenis bepaalt of de betaling binnen de kortingsperiode is ontvangen. Waar vind je dit? Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL, waar STATUS = 'APP' en AMOUNT_DUE_REMAINING na verwerking 0 is. Vastleggen Afleiden door veld X met veld Y te vergelijken Gebeurtenistype calculated | |||
| Bankafschrift afgestemd | Geeft aan dat de ontvangst die op de factuur is toegepast, is afgestemd met een regel op het bankafschrift. Zo is bevestigd dat het geld daadwerkelijk op de bankrekening staat. | ||
| Waarom dit belangrijk is Meet de automatisering van de betalingsverwerking. De tijd tussen het boeken van de betaling en de afstemming met de bank is geld waarvan de ontvangst nog niet is bevestigd. Waar vind je dit? Gekoppeld vanuit AR_CASH_RECEIPTS_ALL aan CE_STATEMENT_LINES (Cash Management) via de afstemmingsreferentie. Vastleggen Vergelijk het statusveld voor en na de wijziging Gebeurtenistype inferred | |||
| Betalingsherinnering verzonden | Registreert wanneer een aanmaning of incassoherinnering naar de klant wordt verstuurd. Deze gebeurtenis wordt aangemaakt door de module Advanced Collections. | ||
| Waarom dit belangrijk is Belangrijk om de effectiviteit van de incassostrategie te analyseren. Door deze gebeurtenis te vergelijken met betalingen zie je welke herinneringen het snelst tot betaling leiden. Waar vind je dit? Te vinden in de tabellen IEX_DUNNING of IEX_STRATEGY_WORK_ITEMS, gekoppeld aan de klantrekening. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Betalingstoezegging ontvangen | Registreert de toezegging van een klant om een bepaald bedrag vóór een bepaalde datum te betalen. Een incassomedewerker voert deze meestal handmatig in tijdens contact met de klant. | ||
| Waarom dit belangrijk is Belangrijk voor de analyse van klantbetaalgedrag. Niet nagekomen toezeggingen wijzen op een hoog kredietrisico en mogelijke toekomstige oninbare vorderingen. Waar vind je dit? Afkomstig uit de tabel IEX_PROMISE_DETAILS in de module Collections. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Creditnota aangemaakt | Registreert het aanmaken van een creditnotatransactie die op de factuur wordt toegepast. Hierdoor daalt het openstaande bedrag, vaak naar aanleiding van een geschil of retour. | ||
| Waarom dit belangrijk is Houdt het percentage herstelwerk aan creditnota’s en omzetverlies bij. Veel creditnota’s wijzen op structurele factureringsfouten. Waar vind je dit? Afkomstig uit RA_CUSTOMER_TRX_ALL, waar TRX_TYPE de waarde Credit Memo heeft en RELATED_CUSTOMER_TRX_ID overeenkomt met de factuur. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur aangepast | Registreert handmatige aanpassingen van het factuursaldo, zoals kleine afboekingen of valuta-aanpassingen, los van creditnota’s. | ||
| Waarom dit belangrijk is Helpt omzetverlies en afwijkende procesroutes op te sporen waarbij saldi zonder betaling worden afgeboekt. Waar vind je dit? Afkomstig uit de tabel AR_ADJUSTMENTS_ALL die aan de factuur is gekoppeld. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur afgeboekt | Een specifiek type aanpassing waarbij het resterende saldo als oninbaar wordt beschouwd en als dubieuze vordering wordt afgeboekt. Dit is een negatieve eindstatus. | ||
| Waarom dit belangrijk is Belangrijk om de financiële gezondheid te bewaken. Zo maak je onderscheid tussen operationele efficiëntie (hoe snel er wordt betaald) en problemen met de kredietkwaliteit. Waar vind je dit? Afkomstig uit AR_ADJUSTMENTS_ALL, waar het type aanpassing is geclassificeerd als 'Write-off' of is gekoppeld aan een rekening voor dubieuze debiteuren. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur geboekt in het grootboek | Registreert wanneer de boekingen voor de factuur zijn afgerond en naar het grootboek zijn overgezet. Dit ondersteunt compliance en zorgt dat de administratie klaar is voor de periodeafsluiting. | ||
| Waarom dit belangrijk is Vertragingen hebben geen invloed op wat de klant ziet, maar wel op de financiële afsluiting en de tijdigheid van rapportages. Waar vind je dit? Afgeleid uit GL_DATE in de tabel RA_CUST_TRX_LINE_GL_DIST_ALL. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Geschil afgehandeld | Geeft aan dat het onderzoek naar het geschil is afgerond. De uitkomst kan goedkeuring van een creditnota zijn (terecht geschil) of afwijzing (onterecht geschil). | ||
| Waarom dit belangrijk is Nodig om de gemiddelde doorlooptijd van geschillenafhandeling te berekenen. Een lange afhandeling schaadt de klanttevredenheid en verhoogt de Days Sales Outstanding. Waar vind je dit? Afgeleid uit de statuswijziging naar 'APPROVED' of 'REJECTED' in RA_CM_REQUESTS_ALL. Vastleggen Vergelijk het statusveld voor en na de wijziging Gebeurtenistype inferred | |||
| Geschil geopend | Markeert het begin van een formeel geschil over de factuur. De reguliere incasso wordt stilgelegd terwijl de kwestie wordt onderzocht. | ||
| Waarom dit belangrijk is Een belangrijke aanwijzing voor bottlenecks. Veel geschillen wijzen mogelijk op kwaliteitsproblemen eerder in het proces, bijvoorbeeld bij de levering of de facturatie. Waar vind je dit? Herkenbaar aan records in RA_CM_REQUESTS_ALL of aan specifieke workflows voor creditnota-aanvragen die aan de factuur zijn gekoppeld. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
Extractiegidsen
Stappen
Open de Oracle BI Cloud Connector (BICC)-console. Ga naar het onderdeel Manage Offerings and Data Stores.
Configureer de opslagverbinding. Zorg voor een geldige verbinding met Oracle Universal Content Management (UCM) of een externe Object Storage, zoals OCI Object Storage. Hier worden de geëxtraheerde CSV- of Parquet-bestanden opgeslagen.
Selecteer de Financials Offering. Zoek de Financials Offering om toegang te krijgen tot Accounts Receivable View Objects.
Selecteer en configureer View Objects (VO’s). Selecteer de specifieke Public View Objects (PVO’s) die nodig zijn om het event log samen te stellen. Belangrijke PVO’s zijn:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (factuurkoppen)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (factuurregels)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (betalingen en CM-toepassingen)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (aanpassingen en afboekingen)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (betalingsbeloften)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (incassoacties en herinneringen)
Stel filtercriteria in. Stel in Manage Extract Schedules of in de PVO-configuratie een filter in op CreationDate of LastUpdateDate om data voor de gewenste analyseperiode op te halen, bijvoorbeeld de afgelopen 12 maanden.
Plan de extractie. Maak een schema om de extracties dagelijks uit te voeren. Kies na de eerste volledige extractie voor Incremental Load, zodat alleen gewijzigde data wordt opgehaald.
Download en laad de data. Gebruik een script of integratietool om bestanden uit UCM of Object Storage op te halen en in de stagingtabellen van je datawarehouse te laden, bijvoorbeeld STG_AR_TRX_HEADER en STG_AR_APPLICATIONS.
Pas de transformatielogica toe. Voer het SQL-script uit het onderdeel Query uit op de stagingtabellen om de relationele data om te zetten naar het event log-formaat van ProcessMind.
Controleer de datatypen. Zorg er bij de transformatie voor dat datumvelden worden omgezet naar datetime-objecten en dat numerieke bedragen correct met decimalen worden verwerkt.
Exporteer naar CSV of Parquet. Exporteer het eindresultaat uit je datawarehouse als één bestand.
Upload naar ProcessMind. Importeer het bestand en koppel InvoiceNumber aan Case ID, ActivityName aan Activity en EventStartDateTime aan Timestamp.
Configuratie
- Frequentie van extractie: dagelijks (incrementeel) aanbevolen om de nieuwste statuswijzigingen vast te leggen.
- Eerste extractie: kies bij de eerste uitvoering Full Extract en schakel daarna over op Incremental op basis van Last Update Date.
- Belangrijke PVO’s: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- Datumfilter: gebruik CreationDate >= '202X-01-01' om de hoeveelheid data te beperken.
- Batchgrootte: standaard meestal 50000 rijen. Pas dit aan op basis van de netwerkbandbreedte als je data via UCM downloadt.
- Primaire sleutels: zorg dat je datawarehouse upserts uitvoert met de primaire sleutels van de PVO’s, meestal CustomerTrxId, ReceivableApplicationId enzovoort, om dubbele rijen te voorkomen.
- Auditgeschiedenis: standaard BICC-PVO’s leggen de huidige status vast. Voor exacte historische timestamps van statuswijzigingen, zoals het openen van een geschil, moet je mogelijk Audit Policies inschakelen in Fusion en Audit View Objects extraheren als de transactietabellen de geschiedenis niet bewaren.
Voorbeeldquery sql
/*
Transformation Script for Oracle BICC Data
Assumes raw BICC PVO CSVs are loaded into a SQL Staging Area with tables named:
- STG_AR_TRX_HEADER (TransactionHeaderExtractPVO)
- STG_AR_APPLICATIONS (ReceiptApplicationExtractPVO)
- STG_AR_ADJUSTMENTS (AdjustmentExtractPVO)
- STG_IEX_PROMISES (PromiseDetailExtractPVO)
- STG_IEX_STRATEGY (StrategyWorkItemExtractPVO)
- STG_CE_STMTS (BankStatementLineExtractPVO - Optional/Advanced)
*/
WITH Base_Log AS (
/* 1. Invoice Created */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Created' AS ActivityName,
CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
(Quantity * UnitSellingPrice) AS InvoiceAmount,
TrxClass AS TransactionType,
CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE TrxClass IN ('INV', 'DM')
UNION ALL
/* 2. Invoice Completed */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
TrxDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE CompleteFlag = 'Y'
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 3. Invoice Dispatched */
/* Using PrintingOriginalDate as proxy for dispatch */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
PrintingOriginalDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE PrintingOriginalDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
GlDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
'System' AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE GlDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 5. Payment Reminder Sent */
/* Links via Customer or Account, mapped back to Trx via Collections Strategy logic */
/* Simplified join assumption based on Trx Id availability in Work Item */
SELECT
H.TrxNumber AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
W.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
H.TrxClass AS TransactionType,
W.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_IEX_STRATEGY W
JOIN STG_AR_TRX_HEADER H ON W.ObjectPk1 = H.CustomerTrxId
WHERE W.WorkItemTemplateName LIKE '%Reminder%'
UNION ALL
/* 6. Promise to Pay Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
P.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
P.PromiseAmount AS InvoiceAmount,
H.TrxClass AS TransactionType,
P.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_IEX_PROMISES P
JOIN STG_AR_TRX_HEADER H ON P.CustTrxId = H.CustomerTrxId
UNION ALL
/* 7. Dispute Case Opened */
/* Triggered when dispute amount is updated/created */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
DisputeDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL
UNION ALL
/* 8. Dispute Resolved */
/* Approximated by update date when dispute amount returns to 0 after being positive */
/* Note: Accurate dispute history requires Audit Trail extraction. This is a best-effort proxy based on header state. */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL AND DisputeAmount = 0
UNION ALL
/* 9. Credit Memo Issued (Applied) */
SELECT
H.TrxNumber AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CM' -- Credit Memo application
UNION ALL
/* 10. Partial Payment Posted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Partial Payment Posted' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND (H.AmountDueRemaining > 0) -- Invoice still has balance
UNION ALL
/* 11. Full Payment Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Full Payment Received' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND H.AmountDueRemaining = 0 -- Invoice fully paid
UNION ALL
/* 12. Bank Statement Matched */
/* Requires joining Receipt Application -> Cash Receipt -> Bank Statement Line */
/* Placeholder logic assuming availability of Bank Statement PVO data */
SELECT
H.TrxNumber AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
BSL.StatementDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
BSL.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
BSL.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
-- Join to Receipt then to Bank Stmt would happen here
JOIN STG_CE_STMTS BSL ON APP.CashReceiptId = BSL.ReferenceId -- Simplified Join
WHERE APP.ApplicationType = 'CASH'
UNION ALL
/* 13. Invoice Adjusted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Adjusted' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType != 'WRITE_OFF'
UNION ALL
/* 14. Invoice Written Off */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Written Off' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType = 'WRITE_OFF'
UNION ALL
/* 15. Invoice Cleared */
/* The moment the invoice balance hits 0 */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE AmountDueRemaining = 0
)
SELECT
InvoiceNumber,
ActivityName,
EventStartDateTime,
SourceSystem,
GETDATE() AS LastDataUpdate,
BusinessUnit,
CustomerName,
Currency,
InvoiceAmount,
TransactionType,
UserName,
IsAutomated
FROM Base_Log
WHERE EventStartDateTime IS NOT NULL
ORDER BY InvoiceNumber, EventStartDateTime Stappen
Meld je aan bij Oracle Fusion Applications: Ga naar Tools > Reports and Analytics. Klik op Browse Catalog om Oracle BI Publisher te openen.
Maak een datamodel: Klik linksboven op Nieuw en selecteer Data Model. Dit is de container voor je SQL-extractielogica.
Definieer een SQL-dataset: Klik in de boomstructuur Data Model links op Data Sets en selecteer daarna New Data Set > SQL Query.
Configureer de databron: Geef de dataset een naam, bijvoorbeeld
ProcessMining_AR. SelecteerApplicationDB_FSCM(Financials Supply Chain Management) als databron. Zo krijg je toegang tot de benodigde AR- en RA-tabellen.Plak de query: Kopieer het volledige SQL-script uit het onderstaande onderdeel Query en plak het in het tekstvak SQL Query. Pas de kernlogica niet aan, tenzij je specifieke Flexfields (DFF’s) een andere naam wilt geven.
Stel parameters in: De query bevat de placeholder
:p_start_dateom te filteren op de aanmaakdatum van transacties. Maak op het tabblad Parameters van het datamodel een parameter met de naamp_start_dateen gegevenstype Date. Stel een standaardwaarde in, bijvoorbeeld01-01-2023.Bekijk de data: Klik op het tabblad Data, voer een geldige datum in voor de parameter en klik op Weergave. Controleer of de uitvoer rijen bevat met kolommen zoals
InvoiceNumber,ActivityNameenEventStartDateTime.Sla het datamodel op: Sla het object op in de map Shared Folders > Aangepast, bijvoorbeeld
/Shared Folders/Custom/ProcessMining/AR_Extract_DM.Plan de uitvoer of exporteer de data: Klik op Create Report met dit datamodel om grote hoeveelheden data te extraheren. Controleer in de rapporteditor of de indeling een eenvoudige tabel is en sla het rapport op. Gebruik vervolgens de Scheduler om het rapport uit te voeren en de data als CSV of XML op te slaan.
Maak het bestand klaar: Download het uitvoerbestand. Controleer bij CSV of de datumnotatie consistent is, bij voorkeur ISO 8601. Upload het bestand naar ProcessMind en koppel
InvoiceNumberaan Case ID,ActivityNameaan Activity enEventStartDateTimeaan Timestamp.
Configuratie
- Databron: gebruik
ApplicationDB_FSCMom toegang te krijgen tot Financials-tabellen. - Datumfilter: de query gebruikt
ra_customer_trx_all.creation_date >= :p_start_date. Stel dit in voor een voortschrijdende periode, bijvoorbeeld de afgelopen 12 maanden. - Prestaties: overweeg bij datasets met meer dan 100.000 facturen tijdens het testen een limiet met
ROWNUMof extraheer de data per maand. - Filter op bedrijfseenheid: als je organisatie meerdere bedrijfseenheden heeft en je er maar één nodig hebt, verwijder dan het commentaarteken voor de regel
AND trx.org_id = ...in deWhere-clausules. - Gebruikersnamen: de query haalt via
FND_USERgebruikersnamen op aan de hand van de gebruikers-ID’s inCREATED_BY. Zorg dat de extractiegebruiker leesrechten heeft voorFND_USER. - Advanced Collections: de activiteiten 'Payment Reminder Sent' en 'Promise to Pay Received' gebruiken tabellen uit de IEX-module (Advanced Collections). Als je deze module niet gebruikt, leveren deze onderdelen geen rijen op.
Voorbeeldquery sql
/* 1. Invoice Created */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Created' AS ActivityName,
trx.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 2. Invoice Completed */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
trx.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
trx.complete_flag = 'Y'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 3. Invoice Dispatched */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
COALESCE(trx.printing_original_date, trx.printing_last_printed, trx.last_update_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
(trx.printing_original_date IS NOT NULL OR trx.printing_count > 0)
AND trx.creation_date >= :p_start_date
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
MAX(dist.gl_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_line_gl_dist_all dist ON trx.customer_trx_id = dist.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
WHERE
dist.account_class = 'REC'
AND dist.posting_control_id != -3
AND trx.creation_date >= :p_start_date
GROUP BY
trx.trx_number,
hou.name,
party.party_name,
trx.invoice_currency_code,
ps.amount_due_original,
type.name
UNION ALL
/* 5. Payment Reminder Sent (Advanced Collections) */
SELECT
trx.trx_number AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
dun.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
iex_dunning_transactions dun
JOIN ar_payment_schedules_all ps ON dun.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON dun.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 6. Promise to Pay Received */
SELECT
trx.trx_number AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
pp.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
iex_promise_details pp
JOIN ar_payment_schedules_all ps ON pp.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON pp.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 7. Dispute Case Opened */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
req.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 8. Dispute Resolved */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
req.last_update_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.last_updated_by = u.user_id
WHERE
req.status_code IN ('APPROVED', 'REJECTED')
AND trx.creation_date >= :p_start_date
UNION ALL
/* 9. Credit Memo Issued */
SELECT
trx.trx_number AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
cm.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all cm
JOIN ra_customer_trx_all trx ON cm.previous_customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON cm.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 10 & 11. Partial and Full Payment */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN ps.status = 'CL' AND app.amount_applied = app.amount_applied_from THEN 'Full Payment Received'
WHEN ps.status = 'CL' AND ps.amount_due_remaining = 0 AND app.application_rule = '60' THEN 'Full Payment Received'
ELSE 'Partial Payment Posted'
END AS ActivityName,
app.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_receivable_applications_all app
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON app.created_by = u.user_id
WHERE
app.status = 'APP'
AND app.application_type = 'CASH'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 12. Bank Statement Matched */
SELECT
trx.trx_number AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
recon.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ce_statement_reconcils_all recon
JOIN ar_cash_receipt_history_all crh ON recon.reference_id = crh.cash_receipt_history_id
JOIN ar_cash_receipts_all cr ON crh.cash_receipt_id = cr.cash_receipt_id
JOIN ar_receivable_applications_all app ON cr.cash_receipt_id = app.cash_receipt_id
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON recon.created_by = u.user_id
WHERE
recon.status_flag = 'M'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 13 & 14. Invoice Adjusted and Written Off */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN adj.adjustment_type = 'W' THEN 'Invoice Written Off'
ELSE 'Invoice Adjusted'
END AS ActivityName,
adj.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_adjustments_all adj
JOIN ar_payment_schedules_all ps ON adj.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON adj.created_by = u.user_id
WHERE
adj.status = 'A'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 15. Invoice Cleared (Final Close) */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
ps.gl_date_closed AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ar_payment_schedules_all ps
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
WHERE
ps.status = 'CL'
AND ps.gl_date_closed IS NOT NULL
AND trx.creation_date >= :p_start_date Klaar om aan de slag te gaan?
Pas deze template toe op je Oracle Fusion-omgeving om financiële data om te zetten in bruikbare inzichten. Ons team helpt je om de specifieke bedrijfslogica van je organisatie op deze standaarden af te stemmen.
Versnel vandaag nog je incasso voor debiteuren
Verlaag DSO met 15 tot 20 dagen en los problemen met de cashflow op.
Geen creditcard nodig. Binnen 5 minuten ingesteld.