Uw Debiteuren Datatemplate
Uw Debiteuren Datatemplate
- Uitgebreide set aanbevolen attributes voor debiteurenanalyse
- Kernprocesactiviteiten en mijlpalen om te monitoren
- Systeemspecifieke extractierichtlijnen voor Oracle Fusion Financials
Debiteurenbeheer attributes
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke `event` of actie uitgevoerd in het debiteurenproces. | ||
| Omschrijving Dit Analisten gebruiken dit Het belang Noodzakelijk om de processtroom te definiëren en de opeenvolging van events te visualiseren. Vindplaats Afgeleid van transactiehistorietabellen (bijv. AR_PAYMENT_SCHEDULES_ALL, RA_CUST_TRX_LINE_GL_DIST_ALL). Voorbeelden Factuur aangemaaktBetalingsherinnering verzondenDeelbetaling geboektGeschilzaak geopend | |||
| Factuurnummer InvoiceNumber | De unieke `identifier` die is toegewezen aan de factuurtransactie in Oracle Fusion. | ||
| Omschrijving Dit attribuut dient als de unieke sleutel voor het identificeren van financiële verplichtingen binnen de Debiteurenmodule. Het koppelt alle volgende activiteiten, zoals correcties, geschillen en betalingen, aan de oorspronkelijke verkooptransactie. In process mining analyse functioneert dit attribuut als de Case ID. Het stelt analisten in staat de end-to-end levenscyclus van een vordering te traceren vanaf het moment van creatie totdat deze volledig is afgewikkeld of afgeschreven, wat de berekening van cyclustijden en procesvarianten vergemakkelijkt. Het belang Het is de fundamentele analyseeenheid voor het volgen van de credit-to-cash levenscyclus. Vindplaats Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Voorbeelden INV-2023-00110056789AR-99887755002211 | |||
| Gebeurtenistijdstempel EventStartDateTime | De specifieke datum en tijd waarop een activiteit plaatsvond. | ||
| Omschrijving Dit attribuut registreert het exacte moment dat een activiteit plaatsvond binnen het systeem. Het wordt gebruikt om gebeurtenissen chronologisch te rangschikken en vormt de basis voor alle tijdsgebonden berekeningen in process mining. Door timestamps te analyseren, kan de organisatie cyclustijden tussen activiteiten berekenen, zoals de duur tussen het aanmaken en verzenden van een factuur. Het is cruciaal voor het meten van KPI's zoals Days Sales Outstanding en het identificeren van tijdspatronen in betalingsgedrag. Het belang Fundamenteel voor het berekenen van duur, doorlooptijden en cyclustijden. Vindplaats Oracle Fusion Financials: CREATION_DATE- of LAST_UPDATE_DATE-kolommen in diverse transactietabellen. Voorbeelden 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| Bronsysteem SourceSystem | Het `system of record` waar de `data` is ontstaan. | ||
| Omschrijving 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. Hoewel het vaak een statische waarde is bij extractie uit één systeem, wordt dit attribuut cruciaal bij het samenvoegen van data uit meerdere ERP-systemen of bij de integratie van externe verzameltools. Het waarborgt de herkomst van data en traceerbaarheid in proceslandschappen met meerdere systemen. Het belang Zorgt voor datalinage en maakt onderscheid tussen verschillende ERP-instances. Vindplaats Hardcoded tijdens extractie of geconfigureerd in de data pipeline. Voorbeelden Oracle Fusion FinancialsOracle Cloud ERP - VSOracle Cloud ERP - EMEA | |||
| Laatste data-update LastDataUpdate | De `timestamp` van de laatste `data`-verversing in de `mining tool`. | ||
| Omschrijving Dit attribuut geeft aan wanneer de dataset voor het laatst is gesynchroniseerd met het bron Oracle-systeem. Het helpt gebruikers inzicht te krijgen in de actualiteit van de analyse en of de inzichten de huidige operationele situatie weerspiegelen. Het is essentieel dit veld te monitoren om ervoor te zorgen dat dashboards actuele informatie weergeven, vooral voor de operationele monitoring van openstaande geschillen of onverrekende gelden. Het belang Biedt context over de actualiteit en betrouwbaarheid van data. Vindplaats 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. | ||
| Omschrijving Dit attribuut koppelt aan de Organisatie ID in Oracle Fusion en vertegenwoordigt de specifieke bedrijfseenheid of afdeling die eigenaar is van de vordering. Het maakt de segmentatie van procesprestaties binnen verschillende onderdelen van de onderneming mogelijk. Het vergelijken van KPI's zoals de afhandeltijd van geschillen of DSO over verschillende bedrijfseenheden helpt het management om goed presterende teams te identificeren en best practices te standaardiseren. Het toont ook eenheden die mogelijk extra middelen of procesherstructurering nodig hebben. Het belang Belangrijke dimensie voor organisatorische benchmarking en prestatievergelijking. Vindplaats Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME gekoppeld via ORG_ID. Voorbeelden Verkoop Oost-VSEMEA ServicesAPAC Productie | |||
| Factuurbedrag InvoiceAmount | Het totale factuurbedrag. | ||
| Omschrijving Dit attribuut vertegenwoordigt het oorspronkelijk verschuldigde bedrag op de factuur. Het dient als de primaire weegfactor voor veel analyses, waardoor de organisatie waardevolle transacties kan prioriteren boven transacties met een lagere waarde. In de context van de 'Unapplied Credits and Leakage View' helpt dit veld de financiële impact van onopgeloste items te kwantificeren. Het wordt ook gebruikt om het gewogen gemiddelde van Days Sales Outstanding te berekenen, wat een meer financieel-georiënteerde kijk op procesefficiëntie biedt. Het belang Geeft financieel gewicht aan de analyse en ondersteunt waardegebaseerde prioritering. Vindplaats Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Voorbeelden 1500.00250.5010000.00 | |||
| Gebruikersnaam UserName | De systeemgebruiker die de `activity` heeft uitgevoerd. | ||
| Omschrijving Dit attribuut registreert de login ID of naam van de persoon die de specifieke activiteit heeft uitgevoerd (bijv. de factuur boekte, het bankafschrift afstemde). Het koppelt aan het generieke 'User' veld. Deze data is essentieel voor compliance auditing en voor het 'Collection Agent Throughput' dashboard. Het maakt de scheiding mogelijk van machinegestuurde acties (vaak uitgevoerd door een 'System' gebruiker) van menselijke acties, wat analyses van de automatisering ondersteunt. Het belang Maakt prestatietracking op gebruikersniveau en analyse van functiescheiding mogelijk. Vindplaats Oracle Fusion Financials: CREATED_BY- of LAST_UPDATED_BY-kolommen gekoppeld aan gebruikerstabellen. Voorbeelden sysadminjsmithfinance_batch_job | |||
| Is Geautomatiseerd IsAutomated | Vlag die aangeeft of de activiteit werd uitgevoerd zonder menselijke tussenkomst. | ||
| Omschrijving Dit booleaanse attribuut bepaalt of een activiteit werd uitgevoerd door een systeemproces (bijv. AutoInvoice, AutoLockbox) of een menselijke gebruiker. Het is de primaire drijfveer voor de 'Cash Application Automation Rate' KPI. Door de verhouding van geautomatiseerde tot handmatige activiteiten over tijd te volgen, kan de organisatie het succes van digitale transformatie-initiatieven valideren en specifieke processtappen identificeren die hardnekkig handmatig blijven. Het belang Primaire KPI voor digitale transformatie en efficiëntiemeting. Vindplaats Berekende logica gebaseerd op UserName (bijv. als User == 'BATCH_USER' dan waar). Voorbeelden truefalse | |||
| Klantnaam CustomerName | De naam van de entiteit die in de transactie is gefactureerd. | ||
| Omschrijving Dit Analisten gebruiken dit Het belang Essentieel voor klantgerichte analyse en risicoprofilering. Vindplaats Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME gekoppeld via BILL_TO_CUSTOMER_ID. Voorbeelden Acme CorpGlobex CorporationSoylent Corp | |||
| Klantsegment CustomerSegment | De classificatie van de klant op basis van grootte, branche of risico. | ||
| Omschrijving Dit Het gebruik van dit Het belang Maakt gesegmenteerde analyse van incassostrategieën en risico's mogelijk. Vindplaats Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Voorbeelden EnterpriseMidden- en kleinbedrijf (MKB)OverheidHoog risico | |||
| Naam Incasseerder CollectorName | De naam van de incassomedewerker of `resource` die aan de factuur is toegewezen. | ||
| Omschrijving Dit attribuut identificeert de specifieke medewerker of het teamlid dat verantwoordelijk is voor het innen van betalingen op de factuur. Het is de belangrijkste dimensie voor het 'Collection Agent Throughput' dashboard. Data uit dit veld stelt de organisatie in staat de productiviteit per medewerker te meten, trainingsbehoeften te identificeren en de werkdruk te verdelen. Het bevordert de verantwoordelijkheid en helpt bij het standaardiseren van incassowerkzaamheden binnen het financeteam. Het belang Belangrijk voor analyse van resourceprestaties en werkdrukverdeling. Vindplaats Oracle Fusion Financials: AR_COLLECTORS.NAME geassocieerd met het Klantprofiel. Voorbeelden John SmithIncassoteam AJane Doe | |||
| Transactietype TransactionType | De classificatie van het debiteurendocument (Factuur, Creditnota, Debitnota). | ||
| Omschrijving Dit Door te filteren op dit Het belang Onderscheidt standaardfacturen van aanpassingen en correcties. Vindplaats Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Voorbeelden FactuurCreditnotaDebetnotaChargeback | |||
| Vervaldatum DueDate | De datum waarop de betaling naar verwachting zal worden ontvangen. | ||
| Omschrijving Dit attribuut is de uiterste betaaldatum, berekend op basis van de Factuurdatum en Betalingsvoorwaarden. Het dient als referentiepunt om te bepalen of een betaling te laat is. Het wordt gebruikt in de 'Collection Reminder Timing Variance' KPI om te meten hoe proactief het team handelt ten opzichte van de deadline. Het is ook de drempel voor het classificeren van vorderingen als lopend of vervallen in verouderingsrapporten. Het belang De primaire basislijn voor het bepalen van achterstalligheid en tijdige prestaties. Vindplaats Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Voorbeelden 2023-11-302023-12-152024-01-01 | |||
| Betalingstermijnen PaymentTerms | De overeengekomen voorwaarden voor betalingstermijnen (bijv. Netto 30). | ||
| Omschrijving Dit Variaties in betalingstermijnen tussen klanten kunnen verschillen in DSO verklaren. Dit Het belang Contextualiseert betalingssnelheid ten opzichte van contractuele afspraken. Vindplaats Oracle Fusion Financials: RA_TERMS.NAME Voorbeelden Netto 30Onmiddellijk2/10 netto 30Netto 60 | |||
| Brondocument CreationSource | De herkomst van de factuur, aangevend of deze handmatig is aangemaakt of geïmporteerd. | ||
| Omschrijving Dit attribuut onthult hoe de factuur het Oracle-systeem is binnengekomen, zoals via 'Manual Entry', 'AutoInvoice' of specifieke externe feeds. Het is een proxy voor de generieke 'Channel' mapping. Dit is cruciaal voor de 'Cash Application Automation Monitor'. Het helpt onderscheid te maken tussen processen die volledig digitaal zijn en processen die handmatige invoer vereisen. Een hoog aantal 'Manual Entry' kan duiden op een gebrek aan upstream-integratie of systeemtekortkomingen. Het belang Bepaalt de mate van upstream automatisering en de herkomst van de data. Vindplaats Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Voorbeelden AutoInvoiceHandmatigProjectimplementatieOrderbeheer | |||
| Days Sales Outstanding DaysSalesOutstanding | Het aantal dagen tussen factuuraanmaak en vereffening. | ||
| Omschrijving Dit berekende attribuut meet de duur van 'Invoice Created' tot 'Invoice Cleared'. Het is de directe berekening voor de 'Average Days Sales Outstanding' KPI. Hoewel dit dynamisch kan worden berekend in dashboards, maakt een vooraf berekend attribuut op caseniveau gemakkelijker filteren en segmenteren mogelijk (bijv. alle cases tonen waarbij DSO > 60 dagen). Het belang De definitieve efficiëntie Vindplaats Berekend: Datum(Factuur Vereffend) - Datum(Factuur Aangemaakt). Voorbeelden 45 dagen12 dagen60 dagen | |||
| Geldigheidsdatum korting DiscountEligibilityDate | De uiterste datum waarop een klant kan betalen om een vroegbetalingskorting te ontvangen. | ||
| Omschrijving Dit attribuut markeert de deadline waarop de klant gebruik kan maken van voorwaarden zoals '2/10 Net 30' (2% korting indien betaald binnen 10 dagen). Het is vereist voor het 'Early Payment Discount Analytics' dashboard. Het analyseren van betalingen tegen deze datum onthult het 'benuttingspercentage van vroegbetalingskortingen'. Het helpt de onderneming te bepalen of hun kortingsstrategieën de cashflow effectief versnellen, of dat ze door klanten worden genegeerd. Het belang Ondersteunt de analyse van de effectiviteit van Vindplaats Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Voorbeelden 2023-11-102023-12-05 | |||
| Is herstelwerk IsRework | Vlag die aangeeft of de factuur correctie- of geschillenlussen heeft doorlopen. | ||
| Omschrijving Dit booleaanse attribuut identificeert of een factuur activiteiten heeft ondergaan die verband houden met foutcorrectie, zoals 'Credit Memo Issued' of 'Invoice Adjusted'. Het ondersteunt het 'Credit Memo Volume and Rework' dashboard. Het identificeren van rework cases helpt 'happy path'-processen te isoleren van problematische. Hoge rework percentages zijn een leidende indicator van upstream datakwaliteitsproblemen in de stamdata of verkooporderinvoerprocessen. Het belang Identificeert verspilling en inefficiëntie in de processtroom. Vindplaats Berekend: Waar als de case 'Creditnota Uitgegeven' of 'Geschillen Dossier Geopend' bevat. Voorbeelden truefalse | |||
| Reden Geschil DisputeReason | De categorie of redencode die wordt toegewezen wanneer een geschil wordt geopend. | ||
| Omschrijving Dit Het analyseren van dit Het belang Cruciaal voor hoofdoorzaakanalyse van vertraagde betalingen en herwerk. Vindplaats Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE of AR_DISPUTE_HISTORY. Voorbeelden PrijsgeschilBelastingfoutGoederen niet ontvangenDubbele facturatie | |||
| Regio Region | Geografische regio verbonden aan de bedrijfseenheid of klant. | ||
| Omschrijving Dit attribuut koppelt de transactie aan een bredere geografische regio, zoals Noord-Amerika, EMEA of APAC. Het is nuttig voor rapportage op directieniveau en voor het 'DSO and Cash Cycle Trends' dashboard. Regionale analyse helpt rekening te houden met culturele verschillen in betalingsgedrag (bijv. langere standaard betalingstermijnen in Zuid-Europa vergeleken met de VS) en zorgt ervoor dat wereldwijde KPI's met de juiste lokale context worden geïnterpreteerd. Het belang Biedt geografische segmentatie op hoog niveau voor globale rapportage. Vindplaats Oracle Fusion Financials: Afgeleid van Business Unit of Klantenadres. Voorbeelden Noord-AmerikaEMEAAPACLATAM | |||
| Valutacode CurrencyCode | De valuta waarin het factuurbedrag luidt. | ||
| Omschrijving Dit attribuut specificeert de valuta (bijv. USD, EUR) voor de financiële bedragen. Het is noodzakelijk voor een correcte interpretatie van het Factuurbedrag en voor het uitvoeren van valutaconversies indien een wereldwijde rapportagevaluta is vereist. Voor wereldwijde organisaties helpt dit attribuut bij het analyseren van incassoprestaties in verschillende economische regio's en stelt het financeteams in staat de impact van valutakoersen te scheiden van de operationele procesprestaties. Het belang Contextualiseert financiële waarden in multi-valuta omgevingen. Vindplaats Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Voorbeelden USDEURGBPJPY | |||
Activiteiten Debiteurenbeheer
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Deelbetaling geboekt | Vindt plaats wanneer een ontvangst op de factuur wordt toegepast, maar het bedrag lager is dan het totale openstaande saldo. Dit laat de factuur open met een gereduceerd saldo. | ||
| Het belang Hoge frequentie duidt op gefragmenteerd betaalgedrag (KPI voor frequentie van deelbetalingen) wat de reconciliatie-inspanning verhoogt. Vindplaats Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL waar STATUS = 'APP' en AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur aangemaakt | Deze `activity` markeert de initiële aanmaak van de factuurrecord in het systeem. Het registreert de `timestamp` wanneer de transactie `header` voor het eerst wordt opgeslagen in de Oracle Receivables tabellen. | ||
| Het belang Markeert het begin van de proceslevenscyclus en de basislijn voor ouderdomsberekeningen. Essentieel voor het berekenen van de totale doorlooptijd en de levertijd voor verzending. Vindplaats Afgeleid van de RA_CUSTOMER_TRX_ALL tabel met behulp van de CREATION_DATE of TRX_DATE kolom. Vastleggen Vastgelegd wanneer transactieregel wordt ingevoegd Gebeurtenistype explicit | |||
| Factuur afgeletterd | De uiteindelijke status waarin de factuur is afgesloten in het systeem, meestal omdat het saldo nul is door betaling, creditnota of correctie. | ||
| Het belang De Vindplaats Vastgesteld wanneer de STATUS in AR_PAYMENT_SCHEDULES_ALL wijzigt naar 'CL' (Gesloten). Vastleggen Vergelijk het statusveld voor/na Gebeurtenistype 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. | ||
| Het belang Cruciaal voor het meten van de prestaties van factuurverzending. De kloof tussen aanmaak en verzending vertraagt direct de cash collection cyclus. Vindplaats Afgeleid uit PRINTING_ORIGINAL_DATE in RA_CUSTOMER_TRX_ALL of specifieke logs in de Oracle Collaboration Messaging Framework indien XML wordt gebruikt. Vastleggen Vergelijk het statusveld voor/na Gebeurtenistype inferred | |||
| Factuur voltooid | Geeft aan dat het facturatieproces is voltooid en de factuur klaar is om te worden verwerkt, geprint en geboekt. Dit gebeurt wanneer de transactiestatus verandert van onvolledig naar voltooid. | ||
| Het belang Maakt onderscheid tussen opsteltijd en verwerkingstijd. Vertragingen hier duiden op knelpunten in het interne facturatieproces. Vindplaats Vastgesteld wanneer de COMPLETE_FLAG in RA_CUSTOMER_TRX_ALL overgaat naar 'Y'. Vastleggen Vergelijk het statusveld voor/na Gebeurtenistype inferred | |||
| Volledige betaling ontvangen | Vindt plaats wanneer een ontvangsttoepassing het factuursaldo tot nul reduceert. Dit is de belangrijkste succesvolle event voor het incassoproces. | ||
| Het belang Cruciaal voor Early Payment Discount Analytics. De timing van deze event bepaalt of contanten binnen de kortingsperiode zijn geïncasseerd. Vindplaats Afkomstig uit AR_RECEIVABLE_APPLICATIONS_ALL waar STATUS = 'APP' en de resulterende AMOUNT_DUE_REMAINING 0 is. Vastleggen Afleiden uit het vergelijken van veld X met Y Gebeurtenistype calculated | |||
| Bankafschrift afgestemd | Geeft aan dat de op de factuur toegepaste ontvangst is afgestemd met een regel op het bankafschrift. Dit bevestigt dat het geld daadwerkelijk op de bankrekening is ontvangen. | ||
| Het belang Meet de automatisering van cashapplicatie. Het verschil tussen het boeken van betalingen en bankafstemming vertegenwoordigt onbevestigde cash. Vindplaats Gekoppeld van AR_CASH_RECEIPTS_ALL aan CE_STATEMENT_LINES (Cash Management) via de afstemmingsreferentie. Vastleggen Vergelijk het statusveld voor/na Gebeurtenistype inferred | |||
| Betalingsafspraak ontvangen | Registreert een afspraak van de klant om een specifiek bedrag op een bepaalde datum te betalen. Dit wordt doorgaans handmatig ingevoerd door een incassomedewerker tijdens klantcontact. | ||
| Het belang Cruciaal voor Analyse van klantbetaalgedrag. Niet-nagekomen beloften duiden op een hoog kredietrisico en potentiële toekomstige dubieuze debiteuren. Vindplaats Afkomstig uit de IEX_PROMISE_DETAILS tabel in de Collections module. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Betalingsherinnering verzonden | Legt de uitgifte vast van een aanmaning of incassoherinnering aan de klant. Deze event wordt gegenereerd door de Advanced Collections module. | ||
| Het belang Essentieel voor het analyseren van de effectiviteit van de incassostrategie. Het correleren hiervan met betalingen helpt bepalen welke herinneringsstrategieën leiden tot de snelste geldinzameling. Vindplaats Gevonden in de IEX_DUNNING of IEX_STRATEGY_WORK_ITEMS tabellen die gekoppeld zijn aan het klantenaccount. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Creditnota uitgegeven | Legt de aanmaak vast van een creditnotatransactie die op de factuur is toegepast. Dit vermindert het verschuldigde saldo, vaak als reactie op een geschil of retour. | ||
| Het belang Volgt Credit Memo Rework Rate en omzetverlies. Veelvuldige creditnota's duiden op systematische factureringsfouten. Vindplaats Afkomstig uit RA_CUSTOMER_TRX_ALL waar TRX_TYPE 'Credit Memo' is en RELATED_CUSTOMER_TRX_ID overeenkomt met de factuur. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur aangepast | Legt handmatige aanpassingen vast aan het factuursaldo, zoals kleine afschrijvingen of valuta-aanpassingen, die verschillen van creditnota's. | ||
| Het belang Helpt bij het identificeren van omzetverlies en niet-standaard procespaden waar saldi worden afgeboekt zonder betaling. Vindplaats Afkomstig uit de AR_ADJUSTMENTS_ALL tabel, gekoppeld aan de factuur. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur afgeschreven | Een specifiek type aanpassing waarbij het resterende saldo als oninbaar wordt geacht en wordt afgeboekt als dubieuze debiteuren. Dit is een negatieve eindstatus. | ||
| Het belang Cruciaal voor het monitoren van financiële gezondheid. Scheidt operationele efficiëntie (betalingssnelheid) van kredietkwaliteitsproblemen. Vindplaats Afkomstig uit AR_ADJUSTMENTS_ALL waar het correctietype is geclassificeerd als 'Afschrijving' of gekoppeld is aan een 'Dubieuze Debiteuren' rekening. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Factuur geboekt in GL | Registreert de event waarbij de boekhoudkundige factuurposten worden afgerond en overgedragen aan het Grootboek. Dit waarborgt financiële compliance en de gereedheid voor de afsluiting van de periode. | ||
| Het belang Hoewel dit de klantbeleving niet beïnvloedt, hebben vertragingen hier wel gevolgen voor de financiële afsluitingscyclus en de tijdigheid van rapportages. Vindplaats Afgeleid van de GL_DATE in de RA_CUST_TRX_LINE_GL_DIST_ALL tabel. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
| Geschil opgelost | Markeert de afronding van het geschillenonderzoek. De uitkomst kan een goedkeuring van de creditnota (geldig geschil) of een afwijzing (ongeldig geschil) zijn. | ||
| Het belang Noodzakelijk voor het berekenen van de Gemiddelde Geschillenoplostijd. Lange oplostijden hebben een negatieve invloed op klanttevredenheid en DSO. Vindplaats Afgeleid van de statuswijziging naar 'GOEDGEKEURD' of 'AFGEWEZEN' in RA_CM_REQUESTS_ALL. Vastleggen Vergelijk het statusveld voor/na Gebeurtenistype inferred | |||
| Geschilzaak geopend | Markeert de start van een formeel geschil betreffende de factuur. Dit onderbreekt standaard incassoactiviteiten terwijl de kwestie wordt onderzocht. | ||
| Het belang Belangrijke indicator voor knelpunten. Hoge geschillenpercentages duiden op upstream kwaliteitsproblemen in de uitvoering of factuurnauwkeurigheid. Vindplaats Vastgesteld aan de hand van records in RA_CM_REQUESTS_ALL of specifieke Credit Memo Request-workflows die gekoppeld zijn aan de factuur. Vastleggen Vastgelegd wanneer transactie X is uitgevoerd Gebeurtenistype explicit | |||
Extractie Guides
Stappen
Open de Oracle BI Cloud Connector (BICC) Console. Navigeer naar de sectie Manage Offerings and Data Stores.
Configureer de opslagverbinding. Zorg ervoor dat u een geldige verbinding heeft met Oracle Universal Content Management (UCM) of een externe Object Storage (zoals OCI Object Storage) waar de geëxtraheerde CSV/Parquet-bestanden worden 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). U moet de specifieke Public View Objects (PVO's) selecteren die nodig zijn om het event log samen te stellen. Essentiële PVO's omvatten:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (Factuurheaders)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (Factuurregels)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (Betalingen en Creditnota-toepassingen)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (Aanpassingen en afschrijvingen)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (Betaalbeloften)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (Aanmaningen/Herinneringen)
Definieer filtercriteria (Pruning). Stel in Manage Extract Schedules of binnen de PVO-configuratie een filter in op CreationDate of LastUpdateDate om gegevens te extraheren die relevant zijn voor uw analyseperiode (bijv. de laatste 12 maanden).
Plan de extractie. Maak een taakplanning aan om deze extracties dagelijks uit te voeren. Kies Incremental Load om alleen gewijzigde data op te halen na de initiële Full Load.
Downloaden en inladen. Gebruik een geautomatiseerd script of integratietool om de bestanden van UCM/Object Storage op te halen en deze te laden in uw datawarehouse staging tables (bijv. STG_AR_TRX_HEADER, STG_AR_APPLICATIONS).
Pas transformatielogica toe. Voer het SQL-script uit de Query-sectie uit op uw staging tables om de relationele data om te zetten naar het ProcessMind event log-formaat.
Valideer datatypen. Zorg ervoor dat datumvelden worden geconverteerd naar datetime-objecten en dat numerieke bedragen decimalen correct verwerken tijdens de transformatie.
Exporteer naar CSV/Parquet. Exporteer de uiteindelijke resultatenset van uw datawarehouse als één bestand.
Upload naar ProcessMind. Importeer het bestand, en map InvoiceNumber naar Case ID, ActivityName naar Activity, en EventStartDateTime naar Timestamp.
Configuratie
- Extractiefrequentie: Dagelijks (incrementaal) wordt aanbevolen om de nieuwste statuswijzigingen vast te leggen.
- Eerste keer laden: Kies 'Volledige Extractie' voor de eerste keer, en schakel daarna over naar 'Incrementaal' op basis van de laatst bijgewerkte datum.
- Belangrijke PVO's: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- Datumfiltering: Pas filters toe op CreationDate >= '202X-01-01' om het volume te beperken.
- Fetch Size: Standaard is meestal 50000 rijen; pas aan op basis van netwerkbandbreedte bij gebruik van UCM-download.
- Primary Keys: Zorg ervoor dat uw downstream datawarehouse upserts afhandelt met behulp van de PVO Primary Keys (meestal CustomerTrxId, ReceivableApplicationId, enz.) om dubbele rijen te voorkomen.
- Auditgeschiedenis: Standaard BICC PVO's leggen de huidige status vast. Voor exacte historische timestamping van statuswijzigingen (zoals Dispute Opened), kan het nodig zijn Audit Policies in Fusion in te schakelen en Audit View Objects te extraheren als de transactionele tabellen de geschiedenis niet bewaren.
a Voorbeeldquery config
/*
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.
Data Model aanmaken: Klik op New (linksboven) en selecteer Data Model. Dit is de container voor uw SQL-extractielogica.
SQL Data Set definiëren: Klik in het Data Model-overzicht aan de linkerkant op Data Sets en selecteer vervolgens New Data Set > SQL Query.
Data Source configureren: Geef de data set een naam (bijv.
ProcessMining_AR). SelecteerApplicationDB_FSCM(Financials Supply Chain Management) als de Data Source. Dit zorgt voor toegang tot de vereiste AR- en RA-tabellen.Query plakken: Kopieer het volledige SQL-script uit de onderstaande Query-sectie en plak dit in het tekstvak van de SQL Query. Pas de kernlogica niet aan, tenzij u specifieke Flexfields (DFF's) moet hernoemen.
Parameters instellen: De query bevat een placeholder
:p_start_datevoor het filteren op de aanmaakdatum van transacties. Maak op het tabblad Parameters van het Data Model een nieuwe parameter aan met de naamp_start_date, Data Type: Date, en stel een standaardwaarde in (bijv.01-01-2023).Data bekijken: Klik op het tabblad Data, voer een geldige datum in voor de parameter en klik op View. Zorg ervoor dat de uitvoer rijen bevat met kolommen zoals
InvoiceNumber,ActivityNameenEventStartDateTime.Data Model opslaan: Sla het object op in uw Shared Folders > Custom directory (bijv.
/Shared Folders/Custom/ProcessMining/AR_Extract_DM).Plannen/Exporteren: Om grote volumes te extraheren, klikt u op Create Report met behulp van dit Data Model. Controleer in de report editor of de lay-out een eenvoudige tabel is. Sla het rapport op. Gebruik vervolgens de Scheduler om het rapport uit te voeren en de data te exporteren als CSV of XML.
Definitieve opmaak: Download het uitvoerbestand. Zorg er bij CSV voor dat het datumformaat consistent is (ISO 8601 heeft de voorkeur). Upload dit bestand naar ProcessMind en map
InvoiceNumbernaar Case ID,ActivityNamenaar Activity enEventStartDateTimenaar Timestamp.
Configuratie
- Data Source: Gebruik
ApplicationDB_FSCMom toegang te krijgen tot Financials-tabellen. - Date Filter: De query gebruikt
ra_customer_trx_all.creation_date >= :p_start_date. Configureer dit om data te laden in een doorlopend venster (bijv. de laatste 12 maanden). - Performance: Voor datasets van meer dan 100.000 facturen, overweeg een
ROWNUM-limiet toe te voegen tijdens het testen of de extractie per maand op te splitsen. - Business Unit Filtering: Als uw organisatie meerdere Business Units heeft en u slechts één nodig heeft, verwijder dan de commentaartekens bij de regel
AND trx.org_id = ...in deWhere-clausules. - User Names: De query zet
CREATED_BYgebruikers-ID's om naar gebruikersnamen viaFND_USER. Zorg ervoor dat de extractiegebruiker leesrechten heeft voorFND_USER. - Advanced Collections: De activiteiten 'Payment Reminder Sent' en 'Promise to Pay Received' zijn afhankelijk van de IEX (Advanced Collections) moduletabellen. Als u deze module niet gebruikt, zullen deze secties eenvoudigweg nul rijen retourneren.
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