Jouw datatemplate voor debiteurenbeheer
Jouw datatemplate voor debiteurenbeheer
- Volledige set aanbevolen attributen voor analyse van debiteurenbeheer
- Belangrijkste procesactiviteiten en procesmomenten om te volgen
- Systeemspecifieke extractie-instructies voor Oracle Fusion Financials
Attributen voor debiteurenbeheer
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke gebeurtenis of actie die in het debiteurenproces wordt uitgevoerd. | ||
| Beschrijving Dit attribuut beschrijft de processtap, zoals het aanmaken van een factuur, het boeken van een betaling of het openen van een geschil. Het bepaalt de stroom van de procesmap en maakt de volgorde van gebeurtenissen zichtbaar. Analisten gebruiken dit veld om procesvarianten, lussen en bottlenecks te identificeren. Het is belangrijk om te bepalen in hoeverre standaardwerkinstructies worden gevolgd en om de frequentie van specifieke gebeurtenissen, zoals herbewerkingen of handmatige interventies, te berekenen. Waarom dit belangrijk is Nodig om de processtroom te definiëren en de volgorde van gebeurtenissen zichtbaar te maken. Waar je het vindt Afgeleid uit tabellen met transactiehistorie, zoals AR_PAYMENT_SCHEDULES_ALL en RA_CUST_TRX_LINE_GL_DIST_ALL. Voorbeelden Factuur aangemaaktBetalingsherinnering verzondenGedeeltelijke betaling geboektGeschilcase geopend | |||
| Factuurnummer InvoiceNumber | De unieke identificatie die in Oracle Fusion aan de factuurtransactie is toegewezen. | ||
| Beschrijving Dit attribuut is de unieke sleutel voor het identificeren van financiële verplichtingen binnen de module Accounts Receivable. Het koppelt alle daaropvolgende activiteiten, zoals aanpassingen, geschillen en betalingen, aan de oorspronkelijke verkooptransactie. In process mining werkt dit attribuut als Case ID. Analisten kunnen hiermee de volledige levenscyclus van een vordering volgen, vanaf het aanmaken tot het volledig vereffenen of afboeken. Zo kunnen ze doorlooptijden en procesvarianten berekenen. Waarom dit belangrijk is Dit is de basiseenheid voor analyses van de credit-to-cashlevenscyclus. Waar je het vindt Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Voorbeelden INV-2023-00110056789AR-99887755002211 | |||
| Tijdstip van gebeurtenis EventStartDateTime | De specifieke 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 doorlooptijden tussen activiteiten berekenen, zoals de tijd tussen het aanmaken en verzenden van een factuur. Het is belangrijk voor KPI's zoals Days Sales Outstanding en voor het herkennen van tijdspatronen in betaalgedrag. Waarom dit belangrijk is De basis voor het berekenen van duur, doorlooptijden en cyclustijden. Waar je het vindt 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 oorspronkelijke data is vastgelegd. | ||
| Beschrijving Dit attribuut identificeert de softwareomgeving waaruit de procesdata is geëxtraheerd. In deze context bevestigt het dat de data afkomstig is uit de Oracle Fusion Financials-omgeving. Bij een extractie uit één systeem is dit vaak een vaste waarde. Bij het samenvoegen van data uit meerdere ERP-instanties of het integreren van incassotools van derden wordt het belangrijker. Het zorgt voor dataherkomst en traceerbaarheid in processen die over meerdere systemen lopen. Waarom dit belangrijk is Zorgt voor dataherkomst en maakt onderscheid tussen verschillende ERP-instanties. Waar je het vindt Hardgecodeerd tijdens de extractie of geconfigureerd in de datapijplijn. Voorbeelden Oracle Fusion FinancialsOracle Cloud ERP - USOracle Cloud ERP - EMEA | |||
| Laatste data-update LastDataUpdate | De timestamp waarop de data voor het laatst is vernieuwd in de miningtool. | ||
| Beschrijving Dit attribuut geeft aan wanneer de dataset voor het laatst is gesynchroniseerd met het Oracle-bronsysteem. Het helpt gebruikers te begrijpen hoe actueel de analyse is en of de inzichten de huidige stand van de bedrijfsvoering weerspiegelen. Het is belangrijk dit veld te bewaken om ervoor te zorgen dat dashboards actuele informatie tonen, vooral bij het operationeel volgen van openstaande geschillen of niet-toegewezen geld. Waarom dit belangrijk is Geeft context over de actualiteit en betrouwbaarheid van de data. Waar je het vindt Systeemtijd op het moment van extractie. Voorbeelden 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| Bedrijfseenheid BusinessUnit | De operationele entiteit 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 die de vordering beheert. Hiermee kun je procesprestaties binnen verschillende delen van de organisatie segmenteren. Door KPI's zoals de doorlooptijd van geschiloplossing of DSO tussen bedrijfseenheden te vergelijken, kan het management goed presterende teams herkennen en goede werkwijzen standaardiseren. Ook worden eenheden zichtbaar die extra bronnen of een herontwerp van het proces nodig hebben. Waarom dit belangrijk is Belangrijke dimensie voor benchmarking en prestatievergelijking tussen organisatieonderdelen. Waar je het vindt Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME, gekoppeld via ORG_ID. Voorbeelden Verkoop in het oosten van de VSDienstverlening in EMEAProductie in APAC | |||
| Factuurbedrag InvoiceAmount | De totale geldwaarde van de factuur. | ||
| Beschrijving Dit attribuut staat voor het oorspronkelijke bedrag dat op de factuur verschuldigd is. 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 de 'Weergave van niet-toegewezen credits en lekkage' helpt dit veld de financiële impact van onopgeloste posten te kwantificeren. Het wordt ook gebruikt om de gewogen gemiddelde Days Sales Outstanding te berekenen, voor een financieel gerichtere kijk op procesefficiëntie. Waarom dit belangrijk is Geeft financieel gewicht aan de analyse en ondersteunt prioritering op basis van waarde. Waar je het vindt Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Voorbeelden 1500.00250.5010000.00 | |||
| Gebruikersnaam UserName | De systeemgebruiker die de activiteit heeft uitgevoerd. | ||
| Beschrijving Dit attribuut registreert de login-ID of naam van de persoon die de specifieke activiteit heeft uitgevoerd, bijvoorbeeld het boeken van de factuur of het koppelen van het bankafschrift. Het verwijst naar het generieke veld 'User'. Deze data is belangrijk voor compliance-audits en voor het dashboard 'Productiviteit per incassomedewerker'. Hiermee kunnen systeemacties, die vaak door een 'System'-gebruiker worden uitgevoerd, worden onderscheiden van menselijke acties. Dat ondersteunt analyses van automatisering. Waarom dit belangrijk is Maakt prestatiebewaking op gebruikersniveau en analyse van functiescheiding mogelijk. Waar je het vindt Oracle Fusion Financials: de kolommen CREATED_BY of LAST_UPDATED_BY, gekoppeld aan gebruikerstabellen. Voorbeelden sysadminjsmithfinance_batch_job | |||
| Is geautomatiseerd IsAutomated | Vlag die aangeeft of de activiteit zonder menselijke tussenkomst is uitgevoerd. | ||
| Beschrijving Dit booleaanse attribuut bepaalt of een activiteit is uitgevoerd door een systeemproces, zoals AutoInvoice of AutoLockbox, of door een menselijke gebruiker. Het is de belangrijkste factor voor de KPI 'Automatiseringspercentage van ontvangstverwerking'. Door de verhouding tussen geautomatiseerde en handmatige activiteiten in de tijd te volgen, kan de organisatie het succes van digitale transformatie-initiatieven beoordelen en processtappen identificeren die hardnekkig handmatig blijven. Waarom dit belangrijk is Belangrijkste meetwaarde voor digitale transformatie en efficiëntiemeting. Waar je het vindt Berekende logica op basis van UserName, bijvoorbeeld: if User == 'BATCH_USER' then true. Voorbeelden truefalse | |||
| Klantnaam CustomerName | De naam van de entiteit waaraan de transactie is gefactureerd. | ||
| Beschrijving Dit attribuut identificeert de klant die bij de factuur hoort. Het is de basis voor analyses van betaalgedrag, de frequentie van geschillen en de effectiviteit van het incassoproces op klantniveau. Analisten gebruiken dit veld om klanten te vinden die vaak te laat betalen of geschillen indienen. Dit inzicht ondersteunt het dashboard 'Analyse van betaalgedrag van klanten' en helpt bij het afstemmen van kredietvoorwaarden en incassostrategieën op individuele klantprofielen. Waarom dit belangrijk is Belangrijk voor klantgerichte analyses en risicoprofielen. Waar je het vindt Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME, gekoppeld via BILL_TO_CUSTOMER_ID. Voorbeelden Acme CorpGlobex CorporationSoylent Corp | |||
| Klantsegment CustomerSegment | De indeling van de klant op basis van omvang, sector of risico. | ||
| Beschrijving Dit attribuut deelt klanten in groepen in, zoals Strategic, Enterprise, SME of High Risk. Het is vaak afgeleid van de klantklasse of profielklasse in Oracle Fusion. Met dit attribuut kun je procesvarianten in verschillende marktsegmenten analyseren. Zo kun je controleren of Strategic-klanten de bedoelde persoonlijke service krijgen en of High Risk-klanten nauwlettend worden gevolgd op naleving van betalingsafspraken. Waarom dit belangrijk is Maakt gesegmenteerde analyses van incassostrategieën en risico mogelijk. Waar je het vindt 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 specifieke medewerker of het teamlid dat verantwoordelijk is voor het innen van de betaling op de factuur. Het is de belangrijkste dimensie voor het dashboard 'Productiviteit per incassomedewerker'. Met data uit dit veld kan de organisatie de productiviteit per medewerker meten, opleidingsbehoeften herkennen en de werkvoorraad verdelen. Het bevordert eigenaarschap en helpt de incasso-inspanningen binnen het financiële team te standaardiseren. Waarom dit belangrijk is Belangrijk voor analyses van prestaties van bronnen en het verdelen van de werkvoorraad. Waar je het vindt Oracle Fusion Financials: AR_COLLECTORS.NAME, gekoppeld aan het klantprofiel. Voorbeelden John SmithIncassoteam AJane Doe | |||
| Transactietype TransactionType | De classificatie van het debiteurendocument (factuur, creditnota, 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 'Volume en herbewerkingen van creditnota's'. Door op dit attribuut te filteren, kunnen analisten lussen door herbewerkingen als gevolg van creditnota's isoleren of zich specifiek richten op de hoofdstroom van het factureringsproces. Het helpt de samenstelling van het werk voor debiteuren te begrijpen. Waarom dit belangrijk is Maakt onderscheid tussen standaardfacturen, aanpassingen en correcties. Waar je het vindt Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Voorbeelden FactuurCreditnotaDebetnotaTerugboeking | |||
| Vervaldatum DueDate | De datum waarop de betaling naar verwachting is ontvangen. | ||
| Beschrijving Dit attribuut is de uiterste betaaldatum, berekend op basis van de factuurdatum en betalingsvoorwaarden. Het is het referentiepunt om te bepalen of een betaling te laat is. Het wordt gebruikt in de KPI 'Afwijking in timing van incassoherinneringen' om te meten hoe proactief het team handelt ten opzichte van de deadline. Ook is het de grens voor de indeling van vorderingen als actueel of vervallen in ouderdomsrapportages. Waarom dit belangrijk is De belangrijkste basis voor het bepalen van betalingsachterstanden en tijdige betaling. Waar je het vindt Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Voorbeelden 2023-11-302023-12-152024-01-01 | |||
| Betalingsvoorwaarden PaymentTerms | De overeengekomen voorwaarden voor het betalingstijdstip, bijvoorbeeld Net 30. | ||
| Beschrijving Dit attribuut bepaalt de contractueel afgesproken betalingstermijn. Het 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 prestatiegegevens normaliseren, zodat een klant met Net 60 niet onterecht als trage betaler wordt aangemerkt ten opzichte van een klant met Net 30. Waarom dit belangrijk is Geeft context aan de snelheid van betaling in relatie tot contractuele afspraken. Waar je het vindt Oracle Fusion Financials: RA_TERMS.NAME Voorbeelden Netto 30Direct2/10 netto 30Netto 60 | |||
| Bron van aanmaak CreationSource | De herkomst van de factuur, die aangeeft of deze handmatig is aangemaakt of geïmporteerd. | ||
| Beschrijving Dit attribuut laat zien hoe de factuur in het Oracle-systeem is terechtgekomen, bijvoorbeeld via 'Manual Entry', 'AutoInvoice' of specifieke externe feeds. Het is een benadering van de generieke mapping 'Channel'. Dit is belangrijk voor de 'Monitor voor automatisering van ontvangstverwerking'. Het helpt onderscheid te maken tussen volledig digitale processen en processen waarvoor handmatige invoer nodig is. Veel 'Manual Entry'-transacties kunnen wijzen op ontbrekende integratie aan de voorkant of tekortkomingen in het systeem. Waarom dit belangrijk is Identificeert de mate van automatisering aan de voorkant en de herkomst van de data. Waar je het vindt Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Voorbeelden AutoInvoiceHandmatigProjectimplementatieOrderbeheer | |||
| Datum waarop korting vervalt DiscountEligibilityDate | De laatste datum waarop een klant kan betalen om een betalingskorting te ontvangen. | ||
| Beschrijving Dit attribuut markeert de deadline waarop de klant gebruik kan maken van voorwaarden zoals '2/10 Net 30' (2% korting bij betaling binnen 10 dagen). Het is nodig voor het dashboard 'Analyses van betalingskortingen'. Door betalingen met deze datum te vergelijken, wordt het 'Percentage benutting van betalingskortingen' zichtbaar. Zo begrijpt de organisatie of kortingsstrategieën de kasstroom daadwerkelijk versnellen of door klanten worden genegeerd. Waarom dit belangrijk is Ondersteunt analyses van de effectiviteit van prikkels en het versnellen van de kasstroom. Waar je het vindt Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Voorbeelden 2023-11-102023-12-05 | |||
| Is herbewerking IsRework | Vlag die aangeeft of de factuur correctie- of geschillenlussen heeft doorlopen. | ||
| Beschrijving Dit booleaanse attribuut identificeert of een factuur activiteiten heeft doorlopen die verband houden met foutcorrectie, zoals 'Creditnota uitgegeven' of 'Factuur aangepast'. Het ondersteunt het dashboard 'Volume en herbewerkingen van creditnota's'. Door herbewerkte cases te identificeren, kunnen probleemgevallen worden onderscheiden van het standaardproces. Een hoog herbewerkingspercentage is een vroege aanwijzing voor problemen met de datakwaliteit in stamdata of orderinvoer. Waarom dit belangrijk is Identificeert verspilling en inefficiëntie in de processtroom. Waar je het vindt Berekend: True als de case 'Creditnota uitgegeven' of 'Geschil geopend' bevat. Voorbeelden truefalse | |||
| Reden van geschil DisputeReason | De categorie of reden die wordt toegewezen wanneer een geschil wordt geopend. | ||
| Beschrijving Dit attribuut legt de reden vast die wordt opgegeven wanneer de activiteit 'Geschil geopend' plaatsvindt. Veelvoorkomende waarden zijn bijvoorbeeld 'Prijsfout', 'Verschil in hoeveelheid' of 'Beschadigde goederen'. Door dit attribuut te analyseren in het dashboard 'Levenscyclus en bottlenecks van geschillen' worden de oorzaken van betalingsvertragingen zichtbaar. Als 'Prijsfout' vaak voorkomt, weet de organisatie dat ze het voorafgaande verkoopofferteproces moet onderzoeken, en niet alleen het incassoproces. Waarom dit belangrijk is Belangrijk voor oorzaakanalyses van vertraagde betalingen en herbewerkingen. Waar je het vindt Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE of AR_DISPUTE_HISTORY. Voorbeelden PrijsdispuutBelastingfoutGoederen niet ontvangenDubbele facturatie | |||
| Regio Region | Geografische regio die bij de bedrijfseenheid of klant hoort. | ||
| Beschrijving Dit attribuut koppelt de transactie aan een groter geografisch gebied, zoals Noord-Amerika, EMEA of APAC. Het is nuttig voor rapportages op directieniveau en voor het dashboard 'Trends in DSO en kasstroomcyclus'. Regionale analyses houden rekening met culturele verschillen in betaalgedrag, zoals langere standaardbetalingstermijnen in Zuid-Europa dan in de VS. Zo worden wereldwijde KPI's in de juiste lokale context geïnterpreteerd. Waarom dit belangrijk is Biedt geografische segmentatie op hoofdlijnen voor wereldwijde rapportages. Waar je het vindt Oracle Fusion Financials: afgeleid van de bedrijfseenheid of het klantadres. Voorbeelden Noord-AmerikaEMEAAPACLATAM | |||
| 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. Het is nodig om het factuurbedrag correct te interpreteren en valutaomrekeningen uit te voeren wanneer een wereldwijde rapportagevaluta nodig is. Voor wereldwijde organisaties helpt dit attribuut bij het analyseren van incassoprestaties in verschillende economische regio's. Financeteams kunnen zo valuta-effecten onderscheiden van operationele procesprestaties. Waarom dit belangrijk is Geeft financiële waarden context in omgevingen met meerdere valuta. Waar je het vindt Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Voorbeelden USDEURGBPJPY | |||
Activiteiten voor debiteurenbeheer
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Factuur aangemaakt | Deze activiteit markeert het moment waarop het factuurrecord voor het eerst in het systeem wordt aangemaakt. De timestamp legt vast wanneer de transactiekop voor het eerst wordt opgeslagen in de Oracle Receivables-tabellen. | ||
| Waarom dit belangrijk is Legt het begin van de proceslevenscyclus en de basis voor ouderdomsberekeningen vast. Essentieel voor het berekenen van de totale doorlooptijd en de tijd tot verzending. Waar je het vindt Afgeleid uit de tabel RA_CUSTOMER_TRX_ALL met de kolom CREATION_DATE of TRX_DATE. Vastleggen Geregistreerd wanneer de transactieregel wordt ingevoegd Eventtype explicit | |||
| Factuur vereffend | De eindstatus waarin de factuur in het systeem is gesloten, meestal omdat het saldo door een betaling, creditnota of aanpassing nul is. | ||
| 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 je het vindt Geïdentificeerd wanneer STATUS in AR_PAYMENT_SCHEDULES_ALL wijzigt naar 'CL' (Closed). Vastleggen Vergelijk het statusveld voor en na de wijziging Eventtype inferred | |||
| Factuur verzonden | Vertegenwoordigt de verzending van de factuur naar de klant via print, e-mail of XML. Dit markeert de overdracht van de organisatie naar de klant. | ||
| Waarom dit belangrijk is Belangrijk voor het meten van Billing Dispatch Performance. Het verschil tussen aanmaak en verzending vertraagt rechtstreeks de incassocyclus. Waar je het vindt Afgeleid uit PRINTING_ORIGINAL_DATE in RA_CUSTOMER_TRX_ALL of uit specifieke logs in het Oracle Collaboration Messaging Framework bij gebruik van XML. Vastleggen Vergelijk het statusveld voor en na de wijziging Eventtype inferred | |||
| Factuur voltooid | Geeft aan dat het aanmaakproces van de factuur is afgerond en dat de factuur klaar is om te worden verwerkt, afgedrukt en geboekt. Dit gebeurt wanneer de transactiestatus verandert van incomplete naar complete. | ||
| Waarom dit belangrijk is Maakt onderscheid tussen concepttijd en verwerkingstijd. Vertragingen hier wijzen op knelpunten in het interne proces voor het aanmaken van facturen. Waar je het vindt Vastgesteld wanneer COMPLETE_FLAG in RA_CUSTOMER_TRX_ALL verandert in 'Y'. Vastleggen Vergelijk het statusveld voor en na de wijziging Eventtype inferred | |||
| Gedeeltelijke betaling geboekt | Treedt op wanneer een ontvangst op de factuur wordt toegepast, maar het bedrag lager is dan het totale openstaande saldo. De factuur blijft daardoor open met een lager saldo. | ||
| Waarom dit belangrijk is Een hoge frequentie wijst op versnipperd betaalgedrag (KPI voor frequentie van gedeeltelijke betalingen), waardoor meer werk nodig is voor de afstemming. Waar je het vindt Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL, waar STATUS = 'APP' en AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Volledige betaling ontvangen | Treedt op wanneer een ontvangsttoepassing het factuursaldo tot nul verlaagt. Dit is de belangrijkste succesvolle gebeurtenis in het incassoproces. | ||
| Waarom dit belangrijk is Belangrijk voor analyses van betalingskortingen. Het tijdstip van deze gebeurtenis bepaalt of het geld binnen de kortingsperiode is geïnd. Waar je het vindt Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL, waar STATUS = 'APP' en het resulterende AMOUNT_DUE_REMAINING 0 is. Vastleggen Afgeleid door veld X met Y te vergelijken Eventtype calculated | |||
| Bankafschrift gekoppeld | Geeft aan dat de ontvangst die op de factuur is toegepast, is afgestemd met een regel op het bankafschrift. Hiermee is bevestigd dat het geld daadwerkelijk op de bankrekening is bijgeschreven. | ||
| Waarom dit belangrijk is Meet de automatisering van de verwerking van ontvangsten. Het verschil tussen het boeken van de betaling en de koppeling met het bankafschrift staat voor niet-bevestigd geld. Waar je het vindt Samengevoegd uit AR_CASH_RECEIPTS_ALL en CE_STATEMENT_LINES (Cash Management) via de afstemmingsreferentie. Vastleggen Vergelijk het statusveld voor en na de wijziging Eventtype inferred | |||
| Betalingsbelofte ontvangen | Registreert de toezegging van een klant om een specifiek bedrag vóór een specifieke datum te betalen. Een incassomedewerker voert dit meestal handmatig in tijdens contact met de klant. | ||
| Waarom dit belangrijk is Belangrijk voor de analyse van betaalgedrag van klanten. Niet nagekomen toezeggingen wijzen op een hoog kredietrisico en mogelijke toekomstige oninbare vorderingen. Waar je het vindt Afkomstig uit de tabel IEX_PROMISE_DETAILS in de module Collections. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Betalingsherinnering verzonden | Legt vast dat een aanmaning of incassoherinnering naar de klant is verstuurd. Deze gebeurtenis wordt gegenereerd door de module Advanced Collections. | ||
| Waarom dit belangrijk is Belangrijk voor het analyseren van Collection Strategy Effectiveness. Door dit met betalingen te vergelijken, kun je bepalen welke herinneringsstrategieën het snelst tot betaling leiden. Waar je het vindt Te vinden in de tabellen IEX_DUNNING of IEX_STRATEGY_WORK_ITEMS, gekoppeld aan de klantrekening. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Creditnota uitgegeven | Legt het aanmaken vast 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 herbewerkingspercentage van creditnota's en omzetlekkage bij. Veel creditnota's wijzen op structurele factureringsfouten. Waar je het vindt Afkomstig uit RA_CUSTOMER_TRX_ALL, waar TRX_TYPE Credit Memo is en RELATED_CUSTOMER_TRX_ID overeenkomt met de factuur. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Factuur aangepast | Legt handmatige aanpassingen van het factuursaldo vast, zoals kleine afboekingen of valuta-aanpassingen, los van creditnota's. | ||
| Waarom dit belangrijk is Helpt omzetlekkage en niet-standaard procespaden te identificeren waarbij saldi zonder betaling worden weggeboekt. Waar je het vindt Afkomstig uit de tabel AR_ADJUSTMENTS_ALL, gekoppeld aan de factuur. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Factuur afgeboekt | Een specifiek type aanpassing waarbij het resterende saldo als oninbaar wordt beschouwd en als dubieuze debiteur wordt afgeboekt. Dit is een negatieve eindstatus. | ||
| Waarom dit belangrijk is Belangrijk voor het bewaken van de financiële gezondheid. Maakt onderscheid tussen operationele efficiëntie (betalingssnelheid) en problemen met de kredietkwaliteit. Waar je het vindt Afkomstig uit AR_ADJUSTMENTS_ALL, waar het type aanpassing is geclassificeerd als 'Write-off' of gekoppeld is aan een rekening voor dubieuze debiteuren. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Factuur naar grootboek geboekt | Registreert de gebeurtenis waarbij de boekingen van de factuur worden afgerond en overgedragen aan het General Ledger. Dit ondersteunt financiële compliance en zorgt dat de organisatie klaar is voor de periodeafsluiting. | ||
| Waarom dit belangrijk is Hoewel dit geen effect heeft op wat de klant ziet, beïnvloeden vertragingen hier de financiële afsluitingscyclus en de tijdigheid van rapportages. Waar je het vindt Afgeleid uit GL_DATE in de tabel RA_CUST_TRX_LINE_GL_DIST_ALL. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
| Geschil opgelost | Geeft het einde van het geschilonderzoek aan. De uitkomst kan goedkeuring van een creditnota zijn (geldig geschil) of afwijzing (ongeldig geschil). | ||
| Waarom dit belangrijk is Nodig voor het berekenen van de gemiddelde doorlooptijd van geschiloplossing. Lange doorlooptijden hebben een negatief effect op klanttevredenheid en DSO. Waar je het vindt Afgeleid van de statuswijziging naar 'APPROVED' of 'REJECTED' in RA_CM_REQUESTS_ALL. Vastleggen Vergelijk het statusveld voor en na de wijziging Eventtype inferred | |||
| Geschilcase geopend | Markeert de start van een formeel geschil over de factuur. Standaardincassoactiviteiten worden stilgelegd terwijl de kwestie wordt onderzocht. | ||
| Waarom dit belangrijk is Belangrijke indicator van een knelpunt. Hoge geschilpercentages wijzen op kwaliteitsproblemen eerder in de keten, bijvoorbeeld bij orderafhandeling of facturatie. Waar je het vindt Geïdentificeerd aan de hand van records in RA_CM_REQUESTS_ALL of specifieke Credit Memo Request-workflows die aan de factuur zijn gekoppeld. Vastleggen Geregistreerd wanneer transactie X is uitgevoerd Eventtype explicit | |||
Extractiegidsen
Stappen
Open de Oracle BI Cloud Connector (BICC)-console. Ga naar de sectie Manage Offerings and Data Stores.
Configureer de opslagverbinding. Zorg dat je een geldige verbinding hebt met Oracle Universal Content Management (UCM) of externe Object Storage, zoals OCI Object Storage, waar de geëxtraheerde CSV- of Parquet-bestanden worden opgeslagen.
Selecteer de Financials-offering. Zoek de Financials-offering om toegang te krijgen tot de View Objects voor Accounts Receivable.
Selecteer en configureer View Objects (VO's). Selecteer de specifieke Public View Objects (PVO's) die nodig zijn om het event log op te bouwen. 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 (correcties en afboekingen)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (betalingsbeloftes)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (aanmaningen en herinneringen)
Definieer filtercriteria, oftewel pruning. Stel in Manage Extract Schedules of in de configuratie van de PVO een filter in op CreationDate of LastUpdateDate. Zo haal je alleen data op die relevant is voor je analyseperiode, bijvoorbeeld de afgelopen 12 maanden.
Plan de extractie. Maak een jobschema om deze extracties dagelijks uit te voeren. Kies Incremental Load om na de eerste Full Load alleen gewijzigde data op te halen.
Download en laad de data. Gebruik een geautomatiseerd script of een integratietool om de 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 de querysectie uit op de stagingtabellen om de relationele data om te zetten naar het event-logformaat van ProcessMind.
Controleer de datatypen. Zorg dat datumvelden naar datetime-objecten worden omgezet en dat numerieke bedragen tijdens de transformatie correct met decimalen worden verwerkt.
Exporteer naar CSV of Parquet. Exporteer de uiteindelijke resultatenset 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
- Extractiefrequentie: dagelijks, bij voorkeur incrementeel, om de nieuwste statuswijzigingen vast te leggen.
- Eerste lading: selecteer 'Full Extract' bij de eerste uitvoering en schakel daarna over op 'Incremental' op basis van Last Update Date.
- Belangrijkste PVO's: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- Datumfilter: gebruik filters op CreationDate >= '202X-01-01' om het volume te beperken.
- Batchgrootte: standaard meestal 50000 rijen. Pas dit aan op basis van de beschikbare netwerkbandbreedte bij gebruik van een UCM-download.
- Primaire sleutels: zorg dat je datawarehouse downstream 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 Dispute Opened, moet je mogelijk Audit Policies in Fusion inschakelen en Audit View Objects extraheren als de transactietabellen de geschiedenis niet bewaren.
a 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
Log in bij Oracle Fusion Applications: Ga naar Tools > Reports and Analytics. Klik op Browse Catalog om de Oracle BI Publisher-interface te openen.
Maak een datamodel: Klik linksboven op New 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 vervolgens 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 de sectie Query hieronder en plak het in het tekstvak SQL Query. Pas de kernlogica niet aan, tenzij je specifieke Flexfields (DFFs) 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 nieuwe parameter aan met de naamp_start_date, datatype Date en een standaardwaarde, bijvoorbeeld01-01-2023.Bekijk de data: Klik op het tabblad Data, voer een geldige datum in voor de parameter en klik op View. Controleer of de uitvoer rijen bevat met kolommen zoals
InvoiceNumber,ActivityNameenEventStartDateTime.Sla het datamodel op: Sla het object op in Shared Folders > Custom, bijvoorbeeld
/Shared Folders/Custom/ProcessMining/AR_Extract_DM.Plan of exporteer: Klik voor grote hoeveelheden data op Create Report met dit datamodel. Controleer in de rapporteditor of de lay-out een eenvoudige tabel is. Sla het rapport op. Gebruik daarna de Scheduler om het rapport uit te voeren en de data als CSV of XML te exporteren.
Maak de uitvoer definitief op: 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_FSCMvoor toegang tot Financials-tabellen. - Datumfilter: de query gebruikt
ra_customer_trx_all.creation_date >= :p_start_date. Stel dit in op een voortschrijdend venster, bijvoorbeeld de laatste 12 maanden. - Prestaties: overweeg voor datasets met meer dan 100.000 facturen tijdens het testen een
ROWNUM-limiet toe te voegen of de extractie per maand op te delen. - Filter op bedrijfseenheid: als je organisatie meerdere bedrijfseenheden heeft en je er maar één nodig hebt, haal dan de commentaartekens weg bij de regel
AND trx.org_id = ...in deWhere-clausules. - Gebruikersnamen: de query koppelt
CREATED_BY-gebruikers-ID's aan gebruikersnamen viaFND_USER. Zorg dat de extractiegebruiker leesrechten heeft opFND_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 secties gewoon nul rijen op.
a 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 te beginnen?
Zet je financiële data om in bruikbare inzichten door deze template toe te passen op je Oracle Fusion-omgeving. Ons team helpt je om jouw bedrijfslogica aan deze standaarden te koppelen.
Versnel vandaag nog je debiteurenincasso
Verlaag je DSO met 15 tot 20 dagen en pak knelpunten in je cashflow meteen aan.
Je hebt geen creditcard nodig. Je bent in 5 minuten klaar met instellen.