Il template dei dati dei crediti verso clienti
Il template dei dati dei crediti verso clienti
- Set completo di attributi consigliati per l’analisi dei crediti verso clienti
- Attività e tappe fondamentali del processo da monitorare
- Istruzioni per l’estrazione dei dati specifiche per Oracle Fusion Financials
Attributi dei crediti verso clienti
| Nome | Descrizione | ||
|---|---|---|---|
| Data e ora dell’evento EventStartDateTime | Data e ora esatte in cui si è verificata un’attività. | ||
| Descrizione Questo attributo registra il momento esatto in cui un’attività si è verificata nel sistema. Serve a ordinare gli eventi cronologicamente ed è alla base di tutti i calcoli temporali nel Process Mining. Analizzando le date e le ore, l’azienda può calcolare i tempi di ciclo tra le attività, ad esempio il tempo che intercorre tra la creazione e l’invio di una fattura. È fondamentale per misurare KPI come i giorni medi di incasso e individuare schemi temporali nel comportamento di pagamento. Perché è importante È fondamentale per calcolare durate, tempi di attraversamento e tempi di ciclo. Dove reperirli Oracle Fusion Financials: colonne CREATION_DATE o LAST_UPDATE_DATE nelle diverse tabelle delle transazioni. Esempi 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| Nome dell’attività ActivityName | Evento o azione specifica eseguita nel processo di gestione dei crediti commerciali. | ||
| Descrizione Questo attributo descrive la fase del processo, ad esempio la creazione di una fattura, la contabilizzazione di un pagamento o l’apertura di una contestazione. Definisce il flusso della mappa del processo e consente di visualizzare la sequenza degli eventi. Gli analisti utilizzano questo campo per individuare varianti di processo, cicli e colli di bottiglia. È essenziale per verificare il rispetto delle procedure operative standard e calcolare la frequenza di eventi specifici, come le rilavorazioni o gli interventi manuali. Perché è importante È necessario per definire il flusso del processo e visualizzare la sequenza degli eventi. Dove reperirli Ricavato dalle tabelle della cronologia delle transazioni, ad esempio AR_PAYMENT_SCHEDULES_ALL e RA_CUST_TRX_LINE_GL_DIST_ALL. Esempi Fattura creataSollecito di pagamento inviatoPagamento parziale contabilizzatoContestazione aperta | |||
| Numero fattura InvoiceNumber | Identificativo univoco assegnato alla transazione della fattura in Oracle Fusion. | ||
| Descrizione Questo attributo funge da chiave univoca per identificare le obbligazioni finanziarie nel modulo Accounts Receivable. Collega alla transazione di vendita originale tutte le attività successive, come rettifiche, contestazioni e pagamenti. Nell’analisi di Process Mining, questo attributo funge da ID del caso. Consente agli analisti di ricostruire il ciclo di vita completo di un credito, dalla creazione fino alla chiusura o allo stralcio, e di calcolare i tempi di ciclo e le varianti di processo. Perché è importante È l’unità fondamentale per analizzare il ciclo di vita dal credito all’incasso. Dove reperirli Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Esempi INV-2023-00110056789AR-99887755002211 | |||
| Sistema di origine SourceSystem | Sistema di registrazione da cui provengono i dati. | ||
| Descrizione Questo attributo identifica l’ambiente software da cui sono stati estratti i dati del processo. In questo caso, conferma che i dati provengono dall’ambiente Oracle Fusion Financials. Spesso è un valore statico quando l’estrazione riguarda un solo sistema, ma diventa fondamentale quando si uniscono dati provenienti da più istanze ERP o si integrano strumenti di recupero crediti di terze parti. Garantisce la tracciabilità della provenienza dei dati nei processi che coinvolgono più sistemi. Perché è importante Garantisce la tracciabilità della provenienza dei dati e distingue le diverse istanze ERP. Dove reperirli Inserito manualmente durante l’estrazione o configurato nella pipeline dei dati. Esempi Oracle Fusion FinancialsOracle Cloud ERP - Stati UnitiOracle Cloud ERP - EMEA | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Data e ora dell’ultimo aggiornamento dei dati nello strumento di Process Mining. | ||
| Descrizione Questo attributo indica quando i dati sono stati sincronizzati l’ultima volta con il sistema Oracle di origine. Aiuta a capire quanto siano recenti le analisi e se le informazioni riflettano lo stato attuale delle operazioni. Monitorare questo campo è importante per assicurarsi che le Dashboard mostrino dati aggiornati, soprattutto quando si controllano operativamente le contestazioni aperte o gli incassi non applicati. Perché è importante Fornisce informazioni sull’aggiornamento e sull’affidabilità dei dati. Dove reperirli Ora del sistema al momento dell’estrazione. Esempi 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| Automatizzata IsAutomated | Indica se l’attività è stata eseguita senza intervento umano. | ||
| Descrizione Questo attributo booleano indica se un’attività è stata eseguita da un processo di sistema, ad esempio AutoInvoice o AutoLockbox, oppure da una persona. È il principale fattore di calcolo del KPI «Tasso di automazione dell’applicazione degli incassi». Monitorando nel tempo il rapporto tra attività automatizzate e manuali, l’organizzazione può verificare i risultati delle iniziative di trasformazione digitale e individuare le fasi del processo che continuano a richiedere interventi manuali. Perché è importante Metrica principale per misurare la trasformazione digitale e l’efficienza. Dove reperirli Logica calcolata in base a UserName (ad esempio, se User == 'BATCH_USER', allora true). Esempi truefalse | |||
| Data di scadenza DueDate | La data entro cui è previsto il pagamento. | ||
| Descrizione Questo attributo indica la scadenza del pagamento, calcolata in base alla data della fattura e ai termini di pagamento. È il riferimento per stabilire se un pagamento è in ritardo. Viene utilizzato nel KPI «Scostamento nei tempi dei solleciti di pagamento» per misurare con quanto anticipo il team interviene rispetto alla scadenza. È inoltre la soglia che consente di classificare i crediti come non scaduti o scaduti nei report di anzianità dei crediti. Perché è importante Il principale riferimento per determinare i ritardi di pagamento e il rispetto delle scadenze. Dove reperirli Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Esempi 2023-11-302023-12-152024-01-01 | |||
| Importo della fattura InvoiceAmount | Valore monetario totale della fattura. | ||
| Descrizione Questo attributo rappresenta l’importo originariamente dovuto per la fattura. È il principale fattore di ponderazione per molte analisi e consente all’azienda di dare priorità alle transazioni di importo elevato rispetto a quelle di valore inferiore. Nella Dashboard «Crediti non applicati e perdite», questo campo aiuta a quantificare l’impatto finanziario delle partite irrisolte. Viene inoltre utilizzato per calcolare la media ponderata dei giorni medi di incasso, offrendo una visione dell’efficienza del processo più orientata agli aspetti finanziari. Perché è importante Attribuisce un peso finanziario all’analisi e supporta la definizione delle priorità in base al valore. Dove reperirli Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Esempi 1500.00250.5010000.00 | |||
| Nome del cliente CustomerName | Nome dell’entità a cui viene addebitata la transazione. | ||
| Descrizione Questo attributo identifica il cliente associato alla fattura. È fondamentale per analizzare i comportamenti di pagamento, la frequenza delle contestazioni e l’efficacia del recupero crediti a livello di singolo cliente. Gli analisti utilizzano questo campo per individuare i clienti che pagano spesso in ritardo o presentano contestazioni. Queste informazioni alimentano la Dashboard «Analisi del comportamento di pagamento dei clienti» e aiutano ad adeguare le condizioni di credito e le strategie di recupero al profilo di ciascun cliente. Perché è importante È essenziale per le analisi incentrate sui clienti e la valutazione del rischio. Dove reperirli Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME collegato tramite BILL_TO_CUSTOMER_ID. Esempi Acme CorpGlobex CorporationSoylent Corp | |||
| Nome dell’addetto al recupero crediti CollectorName | Nome dell’addetto o della risorsa incaricata del recupero crediti relativo alla fattura. | ||
| Descrizione Questo attributo identifica il dipendente o il membro del team incaricato di riscuotere il pagamento della fattura. È la dimensione principale della Dashboard «Volume di lavoro degli addetti al recupero crediti». I dati di questo campo consentono all’organizzazione di misurare la produttività di ciascun addetto, individuare le esigenze di formazione e bilanciare i carichi di lavoro. Favoriscono responsabilità chiare e aiutano a uniformare le attività di recupero crediti all’interno del team finanziario. Perché è importante È fondamentale per analizzare le prestazioni delle risorse e bilanciare i carichi di lavoro. Dove reperirli Oracle Fusion Financials: AR_COLLECTORS.NAME associato al profilo del cliente. Esempi John SmithTeam recupero crediti AJane Doe | |||
| Nome utente UserName | L’utente di sistema che ha eseguito l’attività. | ||
| Descrizione Questo attributo registra l’ID di accesso o il nome della persona che ha eseguito una specifica attività, ad esempio registrare una fattura o riconciliare un estratto conto bancario. Corrisponde al campo generico «Utente». Questi dati sono fondamentali per gli audit di conformità e per la Dashboard «Volume di attività degli addetti al recupero crediti». Consentono di distinguere le operazioni eseguite automaticamente, spesso tramite un utente «System», da quelle svolte da persone, supportando l’analisi dell’automazione. Perché è importante Consente di monitorare le prestazioni a livello di utente e di analizzare la separazione dei compiti. Dove reperirli Oracle Fusion Financials: colonne CREATED_BY o LAST_UPDATED_BY collegate alle tabelle degli utenti. Esempi sysadminjsmithfinance_batch_job | |||
| Segmento cliente CustomerSegment | Classificazione del cliente in base alle dimensioni, al settore o al rischio. | ||
| Descrizione Questo attributo suddivide i clienti in gruppi, ad esempio strategici, Enterprise, PMI o ad alto rischio. Spesso deriva dalla classe o dalla classe di profilo del cliente in Oracle Fusion. L’attributo consente di analizzare le varianti di processo nei diversi segmenti di mercato. Ad esempio, aiuta a verificare se i clienti strategici ricevono il livello di servizio previsto o se i clienti ad alto rischio vengono monitorati attentamente per il rispetto dei termini di pagamento. Perché è importante Consente di analizzare per segmento le strategie di recupero crediti e il rischio. Dove reperirli Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Esempi EnterprisePiccole impresePubblica amministrazioneAlto rischio | |||
| Tipo di transazione TransactionType | Classificazione del documento di credito commerciale (fattura, nota di credito, nota di debito). | ||
| Descrizione Questo attributo distingue i diversi tipi di documenti finanziari. Tra i valori più comuni figurano fattura, nota di credito e nota di debito. Questa distinzione è fondamentale per la Dashboard «Volume e rilavorazioni delle note di credito». Filtrando i dati in base a questo attributo, gli analisti possono isolare i cicli di rilavorazione causati dalle note di credito o concentrarsi sul flusso principale di fatturazione. In questo modo è possibile comprendere la composizione del carico di lavoro relativo ai crediti commerciali. Perché è importante Distingue le fatture standard dalle rettifiche e dalle correzioni. Dove reperirli Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Esempi FatturaNota di creditoNota di debitoAddebito contestato | |||
| Unità aziendale BusinessUnit | Entità operativa dell’organizzazione responsabile della fattura. | ||
| Descrizione Questo attributo corrisponde all’ID dell’organizzazione in Oracle Fusion e rappresenta l’unità aziendale o la divisione a cui appartiene il credito. Consente di confrontare le prestazioni del processo tra le diverse aree dell’azienda. Confrontare KPI come il tempo di risoluzione delle contestazioni o i giorni medi di incasso tra le unità aziendali aiuta la dirigenza a individuare i team con i risultati migliori e a uniformare le buone pratiche. Evidenzia inoltre le unità che potrebbero aver bisogno di risorse aggiuntive o di una riprogettazione dei processi. Perché è importante Dimensione fondamentale per confrontare le prestazioni e definire valori di riferimento tra le unità organizzative. Dove reperirli Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME collegato tramite ORG_ID. Esempi Vendite Stati Uniti orientaliServizi EMEAProduzione APAC | |||
| Codice valuta CurrencyCode | Valuta in cui è espresso l’importo della fattura. | ||
| Descrizione Questo attributo specifica la valuta, ad esempio USD o EUR, degli importi finanziari. È necessario per interpretare correttamente l’importo della fattura e per convertire le valute, se occorre utilizzare una valuta di rendicontazione globale. Per le organizzazioni globali, questo attributo aiuta ad analizzare le prestazioni di recupero crediti nelle diverse aree economiche e consente ai team finanziari di distinguere gli effetti dei cambi dalle prestazioni operative del processo. Perché è importante Fornisce il contesto necessario per interpretare i valori finanziari in ambienti con più valute. Dove reperirli Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Esempi USDEURGBPJPY | |||
| Data limite per lo sconto DiscountEligibilityDate | L’ultima data utile per pagare e ottenere uno sconto per pagamento anticipato. | ||
| Descrizione Questo attributo indica la scadenza entro cui il cliente può usufruire di condizioni come «2/10, pagamento a 30 giorni» (sconto del 2% se il pagamento avviene entro 10 giorni). È necessario per la Dashboard «Analisi degli sconti per pagamento anticipato». Confrontare i pagamenti con questa data consente di calcolare il tasso di utilizzo degli sconti per pagamento anticipato. L’azienda può così capire se le strategie di sconto accelerano effettivamente i flussi di cassa o se i clienti non ne approfittano. Perché è importante Consente di analizzare l’efficacia degli incentivi e l’accelerazione dei flussi di cassa. Dove reperirli Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Esempi 2023-11-102023-12-05 | |||
| Motivo della contestazione DisputeReason | Categoria o codice motivo assegnato all’apertura di una contestazione. | ||
| Descrizione Questo attributo registra la motivazione indicata quando si verifica l’attività «Apertura di una contestazione». Tra i valori più comuni figurano «Errore di prezzo», «Quantità non corrispondente» o «Merce danneggiata». L’analisi di questo attributo nella Dashboard «Ciclo di vita delle contestazioni e colli di bottiglia» aiuta a individuare le cause profonde dei ritardi nei pagamenti. Se gli errori di prezzo sono frequenti, l’azienda può indagare sul processo di formulazione delle offerte di vendita a monte, anziché concentrarsi soltanto sul recupero crediti. Perché è importante Fondamentale per individuare le cause profonde dei ritardi nei pagamenti e delle rilavorazioni. Dove reperirli Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE o AR_DISPUTE_HISTORY. Esempi Contestazione del prezzoErrore fiscaleMerce non ricevutaFatturazione duplicata | |||
| Origine di creazione CreationSource | Indica se la fattura è stata inserita manualmente o importata. | ||
| Descrizione Questo attributo mostra come la fattura è stata acquisita nel sistema Oracle, ad esempio tramite «Inserimento manuale», «AutoInvoice» o specifici flussi di dati esterni. È un indicatore della mappatura generica «Canale». È fondamentale per il monitoraggio dell’automazione dell’applicazione degli incassi. Aiuta a distinguere i processi interamente digitali da quelli che richiedono interventi manuali. Un volume elevato di fatture inserite manualmente può indicare una carenza di integrazione a monte o limiti del sistema. Perché è importante Indica il livello di automazione a monte e l’origine dei dati. Dove reperirli Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Esempi AutoInvoiceManualeImplementazione dei progettiGestione degli ordini | |||
| Regione Region | Area geografica associata all’unità aziendale o al cliente. | ||
| Descrizione Questo attributo associa la transazione a un’area geografica più ampia, ad esempio Nord America, EMEA o APAC. È utile per i report destinati ai dirigenti e per la Dashboard «Tendenze del DSO e del ciclo di cassa». L’analisi per area geografica tiene conto delle differenze culturali nelle abitudini di pagamento, ad esempio dei termini di pagamento standard più lunghi nell’Europa meridionale rispetto agli Stati Uniti, e permette di interpretare i KPI globali nel giusto contesto locale. Perché è importante Consente una segmentazione geografica di alto livello per i report globali. Dove reperirli Oracle Fusion Financials: ricavato dall’unità aziendale o dall’indirizzo del cliente. Esempi Nord AmericaEMEAAPACAmerica Latina | |||
| Rilavorazione IsRework | Indica se la fattura ha richiesto correzioni o è passata più volte attraverso una contestazione. | ||
| Descrizione Questo attributo booleano indica se una fattura ha comportato attività di correzione di errori, come «Nota di credito emessa» o «Fattura rettificata». Supporta la Dashboard «Volume delle note di credito e rilavorazioni». Individuare i casi di rilavorazione aiuta a distinguere i processi che seguono il percorso ottimale da quelli problematici. Un tasso elevato di rilavorazione è un segnale precoce di problemi nella qualità dei dati a monte, nei dati anagrafici principali o nei processi di inserimento degli ordini di vendita. Perché è importante Individua sprechi e inefficienze nel flusso del processo. Dove reperirli Calcolato: true se il caso contiene «Nota di credito emessa» o «Apertura di una contestazione». Esempi truefalse | |||
| Termini di pagamento PaymentTerms | Condizioni concordate per i tempi di pagamento (ad esempio, pagamento a 30 giorni). | ||
| Descrizione Questo attributo definisce i tempi di pagamento concordati contrattualmente. Serve a calcolare la data di scadenza ed è essenziale per la Dashboard «Efficacia delle strategie di recupero crediti». Le differenze nei termini di pagamento applicati ai clienti possono spiegare le variazioni del DSO. Questo attributo consente agli analisti di normalizzare i dati sulle prestazioni, evitando di classificare ingiustamente come «pagatore lento» un cliente con termini a 60 giorni rispetto a uno con termini a 30 giorni. Perché è importante Consente di valutare i tempi di pagamento alla luce degli accordi contrattuali. Dove reperirli Oracle Fusion Financials: RA_TERMS.NAME Esempi Pagamento a 30 giorniImmediato2/10, pagamento a 30 giorniPagamento a 60 giorni | |||
Attività dei crediti verso clienti
| Attività | Descrizione | ||
|---|---|---|---|
| Fattura chiusa | Stato finale in cui la fattura viene chiusa nel sistema, di solito perché il saldo è pari a zero in seguito a un pagamento, a una nota di credito o a una rettifica. | ||
| Perché è importante La data e l’ora di questo evento vengono utilizzate per calcolare i giorni medi di incasso (DSO). Rappresentano la fine dell’istanza del processo. Dove reperirli Individuato quando STATUS in AR_PAYMENT_SCHEDULES_ALL passa a 'CL' (Closed). Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Fattura completata | Indica che la creazione della fattura è terminata e che la fattura è pronta per essere elaborata, stampata e contabilizzata. Si verifica quando lo stato della transazione passa da incompleto a completo. | ||
| Perché è importante Consente di distinguere il tempo di preparazione dal tempo di elaborazione. I ritardi in questa fase segnalano colli di bottiglia nel processo interno di generazione delle fatture. Dove reperirli Individuato quando COMPLETE_FLAG in RA_CUSTOMER_TRX_ALL passa a 'Y'. Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Fattura creata | Questa attività segna la creazione iniziale della registrazione della fattura nel sistema. Registra la data e l’ora in cui l’intestazione della transazione viene salvata per la prima volta nelle tabelle Oracle Receivables. | ||
| Perché è importante Definisce l’inizio del ciclo di vita del processo e la base di riferimento per il calcolo dell’anzianità. È essenziale per calcolare il tempo di ciclo totale e il tempo di attraversamento fino all’invio. Dove reperirli Ricavato dalla tabella RA_CUSTOMER_TRX_ALL, utilizzando la colonna CREATION_DATE o TRX_DATE. Acquisizione Registrato all’inserimento della riga della transazione Tipo di evento explicit | |||
| Fattura inviata | Rappresenta l’invio della fattura al cliente tramite stampa, e-mail o XML. Segna il passaggio della fattura dall’organizzazione al cliente. | ||
| Perché è importante È fondamentale per misurare le prestazioni di invio delle fatture. Il tempo che intercorre tra la creazione e l’invio ritarda direttamente il ciclo di incasso. Dove reperirli Dedotto da PRINTING_ORIGINAL_DATE in RA_CUSTOMER_TRX_ALL oppure dai registri specifici di Oracle Collaboration Messaging Framework, se si utilizza XML. Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Pagamento completo ricevuto | Si verifica quando l’applicazione di un incasso azzera il saldo della fattura. È il principale evento che segna il buon esito del processo di recupero crediti. | ||
| Perché è importante È fondamentale per l’analisi degli sconti per pagamento anticipato. La data di questo evento determina se l’incasso è avvenuto entro il periodo previsto per lo sconto. Dove reperirli Ricavato da AR_RECEIVABLE_APPLICATIONS_ALL, dove STATUS = 'APP' e AMOUNT_DUE_REMAINING risultante è pari a 0. Acquisizione Ricavare confrontando il campo X con il campo Y Tipo di evento calculated | |||
| Pagamento parziale contabilizzato | Si verifica quando un incasso viene applicato alla fattura, ma l’importo è inferiore al saldo totale dovuto. La fattura rimane aperta con un saldo ridotto. | ||
| Perché è importante Una frequenza elevata indica pagamenti frammentati, misurati dal KPI della frequenza dei pagamenti parziali, che aumentano il lavoro di riconciliazione. Dove reperirli Ricavato da AR_RECEIVABLE_APPLICATIONS_ALL, dove STATUS = 'APP' e AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Contestazione aperta | Segna l’avvio di una contestazione formale relativa alla fattura. Le normali attività di recupero crediti vengono sospese mentre si svolgono le verifiche. | ||
| Perché è importante È un indicatore importante di colli di bottiglia. Un’elevata frequenza di contestazioni può segnalare problemi di qualità nelle fasi precedenti, come l’evasione degli ordini o la correttezza della fatturazione. Dove reperirli Individuato tramite le registrazioni in RA_CM_REQUESTS_ALL o specifici flussi di lavoro Credit Memo Request collegati alla fattura. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Contestazione risolta | Indica la conclusione dell’indagine sulla contestazione. L’esito può essere l’approvazione di una nota di credito, se la contestazione è fondata, oppure il suo rifiuto, se non lo è. | ||
| Perché è importante È necessario per calcolare il tempo medio di risoluzione delle contestazioni. Tempi di risoluzione lunghi incidono negativamente sulla soddisfazione dei clienti e sui giorni medi di incasso. Dove reperirli Ricavato dal cambiamento di stato in 'APPROVED' o 'REJECTED' in RA_CM_REQUESTS_ALL. Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Estratto conto bancario riconciliato | Indica che l’incasso applicato alla fattura è stato riconciliato con una riga dell’estratto conto bancario. Conferma che l’importo è effettivamente arrivato sul conto bancario. | ||
| Perché è importante Misura l’automazione dell’applicazione degli incassi. Il tempo che intercorre tra la contabilizzazione del pagamento e l’abbinamento con la banca rappresenta liquidità non ancora confermata. Dove reperirli Collegato da AR_CASH_RECEIPTS_ALL a CE_STATEMENT_LINES (Cash Management) tramite il riferimento di riconciliazione. Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Fattura contabilizzata in GL | Registra l’evento in cui le scritture contabili della fattura vengono finalizzate e trasferite alla contabilità generale. In questo modo si garantiscono la conformità finanziaria e la disponibilità dei dati per la chiusura del periodo. | ||
| Perché è importante Anche se non influiscono sulla visione del cliente, i ritardi in questa fase incidono sul ciclo di chiusura finanziaria e sulla tempestività della rendicontazione. Dove reperirli Ricavato da GL_DATE nella tabella RA_CUST_TRX_LINE_GL_DIST_ALL. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Fattura rettificata | Registra le rettifiche manuali del saldo della fattura, come lo stralcio di piccoli importi o le rettifiche valutarie, distinguendole dalle note di credito. | ||
| Perché è importante Aiuta a individuare perdite di ricavi e percorsi di processo non standard in cui i saldi vengono chiusi senza un pagamento. Dove reperirli Ricavato dalla tabella AR_ADJUSTMENTS_ALL collegata alla fattura. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Fattura stralciata | È un tipo specifico di rettifica in cui il saldo residuo viene considerato inesigibile e stralciato come perdita su crediti. Rappresenta un esito finale negativo. | ||
| Perché è importante È fondamentale per monitorare la salute finanziaria. Consente di distinguere l’efficienza operativa, ossia la rapidità dei pagamenti, dai problemi di qualità del credito. Dove reperirli Ricavato da AR_ADJUSTMENTS_ALL, dove il tipo di rettifica è classificato come 'Write-off' o collegato a un conto di perdite su crediti. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Impegno di pagamento ricevuto | Registra l’impegno del cliente a pagare un importo specifico entro una data prestabilita. In genere, l’agente addetto al recupero crediti inserisce manualmente questo dato durante un’interazione con il cliente. | ||
| Perché è importante È fondamentale per analizzare il comportamento di pagamento dei clienti. Il mancato rispetto degli impegni indica un rischio di credito elevato e la possibilità di future perdite su crediti. Dove reperirli Ricavato dalla tabella IEX_PROMISE_DETAILS nel modulo Collections. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Nota di credito emessa | Registra la creazione di una transazione di nota di credito applicata alla fattura. Riduce il saldo dovuto, spesso in seguito a una contestazione o a un reso. | ||
| Perché è importante Consente di monitorare il tasso di rilavorazione delle note di credito e le perdite di ricavi. Un ricorso frequente alle note di credito può indicare errori sistematici di fatturazione. Dove reperirli Ricavato da RA_CUSTOMER_TRX_ALL, dove TRX_TYPE è Credit Memo e RELATED_CUSTOMER_TRX_ID corrisponde alla fattura. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
| Sollecito di pagamento inviato | Registra l’invio al cliente di una lettera di sollecito o di un promemoria di pagamento. Questo evento viene generato dal modulo Advanced Collections. | ||
| Perché è importante È essenziale per analizzare l’efficacia della strategia di recupero crediti. Correlare questo dato con i pagamenti aiuta a determinare quali strategie di sollecito consentono di incassare più rapidamente. Dove reperirli Si trova nelle tabelle IEX_DUNNING o IEX_STRATEGY_WORK_ITEMS, collegate al conto cliente. Acquisizione Registrato all’esecuzione della transazione X Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
Acceda alla console Oracle BI Cloud Connector (BICC). Apra la sezione Manage Offerings and Data Stores.
Configuri la connessione di archiviazione. Verifichi che sia attiva una connessione valida a Oracle Universal Content Management (UCM) o a un servizio di archiviazione di oggetti esterno, come OCI Object Storage, in cui salvare i file CSV/Parquet estratti.
Selezioni l’offerta Financials. Individui l’offerta Financials per accedere agli oggetti di visualizzazione dei crediti verso clienti.
Selezioni e configuri gli oggetti di visualizzazione (VO). Selezioni gli specifici Public View Objects (PVO) necessari per creare l’event log. Tra i PVO essenziali figurano:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (intestazioni fattura)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (righe fattura)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (pagamenti e applicazioni CM)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (rettifiche e stralci)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (promesse di pagamento)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (solleciti/promemoria)
Definisca i criteri di filtro (riduzione dei dati). In Manage Extract Schedules o nella configurazione del PVO, imposti un filtro su CreationDate o LastUpdateDate per estrarre i dati del periodo di analisi desiderato, ad esempio gli ultimi 12 mesi.
Pianifichi l’estrazione. Crei una pianificazione per eseguire le estrazioni ogni giorno. Scelga Incremental Load per acquisire solo i dati modificati dopo il primo Full Load.
Scarichi e acquisisca i dati. Utilizzi uno script automatizzato o uno strumento di integrazione per recuperare i file da UCM/Object Storage e caricarli nelle tabelle di staging del data warehouse, ad esempio STG_AR_TRX_HEADER e STG_AR_APPLICATIONS.
Applichi la logica di trasformazione. Esegua lo script SQL fornito nella sezione Query sulle tabelle di staging per appiattire i dati relazionali nel formato dell’event log di ProcessMind.
Convalidi i tipi di dati. Verifichi che i campi data siano convertiti in oggetti datetime e che gli importi numerici gestiscano correttamente i decimali durante la trasformazione.
Esporti in CSV/Parquet. Esporti il risultato finale dal data warehouse in un unico file.
Carichi i dati in ProcessMind. Importi il file e associ InvoiceNumber a Case ID, ActivityName ad Activity ed EventStartDateTime a Timestamp.
Configurazione
- Frequenza di estrazione: si consiglia l’esecuzione giornaliera (incrementale) per acquisire le modifiche di stato più recenti.
- Caricamento iniziale: selezioni 'Full Extract' per la prima esecuzione, quindi passi a 'Incremental' in base a Last Update Date.
- PVO principali: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- Filtro per data: applichi il filtro CreationDate >= '202X-01-01' per limitare il volume.
- Dimensione di recupero: il valore predefinito è in genere di 50000 righe; lo modifichi in base alla larghezza di banda della rete se utilizza il download da UCM.
- Chiavi primarie: verifichi che il data warehouse a valle gestisca gli aggiornamenti e gli inserimenti usando le chiavi primarie dei PVO, in genere CustomerTrxId, ReceivableApplicationId e simili, per evitare righe duplicate.
- Cronologia di audit: i PVO BICC standard acquisiscono lo stato corrente. Per registrare con precisione le date e gli orari storici delle modifiche di stato, ad esempio l’apertura di una contestazione, potrebbe essere necessario abilitare le Audit Policies in Fusion ed estrarre gli Audit View Objects, se le tabelle transazionali non conservano la cronologia.
Query di esempio 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 Passaggi
Acceda a Oracle Fusion Applications: apra Tools > Reports and Analytics. Faccia clic su Visualizza catalogo per aprire l’interfaccia di Oracle BI Publisher.
Crei un modello dati: faccia clic su Nuovo (in alto a sinistra) e selezioni Dati. Questo è il contenitore della logica SQL di estrazione.
Definisca un insieme di dati SQL: nell’albero Dati a sinistra, faccia clic su Data Sets, quindi selezioni New Data Set > SQL Query.
Configuri l’origine dei dati: assegni un nome all’insieme di dati, ad esempio
ProcessMining_AR. SelezioniApplicationDB_FSCM(Financials Supply Chain Management) come origine dei dati. In questo modo potrà accedere alle tabelle AR e RA necessarie.Incolli la query: copi lo script SQL completo fornito nella sezione Query qui sotto e lo incolli nella casella di testo SQL Query. Non modifichi la logica principale, a meno che non debba rinominare specifici Flexfields (DFF).
Imposti i parametri: la query include il segnaposto
:p_start_dateper filtrare in base alla data di creazione della transazione. Nella scheda Parameters del modello dati, crei un nuovo parametro denominatop_start_date, con tipo di dati Date, e imposti un valore predefinito, ad esempio01-01-2023.Visualizzi i dati: faccia clic sulla scheda Dati, inserisca una data valida per il parametro e faccia clic su Visualizza. Verifichi che il risultato contenga righe con colonne quali
InvoiceNumber,ActivityNameedEventStartDateTime.Salvi il modello dati: salvi l’oggetto nella cartella Shared Folders > Personalizzato, ad esempio
/Shared Folders/Custom/ProcessMining/AR_Extract_DM.Pianifichi ed esporti: per estrarre grandi volumi di dati, faccia clic su Create Report usando questo modello dati. Nell’editor del report, verifichi che il layout sia una semplice tabella e salvi il report. Utilizzi quindi Scheduler per eseguirlo ed esportare i dati in formato CSV o XML.
Completi la formattazione: scarichi il file di output. Se è in formato CSV, verifichi che il formato della data sia coerente, preferibilmente ISO 8601. Carichi il file in ProcessMind e associ
InvoiceNumbera Case ID,ActivityNamead Activity edEventStartDateTimea Timestamp.
Configurazione
- Origine dei dati: utilizzi
ApplicationDB_FSCMper accedere alle tabelle Financials. - Filtro per data: la query usa
ra_customer_trx_all.creation_date >= :p_start_date. Configuri il filtro per caricare i dati in una finestra mobile, ad esempio gli ultimi 12 mesi. - Prestazioni: per insiemi di dati con oltre 100.000 fatture, durante i test valuti l’aggiunta di un limite
ROWNUMoppure suddivida l’estrazione per mese. - Filtro per unità aziendale: se la Sua organizzazione comprende più unità aziendali e ne serve una sola, rimuova il commento dalla riga
AND trx.org_id = ...nelle clausoleWhere. - Nomi utente: la query ricava i nomi utente dagli ID utente
CREATED_BYtramiteFND_USER. Verifichi che l’utente usato per l’estrazione abbia l’autorizzazione per leggereFND_USER. - Advanced Collections: le attività 'Payment Reminder Sent' e 'Promise to Pay Received' si basano sulle tabelle del modulo IEX (Advanced Collections). Se non utilizza questo modulo, queste sezioni non restituiranno righe.
Query di esempio 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 È pronto a iniziare?
Trasformi i dati finanziari in informazioni utili applicando questo template al Suo ambiente Oracle Fusion. Il nostro team è a disposizione per aiutarLa a ricondurre la logica specifica della Sua attività a questi standard.
Accelera subito la riscossione dei crediti verso clienti
Riduca il DSO di 15-20 giorni e risolva subito le carenze di liquidità.
Non è richiesta alcuna carta di credito. Configurazione in 5 minuti.