Il Suo Template Dati per il Ciclo Ordine-Incasso - Fatturazione
Il Suo Template Dati per il Ciclo Ordine-Incasso - Fatturazione
- Attributi consigliati da raccogliere
- Attività chiave da tracciare
- Guida all'estrazione per SAP S/4HANA
Order to Cash - Attributi di Fatturazione e Incassi
| Nome | Descrizione | ||
|---|---|---|---|
| Numero fattura InvoiceNumber | L'identificatore univoco di un documento di fatturazione, che funge da identificatore di caso primario per il processo di fatturazione. | ||
| Descrizione Il Numero Fattura, conosciuto come Numero Documento di Fatturazione in SAP, identifica in modo univoco ogni transazione di fatturazione. Agisce come chiave centrale che collega tutte le attività correlate, dalla creazione e registrazione della fattura alla ricezione del pagamento e alla riconciliazione. Nel Process Mining, questo attributo è essenziale per la correlazione dei casi. Tutti gli eventi che condividono lo stesso Numero Fattura sono raggruppati in un'unica istanza di processo, consentendo un'analisi completa e end-to-end del ciclo di vita della fatturazione per ogni singola fattura. Questo permette il tracciamento dei tempi di ciclo, l'identificazione delle deviazioni e l'analisi del percorso di ogni fattura. Perché è importante È l'identificatore fondamentale che collega tutte le attività di fatturazione correlate in un unico Dove trovare SAP Table: VBRK, Field: VBELN Esempi 900012349000567890009012 | |||
| Nome attività ActivityName | Il nome dell'attività commerciale o dell'evento che si è verificato all'interno del processo di fatturazione, come 'Fattura Generata' o 'Pagamento Ricevuto'. | ||
| Descrizione Il Nome Attività descrive un passaggio o una pietra miliare specifica nel ciclo di vita della fatturazione. Queste attività sono derivate da vari punti dati in SAP, come codici di transazione, modifiche di stato del documento o voci di log specifiche, per creare un flusso di processo sequenziale. L'analisi della sequenza e della frequenza di queste attività è il cuore del Process Mining. Aiuta a visualizzare la mappa di processo, scoprire varianti di processo comuni e rare, identificare i bottleneck tra i passaggi e misurare la frequenza di attività a valore non aggiunto come rilavorazioni o cancellazioni. Perché è importante Questo attributo definisce i passaggi del processo, consentendo la visualizzazione delle mappe di processo e l'analisi del flusso di processo, delle variazioni e dei bottleneck. Dove trovare Derivato da varie fonti, inclusi i codici transazione (SY-TCODE), gli stati dei documenti di modifica (tabelle CDHDR/CDPOS) o i Esempi Fattura generataFattura Registrata in ContabilitàPagamento cliente ricevutoFattura Annullata | |||
| Timestamp Evento EventTime | Il timestamp preciso che indica quando si è verificata un'attività o un evento. | ||
| Descrizione L' Nell'analisi, l' Perché è importante Fornisce la sequenza cronologica degli Dove trovare Estratto da vari campi di Esempi 2023-04-15T10:30:00Z2023-04-20T14:00:00Z2023-05-10T09:15:00Z | |||
| Data Fattura InvoiceDate | La data ufficiale in cui la fattura è stata emessa al cliente. | ||
| Descrizione La Data Fattura, anche conosciuta come data di fatturazione in SAP, serve come punto di partenza per molti calcoli finanziari. È la data da cui vengono determinate le condizioni di pagamento, le scadenze e l'età del credito. Questa data è un attributo critico a livello di caso per l'analisi finanziaria. È la base per il calcolo del KPI Days Sales Outstanding (DSO) e per la creazione di report sull'invecchiamento delle fatture insolute, strumenti essenziali per la gestione del flusso di cassa e delle riscossioni. Perché è importante È la Dove trovare SAP Table: VBRK, Field: FKDAT Esempi 2023-03-202023-04-012023-05-18 | |||
| Data Scadenza Pagamento PaymentDueDate | La data entro cui il cliente è tenuto a pagare la fattura. | ||
| Descrizione La Data di Scadenza Pagamento è calcolata in base alla data della fattura e alle condizioni di pagamento concordate. Rappresenta la scadenza per la ricezione del pagamento senza che la fattura diventi scaduta. Questo attributo è essenziale per monitorare l'efficacia delle riscossioni e per la previsione del flusso di cassa. È utilizzato direttamente nel calcolo del KPI Tasso di Pagamento Tempestivo e per la segmentazione delle fatture nei report di invecchiamento. Analizzare le deviazioni tra la data di scadenza e la data di pagamento effettiva aiuta a valutare l'efficacia delle diverse condizioni di pagamento. Perché è importante Stabilisce la scadenza per il pagamento del cliente, rendendola cruciale per il calcolo dei tassi di pagamento puntuale e la gestione dei crediti. Dove trovare Questa data non è memorizzata direttamente ma è calcolata in base alla Data Fattura (VBRK-FKDAT) e alla chiave Condizioni di Pagamento (VBRK-ZTERM) utilizzando le funzioni standard di determinazione data di SAP. Esempi 2023-04-192023-05-012023-06-17 | |||
| Importo Fattura InvoiceAmount | Il valore netto totale della fattura. | ||
| Descrizione Questo attributo rappresenta il valore monetario totale dei beni o servizi fatturati, escluse le tasse. È un punto dati finanziario fondamentale per ogni caso di fattura. L'Importo Fattura è utilizzato in un'ampia gamma di analisi. Consente la segmentazione del processo per valore, per esempio, per vedere se le fatture di alto valore vengono elaborate in modo diverso o subiscono maggiori ritardi. È anche la base per la rendicontazione finanziaria e per il calcolo del valore totale dei crediti insoluti. Perché è importante Quantifica il valore finanziario di ogni fattura, consentendo analisi basate sul valore, prioritizzazione delle riscossioni e valutazione dell'impatto finanziario. Dove trovare SAP Table: VBRK, Field: NETWR Esempi 1500.0025000.50125.75 | |||
| Nome cliente CustomerName | Il nome del cliente a cui è stata emessa la fattura. | ||
| Descrizione Questo attributo identifica la ragione sociale del cliente a cui viene fatturato. È ottenuto dall'anagrafica clienti centrale in SAP. L'analisi del processo per cliente consente l'identificazione di schemi specifici per determinati account. Ad esempio, può rivelare quali clienti pagano costantemente in ritardo, quali sollevano il maggior numero di contestazioni, o per chi il processo di fatturazione è più inefficiente. Questo consente una gestione mirata delle relazioni con i clienti e strategie di riscossione personalizzate. Perché è importante Consente un'analisi customer-centric, aiutando a identificare comportamenti di pagamento, frequenze di contestazione e inefficienze di processo per account specifici. Dove trovare Recuperato dalla tabella dati anagrafici cliente KNA1 (Campo: NAME1), collegato tramite l'ID del pagatore nell'intestazione della fattura (VBRK-KUNRG). Esempi Springfield Power PlantKwik-E-MartCyberdyne Systems | |||
| Nome Utente UserName | L'ID utente del dipendente che ha eseguito l'attività. | ||
| Descrizione Questo attributo cattura l'ID utente SAP responsabile di un particolare evento, come la creazione di una fattura, la registrazione di un documento o la compensazione di un pagamento. Fornisce un collegamento tra i passaggi del processo e le persone o i team che li eseguono. L'analisi per Nome Utente aiuta a identificare gli individui con alte prestazioni, le esigenze di formazione o gli squilibri nella distribuzione del carico di lavoro. È anche cruciale per l'analisi della conformità, mostrando chi ha eseguito attività critiche, e per comprendere le variazioni nel modo in cui diversi utenti eseguono lo stesso processo. Perché è importante Collega le attività di processo a utenti specifici, consentendo l'analisi del carico di lavoro, delle prestazioni e della Dove trovare Per gli eventi di creazione, questo dato si trova in VBRK-ERNAM. Per le modifiche successive, è reperibile nelle tabelle della cronologia delle modifiche come CDHDR-USERNAME o nei log dei workflow. Esempi CBURNSHSIMPSONLLEONARD | |||
| Ora di Fine EndTime | Il timestamp preciso che indica quando un'attività o un evento è stato completato. | ||
| Descrizione L'Ora di Fine segna il completamento di un'attività. Nel Process Mining, questo è spesso dedotto come l'Ora di Inizio dell'attività successiva nel caso, o può essere ottenuto direttamente se il sistema registra sia gli eventi di inizio che di fine. Questo attributo è essenziale per calcolare il Tempo di Elaborazione delle singole attività. Sottraendo l'Ora di Inizio dall'Ora di Fine, si può misurare la durata di ogni passaggio, il che è cruciale per l'analisi dei bottleneck, come l'identificazione dei ritardi nella fase di approvazione delle fatture. Perché è importante Permette il calcolo della durata esatta (tempo di elaborazione) di ogni attività, fondamentale per l'analisi dei Dove trovare Questo è un attributo derivato per il Process Mining. È tipicamente calcolato come l'StartTime dell'evento successivo nella sequenza del caso. In alcuni scenari, tabelle specifiche potrebbero registrare i tempi di completamento. Esempi 2023-04-15T11:00:00Z2023-04-20T14:05:00Z2023-05-10T09:45:00Z | |||
| Regione Region | La regione geografica del cliente. | ||
| Descrizione L'attributo Regione indica l'area geografica, come uno stato o una provincia, associata all'indirizzo del cliente. Questi dati fanno tipicamente parte dell'anagrafica cliente. Questo attributo è fondamentale per la dashboard Performance di Fatturazione Regionale. Consente di confrontare metriche chiave come i tempi di ciclo, i tassi di errore e il DSO tra diverse regioni. Questo confronto può evidenziare differenze regionali nell'esecuzione dei processi, nella conformità o nell'efficienza, aprendo la strada a miglioramenti mirati e alla standardizzazione delle migliori pratiche. Perché è importante Consente il confronto delle prestazioni di fatturazione tra diverse aree geografiche, aiutando a identificare le disparità regionali e a standardizzare i processi. Dove trovare Recuperato dalla tabella dati anagrafici cliente KNA1 (Campo: REGIO), collegato tramite l'ID del pagatore nell'intestazione della fattura (VBRK-KUNRG). Esempi CANYTXBA | |||
| Codice Società CompanyCode | L'unità organizzativa per la quale viene registrata la transazione finanziaria. | ||
| Descrizione Il Codice Società è un'entità organizzativa fondamentale in SAP Financials, che rappresenta un'azienda legalmente indipendente per la quale vengono creati bilanci. Ogni documento di fatturazione è assegnato a uno specifico codice società. L'analisi per Codice Società è essenziale nelle organizzazioni multi-aziendali per confrontare le prestazioni di processo, le metriche finanziarie come il DSO e la conformità tra diverse entità legali. Fornisce un filtro organizzativo di alto livello per tutte le dashboard di processo. Perché è importante Consente di segmentare l'analisi del processo per entità giuridica, permettendo il confronto delle prestazioni e il consolidamento finanziario in tutta l'organizzazione. Dove trovare SAP Table: VBRK, Field: BUKRS Esempi 10002000US01 | |||
| Motivo della Contestazione CustomerDisputeReason | Il motivo fornito da un cliente per contestare una fattura. | ||
| Descrizione Quando un cliente contesta una fattura, il motivo della contestazione è spesso registrato. Questo potrebbe essere dovuto a errori di prezzo, quantità errate o merci danneggiate. Questa informazione può essere memorizzata nel modulo SAP Dispute Management o come note di testo. L'analisi dei motivi di contestazione è fondamentale per il KPI Tasso di Errore di Fatturazione e l'analisi degli errori associata. Aiuta a identificare le cause profonde delle imprecisioni di fatturazione, consentendo all'azienda di affrontare problemi sistemici nei processi a monte, migliorare la qualità delle fatture e aumentare la soddisfazione del cliente. Perché è importante Spiega perché le fatture vengono contestate, fornendo un'intuizione diretta sulle cause profonde degli errori di fatturazione e dell'insoddisfazione del cliente. Dove trovare Se viene utilizzato SAP Dispute Management, queste informazioni possono essere trovate in tabelle come UDM_DISPUTE. Altrimenti, possono essere derivate da codici motivo su documenti correlati o campi di testo. Esempi Prezzo ErratoDiscrepanza QuantitàMerce Danneggiata Ricevuta | |||
| Motivo Nota di Credito CreditMemoReason | Il codice motivo che indica il motivo dell'emissione di una nota di credito. | ||
| Descrizione Quando una fattura è errata e necessita di essere accreditata, un motivo viene tipicamente assegnato al documento di nota di credito. Questo fornisce un modo strutturato per categorizzare le fonti di errori di fatturazione. Questo attributo supporta direttamente il KPI Tasso di Errore di Fatturazione. Aggregando e analizzando i motivi delle note di credito, un'azienda può identificare i tipi di errori più comuni, come errori di prezzo o resi di prodotti. Questa analisi guida miglioramenti di processo volti a ridurre la necessità di correzioni finanziarie e rilavorazioni. Perché è importante Categorizza le ragioni dell'emissione del credito, il che aiuta a individuare le fonti più frequenti di errori di fatturazione e promuove miglioramenti della qualità. Dove trovare Tabella SAP: VBRK, Campo: AUGRU (Motivo Ordine). Questo campo è utilizzato per le richieste di note di credito/debito che vengono poi fatturate. Esempi 001 - Differenza di Prezzo002 - Scarsa Qualità005 - Reso Cliente | |||
| Numero ordine di vendita SalesOrderNumber | L'identificatore dell'ordine di vendita originale che ha portato alla fattura. | ||
| Descrizione Il Numero Ordine di Vendita collega il documento di fatturazione alle attività di vendita precedenti. Un singolo ordine di vendita può generare una o più fatture, e questo collegamento fornisce il flusso completo dei documenti. Questo attributo è critico per un'analisi Order to Cash end-to-end autentica. Permette di estendere la vista del processo a monte, collegando i problemi di fatturazione alle loro potenziali cause profonde nelle fasi di creazione o evasione dell'ordine di vendita. Ad esempio, aiuta a calcolare il Tempo di Ciclo complessivo di Generazione Fattura a partire dal momento in cui l'ordine è stato evaso. Perché è importante Collega la fattura all'ordine di vendita originale, consentendo una visione più ampia e end-to-end del processo Order-to-Cash, oltre la sola fatturazione. Dove trovare Tabella SAP: VBRP (Dati Riga Documento di Fatturazione), Campo: AUBEL Esempi 100001231000045610000789 | |||
| Pagato puntualmente IsPaidOnTime | Un flag booleano che indica se la fattura è stata pagata alla data di scadenza o prima. | ||
| Descrizione Questo è un attributo calcolato che confronta la data di pagamento effettiva con la data di scadenza prevista del pagamento. Risulta 'vero' se il pagamento è stato tempestivo e 'falso' se è stato in ritardo. Questo flag semplifica il calcolo e la visualizzazione del KPI Tasso di Pagamento Tempestivo. Consente una facile filtrazione e segmentazione per analizzare le caratteristiche delle fatture pagate in ritardo rispetto a quelle pagate in tempo. Questo può aiutare a scoprire schemi relativi a specifici clienti, regioni o condizioni di pagamento che portano a pagamenti in ritardo. Perché è importante Semplifica la misurazione delle prestazioni segnalando chiaramente ogni fattura come 'puntuale' o 'in ritardo', supportando direttamente il KPI del Tasso di Pagamento Puntuale. Dove trovare Questo è un campo calcolato. La logica confronta il timestamp dell'attività 'Pagamento Cliente Ricevuto' con il valore nell'attributo 'PaymentDueDate'. Esempi truefalse | |||
| Sistema di Origine SourceSystem | Identifica il sistema sorgente specifico da cui sono stati estratti i `dati`. | ||
| Descrizione Questo attributo specifica l'origine dei dati, particolarmente utile in ambienti con più istanze SAP o altri sistemi integrati. Di solito include l'ID del sistema e il numero del client. Nell'analisi, aiuta a differenziare processi e prestazioni tra diversi sistemi o entità organizzative. Assicura la lineage dei dati e fornisce contesto, specialmente quando i dati da più fonti sono combinati per una visione olistica del processo. Perché è importante Fornisce un contesto cruciale sull'origine dei dati, garantendo chiarezza in ambienti multi-sistema e supportando la data governance. Dove trovare Questo è tipicamente un valore statico definito durante l'estrazione dei dati, spesso combinando l'ID del sistema (SY-SYSID) e il client (SY-MANDT). Esempi S4H_PROD_100S4H_QAS_200ECC_PROD_300 | |||
| Stato del Pagamento PaymentStatus | Lo stato attuale del pagamento della fattura, come Aperta, Pagata o Scaduta. | ||
| Descrizione Lo Stato Pagamento offre una panoramica sulla posizione di una fattura all'interno del ciclo di vita della riscossione. Non si tratta di un singolo campo in SAP, ma è derivato dal controllo dello stato di compensazione del documento contabile corrispondente. Questo attributo è essenziale per la dashboard Invecchiamento Fatture Insolute. Consente la segmentazione di tutte le fatture aperte in base al loro stato e alla loro età, aiutando il team di riscossione a prioritizzare i propri sforzi in modo efficace. Tracciare le transizioni tra gli stati è anche un modo per monitorare il processo di riscossione stesso. Perché è importante Fornisce una visione chiara e immediata dello stato di riscossione di una fattura, vitale per la gestione dei crediti e la prioritizzazione degli sforzi di riscossione. Dove trovare Derivato controllando lo stato di compensazione del documento contabile (VBRK-BELNR) in tabelle finanziarie come BSID (voci aperte) e BSAD (voci compensate). Esempi ApertoPagatoScadutoParzialmente Pagato | |||
| Tempo di Elaborazione ProcessingTime | La durata di un'attività, calcolata dal suo orario di inizio al suo orario di fine. | ||
| Descrizione Il Tempo di Elaborazione misura il tempo trascorso lavorando attivamente su un'attività, al contrario del tempo di attesa tra le attività. È calcolato come la differenza tra l'Ora di Fine e l'Ora di Inizio di un'attività. Questa metrica calcolata è una pietra angolare dell'analisi delle prestazioni. È utilizzata in dashboard come l'Analisi dei Bottleneck nell'Approvazione Fatture per quantificare quanto tempo richiedono specifici passaggi. Tempi di elaborazione elevati per certe attività possono indicare inefficienze, complessità o la necessità di automazione. Perché è importante Misura la durata attiva dei passaggi del processo, aiutando a identificare attività inefficienti che sono candidati ideali per l'ottimizzazione o l'automazione. Dove trovare Metrica calcolata, derivata sottraendo lo 'StartTime' dall'EndTime' durante il processo di trasformazione dei Esempi PT30MPT5MPT1H15M | |||
| Termini di Pagamento PaymentTerms | Il codice che definisce le condizioni di pagamento, come il periodo concesso per il pagamento. | ||
| Descrizione Le Condizioni di Pagamento sono condizioni predefinite concordate con un cliente che stabiliscono quando un pagamento di fattura è dovuto. Esempi includono 'Netto 30' (pagamento dovuto in 30 giorni) o '2/10 Netto 30' (uno sconto del 2% se pagato entro 10 giorni, altrimenti dovuto in 30 giorni). L'analisi per condizioni di pagamento aiuta a valutarne l'efficacia. Correlare diverse condizioni di pagamento con il tempo effettivo impiegato per ricevere il pagamento, permette a un'azienda di determinare quali condizioni sono più efficaci nell'incentivare il pagamento tempestivo e di ottimizzare le proprie condizioni per migliorare il flusso di cassa. Perché è importante Definisce il programma di pagamento concordato, consentendo l'analisi di quali termini sono più efficaci nel garantire il pagamento tempestivo da parte dei clienti. Dove trovare SAP Table: VBRK, Field: ZTERM Esempi Z030Z060ZB60 | |||
| Tipo Documento di Fatturazione BillingDocumentType | Un codice che classifica il documento di fatturazione, come una fattura, una nota di credito o un annullamento. | ||
| Descrizione Il Tipo di Documento di Fatturazione è un campo chiave che categorizza le transazioni all'interno del processo di fatturazione. Controlla come il documento viene elaborato, inclusa la sua serie numerica e le regole di registrazione contabile. Questo attributo consente di filtrare il processo per analizzare tipi specifici di transazioni. Ad esempio, si potrebbe creare una vista di processo separata solo per le note di credito per comprenderne le ragioni e il flusso di processo per le correzioni finanziarie, o analizzare le fatture standard separatamente dalle cancellazioni per ottenere un quadro più chiaro del processo di fatturazione primario. Perché è importante Classifica le transazioni, consentendo un'analisi mirata su specifici flussi di documenti come fatture standard, note di credito o annullamenti. Dove trovare SAP Table: VBRK, Field: FKART Esempi F2G2S1L2 | |||
| Ultimo `Data Update` LastDataUpdate | Il timestamp che indica l'ultima estrazione o l'ultimo aggiornamento dei dati per questo evento. | ||
| Descrizione Questo attributo registra la data e l'ora dell'ultima estrazione dati dal sistema sorgente. È un campo di metadati critico per comprendere la freschezza dei dati analizzati. Questa informazione è utilizzata per convalidare la recentezza dell'analisi e per gestire i programmi di aggiornamento dei dati. Assicura che gli stakeholder siano consapevoli della tempestività dei dati quando prendono decisioni basate sulle dashboard e sugli insight del Process Mining. Perché è importante Indica la freschezza dei Dove trovare Questo timestamp viene generato e applicato a ogni record durante il processo di estrazione, trasformazione e caricamento (ETL) dei dati. Esempi 2023-06-01T02:00:00Z2023-06-02T02:00:00Z | |||
| Valuta Currency | Il codice valuta per l'importo della fattura. | ||
| Descrizione Questo attributo specifica la valuta in cui gli importi delle fatture sono denominati, come USD, EUR o JPY. Fornisce il contesto necessario per tutti i valori monetari. In un'organizzazione globale, la valuta è essenziale per un'analisi e una rendicontazione finanziaria corrette. Consente una corretta aggregazione dei dati finanziari convertendo tutti gli importi in una valuta di reporting comune e permette il confronto delle prestazioni di fatturazione tra regioni con diverse valute locali. Perché è importante Fornisce un contesto essenziale per tutti i valori monetari, garantendo un'analisi finanziaria e una reportistica accurate, specialmente nelle operazioni multinazionali. Dove trovare SAP Table: VBRK, Field: WAERK Esempi USDEURGBP | |||
Order to Cash - Attività di Fatturazione e Incassi
| Activity | Descrizione | ||
|---|---|---|---|
| Fattura Chiusa | Questa attività significa lo stato finale di una fattura pagata con successo. È funzionalmente la stessa di 'Cassa Applicata/Riconciliata' e indica che il processo per questa fattura è completo. | ||
| Perché è importante Funge da evento finale primario del 'percorso felice' (happy path) per il processo. Misurare il tempo di ciclo totale fino a questo punto fornisce una visione completa del ciclo di vita completo di fatturazione e contabilità clienti. Dove trovare Inferito dallo Acquisisci Inferito dalla compilazione della Tipo di evento inferred | |||
| Fattura generata | Questa attività segna la creazione del documento di fatturazione nel sistema. È un evento esplicito catturato quando un utente esegue una transazione come VF01 o quando un job in background crea la fattura, risultando in una nuova voce nella tabella di intestazione del documento di fatturazione. | ||
| Perché è importante Questo è l'evento di inizio primario per il processo di fatturazione. L'analisi del tempo dall'evasione dell'ordine a questa attività è cruciale per misurare il Tempo di Ciclo di Generazione Fattura e identificare i ritardi iniziali del processo. Dove trovare Registrato nella tabella VBRK di SAP S/4HANA (Documento di Fatturazione: Dati Intestazione) al momento della creazione. La data di creazione (VBRK-ERDAT) e l'ora (VBRK-ERZET) fungono da timestamp. Acquisisci L' Tipo di evento explicit | |||
| Fattura Registrata in Contabilità | Rappresenta la corretta registrazione del documento di fatturazione nel modulo di contabilità finanziaria. Questa è una pietra miliare critica in cui la fattura diventa una voce ufficiale dei crediti commerciali, creando registrazioni nel libro mastro generale. | ||
| Perché è importante Questa attività conferma che la fattura è un documento finanziario legale. Il tempo tra la generazione e la registrazione è un indicatore chiave di performance, evidenziando l'efficienza di elaborazione interna. Dove trovare Questo evento è catturato quando viene creato il corrispondente documento contabile. Il documento di fatturazione (VBRK-VBELN) è collegato al documento contabile (BKPF-BELNR) tramite VBRK-BELNR, e la data di registrazione è BKPF-BUDAT. Acquisisci Catturato dalla Tipo di evento explicit | |||
| Incasso Applicato/Riconciliato | Rappresenta il momento in cui il pagamento in entrata del cliente viene abbinato e utilizzato per compensare la voce di fattura aperta dal sottoconto clienti. Questa attività completa la transazione da una prospettiva finanziaria. | ||
| Perché è importante Misura l'efficienza del processo di applicazione degli incassi. I ritardi qui possono falsare lo stato reale dei conti dei clienti e creare lavoro non necessario per i Dove trovare Questo evento è catturato dalla data di compensazione (BSEG-AUGDT) sulla riga del documento contabile della fattura originale. Questa data viene popolata quando un documento di compensazione compensa la voce. Acquisisci Catturato dal campo Tipo di evento explicit | |||
| Pagamento cliente ricevuto | Questa attività segna la registrazione di un pagamento in entrata da un cliente nel sistema finanziario. Il pagamento potrebbe non essere ancora stato applicato a una fattura specifica in questa fase, ma i fondi sono stati registrati. | ||
| Perché è importante Una tappa cruciale per il calcolo dei Days Sales Outstanding (DSO). Significa che il contante è stato ricevuto, anche se la riconciliazione è ancora in sospeso. Dove trovare Catturato dalla Acquisisci L' Tipo di evento explicit | |||
| Contestazione Cliente Aperta | Questa attività si verifica quando un cliente solleva una contestazione contro una fattura, che viene poi formalmente registrata nel sistema. Ciò richiede l'uso del modulo SAP Dispute Management. | ||
| Perché è importante Evidenzia problemi di accuratezza della fatturazione, qualità del prodotto o erogazione del servizio che portano a ritardi nei pagamenti. L'analisi dei motivi di contestazione può aiutare ad affrontare le cause profonde e migliorare la soddisfazione del cliente. Dove trovare Registrato alla creazione di un Acquisisci Catturato dal Tipo di evento explicit | |||
| Data di Scadenza Pagamento Raggiunta | Un `evento` calcolato che rappresenta la `data` in cui il pagamento della fattura è ufficialmente dovuto secondo i termini di pagamento concordati. Non è un `evento` transazionale ma è derivato dai `data` della fattura. | ||
| Perché è importante Questo fornisce una base di riferimento critica per misurare le prestazioni di pagamento tempestivo e analizzare il comportamento di pagamento dei clienti. Aiuta a distinguere tra pagamenti tempestivi e pagamenti in ritardo. Dove trovare Calcolato in base alla Acquisisci Derivato aggiungendo i giorni del termine di pagamento alla Tipo di evento calculated | |||
| Fattura Annullata | Si verifica quando una fattura precedentemente creata viene annullata, il che di solito comporta la creazione di un documento di annullamento corrispondente. Questo annulla efficacemente la fattura originale e il suo impatto contabile. | ||
| Perché è importante Indica rilavorazioni, correzioni o errori di fatturazione. Un'alta frequenza di annullamenti indica problemi significativi a monte nell' Dove trovare Catturato quando viene creato un documento di fatturazione di annullamento (ad esempio, tipo di documento 'S1'). Questo nuovo documento in VBRK farà riferimento al numero di fattura originale nel campo VBRK-SFAKN. Acquisisci L' Tipo di evento explicit | |||
| Fattura inviata al cliente | Questa attività segna il momento in cui la fattura è stata trasmessa al cliente, ad esempio, tramite stampa, email o EDI. Il meccanismo di acquisizione dipende dalla configurazione della gestione output in SAP. | ||
| Perché è importante L'inizio ufficiale del 'conto alla rovescia' per il pagamento dal punto di vista del cliente. I ritardi nell'invio della fattura impattano direttamente i Giorni di Incasso (DSO) e il flusso di cassa. Dove trovare Può essere esplicitamente registrato nelle tabelle di controllo output (come NAST per i metodi più datati o il suo equivalente S/4HANA). Se non esplicitamente registrato, si inferisce spesso che si verifichi contemporaneamente a 'Fattura Registrata in Contabilità'. Acquisisci Verifichi i Tipo di evento explicit | |||
| Nota di Credito Creata | Questa attività rappresenta la creazione di una nota di credito, che viene emessa a un cliente per correggere un addebito eccessivo o fornire un credito per merci restituite. È spesso collegata a una fattura originale. | ||
| Perché è importante Evidenzia problemi che comportano aggiustamenti finanziari dopo la fatturazione. L'analisi delle note di credito può rivelare errori di prezzo, problemi di prodotto o altre cause profonde di perdita di ricavi. Dove trovare Creato esplicitamente come nuovo documento di fatturazione (in VBRK) con un tipo di fatturazione specifico per note di credito (ad esempio, 'G2'). Spesso fa riferimento all'ordine di vendita o alla fattura originale. Acquisisci Catturato dalla creazione di un documento di fatturazione in VBRK con un tipo di fatturazione di nota di credito. Tipo di evento explicit | |||
| Registrazione Fattura Bloccata | Questo evento si verifica se una fattura viene creata ma viene automaticamente bloccata dalla registrazione nella contabilità finanziaria a causa di vari motivi, come controlli di credito o incongruenze di dati. Questo stato è inferito dal campo dello stato di registrazione sul documento di fatturazione. | ||
| Perché è importante Identifica i bottleneck in cui le fatture vengono create ma non trasmesse immediatamente alla contabilità, rallentando l'intero ciclo di incasso. È un indicatore chiave di problemi di qualità dei dati o di gestione del credito. Dove trovare Inferito dal campo stato di registrazione nella tabella Acquisisci Inferito controllando il valore del campo stato di registrazione (VBRK-RFBSK) immediatamente dopo la generazione della fattura. Tipo di evento inferred | |||
| Rilavorazione Fatturazione Identificata | Un `evento` calcolato che identifica un ciclo di rilavorazione in cui una fattura è stata annullata e poi ne è stata generata una nuova per lo stesso ordine di vendita. Non è una singola transazione ma un modello di `eventi`. | ||
| Perché è importante Supporta direttamente il KPI del Tasso di Rilavorazione della Fatturazione quantificando le istanze di correzione. Questo aiuta a individuare le inefficienze e a misurare il costo della scarsa qualità nel processo di fatturazione. Dove trovare Questo pattern è calcolato identificando un evento 'Fattura Annullata' seguito da un nuovo evento 'Fattura Generata' che sono entrambi riconducibili allo stesso documento sorgente, come un numero di ordine di vendita. Acquisisci Derivato rilevando una sequenza di 'Fattura Annullata' e 'Fattura Generata' per lo stesso riferimento dell'ordine di vendita. Tipo di evento calculated | |||
| Sollecito di Pagamento Emesso | Rappresenta l'invio di un sollecito di pagamento o di una lettera di diffida a un cliente per una fattura scaduta. Questo è un evento esplicito generato dalla procedura di sollecito automatizzata. | ||
| Perché è importante Consente l'analisi dell'efficacia del processo di sollecito. Aiuta a determinare se i solleciti accelerano i pagamenti e quali livelli di sollecito sono più efficaci. Dove trovare Registrato nelle tabelle della storia dei solleciti (MAHNV, MHND) quando viene eseguita la procedura di sollecito (Transazione F150) per la voce aperta della fattura. Acquisisci Catturato dalla Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
- Prerequisiti: Si assicuri di avere un account utente in SAP S/4HANA con le autorizzazioni necessarie per interrogare le viste Core Data Services (CDS). In particolare, ha bisogno di accesso in lettura a viste come I_BillingDocument, I_JournalEntryItem, I_Customer, I_Outgmgmtdocumentoutputreq, I_DisputeCase e I_DunningHistory.
- Accesso allo strumento di estrazione dati: Acceda al suo sistema SAP S/4HANA. Può utilizzare vari strumenti per eseguire query SQL sulle viste CDS, come SAP HANA Studio, DBeaver connesso tramite il client SAP HANA o il plugin SAP Analysis for Microsoft Excel. Per questa guida, assumeremo un client SQL standard.
- Identificare i parametri di sistema: Prima di eseguire la query, identifichi i codici aziendali specifici e l'intervallo di date rilevante per la sua analisi. Si raccomanda di iniziare con un ambito limitato, ad esempio gli ultimi 3-6 mesi di
data, per garantire tempi di esecuzione della query gestibili. - Preparare la query SQL: Copi la query SQL completa fornita nella sezione 'query' di questo documento nel client SQL scelto.
- Personalizzare i placeholder: Modifichi i valori dei placeholder nella query. Sostituisca
'YYYY-MM-DD'con le date di inizio e fine desiderate. Sostituisca'XXXX'con il/i suo/i Codice/i Aziendale/i di destinazione. Potrebbe anche dover regolare il placeholder per i tipi di documento di nota di credito, ad esempio'G2', in base alla configurazione del suo sistema. - Eseguire la query: Esegua la query SQL modificata sul database SAP S/4HANA. Il tempo di esecuzione varierà a seconda del volume di
dataall'interno dell'intervallo di date selezionato. - Rivedere i risultati: Una volta completata la query, riveda l'output. Il set di risultati dovrebbe essere una tabella piatta in cui ogni riga rappresenta una singola attività nel processo di fatturazione. Questo è il suo
event log. - Data Transformation (if needed): La query è progettata per produrre un formato di
event logpulito. Tuttavia, controlli il formatotimestampper assicurarsi che sia compatibile con il suotooldiprocess mining. La query utilizzaABAP_SYSTEM_UTCL_TO_TIMESTAMPper convertire in untimestampUTC standard, che dovrebbe essere ampiamente compatibile. - Export the Event Log: Esporti l'intero set di risultati dal suo client SQL in un file CSV. Si assicuri che il file sia codificato in UTF-8 per prevenire problemi di caratteri.
- Upload to ProcessMind: Carichi il file CSV generato sulla piattaforma ProcessMind, mappando le colonne dal file, come InvoiceNumber, ActivityName e EventTime, ai campi corrispondenti nello
tool.
Configurazione
- Intervallo di date: Imposti le date di inizio e fine nella clausola
WHEREdella Common Table Expression (CTE) iniziale. Si raccomanda un intervallo da 3 a 6 mesi per un'analisi iniziale, al fine di bilanciare volume di dati e prestazioni. Il filtro è suBillingDocumentDate. - Codice azienda: Filtri per uno o più valori di
CompanyCodeper limitare l'estrazione alle entità legali pertinenti. Questo è un filtro critico per gestire l'ambito dei dati. - Tipi di documento: La query include una logica per identificare le note di credito basandosi sul
BillingDocumentType. Deve configurare il placeholder, ad esempio('G2', 'CR'), con i tipi di documento specifici utilizzati per le note di credito nella sua organizzazione. - Prerequisiti: L'accesso alle viste CDS sottostanti è obbligatorio. Ciò richiede ruoli e autorizzazioni specifiche assegnate dal suo team di sicurezza SAP. Inoltre, per attività come 'Contestazione cliente aperta' o 'Sollecito di pagamento emesso', i rispettivi moduli SAP, SAP Dispute Management e SAP Financials Dunning, devono essere attivamente utilizzati nel suo sistema.
- Prestazioni: La query utilizza più join e union. Per set di dati molto grandi, ad esempio diversi anni di dati, consideri di eseguirla durante le ore di minor traffico o di applicare filtri più restrittivi per limitare l'estrazione iniziale dei dati.
a Query di Esempio sql
WITH BaseInvoices AS (
SELECT
bd.BillingDocument AS InvoiceNumber,
bd.CreationDateTime,
bd.BillingDocumentDate AS InvoiceDate,
bd.NetDueDate AS PaymentDueDate,
bd.TotalNetAmount AS InvoiceAmount,
bd.CreatedByUser AS UserName,
bd.SDDocumentPostingStatus,
bd.AccountingDocument,
bd.IsCancelled,
bd.CancelledBillingDocument,
bd.PrecedingSDDocument,
bd.CompanyCode,
bd.BillingDocumentType,
cust.CustomerName,
reg.RegionName AS Region
FROM I_BillingDocument AS bd
LEFT JOIN I_Customer AS cust ON bd.SoldToParty = cust.Customer
LEFT JOIN I_Region AS reg ON cust.Region = reg.Region
WHERE
bd.BillingDocumentDate BETWEEN '2023-01-01' AND '2023-12-31' -- Placeholder: Set your date range
AND bd.CompanyCode = 'XXXX' -- Placeholder: Set your Company Code
AND bd.BillingCategory IN ('M', 'N', 'O', 'P', 'U', 'V', '5', '6') -- Filters for customer invoices/credit memos
)
-- 1. Invoice Generated
SELECT
bi.InvoiceNumber,
'Invoice Generated' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
UNION ALL
-- 2. Invoice Posting Blocked
SELECT
bi.InvoiceNumber,
'Invoice Posting Blocked' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.SDDocumentPostingStatus = 'A' -- A = Billing document blocked for posting
UNION ALL
-- 3. Invoice Posted To Accounting
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Posted To Accounting' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EventTime,
je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntry AS je ON bi.AccountingDocument = je.AccountingDocument
WHERE bi.AccountingDocument IS NOT NULL AND bi.AccountingDocument <> ''
UNION ALL
-- 4. Invoice Sent To Customer
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Sent To Customer' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EventTime,
om.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_Outgmgmtdocumentoutputreq AS om ON bi.InvoiceNumber = om.SenderBusinessObject
WHERE om.OutputRequestStatus = 'S' -- Status 'S' for 'Successfully Processed'
UNION ALL
-- 5. Payment Due Date Reached
SELECT
bi.InvoiceNumber,
'Payment Due Date Reached' AS ActivityName,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EventTime,
'System' AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.PaymentDueDate IS NOT NULL AND bi.PaymentDueDate <= CURRENT_DATE
UNION ALL
-- 6. Customer Dispute Opened
SELECT DISTINCT
bi.InvoiceNumber,
'Customer Dispute Opened' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EventTime,
dc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_DisputedItem AS di ON bi.InvoiceNumber = di.BillingDocument
JOIN I_DisputeCase AS dc ON di.DisputeCase = dc.DisputeCase
UNION ALL
-- 7. Payment Reminder Issued
SELECT DISTINCT
bi.InvoiceNumber,
'Payment Reminder Issued' AS ActivityName,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EventTime,
dh.DunningRunUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.CompanyCode = jei.CompanyCode
JOIN I_DunningHistory AS dh ON jei.CompanyCode = dh.CompanyCode AND jei.Customer = dh.Customer AND jei.AccountingDocument = dh.AccountingDocument
UNION ALL
-- 8, 9, 10. Payment Received, Cash Applied/Reconciled, Invoice Closed
SELECT
bi.InvoiceNumber,
ActivityName,
EventTime,
clearing_je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
EventTime AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.Customer IS NOT NULL
JOIN I_JournalEntry AS clearing_je ON jei.ClearingJournalEntry = clearing_je.AccountingDocument
CROSS JOIN (
VALUES ('Customer Payment Received'), ('Cash Applied/Reconciled'), ('Invoice Closed')
) AS Activities(ActivityName)
WHERE jei.ClearingDate IS NOT NULL AND jei.ClearingJournalEntry IS NOT NULL AND jei.ClearingJournalEntry <> ''
UNION ALL
-- 11. Invoice Cancelled
SELECT
bi.InvoiceNumber,
'Invoice Cancelled' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EventTime,
cancellation_doc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X'
UNION ALL
-- 12. Credit Memo Created
SELECT
bi.InvoiceNumber,
'Credit Memo Created' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.BillingDocumentType IN ('G2') -- Placeholder: Adjust with your credit memo document types
UNION ALL
-- 13. Billing Rework Identified
WITH CancelledInvoices AS (
SELECT
bi.PrecedingSDDocument,
bi.CompanyCode,
cancellation_doc.CreationDateTime AS CancellationTime
FROM BaseInvoices bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X' AND bi.PrecedingSDDocument IS NOT NULL AND bi.PrecedingSDDocument <> ''
)
SELECT
rework.InvoiceNumber,
'Billing Rework Identified' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EventTime,
rework.UserName,
rework.InvoiceDate,
rework.PaymentDueDate,
rework.InvoiceAmount,
rework.CustomerName,
rework.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EndTime
FROM BaseInvoices AS rework
JOIN CancelledInvoices AS cancelled ON rework.PrecedingSDDocument = cancelled.PrecedingSDDocument
AND rework.CompanyCode = cancelled.CompanyCode
WHERE rework.CreationDateTime > cancelled.CancellationTime AND rework.IsCancelled = ''
ORDER BY InvoiceNumber, EventTime; Fasi
- Prerequisiti: Si assicuri di avere un account utente in SAP S/4HANA con le autorizzazioni necessarie per interrogare le viste Core Data Services (CDS). In particolare, ha bisogno di accesso in lettura a viste come I_BillingDocument, I_JournalEntryItem, I_Customer, I_Outgmgmtdocumentoutputreq, I_DisputeCase e I_DunningHistory.
- Accesso allo strumento di estrazione dati: Acceda al suo sistema SAP S/4HANA. Può utilizzare vari strumenti per eseguire query SQL sulle viste CDS, come SAP HANA Studio, DBeaver connesso tramite il client SAP HANA o il plugin SAP Analysis for Microsoft Excel. Per questa guida, assumeremo un client SQL standard.
- Identificare i parametri di sistema: Prima di eseguire la query, identifichi i codici aziendali specifici e l'intervallo di date rilevante per la sua analisi. Si raccomanda di iniziare con un ambito limitato, ad esempio gli ultimi 3-6 mesi di
data, per garantire tempi di esecuzione della query gestibili. - Preparare la query SQL: Copi la query SQL completa fornita nella sezione 'query' di questo documento nel client SQL scelto.
- Personalizzare i placeholder: Modifichi i valori dei placeholder nella query. Sostituisca
'YYYY-MM-DD'con le date di inizio e fine desiderate. Sostituisca'XXXX'con il/i suo/i Codice/i Aziendale/i di destinazione. Potrebbe anche dover regolare il placeholder per i tipi di documento di nota di credito, ad esempio'G2', in base alla configurazione del suo sistema. - Eseguire la query: Esegua la query SQL modificata sul database SAP S/4HANA. Il tempo di esecuzione varierà a seconda del volume di
dataall'interno dell'intervallo di date selezionato. - Rivedere i risultati: Una volta completata la query, riveda l'output. Il set di risultati dovrebbe essere una tabella piatta in cui ogni riga rappresenta una singola attività nel processo di fatturazione. Questo è il suo
event log. - Data Transformation (if needed): La query è progettata per produrre un formato di
event logpulito. Tuttavia, controlli il formatotimestampper assicurarsi che sia compatibile con il suotooldiprocess mining. La query utilizzaABAP_SYSTEM_UTCL_TO_TIMESTAMPper convertire in untimestampUTC standard, che dovrebbe essere ampiamente compatibile. - Export the Event Log: Esporti l'intero set di risultati dal suo client SQL in un file CSV. Si assicuri che il file sia codificato in UTF-8 per prevenire problemi di caratteri.
- Upload to ProcessMind: Carichi il file CSV generato sulla piattaforma ProcessMind, mappando le colonne dal file, come InvoiceNumber, ActivityName e EventTime, ai campi corrispondenti nello
tool.
Configurazione
- Intervallo di date: Imposti le date di inizio e fine nella clausola
WHEREdella Common Table Expression (CTE) iniziale. Si raccomanda un intervallo da 3 a 6 mesi per un'analisi iniziale, al fine di bilanciare volume di dati e prestazioni. Il filtro è suBillingDocumentDate. - Codice azienda: Filtri per uno o più valori di
CompanyCodeper limitare l'estrazione alle entità legali pertinenti. Questo è un filtro critico per gestire l'ambito dei dati. - Tipi di documento: La query include una logica per identificare le note di credito basandosi sul
BillingDocumentType. Deve configurare il placeholder, ad esempio('G2', 'CR'), con i tipi di documento specifici utilizzati per le note di credito nella sua organizzazione. - Prerequisiti: L'accesso alle viste CDS sottostanti è obbligatorio. Ciò richiede ruoli e autorizzazioni specifiche assegnate dal suo team di sicurezza SAP. Inoltre, per attività come 'Contestazione cliente aperta' o 'Sollecito di pagamento emesso', i rispettivi moduli SAP, SAP Dispute Management e SAP Financials Dunning, devono essere attivamente utilizzati nel suo sistema.
- Prestazioni: La query utilizza più join e union. Per set di dati molto grandi, ad esempio diversi anni di dati, consideri di eseguirla durante le ore di minor traffico o di applicare filtri più restrittivi per limitare l'estrazione iniziale dei dati.
a Query di Esempio sql
WITH BaseInvoices AS (
SELECT
bd.BillingDocument AS InvoiceNumber,
bd.CreationDateTime,
bd.BillingDocumentDate AS InvoiceDate,
bd.NetDueDate AS PaymentDueDate,
bd.TotalNetAmount AS InvoiceAmount,
bd.CreatedByUser AS UserName,
bd.SDDocumentPostingStatus,
bd.AccountingDocument,
bd.IsCancelled,
bd.CancelledBillingDocument,
bd.PrecedingSDDocument,
bd.CompanyCode,
bd.BillingDocumentType,
cust.CustomerName,
reg.RegionName AS Region
FROM I_BillingDocument AS bd
LEFT JOIN I_Customer AS cust ON bd.SoldToParty = cust.Customer
LEFT JOIN I_Region AS reg ON cust.Region = reg.Region
WHERE
bd.BillingDocumentDate BETWEEN '2023-01-01' AND '2023-12-31' -- Placeholder: Set your date range
AND bd.CompanyCode = 'XXXX' -- Placeholder: Set your Company Code
AND bd.BillingCategory IN ('M', 'N', 'O', 'P', 'U', 'V', '5', '6') -- Filters for customer invoices/credit memos
)
-- 1. Invoice Generated
SELECT
bi.InvoiceNumber,
'Invoice Generated' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
UNION ALL
-- 2. Invoice Posting Blocked
SELECT
bi.InvoiceNumber,
'Invoice Posting Blocked' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.SDDocumentPostingStatus = 'A' -- A = Billing document blocked for posting
UNION ALL
-- 3. Invoice Posted To Accounting
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Posted To Accounting' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EventTime,
je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(je.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntry AS je ON bi.AccountingDocument = je.AccountingDocument
WHERE bi.AccountingDocument IS NOT NULL AND bi.AccountingDocument <> ''
UNION ALL
-- 4. Invoice Sent To Customer
SELECT DISTINCT
bi.InvoiceNumber,
'Invoice Sent To Customer' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EventTime,
om.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(om.OutputRequestLastChgDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_Outgmgmtdocumentoutputreq AS om ON bi.InvoiceNumber = om.SenderBusinessObject
WHERE om.OutputRequestStatus = 'S' -- Status 'S' for 'Successfully Processed'
UNION ALL
-- 5. Payment Due Date Reached
SELECT
bi.InvoiceNumber,
'Payment Due Date Reached' AS ActivityName,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EventTime,
'System' AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(bi.PaymentDueDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.PaymentDueDate IS NOT NULL AND bi.PaymentDueDate <= CURRENT_DATE
UNION ALL
-- 6. Customer Dispute Opened
SELECT DISTINCT
bi.InvoiceNumber,
'Customer Dispute Opened' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EventTime,
dc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(dc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_DisputedItem AS di ON bi.InvoiceNumber = di.BillingDocument
JOIN I_DisputeCase AS dc ON di.DisputeCase = dc.DisputeCase
UNION ALL
-- 7. Payment Reminder Issued
SELECT DISTINCT
bi.InvoiceNumber,
'Payment Reminder Issued' AS ActivityName,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EventTime,
dh.DunningRunUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
CAST(dh.DunningRunDate AS TIMESTAMP) AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.CompanyCode = jei.CompanyCode
JOIN I_DunningHistory AS dh ON jei.CompanyCode = dh.CompanyCode AND jei.Customer = dh.Customer AND jei.AccountingDocument = dh.AccountingDocument
UNION ALL
-- 8, 9, 10. Payment Received, Cash Applied/Reconciled, Invoice Closed
SELECT
bi.InvoiceNumber,
ActivityName,
EventTime,
clearing_je.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
EventTime AS EndTime
FROM BaseInvoices AS bi
JOIN I_JournalEntryItem AS jei ON bi.AccountingDocument = jei.AccountingDocument AND bi.Customer IS NOT NULL
JOIN I_JournalEntry AS clearing_je ON jei.ClearingJournalEntry = clearing_je.AccountingDocument
CROSS JOIN (
VALUES ('Customer Payment Received'), ('Cash Applied/Reconciled'), ('Invoice Closed')
) AS Activities(ActivityName)
WHERE jei.ClearingDate IS NOT NULL AND jei.ClearingJournalEntry IS NOT NULL AND jei.ClearingJournalEntry <> ''
UNION ALL
-- 11. Invoice Cancelled
SELECT
bi.InvoiceNumber,
'Invoice Cancelled' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EventTime,
cancellation_doc.CreatedByUser AS UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(cancellation_doc.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X'
UNION ALL
-- 12. Credit Memo Created
SELECT
bi.InvoiceNumber,
'Credit Memo Created' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EventTime,
bi.UserName,
bi.InvoiceDate,
bi.PaymentDueDate,
bi.InvoiceAmount,
bi.CustomerName,
bi.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(bi.CreationDateTime) AS EndTime
FROM BaseInvoices AS bi
WHERE bi.BillingDocumentType IN ('G2') -- Placeholder: Adjust with your credit memo document types
UNION ALL
-- 13. Billing Rework Identified
WITH CancelledInvoices AS (
SELECT
bi.PrecedingSDDocument,
bi.CompanyCode,
cancellation_doc.CreationDateTime AS CancellationTime
FROM BaseInvoices bi
JOIN I_BillingDocument AS cancellation_doc ON bi.CancelledBillingDocument = cancellation_doc.BillingDocument
WHERE bi.IsCancelled = 'X' AND bi.PrecedingSDDocument IS NOT NULL AND bi.PrecedingSDDocument <> ''
)
SELECT
rework.InvoiceNumber,
'Billing Rework Identified' AS ActivityName,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EventTime,
rework.UserName,
rework.InvoiceDate,
rework.PaymentDueDate,
rework.InvoiceAmount,
rework.CustomerName,
rework.Region,
ABAP_SYSTEM_UTCL_TO_TIMESTAMP(rework.CreationDateTime) AS EndTime
FROM BaseInvoices AS rework
JOIN CancelledInvoices AS cancelled ON rework.PrecedingSDDocument = cancelled.PrecedingSDDocument
AND rework.CompanyCode = cancelled.CompanyCode
WHERE rework.CreationDateTime > cancelled.CancellationTime AND rework.IsCancelled = ''
ORDER BY InvoiceNumber, EventTime;