Il Suo Template Dati per il Processo Dal Ciclo Acquisto al Pagamento - Gestione Fatture
Il Suo Template Dati per il Processo Dal Ciclo Acquisto al Pagamento - Gestione Fatture
- Attributi consigliati da raccogliere
- Attività chiave da tracciare
- Guida all’estrazione per SAP ECC
Acquisto al Pagamento - Attributi di Gestione Fatture
| Nome | Descrizione | ||
|---|---|---|---|
| Activity Activity | Il nome di uno specifico passaggio commerciale o evento che si è verificato durante il ciclo di vita dell'elaborazione della fattura. | ||
| Descrizione L'attributo Attività rappresenta una fase o un'azione distinta all'interno del workflow di elaborazione delle fatture. Queste attività derivano da vari eventi di sistema, come la creazione di documenti, i cambiamenti di stato, le approvazioni o le azioni utente registrate nei log di modifica di SAP. L'analisi delle attività è il fulcro del Process Mining. Consente la visualizzazione di mappe di processo, l'identificazione di colli di bottiglia (ad es. lunghe attese dopo 'Fattura Inviata per Approvazione'), cicli di rilavorazione (ad es. cicli ripetuti di 'Blocco Pagamento Impostato' e 'Blocco Pagamento Rilasciato') e deviazioni di conformità. La sequenza e la frequenza delle attività rivelano il flusso di processo effettivo, 'as-is'. Perché è importante Definisce i passaggi nella mappa di processo, consentendo la visualizzazione dei flussi di processo, la scoperta dei colli di bottiglia e l'identificazione delle rilavorazioni. Dove trovare Questo attributo è tipicamente derivato da più fonti, inclusi codici transazione (SY-TCODE), campi di stato in tabelle come RBKP (ad es., RBSTAT) ed eventi di modifica dalle tabelle CDHDR e CDPOS. Esempi Fattura ParcheggiataFattura Inviata per ApprovazioneFattura ApprovataFattura RegistrataFattura Compensata | |||
| Numero fattura InvoiceNumber | L'identificatore univoco per un documento di fattura fornitore. | ||
| Descrizione Il Numero Fattura serve come identificatore univoco del caso per il percorso di elaborazione della fattura. Ogni numero corrisponde a una singola fattura ricevuta da un fornitore, consentendo di tracciare tutte le attività correlate, dall'acquisizione dei dati al pagamento finale, come parte di un'unica istanza di processo coesa. Nell'analisi di Process Mining, questo attributo è fondamentale per ricostruire il ciclo di vita end-to-end di ogni fattura. Consente di collegare eventi disparati registrati in SAP, come il parcheggio, la registrazione, il blocco e la compensazione, in una sequenza cronologica. Questo fornisce una visione chiara di come ogni fattura viene gestita, quanto tempo impiega e dove si verificano deviazioni dal processo standard. Perché è importante Questa è la chiave primaria che collega tutti gli eventi relativi a una singola fattura, rendendola la base essenziale per l'analisi dei processi e l'esplorazione delle varianti. Dove trovare Questo è tipicamente il Numero Documento dalla tabella SAP RBKP, campo BELNR, spesso concatenato con il Codice Società (BUKRS) e l'Anno Fiscale (GJAHR) per una unicità assoluta. Esempi 510004567851000456795100045680 | |||
| Timestamp Evento EventTime | Il timestamp preciso, inclusi data e ora, di quando si è verificata un'attività. | ||
| Descrizione L'Event Time registra l'esatto momento in cui un'attività aziendale è stata eseguita e registrata nel sistema sorgente. Questo timestamp è la spina dorsale cronologica del processo, ordinando tutte le attività per ogni fattura in una sequenza coerente. Nell'analisi, l'Event Time è essenziale per il calcolo di tutte le metriche basate sulla durata, come tempi di ciclo, tempi di attesa e tempi di elaborazione tra le attività. Alimenta dashboard come 'Tempo di Ciclo End-to-End Fattura' e 'Durata Risoluzione Blocco Pagamento' fornendo i dati necessari per misurare il tempo trascorso tra due punti qualsiasi del processo. I timestamp accurati sono fondamentali per identificare ritardi e colli di bottiglia nelle prestazioni. Perché è importante Questo timestamp è essenziale per ordinare correttamente gli eventi e calcolare tutte le metriche di performance, come i tempi di ciclo e le durate dei colli di bottiglia. Dove trovare Questo è tipicamente derivato combinando la data di modifica (UDATE) e l'ora di modifica (UTIME) dalla tabella di intestazione del documento di modifica, CDHDR. Per eventi di creazione specifici, può essere la data e l'ora di creazione da tabelle come RBKP (ERNAM, ERZET). Esempi 2023-03-15T10:30:00Z2023-03-16T14:05:21Z2023-03-28T09:00:00Z | |||
| Data di Compensazione ClearingDate | La data in cui il pagamento è stato effettuato e la fattura è stata compensata dalla contabilità fornitori. | ||
| Descrizione La Data di Compensazione segna il passaggio finale nel ciclo di vita della fattura: il pagamento. È la data in cui la voce di fattura aperta viene compensata da un documento di pagamento nel sistema. Questa data rappresenta il tempo effettivo di esecuzione del pagamento. Questo attributo è il punto finale per molti KPI critici, inclusi il 'Tempo Medio di Ciclo Fattura' e il 'Tasso di Pagamento Puntuale'. Viene confrontata con la Data di Scadenza del Pagamento per misurare le prestazioni di pagamento. Per l'analisi dello sconto cassa, viene confrontata con il periodo di sconto per verificare se il pagamento è stato effettuato in tempo per acquisire lo sconto. Perché è importante Segna il completamento del processo ed è la base per il calcolo del tempo di ciclo totale, dei tassi di pagamento puntuali e della realizzazione degli sconti cassa. Dove trovare Per le voci compensate, questa è la data di compensazione (campo AUGDT) dalla tabella delle voci fornitore compensate, BSAK. Esempi 2023-04-152023-05-022023-05-20 | |||
| Data di Registrazione PostingDate | La data in cui la fattura è stata ufficialmente registrata nei registri finanziari. | ||
| Descrizione La Data di Registrazione è una data chiave nel processo contabile. Determina il periodo fiscale in cui la spesa della fattura viene riconosciuta nel Conto Economico. È tipicamente impostata dall'addetto alla contabilità fornitori durante l'elaborazione della fattura. Nell'analisi del processo, l'attività 'Fattura Registrata', contrassegnata da questa data, è una tappa fondamentale. La durata dalla ricezione della fattura alla Data di Registrazione è un componente critico del tempo di ciclo complessivo. Questa data è anche fondamentale per la rendicontazione finanziaria e l'analisi del throughput, come il monitoraggio del volume delle fatture registrate per settimana o mese. Perché è importante Segna una pietra miliare critica nel processo, determina il periodo finanziario per la transazione ed è una componente chiave del calcolo del tempo di ciclo. Dove trovare Questo è il campo 'Data di Registrazione' (BUDAT) dalla tabella di intestazione del documento di fattura, RBKP. Esempi 2023-03-202023-04-052023-04-11 | |||
| Data Scadenza Pagamento PaymentDueDate | La data entro cui il pagamento della fattura è dovuto al fornitore, secondo i termini di pagamento. | ||
| Descrizione La Data di Scadenza del Pagamento è calcolata in base alla data di base della fattura e ai termini di pagamento concordati. Rappresenta la scadenza per effettuare il pagamento al fine di evitare ritardi e potenzialmente incorrere in penali o danneggiare le relazioni con i fornitori. Questo attributo è cruciale per i KPI di performance e conformità come il 'Tasso di Pagamento Puntuale' e la 'Perdita di Opportunità di Sconto Cassa'. Confrontando la data di pagamento effettiva (Data di Compensazione) con la Data di Scadenza del Pagamento, l'analisi può determinare automaticamente se un pagamento è stato puntuale, anticipato o in ritardo. È un elemento fondamentale per la dashboard di 'Aderenza ai Termini di Pagamento'. Perché è importante Serve come base per misurare le prestazioni dei pagamenti puntuali e identificare opportunità per l'acquisizione di sconti per pagamenti anticipati. Dove trovare Questa data è spesso calcolata. La data di base per il pagamento (ZFBDT) è nella tabella BSEG. La logica della data di scadenza dipende anche dai termini di pagamento (BSEG-ZTERM). Esempi 2023-04-192023-05-052023-05-11 | |||
| Importo Fattura InvoiceAmount | L'importo lordo totale della fattura nella valuta originale del documento. | ||
| Descrizione L'Importo Fattura rappresenta il valore totale della fattura presentata dal fornitore. Questa è una metrica finanziaria chiave per ogni caso di fattura. Nel Process Mining, questo attributo è essenziale per l'analisi basata sul valore. Consente di filtrare e segmentare il processo in base al valore della fattura, che spesso è correlato alla complessità del processo e ai requisiti di approvazione. Ad esempio, le fatture di alto valore potrebbero seguire un percorso di approvazione diverso e più rigoroso. Viene anche utilizzato nell'analisi di conformità, ad esempio, per verificare se le fatture di alto valore bypassano i passaggi di approvazione richiesti. Perché è importante Consente l'analisi basata sul valore, aiutando a prioritizzare le fatture di alto valore e a comprendere come l'importo della fattura influenzi il flusso del processo e la conformità. Dove trovare Questo è il campo 'Importo fattura lordo' (RMWWR) dalla tabella di intestazione del documento di fattura, RBKP. Esempi 1500.7512500.00850.20 | |||
| Motivo Blocco Pagamento PaymentBlockReason | Un codice che indica il motivo per cui una fattura è bloccata per il pagamento. | ||
| Descrizione Quando una fattura presenta una discrepanza o richiede ulteriori indagini, viene applicato un blocco di pagamento. Il codice della Causa Blocco Pagamento specifica il motivo per cui il blocco è stato impostato, ad esempio, a causa di una differenza di quantità, una differenza di prezzo o un blocco manuale. Questo attributo è essenziale per la dashboard 'Durata Risoluzione Blocco Pagamento'. L'analisi della frequenza e della durata dei blocchi per motivo aiuta a identificare le cause profonde dei ritardi di pagamento. Ad esempio, se 'Discrepanza di Prezzo' è la ragione più comune per blocchi lunghi, ciò indica un potenziale problema nei dati anagrafici o nel processo dell'ordine di acquisto che deve essere affrontato. Perché è importante Spiega perché le fatture sono in ritardo, consentendo l'analisi delle cause profonde dei blocchi di pagamento e aiutando a prioritizzare gli sforzi di miglioramento del processo. Dove trovare La motivazione del blocco di pagamento si trova a livello di riga nella tabella RSEG (campo SPGRS) o nella tabella del documento contabile BSEG (campo ZLSPR). Esempi RIM | |||
| Nome Utente UserName | L'ID utente SAP della persona che ha eseguito l'attività. | ||
| Descrizione L'attributo Nome Utente identifica l'individuo specifico responsabile dell'esecuzione di una data attività nel processo. Questo è tipicamente il nome utente SAP registrato con la transazione o l'evento di modifica. Questo attributo è cruciale per l'analisi delle prestazioni a livello di utente o di team. Aiuta a rispondere a domande come 'Chi sono gli approvatori più veloci?' o 'Quali utenti generano il maggior numero di rilavorazioni?'. È utilizzato nelle dashboard per analizzare la distribuzione del carico di lavoro, identificare le esigenze di formazione e comprendere le variazioni di performance tra i diversi dipendenti. Perché è importante Consente l'analisi delle prestazioni e del carico di lavoro per individuo o team, aiutando a identificare i migliori performer, le opportunità di formazione e gli squilibri delle risorse. Dove trovare Questo è il campo 'Modificato da' (USERNAME) dalla tabella di intestazione del documento di modifica, CDHDR. Per gli eventi di creazione, può essere il campo 'Inserito da' (ERNAM) in tabelle come RBKP. Esempi JSMITHBWILSONCHEN | |||
| Numero del fornitore VendorNumber | Un identificatore unico per il fornitore che ha emesso la fattura. | ||
| Descrizione Il Numero Fornitore è la chiave anagrafica che identifica il fornitore. Questo collega la transazione della fattura a uno specifico partner commerciale, consentendo un'analisi basata sulle caratteristiche del fornitore. L'analisi del processo per Numero Fornitore può rivelare importanti insight sulle relazioni e sulle prestazioni dei fornitori. Ad esempio, può aiutare a identificare quali fornitori presentano costantemente fatture problematiche che portano a blocchi di pagamento o discrepanze, o quali fatture dei fornitori vengono elaborate in modo più efficiente. Questa informazione è preziosa per la gestione dei fornitori e le iniziative di approvvigionamento strategico. Perché è importante Consente l'analisi specifica per fornitore, aiutando a identificare schemi, problemi o efficienze associati a particolari fornitori. Dove trovare Questo è il campo 'Partita Fatturante' (LIFNR) dalla tabella di intestazione del documento di fattura, RBKP. Esempi 100345100876200112 | |||
| Numero Ordine d'Acquisto PurchaseOrderNumber | L'identificativo per l'Ordine di Acquisto (OA) contro cui la fattura viene abbinata. | ||
| Descrizione Il Numero dell'Ordine di Acquisto collega una fattura al documento di approvvigionamento originale. Questo è fondamentale per l'abbinamento a tre vie (Ordine di Acquisto, Ricevimento Merci, Fattura) e per analizzare l'efficienza del processo di fatturazione basato sull'ordine di acquisto. Questo attributo è critico per dashboard come il 'Tasso di Discrepanza di Corrispondenza Fattura-Ordine di Acquisto'. Consente di segmentare il processo in fatture con ordine di acquisto e fatture senza ordine di acquisto, che spesso hanno percorsi di elaborazione e complessità molto diversi. L'analisi dei problemi relativi a specifici ordini di acquisto può aiutare a diagnosticare problemi a monte nel processo di approvvigionamento. Perché è importante Collega la fattura al processo di approvvigionamento, consentendo l'analisi delle fatture con e senza ordine di acquisto e l'identificazione delle discrepanze di abbinamento. Dove trovare Questo si trova tipicamente a livello di voce di riga. Il 'Numero Ordine di Acquisto' (EBELN) è nella tabella voci fattura, RSEG. Potrebbe essere necessario aggregarlo a livello di intestazione. Esempi 450001756345000175644500017565 | |||
| Codice Società CompanyCode | L'identificativo per l'entità giuridica o l'azienda per la quale la fattura viene elaborata. | ||
| Descrizione Il Codice Società è un'unità organizzativa fondamentale in SAP Financials, che rappresenta un'entità giuridica indipendente. Tutte le transazioni finanziarie, incluse le fatture, vengono registrate a un codice società specifico. Questo attributo consente di segmentare l'analisi del processo per entità giuridica. È cruciale per confrontare le prestazioni del processo, la conformità e l'efficienza tra diverse società all'interno di un gruppo aziendale. Le Dashboard possono essere filtrate per Codice Società per fornire una visione specifica dell'azienda sui KPI di elaborazione delle fatture. Perché è importante Consente il confronto dei processi e il benchmarking delle prestazioni tra diverse entità legali all'interno di un'organizzazione. Dove trovare Questo è il campo 'Codice Società' (BUKRS) dalla tabella di intestazione del documento di fattura, RBKP. Esempi 10002000US01 | |||
| Conto di Contabilità Generale GeneralLedgerAccount | Il numero di conto Co.Ge. a cui viene registrata la spesa o il costo della fattura. | ||
| Descrizione Il Conto di Contabilità Generale (Co.Ge.) è il conto di destinazione nel piano dei conti dove viene registrato l'impatto finanziario della fattura. Questo è un dato critico per la rendicontazione finanziaria e la gestione dei costi. Per il Process Mining, l'analisi del conto Co.Ge. fornisce una dimensione finanziaria al flusso di processo. La dashboard 'Analisi Utilizzo Conto Co.Ge.' può rivelare schemi di spesa, identificare potenziali errori di codifica delle fatture e garantire che i costi siano allocati ai dipartimenti o progetti corretti. Aiuta a colmare il divario tra l'esecuzione del processo e l'impatto finanziario. Perché è importante Aggiunge una dimensione finanziaria al processo, consentendo l'analisi dell'allocazione dei costi, dei modelli di spesa e della potenziale errata codifica delle fatture. Dove trovare Questo si trova a livello di voce di riga. Il 'Numero Conto Co.Ge.' (HKONT) è nella tabella voci fattura RSEG per le fatture con ordine di acquisto o BSEG per le fatture FI dirette. Esempi 630000655100741000 | |||
| È Scaduta IsOverdue | Un flag calcolato che indica se la fattura è stata pagata dopo la sua data di scadenza. | ||
| Descrizione Questo è un attributo booleano calcolato confrontando la 'Clearing Date' (data di pagamento effettiva) con la 'Payment Due Date'. Se la data di compensazione è successiva alla data di scadenza, il flag è vero; altrimenti, è falso. Questo fornisce una misura semplice e diretta delle prestazioni di pagamento puntuale per ogni fattura. Questo attributo semplifica l'analisi e la visualizzazione nelle dashboard. Consente un facile filtraggio e aggregazione per calcolare il KPI 'On-Time Payment Rate'. Gli utenti possono segmentare rapidamente il processo per confrontare i flussi di processo delle fatture scadute rispetto a quelle pagate puntualmente, rivelando potenzialmente i modelli di processo che portano a pagamenti in ritardo. Perché è importante Semplifica l'analisi delle prestazioni dei pagamenti puntuali e consente un facile confronto tra i processi di fatturazione puntuali e quelli in ritardo. Dove trovare Questo attributo non è in SAP. Viene calcolato durante la trasformazione dei dati utilizzando la formula: ClearingDate > PaymentDueDate. Esempi truefalse | |||
| Motivo del Rigetto RejectionReason | Un codice o un testo che spiega perché una fattura è stata rifiutata durante il workflow di approvazione. | ||
| Descrizione Quando un approvatore rifiuta una fattura, idealmente fornisce una motivazione per il rifiuto. Questo potrebbe essere un codice standardizzato o un commento in testo libero che indichi problemi come 'Numero ordine di acquisto errato', 'Fattura duplicata' o 'Importo non corretto'. Questi dati sono vitali per la dashboard 'Motivazioni e Tendenze di Rifiuto Fatture'. Analizzando la frequenza delle diverse motivazioni di rifiuto, l'azienda può identificare problemi comuni e implementare azioni correttive. Ad esempio, se 'Numero ordine di acquisto errato' è una ragione frequente, potrebbe indicare la necessità di una migliore comunicazione con i fornitori o di formazione per il personale addetto all'inserimento dati. Questa analisi è fondamentale per ridurre le rilavorazioni del processo. Perché è importante Fornisce la causa radice dei rifiuti, consentendo miglioramenti di processo mirati per ridurre le rilavorazioni e migliorare i tassi di "prima volta corretta". Dove trovare Questa informazione spesso non è memorizzata in un unico campo standard. Potrebbe trovarsi nei log del contenitore del workflow, nei campi di testo lungo associati al documento o in campi specifici in una soluzione di workflow personalizzata. Esempi DUPLICATE_INVWRONG_AMTNO_PO_MATCH | |||
| Ora di Fine EndTime | Il timestamp che indica quando un'attività è stata completata. Per gli eventi istantanei, questo è lo stesso dell'Ora di Inizio. | ||
| Descrizione L'attributo Ora di Fine segna il completamento di una specifica attività. Per molti eventi in SAP, che sono registrati come singoli punti nel tempo, l'Ora di Fine sarà identica all'Ora di Inizio. Tuttavia, per le attività che hanno una durata misurabile, come un passaggio di approvazione su cui si sta lavorando attivamente, può rappresentare la conclusione di tale lavoro. Nell'analisi dei processi, avere un'Ora di Fine distinta consente la misurazione del tempo di elaborazione dell'attività, separato dal tempo di attesa che la precede. Ciò aiuta a differenziare il tempo necessario per eseguire un'attività rispetto a quanto tempo un caso attende l'inizio di tale attività, fornendo approfondimenti più approfonditi sull'efficienza delle risorse. Perché è importante Consente il calcolo del tempo di elaborazione delle attività, distinguendolo dal tempo di attesa tra le attività e migliorando l'analisi dei colli di bottiglia. Dove trovare Questo è spesso lo stesso dell'Ora di Inizio, derivato da CDHDR-UDATE e CDHDR-UTIME. In alcuni casi, può essere derivato da log di workflow che registrano esplicitamente l'inizio e la fine di un'attività. Esempi 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| Sconto Cassa Perso IsCashDiscountLost | Un flag calcolato che indica se uno sconto cassa disponibile è stato perso. | ||
| Descrizione Questo è un attributo booleano calcolato in base ai termini di pagamento e alla data di pagamento effettiva. È impostato su vero se i 'Payment Terms' offrivano uno sconto per il pagamento anticipato e la 'Clearing Date' era successiva alla scadenza del periodo di sconto. Questo misura direttamente la perdita finanziaria dovuta a inefficienze di processo. Questo attributo è la base della dashboard 'Cash Discount Opportunity Loss'. Consente una facile quantificazione dell'impatto finanziario dei ritardi di elaborazione. Filtrando i casi in cui questo flag è vero, gli analisti possono investigare le specifiche varianti di processo e i colli di bottiglia che più frequentemente portano a sconti mancati, fornendo un solido business case per il miglioramento del processo. Perché è importante Quantifica direttamente la perdita finanziaria derivante dai ritardi di processo, creando un caso convincente per l'ottimizzazione del workflow di gestione delle fatture. Dove trovare Questo attributo non è in SAP. Viene calcolato durante la trasformazione dei dati interpretando i 'PaymentTerms' e confrontando la 'ClearingDate' con la data di scadenza dello sconto. Esempi truefalse | |||
| Sistema di Origine SourceSystem | Identifica il sistema sorgente specifico da cui sono stati estratti i `dati`. | ||
| Descrizione L'attributo Sistema Sorgente indica l'origine dei dati degli eventi, ad esempio, un nome specifico di istanza SAP ECC. Questo è particolarmente importante in ambienti con più sistemi ERP o quando i dati sono combinati da diverse fonti. Nell'analisi, questo attributo aiuta a differenziare processi e prestazioni tra vari sistemi, regioni o unità aziendali che potrebbero essere in esecuzione su istanze separate. Assicura che la linea dei dati sia chiara e consente un filtraggio e un'analisi specifici del sistema. Perché è importante Fornisce un contesto cruciale in architetture multi-sistema, consentendo una corretta segregazione dei dati e un'analisi delle prestazioni specifica per sistema. Dove trovare Questo è tipicamente un valore statico aggiunto durante il processo di estrazione dei dati, che rappresenta l'ID del sistema SAP (TADIR-SRCSYSTEM) o un identificatore assegnato manualmente per la specifica istanza SAP. Esempi SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| Tempo di Elaborazione ProcessingTime | La durata del tempo trascorso su una specifica attività. | ||
| Descrizione Il Tempo di Elaborazione misura il tempo necessario per eseguire un'attività, dall'inizio alla fine. Viene calcolato come la differenza tra l'Ora di Fine e l'Ora di Inizio di un'attività. Questo è distinto dal tempo di ciclo, che include il tempo di attesa tra le attività. L'analisi del tempo di elaborazione aiuta a comprendere lo sforzo effettivo o il tempo di contatto per i diversi passaggi. Può individuare le attività che sono ad alta intensità di risorse o inefficienti. Ad esempio, un lungo tempo di elaborazione per 'Dati Fattura Acquisiti' potrebbe indicare una fattura complessa o un processo di inserimento dati inefficiente. Questo parametro è prezioso per la pianificazione delle risorse e le iniziative di automazione. Perché è importante Misura la durata effettiva del lavoro per un'attività, aiutando a identificare i passaggi ad alta intensità di risorse e a distinguere tra tempo di lavoro attivo e tempo di attesa inattivo. Dove trovare Questo attributo non è in SAP. Viene calcolato durante la trasformazione dei dati utilizzando la formula: EndTime - StartTime. Esempi PT5M10SPT2H15MPT30S | |||
| Termini di Pagamento PaymentTerms | Il codice che definisce i termini di pagamento concordati con il fornitore, come i periodi di sconto e le date di scadenza. | ||
| Descrizione I Termini di Pagamento definiscono le regole per quando una fattura deve essere pagata e quali, se del caso, sconti cassa sono disponibili per il pagamento anticipato. Esempi includono 'Netto 30 giorni' o '2% 10, Netto 30', il che significa uno sconto del 2% se pagato entro 10 giorni, altrimenti l'intero importo è dovuto entro 30 giorni. Questo attributo è la base per la dashboard 'Perdita di Opportunità di Sconto Cassa' e il KPI 'Tasso di Acquisizione dello Sconto Cassa'. L'analisi utilizza i termini di pagamento in combinazione con le date di registrazione e di pagamento per determinare se uno sconto era disponibile e se è stato acquisito con successo. È anche fondamentale per la dashboard di 'Aderenza ai Termini di Pagamento'. Perché è importante È essenziale per analizzare i tassi di acquisizione degli sconti cassa e comprendere l'impatto finanziario dei ritardi di processo. Dove trovare Questo è il campo 'Chiave Termini di Pagamento' (ZTERM) dalla tabella di intestazione del documento di fattura, RBKP. Esempi Z0010001NT30 | |||
| Tipo Documento DocumentType | Un codice che classifica il documento contabile, ad esempio, come fattura fornitore o nota di credito. | ||
| Descrizione Il Tipo di Documento è utilizzato per categorizzare diversi tipi di transazioni commerciali in SAP. Per l'elaborazione delle fatture, i tipi comuni includono 'RE' per le fatture standard o 'KG' per le note di credito dei fornitori. Il tipo di documento controlla aspetti della registrazione, come l'intervallo di numerazione utilizzato. Nell'analisi, questo attributo consente di filtrare il processo per tipi di transazione specifici. Ad esempio, il processo per la gestione di una nota di credito può essere significativamente diverso da quello di una fattura standard. Separare questi flussi utilizzando il Tipo di Documento fornisce una visione del processo più accurata e significativa. Perché è importante Consente la separazione e l'analisi di diverse transazioni commerciali, come fatture rispetto a note di credito, che seguono processi differenti. Dove trovare Questo è il campo 'Tipo Documento' (BLART) dalla tabella di intestazione del documento di fattura, RBKP. Esempi REKRKG | |||
| Ultimo `Data Update` LastDataUpdate | Timestamp che indica quando i dati per il processo sono stati aggiornati l'ultima volta dal sistema sorgente. | ||
| Descrizione Questo attributo registra la data e l'ora dell'estrazione o dell'aggiornamento più recente dei dati. Si applica all'intero dataset piuttosto che ai singoli eventi, fornendo una chiara indicazione della freschezza dei dati. Questo è un attributo di metadati critico per gli utenti e gli analisti delle dashboard. Li aiuta a comprendere il periodo di tempo coperto dall'analisi e assicura che prendano decisioni basate su informazioni attuali. È tipicamente visualizzato in modo prominente sulle dashboard per informare gli utenti sulla recentezza dei dati. Perché è importante Informa gli utenti sulla freschezza dei dati, garantendo che l'analisi e le decisioni siano basate su informazioni aggiornate. Dove trovare Questo valore viene generato e iniettato nel dataset dallo strumento di estrazione dati o ETL al momento dell'aggiornamento dei dati. Esempi 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
| Valuta Currency | Il codice valuta per l'importo della fattura. | ||
| Descrizione L'attributo Valuta specifica la valuta in cui è denominato l'importo della fattura, ad esempio USD, EUR o JPY. Questo attributo fornisce un contesto essenziale per l'Importo della Fattura. Consente una corretta interpretazione e aggregazione dei dati finanziari, specialmente nelle organizzazioni globali che operano con più valute. L'analisi può essere filtrata per valuta per confrontare l'efficienza di elaborazione o i problemi tra diverse zone valutarie. Per un'aggregazione finanziaria significativa, gli importi potrebbero dover essere convertiti in un'unica valuta di rendicontazione. Perché è importante Fornisce il contesto necessario per qualsiasi importo finanziario, garantendo un'interpretazione accurata e consentendo il filtraggio e l'analisi basati sulla valuta. Dove trovare Questo è il campo 'Chiave Valuta' (WAERS) dalla tabella di intestazione del documento di fattura, RBKP. Esempi USDEURGBP | |||
Acquisto al Pagamento - Attività di Gestione Fatture
| Activity | Descrizione | ||
|---|---|---|---|
| Blocco Pagamento Impostato | Questa attività si verifica quando un blocco viene applicato a una voce di riga della fattura, impedendone il pagamento. I blocchi possono essere impostati automaticamente a causa di discrepanze nell'abbinamento a tre vie o manualmente per varie ragioni. | ||
| Perché è importante Questo evento è critico per misurare la Durata della Risoluzione del Blocco di Pagamento e identificare le cause profonde dei ritardi di pagamento. Evidenzia problemi con i prezzi, le quantità o le approvazioni richieste. Dove trovare Questo è un evento esplicito che può essere tracciato tramite i log dei documenti di modifica (tabelle CDHDR e CDPOS) per la tabella BSEG, campo ZLSPR (Chiave Blocco Pagamento). Acquisisci Timestamp dai documenti di modifica (CDHDR) quando il valore di BSEG-ZLSPR cambia da vuoto a non vuoto. Tipo di evento explicit | |||
| Dati Fattura Acquisiti | Segna la creazione iniziale del documento di fattura in SAP, sia come documento parcheggiato che completamente registrato. Questo è tipicamente il primo evento registrato nel sistema per il ciclo di vita di una fattura e serve come orario di inizio del processo. | ||
| Perché è importante Questa attività è il punto di partenza principale per misurare il tempo di ciclo di elaborazione delle fatture end-to-end. L'analisi della durata da questo punto aiuta a identificare i ritardi nella fase iniziale di inserimento dati e creazione del documento. Dove trovare Il timestamp di creazione è acquisito nella tabella SAP BKPF, campo CPUDT (Data di Inserimento Documento Contabile) e CPUTM (Ora di Inserimento). Acquisisci Utilizzare il timestamp di creazione del documento dall'intestazione della tabella BKPF (CPUDT). Tipo di evento explicit | |||
| Fattura Compensata | Questa attività segna il passaggio finale in un ciclo di vita di successo della fattura, dove la passività aperta viene compensata da un documento di pagamento. Ciò significa che il pagamento è stato eseguito. | ||
| Perché è importante Come evento finale primario, questo è cruciale per il calcolo del tempo di ciclo totale end-to-end. Conferma il completamento positivo del processo ed è utilizzato per misurare le prestazioni dei pagamenti puntuali. Dove trovare Questo è un evento esplicito registrato nella tabella delle voci di fattura BSEG. La data di compensazione è memorizzata nel campo AUGDT e il numero del documento di compensazione in AUGBL. Acquisisci Utilizzare la data di compensazione (BSEG-AUGDT) dalla voce di riga del documento di fattura. Tipo di evento explicit | |||
| Fattura Registrata | Questo è un evento finanziario chiave in cui la fattura viene ufficialmente registrata nel libro mastro, creando una passività. Questo sposta il documento da uno stato temporaneo (parcheggiato) a una voce contabile permanente. | ||
| Perché è importante La registrazione è una tappa fondamentale che conferma la validità della fattura. È un prerequisito per il pagamento e un indicatore chiave del throughput di elaborazione. Dove trovare Questo è un evento esplicito registrato nella tabella di intestazione del documento BKPF. Il timestamp è la data di registrazione, BKPF-BUDAT. Il documento non avrà più uno stato 'parcheggiato'. Acquisisci Utilizzare la data di registrazione (BKPF-BUDAT) per i documenti che non sono parcheggiati (BKPF-BSTAT è vuoto o ' '). Tipo di evento explicit | |||
| Fattura Stornata | Rappresenta l'annullamento di un documento di fattura registrato. Un documento di storno viene creato per annullare l'impatto finanziario della fattura originale. | ||
| Perché è importante Questa attività evidenzia un'eccezione significativa e un percorso di rilavorazione. L'analisi della frequenza e delle ragioni degli storni può rivelare problemi sistemici nel processo di convalida e registrazione delle fatture. Dove trovare Questo è un evento esplicito registrato nella tabella di intestazione del documento BKPF. L'intestazione del documento stornato contiene il numero del documento di storno (STBLG) e l'anno fiscale (STJAH). Acquisisci Identificare i documenti in cui BKPF-STBLG è popolato. Il timestamp dell'evento è la data di registrazione del documento di storno. Tipo di evento explicit | |||
| Blocco Pagamento Rilasciato | Rappresenta la rimozione di un blocco di pagamento da una voce di riga della fattura, consentendo che proceda all'esecuzione del pagamento. Ciò significa che un problema precedentemente identificato è stato risolto. | ||
| Perché è importante Questa attività conclude la misurazione della durata del blocco. L'analisi del tempo tra l'impostazione e il rilascio di un blocco rivela l'efficienza del processo di risoluzione del problema. Dove trovare Questo evento è tracciato tramite i log dei documenti di modifica (tabelle CDHDR e CDPOS) per la tabella BSEG, campo ZLSPR (Chiave Blocco Pagamento), quando il blocco viene rimosso. Acquisisci Timestamp dai documenti di modifica (CDHDR) quando il valore di BSEG-ZLSPR cambia da non vuoto a vuoto. Tipo di evento explicit | |||
| Fattura Approvata | Significa che la fattura è stata formalmente approvata dall'autorità designata, consentendone la registrazione e il pagamento. Questo è spesso il passaggio conclusivo di un workflow. | ||
| Perché è importante Questa pietra miliare conclude la misurazione del tempo di ciclo di approvazione. Sblocca il processo, consentendo pagamenti tempestivi e aiutando ad analizzare la distribuzione del carico di lavoro tra gli approvatori. Dove trovare Questo è tipicamente acquisito dalle tabelle del Workflow SAP Business identificando il completamento di un'attività di approvazione. In alternativa, può essere inferito dal rilascio di un blocco di pagamento relativo all'approvazione. Acquisisci Timestamp del passaggio di approvazione completato nei log del workflow o della rimozione di uno specifico blocco di pagamento. Tipo di evento inferred | |||
| Fattura Diventa Scaduta | Un evento calcolato che si verifica quando la data corrente supera la data di scadenza netta della fattura e la fattura non è ancora stata pagata. La data di scadenza è determinata dai termini di pagamento e dalla data base. | ||
| Perché è importante Questa attività è essenziale per monitorare il KPI 'Tasso di Pagamento Puntuale'. Segnala proattivamente le fatture a rischio di pagamento in ritardo, il che può danneggiare le relazioni con i fornitori e comportare penali. Dove trovare Questo evento è calcolato confrontando la data corrente con la data di scadenza netta. La data di scadenza è derivata dalla data di base (BSEG-ZFBDT) e dai termini di pagamento (BSEG-ZTERM). Acquisisci L'evento viene attivato quando Tipo di evento calculated | |||
| Fattura Inviata per Approvazione | Rappresenta il punto in cui una fattura viene inoltrata a un workflow di approvazione formale. Il meccanismo di acquisizione dipende fortemente dall'implementazione specifica del Workflow SAP o di un sistema di terze parti. | ||
| Perché è importante Questa attività avvia il conteggio per il KPI 'Tempo di Ciclo di Approvazione Fattura'. È essenziale per identificare i ritardi nella catena di approvazione e analizzare le prestazioni degli approvatori. Dove trovare Questo evento è tipicamente acquisito dalle tabelle del Workflow SAP Business (ad es., SWW_WI2OBJ, SWWLOG) identificando l'inizio di una specifica attività di approvazione. In scenari più semplici, può essere inferito da un cambio di stato in un campo personalizzato. Acquisisci Richiede l'analisi dei log dei workflow SAP o dei campi di stato personalizzati collegati al documento di fattura. Tipo di evento inferred | |||
| Fattura Parcheggiata | Indica che una fattura è stata inserita in SAP ma non è ancora stata registrata nel libro mastro. Questo è uno stato temporaneo che consente la revisione, la correzione o l'approvazione prima della registrazione finanziaria. | ||
| Perché è importante Tracciare quando le fatture vengono parcheggiate e per quanto tempo evidenzia i colli di bottiglia nel processo di convalida e approvazione pre-registrazione. Separa il tempo di inserimento dati dal tempo di elaborazione finanziaria. Dove trovare Questo è inferito dallo stato del documento nella tabella BKPF, campo BSTAT. Un valore 'V' (Documento Parcheggiato) o 'W' (Documento Parcheggiato con Rilascio Modifica) indica uno stato parcheggiato. Acquisisci Identificare i documenti in cui il campo di stato BKPF-BSTAT è 'V'. Il timestamp dell'evento è la data di creazione BKPF-CPUDT. Tipo di evento inferred | |||
| Fattura Rifiutata | Indica che una fattura è stata rifiutata durante il processo di approvazione. Questa azione richiede tipicamente correzione e nuova presentazione, creando un ciclo di rilavorazione. | ||
| Perché è importante Tracciare i rifiuti è cruciale per identificare le ragioni comuni di fallimento, come dati errati o violazioni delle policy. Aiuta a quantificare le rilavorazioni e a individuare le aree per il miglioramento del processo o la formazione dei fornitori. Dove trovare Questo evento si trova solitamente nei log del Workflow SAP Business come fase di rifiuto. Può anche essere inferito da specifici cambiamenti di stato o note aggiunte al documento di fattura. Acquisisci Timestamp della fase di rifiuto nei log del workflow o di un cambiamento di stato del documento che indica il rifiuto. Tipo di evento inferred | |||
Guide all'Estrazione
Fasi
- Creare il Programma ABAP: Utilizzi la transazione
SE38oSE80per creare un nuovo programma eseguibile, ad esempio,Z_PM_INVOICE_EXTRACT. Fornisca un titolo appropriato e imposti il tipo su 'Programma Eseguibile'. - Definire la Schermata di Selezione: Nel programma, definisca una schermata di selezione per consentire agli utenti di filtrare i dati. I parametri chiave dovrebbero includere Codice Società (
BUKRS), Anno Fiscale (GJAHR), Intervallo Date Contabili (BUDAT) e un parametro per il percorso del file di output sul server applicazioni. - Dichiarare le Strutture Dati: Definisca una struttura di tabella interna che conterrà l'Event Log finale. Questa struttura deve includere tutti gli attributi richiesti e raccomandati:
InvoiceNumber,Activity,EventTime,UserName,VendorNumber,PurchaseOrderNumber,InvoiceAmount,PostingDate,PaymentDueDate,PaymentBlockReasoneClearingDate. - Implementare la Logica di Selezione Dati: Scriva la logica ABAP principale per selezionare i dati delle fatture. L'approccio prevede selezioni multiple che vengono combinate nella tabella Event Log finale.
- Innanzitutto, selezioni i dati di intestazione e riga dalle tabelle fatture primarie
BKPF,BSEG,RBKPeRSEGin base ai criteri della schermata di selezione. - Per ogni fattura, generi gli eventi di base come 'Invoice Data Captured' (dal timestamp di creazione) e 'Invoice Posted' (dal timestamp di registrazione).
- Interroghi le tabelle dei documenti di modifica
CDHDReCDPOSper trovare le modifiche relative ai blocchi di pagamento (campoZLSPRinBSEG). Per ogni modifica rilevante, crei gli eventi 'Payment Block Set' e 'Payment Block Released'. - Identifichi gli eventi 'Invoice Cleared' controllando la presenza di un documento di compensazione (
AUGBL) e una data di compensazione (AUGDT) nella tabellaBSEG. - Identifichi gli eventi 'Invoice Reversed' controllando la presenza di un documento di storno (
STBLG) nell'intestazioneBKPF. - Implementi una logica personalizzata per acquisire gli eventi del workflow ('Invoice Sent For Approval', 'Approved', 'Rejected'). Questa parte è altamente specifica per il cliente e richiede l'adattamento del codice alle tabelle o ai campi di stato del Suo workflow.
- Innanzitutto, selezioni i dati di intestazione e riga dalle tabelle fatture primarie
- Generare Eventi Calcolati: All'interno della logica del programma, calcoli l'evento
Invoice Becomes Overdue. Questo viene derivato confrontando la data di scadenza del pagamento della fattura (PaymentDueDate) con la data corrente per tutte le fatture non pagate. Se la data di scadenza è passata, crei un evento con l'EventTimeimpostato sulla data di scadenza. - Popolare la Tabella Event Log: Mentre raccoglie i dati per ogni fattura dalle diverse fonti, li formatti e aggiunga nuove righe alla tabella Event Log interna finale, una riga per attività.
- Esportare i Dati in un File: Utilizzi le istruzioni
OPEN DATASET,TRANSFEReCLOSE DATASETper scrivere il contenuto della tabella interna finale in un file flat sul percorso del server applicazioni SAP specificato nella schermata di selezione. Utilizzi un separatore coerente, come un punto e virgola o un tab, per creare un file CSV. - Schedulare l'Estrazione: Per l'estrazione regolare dei dati, crei una variante per il programma con i criteri di selezione desiderati e la scheduli per essere eseguita come job in background utilizzando la transazione
SM36. - Recuperare il File di Output: Acceda alla directory del server applicazioni SAP utilizzando la transazione
AL11per localizzare il file generato. Utilizzi la transazioneCG3Yper scaricare il file dal server applicazioni alla Sua macchina locale. - Preparare per il Caricamento: Prima di caricare su uno strumento di Process Mining, apra il file CSV per verificare che le intestazioni siano corrette, il formato dei dati sia coerente (specialmente per i timestamp) e il separatore sia quello previsto. Si assicuri che il file sia salvato con codifica UTF-8.
Configurazione
- Criteri di Selezione: Il report ABAP dovrebbe includere una schermata di selezione completa. I filtri più importanti sono:
Codice Società (BUKRS): Per limitare l'estrazione a specifiche entità legali.Data Contabile (BUDAT): Per definire l'intervallo di tempo per l'estrazione. Si raccomanda di estrarre i dati in blocchi gestibili, ad esempio, 3-6 mesi alla volta.Tipo Documento (BLART): Per includere solo i tipi di documento fattura rilevanti, come 'RE' per le fatture logistiche e 'KR' per le fatture fornitore.
- Percorso File di Output: Un parametro obbligatorio per specificare il percorso completo e il nome del file sul server applicazioni SAP dove verrà creato il file di output. L'utente che esegue il report necessita dell'autorizzazione di scrittura per questa directory.
- Considerazioni sulle Performance: Per grandi volumi di dati, il report dovrebbe essere eseguito come job in background durante le ore di minor carico per evitare il degrado delle performance del sistema. La logica dovrebbe selezionare solo i campi richiesti dalle tabelle e utilizzare gli indici di database SAP standard ove possibile.
- Prerequisiti e Autorizzazioni: L'utente o l'account di servizio che esegue questa estrazione richiede:
- Autorizzazioni di esecuzione del report ABAP (parte di
S_PROGRAM). - Accesso in lettura alle tabelle finanziarie e logistiche, incluse
BKPF,BSEG,RBKP,RSEG,CDHDReCDPOS. - Autorizzazione di scrittura di file nella directory specificata del server applicazioni (
S_DATASET). - Accesso alle transazioni
SE38,SM36,AL11eCG3Yper sviluppo, schedulazione e recupero file.
- Autorizzazioni di esecuzione del report ABAP (parte di
a Query di Esempio abap
REPORT Z_PM_INVOICE_EXTRACT.
*&---------------------------------------------------------------------*
*& Tables for Selection Screen
*&---------------------------------------------------------------------*
TABLES: BKPF, RBKP.
*&---------------------------------------------------------------------*
*& Data Declarations
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_event_log,
InvoiceNumber TYPE belnr_v,
Activity TYPE string,
EventTime TYPE timestamp,
UserName TYPE uname,
VendorNumber TYPE lifnr,
PurchaseOrderNumber TYPE ebeln,
InvoiceAmount TYPE wrbtr,
PostingDate TYPE budat,
PaymentDueDate TYPE faedt,
PaymentBlockReason TYPE rstgr,
ClearingDate TYPE augdt,
END OF ty_event_log.
DATA: gt_event_log TYPE TABLE OF ty_event_log,
gs_event_log TYPE ty_event_log.
DATA: lt_bkpf TYPE TABLE OF bkpf,
ls_bkpf TYPE bkpf,
lt_bseg TYPE TABLE OF bseg,
ls_bseg TYPE bseg.
DATA: lt_rbkp TYPE TABLE OF rbkp,
ls_rbkp TYPE rbkp.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: s_bukrs FOR bkpf-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
PARAMETERS: p_fpath TYPE string OBLIGATORY DEFAULT '/usr/sap/tmp/invoice_events.csv'.
*&---------------------------------------------------------------------*
*& Start of Program Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
" Select FI Invoices (e.g., Doc Type KR)
SELECT * FROM bkpf INTO TABLE lt_bkpf
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat
AND blart = 'KR'.
" Select MM Invoices
SELECT * FROM rbkp INTO TABLE lt_rbkp
WHERE bukrs IN s_bukrs
AND gjahr IN s_gjahr
AND budat IN s_budat.
* --- Process FI Invoices ---
LOOP AT lt_bkpf INTO ls_bkpf.
CLEAR gs_event_log.
gs_event_log-InvoiceNumber = ls_bkpf-belnr.
gs_event_log-PostingDate = ls_bkpf-budat.
SELECT SINGLE * FROM bseg INTO ls_bseg
WHERE bukrs = ls_bkpf-bukrs
AND belnr = ls_bkpf-belnr
AND gjahr = ls_bkpf-gjahr
AND koart = 'K'. " Vendor Line Item
IF sy-subrc = 0.
gs_event_log-VendorNumber = ls_bseg-lifnr.
gs_event_log-InvoiceAmount = ls_bseg-wrbtr.
gs_event_log-ClearingDate = ls_bseg-augdt.
" Calculate Due Date
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_bseg = ls_bseg
IMPORTING
e_faedt = gs_event_log-PaymentDueDate.
ENDIF.
" Activity: Invoice Data Captured
gs_event_log-Activity = 'Invoice Data Captured'.
CONVERT DATE ls_bkpf-cpudt TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Parked (if BSTAT = 'V')
IF ls_bkpf-bstat = 'V'.
gs_event_log-Activity = 'Invoice Parked'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Posted
gs_event_log-Activity = 'Invoice Posted'.
CONVERT DATE ls_bkpf-budat TIME ls_bkpf-cputm INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
" Activity: Invoice Cleared
IF ls_bseg-augbl IS NOT INITIAL.
gs_event_log-Activity = 'Invoice Cleared'.
CONVERT DATE ls_bseg-augdt INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_bseg-usnam_cl.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Becomes Overdue
IF gs_event_log-PaymentDueDate IS NOT INITIAL AND gs_event_log-PaymentDueDate < sy-datum AND ls_bseg-augbl IS INITIAL.
gs_event_log-Activity = 'Invoice Becomes Overdue'.
CONVERT DATE gs_event_log-PaymentDueDate INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = 'SYSTEM'.
APPEND gs_event_log TO gt_event_log.
ENDIF.
" Activity: Invoice Reversed
IF ls_bkpf-stblg IS NOT INITIAL.
DATA: ls_rev_bkpf TYPE bkpf.
SELECT SINGLE budat, usnam FROM bkpf INTO ls_rev_bkpf
WHERE belnr = ls_bkpf-stblg AND bukrs = ls_bkpf-bukrs AND gjahr = ls_bkpf-gjahr.
IF sy-subrc = 0.
gs_event_log-Activity = 'Invoice Reversed'.
CONVERT DATE ls_rev_bkpf-budat INTO TIME STAMP gs_event_log-EventTime TIME ZONE sy-zonlo.
gs_event_log-UserName = ls_rev_bkpf-usnam.
APPEND gs_event_log TO gt_event_log.
ENDIF.
ENDIF.
ENDLOOP.
* --- NOTE: The logic for MM invoices (from lt_rbkp) would be similar, joining RBKP with RSEG.
* --- NOTE: The logic for Payment Blocks and Workflow events requires reading change documents (CDHDR/CDPOS)
* --- or custom workflow tables. Below is a conceptual example for payment blocks.
* --- Conceptual Example for 'Payment Block Set' / 'Released' using Change Docs
* DATA: lt_cdhdr TYPE TABLE OF cdhdr, ls_cdhdr TYPE cdhdr,
* lt_cdpos TYPE TABLE OF cdpos, ls_cdpos TYPE cdpos.
* SELECT * FROM cdhdr INTO TABLE lt_cdhdr
* WHERE objectclas = 'BELEG' AND objectid IN (SELECT belnr FROM bkpf WHERE ...).
* LOOP AT lt_cdhdr.
* SELECT * FROM cdpos INTO TABLE lt_cdpos
* WHERE changenr = ls_cdhdr-changenr AND tabname = 'BSEG' AND fname = 'ZLSPR'.
* LOOP AT lt_cdpos.
* "... logic to create 'Payment Block Set' (if VALUE_NEW is not blank)
* "... or 'Payment Block Released' (if VALUE_NEW is blank) events.
* ENDLOOP.
* ENDLOOP.
* --- Conceptual Example for Workflow events ('Sent For Approval', 'Approved', 'Rejected')
* --- This part MUST be customized based on your specific workflow implementation (e.g., OpenText VIM, SAP WF).
* --- You would query the relevant workflow tables or status change tables here.
*&---------------------------------------------------------------------*
*& Write to File
*&---------------------------------------------------------------------*
END-OF-SELECTION.
DATA: lv_string TYPE string,
lv_header TYPE string.
" Create Header
lv_header = 'InvoiceNumber;Activity;EventTime;UserName;VendorNumber;PurchaseOrderNumber;InvoiceAmount;PostingDate;PaymentDueDate;PaymentBlockReason;ClearingDate'.
OPEN DATASET p_fpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
TRANSFER lv_header TO p_fpath.
LOOP AT gt_event_log INTO gs_event_log.
CONCATENATE gs_event_log-InvoiceNumber
gs_event_log-Activity
gs_event_log-EventTime
gs_event_log-UserName
gs_event_log-VendorNumber
gs_event_log-PurchaseOrderNumber
gs_event_log-InvoiceAmount
gs_event_log-PostingDate
gs_event_log-PaymentDueDate
gs_event_log-PaymentBlockReason
gs_event_log-ClearingDate
INTO lv_string SEPARATED BY ';'.
TRANSFER lv_string TO p_fpath.
ENDLOOP.
CLOSE DATASET p_fpath.
ELSE.
MESSAGE 'Error opening file.' TYPE 'E'.
ENDIF.