Satın Almadan Ödemeye - Fatura İşleme Veri Şablonunuz
Satın Almadan Ödemeye - Fatura İşleme Veri Şablonunuz
- Toplanması önerilen öznitelikler
- İzlenecek temel aktiviteler
- SAP ECC için veri çıkarma rehberi
Satın Almadan Ödemeye - Fatura işleme öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet Activity | Fatura işleme yaşam döngüsü sırasında gerçekleşen belirli bir iş adımının veya olayın adı. | ||
| Açıklama Activity özniteliği, fatura işleme Workflow içindeki belirli bir aşamayı veya eylemi temsil eder. Bu Activity değerleri, belge oluşturma, durum değişiklikleri, onaylar veya SAP değişiklik günlüklerine kaydedilen kullanıcı eylemleri gibi çeşitli sistem olaylarından türetilir. Activity değerlerini analiz etmek, Process Mining çalışmalarının temelini oluşturur. Bu analiz, süreç haritalarının görselleştirilmesini, darboğazların belirlenmesini (örneğin, 'Invoice Sent For Approval' sonrasındaki uzun beklemeler), yeniden işleme döngülerinin ortaya çıkarılmasını (örneğin, tekrarlanan 'Payment Block Set' ve 'Payment Block Released' döngüleri) ve uyumluluk sapmalarının tespit edilmesini sağlar. Activity değerlerinin sırası ve sıklığı, sürecin gerçekte nasıl işlediğini gösterir. Neden önemli? Süreç haritasındaki adımları tanımlar; süreç akışlarını görselleştirmenizi, darboğazları keşfetmenizi ve yeniden işlemeyi belirlemenizi sağlar. Nereden alınır? Bu öznitelik genellikle işlem kodları (SY-TCODE), RBKP gibi tablolardaki durum alanları (örneğin RBSTAT) ve CDHDR ile CDPOS tablolarındaki değişiklik olayları dahil olmak üzere birden fazla kaynaktan türetilir. Örnekler Fatura park edildiFatura onaya gönderildiFatura onaylandıFatura kaydedildiFatura kapatıldı | |||
| Fatura numarası InvoiceNumber | Tedarikçi fatura belgesinin benzersiz tanımlayıcısıdır. | ||
| Açıklama Fatura Numarası, fatura işleme yolculuğundaki benzersiz vaka tanımlayıcısıdır. Her numara, bir tedarikçiden alınan tek bir faturaya karşılık gelir. Veri yakalamadan son ödemeye kadar ilgili tüm faaliyetlerin tek bir bütünleşik süreç örneğinin parçası olarak izlenmesini sağlar. Process Mining analizinde bu öznitelik, her faturanın uçtan uca yaşam döngüsünü yeniden oluşturmak için temel niteliktedir. SAP'de kaydedilen park etme, kaydetme, bloklama ve kapatma gibi farklı olayların kronolojik bir sıra içinde birleştirilmesini sağlar. Böylece her faturanın nasıl işlendiğini, ne kadar sürdüğünü ve standart süreçten hangi noktalarda saptığını net biçimde görebilirsiniz. Neden önemli? Bu, tek bir faturayla ilgili tüm olayları birbirine bağlayan birincil anahtardır. Bu nedenle süreç analizi ve varyant incelemesi için temel oluşturur. Nereden alınır? Bu genellikle SAP'deki RBKP tablosunun BELNR alanındaki Belge Numarasıdır. Mutlak benzersizlik sağlamak için çoğu zaman Şirket Kodu (BUKRS) ve Mali Yıl (GJAHR) ile birleştirilir. Örnekler 510004567851000456795100045680 | |||
| Olay zamanı EventTime | Bir Activity değerinin gerçekleştiği kesin tarih ve saati içeren zaman damgası. | ||
| Açıklama Olay zamanı, bir iş etkinliğinin kaynak sistemde gerçekleştirildiği ve kayda alındığı kesin anı gösterir. Bu zaman damgası, her faturaya ait tüm etkinlikleri tutarlı bir sıraya koyan sürecin kronolojik temelidir. Analiz sırasında Olay zamanı, çevrim süreleri, bekleme süreleri ve etkinlikler arasındaki işlem süreleri gibi süreye dayalı tüm metrikleri hesaplamak için gereklidir. Herhangi iki süreç noktası arasında geçen süreyi ölçmek için gereken verileri sağlayarak Fatura uçtan uca çevrim süresi ve Ödeme blokesi çözüm süresi gibi Dashboardları besler. Gecikmeleri ve performans darboğazlarını belirlemek için doğru zaman damgaları büyük önem taşır. Neden önemli? Bu zaman damgası, olayları doğru sıraya koymak ve çevrim süreleri ile darboğaz süreleri gibi tüm performans metriklerini hesaplamak için gereklidir. Nereden alınır? Bu değer genellikle değişiklik belgesi başlık tablosu CDHDR'deki değişiklik tarihi (UDATE) ile değişiklik saatinin (UTIME) birleştirilmesiyle elde edilir. Belirli oluşturma olaylarında RBKP gibi tablolardaki oluşturma tarihi ve saati (ERNAM, ERZET) kullanılabilir. Örnekler 2023-03-15T10:30:00Z2023-03-16T14:05:21Z2023-03-28T09:00:00Z | |||
| Fatura tutarı InvoiceAmount | Faturanın orijinal belge para birimindeki toplam brüt tutarı. | ||
| Açıklama Invoice Amount, tedarikçinin gönderdiği faturanın toplam değerini gösterir. Her fatura vakası için önemli bir finansal metriktir. Process Mining'de bu öznitelik, değer bazlı analiz için gereklidir. Süreci fatura değerine göre filtrelemenizi ve bölümlere ayırmanızı sağlar. Fatura değeri çoğu zaman süreç karmaşıklığı ve onay gereksinimleriyle ilişkilidir. Örneğin, yüksek tutarlı faturalar daha farklı ve daha sıkı bir onay yolundan geçebilir. Bu bilgi, yüksek tutarlı faturaların gerekli onay adımlarını atlayıp atlamadığını kontrol etmek gibi uyumluluk analizlerinde de kullanılır. Neden önemli? Değer bazlı analiz yapmanızı sağlar; yüksek tutarlı faturaları önceliklendirmenize ve fatura tutarının süreç akışı ile uyumluluğu nasıl etkilediğini anlamanıza yardımcı olur. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Gross invoice amount' alanıdır (RMWWR). Örnekler 1500.7512500.00850.20 | |||
| Kayıt tarihi PostingDate | Faturanın finansal defterlere resmi olarak kaydedildiği tarih. | ||
| Açıklama Posting Date, muhasebe sürecindeki önemli bir tarihtir. Fatura giderinin Genel Muhasebe'ye kaydedileceği mali dönemi belirler. Bu tarih genellikle fatura işleme sırasında borçlar muhasebesi çalışanı tarafından belirlenir. Süreç analizinde bu tarihle işaretlenen 'Invoice Posted' Activity değeri önemli bir kilometre taşıdır. Faturanın alınması ile Posting Date arasındaki süre, toplam çevrim süresinin önemli bir bölümünü oluşturur. Bu tarih, finansal raporlama ve haftalık veya aylık kaydedilen fatura hacmini izlemek gibi throughput analizleri için de temel bir bilgidir. Neden önemli? Süreçte önemli bir kilometre taşını gösterir, işlemin mali dönemini belirler ve çevrim süresi hesaplamasının temel unsurlarından biridir. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Posting Date' alanıdır (BUDAT). Örnekler 2023-03-202023-04-052023-04-11 | |||
| Kullanıcı adı UserName | Activity değerini yürüten kişinin SAP kullanıcı kimliği. | ||
| Açıklama Kullanıcı adı özniteliği, süreçte belirli bir etkinliği gerçekleştirmekten sorumlu kişiyi tanımlar. Bu genellikle işlem veya değişiklik olayıyla kaydedilen SAP kullanıcı adıdır. Bu öznitelik, kullanıcı veya ekip düzeyinde performans analizi için gereklidir. En hızlı onaylayanlar kimler? veya en çok yeniden çalışmaya hangi kullanıcılar neden oluyor? gibi soruların yanıtlanmasına yardımcı olur. Dashboardlarda iş yükü dağılımını analiz etmek, eğitim ihtiyaçlarını belirlemek ve farklı çalışanların performansındaki değişimleri anlamak için kullanılır. Neden önemli? Performans ve iş yükünü kişi veya ekip bazında analiz etmenizi sağlar; en iyi performans gösterenleri, eğitim fırsatlarını ve kaynak dengesizliklerini belirlemenize yardımcı olur. Nereden alınır? Bu değer, değişiklik belgesi başlık tablosu CDHDR'deki 'Changed By' alanıdır (USERNAME). Oluşturma olaylarında RBKP gibi tablolardaki 'Entered by' alanı (ERNAM) kullanılabilir. Örnekler JSMITHBWILSONCHEN | |||
| Ödeme blokesi nedeni PaymentBlockReason | Bir faturanın ödemeye kapatılma nedenini gösteren kod. | ||
| Açıklama Bir faturada uyuşmazlık olduğunda veya daha ayrıntılı inceleme gerektiğinde ödeme blokesi uygulanır. Ödeme blokesi nedeni kodu, blokajın neden konulduğunu belirtir. Örneğin neden miktar farkı, fiyat farkı veya manuel blokaj olabilir. Bu öznitelik, Ödeme blokesi çözüm süresi Dashboardu için gereklidir. Blokajların nedenlere göre sıklığını ve süresini incelemek, ödeme gecikmelerinin temel nedenlerini belirlemeye yardımcı olur. Örneğin Fiyat uyuşmazlığı uzun süren blokajların en yaygın nedeniyse bu durum, ana verilerde veya satın alma siparişi sürecinde ele alınması gereken olası bir soruna işaret eder. Neden önemli? Faturaların neden geciktiğini açıklar; ödeme blokajlarının temel nedenlerini analiz etmenizi ve süreç iyileştirme çalışmalarını önceliklendirmenizi sağlar. Nereden alınır? Ödeme blokesi nedeni, RSEG tablosunda kalem düzeyinde (SPGRS alanı) veya muhasebe belgesi tablosu BSEG'de (ZLSPR alanı) bulunabilir. Örnekler RIM | |||
| Ödeme vadesi PaymentDueDate | Ödeme koşullarına göre fatura bedelinin tedarikçiye ödenmesi gereken son tarih. | ||
| Açıklama Ödeme vadesi, faturanın temel tarihi ve üzerinde anlaşılan ödeme koşullarına göre hesaplanır. Gecikmeyi, olası cezaları veya tedarikçi ilişkilerinin zarar görmesini önlemek için ödemenin yapılması gereken son tarihi gösterir. Bu öznitelik, Zamanında ödeme oranı ve Nakit indirimi fırsat kaybı gibi performans ve uyumluluk KPI’ları için önemlidir. Analiz, gerçek ödeme tarihini (Takas tarihi) Ödeme vadesiyle karşılaştırarak ödemenin zamanında, erken veya geç yapılıp yapılmadığını otomatik olarak belirleyebilir. Ödeme koşullarına uyum Dashboardunun temel unsurlarından biridir. Neden önemli? Zamanında ödeme performansını ölçmek ve erken ödeme iskontolarından yararlanma fırsatlarını belirlemek için temel oluşturur. Nereden alınır? Bu tarih çoğu zaman hesaplanır. Ödeme için temel tarih (ZFBDT) BSEG tablosunda yer alır. Vade tarihi mantığı, ödeme koşullarına da bağlıdır (BSEG-ZTERM). Örnekler 2023-04-192023-05-052023-05-11 | |||
| Satın alma siparişi numarası PurchaseOrderNumber | Faturanın eşleştirildiği Purchase Order (PO) tanımlayıcısı. | ||
| Açıklama Satın alma siparişi numarası, bir faturayı ilgili satın alma belgesine bağlar. Bu bağlantı, üçlü eşleştirme (satın alma siparişi, mal kabulü, fatura) ve satın alma siparişiyle desteklenen fatura sürecinin verimliliğini analiz etmek için temel niteliktedir. Bu öznitelik, Fatura-satın alma siparişi eşleştirme uyuşmazlık oranı gibi Dashboardlar için önemlidir. Sürecin satın alma siparişli faturalar ve satın alma siparişi olmayan faturalar olarak ayrılmasını sağlar. Bu iki grubun işlem yolları ve karmaşıklıkları çoğu zaman birbirinden oldukça farklıdır. Belirli satın alma siparişleriyle ilgili sorunların incelenmesi, satın alma sürecindeki üst aşama sorunlarının teşhis edilmesine yardımcı olabilir. Neden önemli? Faturayı satın alma sürecine bağlar; PO'lu ve PO'suz faturaları analiz etmenizi ve eşleştirme tutarsızlıklarını belirlemenizi sağlar. Nereden alınır? Bu değer genellikle kalem düzeyinde bulunur. 'Purchase Order Number' (EBELN), fatura kalem tablosu RSEG'de yer alır. Başlık düzeyinde toplulaştırılması gerekebilir. Örnekler 450001756345000175644500017565 | |||
| Takas tarihi ClearingDate | Ödemenin yapıldığı ve faturanın borçlar muhasebesinden kapatıldığı tarih. | ||
| Açıklama Clearing Date, fatura yaşam döngüsünün son adımı olan ödemeyi gösterir. Açık fatura kaleminin sistemde bir ödeme belgesiyle kapatıldığı tarihtir. Bu tarih, ödemenin fiilen gerçekleştirildiği zamanı temsil eder. Bu öznitelik, 'Average Invoice Cycle Time' ve 'On-Time Payment Rate' dahil olmak üzere birçok önemli KPI için bitiş noktasıdır. Ödeme performansını ölçmek için Payment Due Date ile karşılaştırılır. Nakit iskontosu analizinde ise ödemenin iskontodan yararlanılabilecek süre içinde yapılıp yapılmadığını görmek için iskonto dönemiyle karşılaştırılır. Neden önemli? Sürecin tamamlandığını gösterir ve toplam çevrim süresinin, zamanında ödeme oranlarının ve nakit iskontosu gerçekleşmesinin hesaplanmasına temel oluşturur. Nereden alınır? Kapatılan kalemlerde bu değer, kapatılan tedarikçi kalemleri tablosu BSAK'deki 'Clearing Date' alanıdır (AUGDT). Örnekler 2023-04-152023-05-022023-05-20 | |||
| Tedarikçi numarası VendorNumber | Faturayı gönderen tedarikçiyi benzersiz biçimde tanımlayan değer. | ||
| Açıklama Vendor Number, tedarikçiyi tanımlayan ana veri anahtarıdır. Fatura işlemini belirli bir iş ortağıyla ilişkilendirerek tedarikçi özelliklerine göre analiz yapılmasını sağlar. Süreci Vendor Number temelinde analiz etmek, tedarikçi ilişkileri ve performansı hakkında önemli içgörüler sunabilir. Örneğin, ödeme bloklarına veya tutarsızlıklara yol açan sorunlu faturaları sürekli gönderen tedarikçileri ya da faturaları en verimli şekilde işlenen tedarikçileri belirlemeye yardımcı olabilir. Bu bilgi, tedarikçi yönetimi ve stratejik satın alma çalışmaları için değerlidir. Neden önemli? Tedarikçi bazında analiz yapmanızı sağlar; belirli tedarikçilerle ilişkili örüntüleri, sorunları veya verimlilikleri belirlemenize yardımcı olur. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Invoicing Party' alanıdır (LIFNR). Örnekler 100345100876200112 | |||
| Belge türü DocumentType | Muhasebe belgesini, örneğin tedarikçi faturası veya alacak dekontu olarak sınıflandıran kod. | ||
| Açıklama Document Type, SAP'deki farklı iş işlemlerini sınıflandırmak için kullanılır. Fatura işlemede yaygın türler arasında standart faturalar için 'RE' ve tedarikçi alacak dekontları için 'KG' bulunur. Belge türü, kullanılan numara aralığı gibi kayıt işleminin bazı özelliklerini belirler. Analizde bu öznitelik, sürecin belirli işlem türlerine göre filtrelenmesini sağlar. Örneğin, alacak dekontu işleme süreci standart fatura sürecinden önemli ölçüde farklı olabilir. Bu akışları Document Type kullanarak ayırmak, daha doğru ve anlamlı bir süreç görünümü sunar. Neden önemli? Faturalar ile farklı süreçlerden geçen alacak dekontları gibi iş işlemlerini ayırmanızı ve analiz etmenizi sağlar. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Document Type' alanıdır (BLART). Örnekler REKRKG | |||
| Bitiş zamanı EndTime | Bir Activity değerinin tamamlandığı zamanı gösteren zaman damgası. Anlık olaylarda bu değer Başlangıç zamanı ile aynıdır. | ||
| Açıklama End Time özniteliği, belirli bir Activity değerinin tamamlandığı anı gösterir. SAP'deki tek bir zaman noktası olarak kaydedilen birçok olayda End Time, Start Time ile aynıdır. Ancak aktif olarak üzerinde çalışılan bir onay adımı gibi ölçülebilir süresi olan Activity değerlerinde, çalışmanın tamamlandığı anı gösterebilir. Süreç analizinde ayrı bir End Time bulunması, Activity işlem süresinin, Activity başlamadan önceki bekleme süresinden ayrı olarak ölçülmesini sağlar. Böylece bir Activity değerinin yürütülmesinin ne kadar sürdüğü ile bir vakanın bu Activity değerinin başlamasını ne kadar beklediği ayırt edilebilir ve kaynak verimliliği hakkında daha ayrıntılı içgörüler elde edilir. Neden önemli? Activity işlem süresini hesaplamanızı, bunu Activity değerleri arasındaki bekleme süresinden ayırmanızı ve darboğaz analizini iyileştirmenizi sağlar. Nereden alınır? Bu değer çoğu zaman Start Time ile aynıdır ve CDHDR-UDATE ile CDHDR-UTIME değerlerinden türetilir. Bazı durumlarda, bir görevin başlangıcını ve bitişini açıkça kaydeden Workflow günlüklerinden elde edilebilir. Örnekler 2023-03-15T10:35:10Z2023-03-16T14:10:00Z2023-03-28T09:02:45Z | |||
| Genel muhasebe hesabı GeneralLedgerAccount | Fatura giderinin veya maliyetinin kaydedildiği G/L hesap numarası. | ||
| Açıklama Büyük defter (G/L) hesabı, faturanın finansal etkisinin kaydedildiği hesap planındaki hedef hesaptır. Finansal raporlama ve maliyet yönetimi için önemli bir veri unsurudur. Process Mining açısından büyük defter hesabının incelenmesi, süreç akışına finansal bir boyut kazandırır. Büyük defter hesabı kullanım analizi Dashboardu, harcama örüntülerini ortaya çıkarabilir, faturaların yanlış hesaplara kodlanmasını belirleyebilir ve maliyetlerin doğru departmanlara veya projelere dağıtılmasını sağlayabilir. Sürecin yürütülmesiyle finansal etki arasındaki bağlantıyı kurmaya yardımcı olur. Neden önemli? Sürece finansal bir boyut ekler; maliyet dağılımını, harcama örüntülerini ve faturaların yanlış hesaplara kaydedilme olasılığını analiz etmenizi sağlar. Nereden alınır? Bu değer kalem düzeyinde bulunur. 'G/L Account Number' (HKONT), PO'lu faturalar için fatura kalem tablosu RSEG'de, doğrudan FI faturaları için BSEG'de yer alır. Örnekler 630000655100741000 | |||
| Kaynak sistem SourceSystem | Verilerin çıkarıldığı belirli kaynak sistemi tanımlar. | ||
| Açıklama Source System özniteliği, olay verilerinin kaynağını gösterir. Buna belirli bir SAP ECC örneğinin adı örnek verilebilir. Bu bilgi, birden fazla ERP sisteminin bulunduğu veya verilerin farklı kaynaklardan birleştirildiği ortamlarda özellikle önemlidir. Analizde bu öznitelik, ayrı örneklerde çalışan farklı sistemler, bölgeler veya iş birimleri arasındaki süreçleri ve performansı ayırt etmenize yardımcı olur. Veri soyunun açıkça izlenmesini, sisteme özel filtreleme ve analiz yapılmasını sağlar. Neden önemli? Birden fazla sistemin bulunduğu ortamlarda gerekli bağlamı sağlar; verileri doğru şekilde ayırmanıza ve sisteme özel performans analizi yapmanıza imkan verir. Nereden alınır? Bu değer genellikle veri çıkarma sırasında eklenen sabit bir değerdir. SAP Sistem Kimliğini (TADIR-SRCSYSTEM) veya belirli SAP örneği için manuel olarak atanmış bir tanımlayıcıyı temsil eder. Örnekler SAPECC_PROD_EUECC_US_FINSAP_ERP_6_EHP8 | |||
| Nakit iskontosu kaybedildi mi IsCashDiscountLost | Mevcut bir nakit iskontosundan yararlanılamadığını gösteren hesaplanmış işaret. | ||
| Açıklama Bu, ödeme koşullarına ve gerçek ödeme tarihine göre hesaplanan bir doğru/yanlış özniteliğidir. Ödeme koşullarında erken ödeme indirimi varsa ve Takas tarihi indirim süresi sona erdikten sonraysa doğru olarak belirlenir. Böylece süreç verimsizliklerinden kaynaklanan finansal kayıp doğrudan ölçülür. Bu öznitelik, Nakit indirimi fırsat kaybı Dashboardunun temelidir. İşlem gecikmelerinin finansal etkisinin kolayca ölçülmesini sağlar. Analistler, bu işaretin doğru olduğu durumları filtreleyerek indirimlerin kaçırılmasına en sık yol açan belirli süreç varyantlarını ve darboğazları inceleyebilir. Bu da süreç iyileştirmesi için güçlü bir iş gerekçesi sunar. Neden önemli? Süreç gecikmelerinden kaynaklanan finansal kaybı doğrudan ölçer ve fatura işleme iş akışını optimize etmek için güçlü bir gerekçe oluşturur. Nereden alınır? Bu öznitelik SAP'de bulunmaz. Veri dönüşümü sırasında 'PaymentTerms' yorumlanarak ve 'ClearingDate' iskonto vade tarihiyle karşılaştırılarak hesaplanır. Örnekler truefalse | |||
| Ödeme koşulları PaymentTerms | İskonto dönemleri ve vade tarihleri gibi tedarikçiyle üzerinde anlaşılan ödeme koşullarını tanımlayan kod. | ||
| Açıklama Ödeme koşulları, bir faturanın ne zaman ödenmesi gerektiğini ve erken ödeme için nakit indirimi sunulup sunulmadığını tanımlar. Örnek olarak Net 30 gün veya 2% 10, Net 30 verilebilir. İkinci ifade, 10 gün içinde ödeme yapılırsa %2 indirim, aksi durumda tutarın tamamının 30 gün içinde ödenmesi gerektiği anlamına gelir. Bu öznitelik, Nakit indirimi fırsat kaybı Dashboardunun ve Nakit indirimi yakalama oranı KPI’ının temelidir. Analiz, indirimin mevcut olup olmadığını ve kullanılıp kullanılmadığını belirlemek için ödeme koşullarını kayda alma ve ödeme tarihleriyle birlikte değerlendirir. Ödeme koşullarına uyum Dashboardu için de önemlidir. Neden önemli? Nakit iskontosundan yararlanma oranlarını analiz etmek ve süreç gecikmelerinin finansal etkisini anlamak için gereklidir. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Terms of Payment Key' alanıdır (ZTERM). Örnekler Z0010001NT30 | |||
| Para birimi Currency | Fatura tutarının para birimi kodu. | ||
| Açıklama Currency özniteliği, fatura tutarının hangi para biriminde ifade edildiğini belirtir. Örneğin USD, EUR veya JPY olabilir. Bu öznitelik, Invoice Amount için gerekli bağlamı sağlar. Özellikle birden fazla para birimiyle çalışan küresel kuruluşlarda finansal verilerin doğru yorumlanmasına ve toplulaştırılmasına yardımcı olur. Analiz, farklı para birimi bölgelerindeki işlem verimliliğini veya sorunları karşılaştırmak için para birimine göre filtrelenebilir. Anlamlı bir finansal toplulaştırma için tutarların tek bir raporlama para birimine dönüştürülmesi gerekebilir. Neden önemli? Finansal tutarlar için gerekli bağlamı sağlar; doğru yorumlama yapılmasına, para birimine göre filtreleme ve analiz gerçekleştirilmesine imkan verir. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Currency Key' alanıdır (WAERS). Örnekler USDEURGBP | |||
| Ret nedeni RejectionReason | Bir faturanın onay iş akışı sırasında neden reddedildiğini açıklayan kod veya metin. | ||
| Açıklama Bir onaylayan faturayı reddettiğinde ideal olarak ret nedenini belirtir. Bu neden, Yanlış satın alma siparişi numarası, Yinelenen fatura veya Tutar yanlış gibi sorunları açıklayan standart bir kod ya da serbest metinli bir yorum olabilir. Bu veri, Fatura ret nedenleri ve eğilimleri Dashboardu için çok değerlidir. Farklı ret nedenlerinin sıklığını analiz ederek yaygın sorunları belirlemek ve düzeltici adımlar uygulamak mümkün olur. Örneğin Yanlış satın alma siparişi numarası sık görülen bir nedense tedarikçilerle iletişimin iyileştirilmesi veya veri girişi personelinin eğitilmesi gerekebilir. Bu analiz, süreçteki yeniden çalışmayı azaltmak için önemlidir. Neden önemli? Retlerin temel nedenini ortaya koyar; yeniden işlemeyi azaltmak ve ilk seferde doğru işlem oranını artırmak için hedefli süreç iyileştirmeleri yapmanızı sağlar. Nereden alınır? Bu bilgi çoğu zaman tek bir standart alanda saklanmaz. Workflow container günlüklerinde, belgeyle ilişkilendirilmiş uzun metin alanlarında veya özel bir Workflow çözümündeki belirli alanlarda bulunabilir. Örnekler DUPLICATE_INVWRONG_AMTNO_PO_MATCH | |||
| Şirket kodu CompanyCode | Faturanın işlendiği tüzel kişiyi veya şirketi tanımlayan değer. | ||
| Açıklama Şirket kodu, SAP Financials içindeki temel organizasyon birimlerinden biridir ve bağımsız bir tüzel kişiliği temsil eder. Faturalar dahil tüm finansal işlemler belirli bir şirket koduna kaydedilir. Bu öznitelik, süreç analizinin tüzel kişiliğe göre ayrıştırılmasını sağlar. Bir şirketler grubundaki farklı şirketlerin süreç performansını, uyumluluğunu ve verimliliğini karşılaştırmak için önemlidir. Fatura işleme KPI’larına şirket özelinde bakmak için Dashboardlar Şirket koduna göre filtrelenebilir. Neden önemli? Bir kuruluş içindeki farklı tüzel kişiler arasında süreç karşılaştırması ve performans kıyaslaması yapmanızı sağlar. Nereden alınır? Bu değer, fatura belgesi başlık tablosu RBKP'deki 'Company Code' alanıdır (BUKRS). Örnekler 10002000US01 | |||
| Son veri güncellemesi LastDataUpdate | Süreç verilerinin kaynak sistemden en son ne zaman yenilendiğini gösteren zaman damgası. | ||
| Açıklama Bu öznitelik, en son veri çıkarma veya güncelleme işleminin tarihini ve saatini kaydeder. Tek tek olaylar yerine Veri Setinin tamamı için geçerlidir ve verilerin güncelliğini açıkça gösterir. Bu, Dashboard kullanıcıları ve analistler için önemli bir üst veri özniteliğidir. Analizin kapsadığı dönemi anlamalarına ve kararlarını güncel bilgilere dayandırmalarına yardımcı olur. Kullanıcıları verilerin ne kadar güncel olduğu konusunda bilgilendirmek için genellikle Dashboardlarda belirgin biçimde gösterilir. Neden önemli? Verilerin güncelliği hakkında bilgi verir; analiz ve kararların güncel bilgilere dayanmasını sağlar. Nereden alınır? Bu değer, veri yenilendiği sırada veri çıkarma veya ETL aracı tarafından oluşturulur ve veri setine eklenir. Örnekler 2024-05-20T08:00:00Z2024-05-21T08:00:00Z2024-05-22T08:00:00Z | |||
| Vadesi geçti mi IsOverdue | Faturanın ödeme vadesinden sonra ödenip ödenmediğini gösteren hesaplanmış işaret. | ||
| Açıklama Bu, Takas tarihi (gerçek ödeme tarihi) ile Ödeme vadesinin karşılaştırılmasıyla hesaplanan bir doğru/yanlış özniteliğidir. Takas tarihi vade tarihinden sonraysa işaret doğru, aksi durumda yanlış olarak belirlenir. Böylece her fatura için zamanında ödeme performansı doğrudan ve basit biçimde ölçülür. Bu öznitelik, Dashboardlarda analizi ve görselleştirmeyi kolaylaştırır. Zamanında ödeme oranı KPI’ını hesaplamak için kolay filtreleme ve toplulaştırma yapılmasını sağlar. Kullanıcılar, vadesi geçen faturaların süreç akışlarını zamanında ödenen faturaların akışlarıyla hızlıca karşılaştırabilir ve geç ödemelere yol açan süreç örüntülerini ortaya çıkarabilir. Neden önemli? Zamanında ödeme performansının analizini kolaylaştırır ve zamanında ödenen faturalarla geç ödenen faturaların süreçlerini kolayca karşılaştırmanızı sağlar. Nereden alınır? Bu öznitelik SAP'de bulunmaz. Veri dönüşümü sırasında şu formül kullanılarak hesaplanır: ClearingDate > PaymentDueDate. Örnekler truefalse | |||
Satın Almadan Ödemeye - Fatura işleme faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Fatura kapatıldı | Bu faaliyet, açık borcun bir ödeme belgesiyle kapatıldığı başarılı fatura yaşam döngüsünün son adımını ifade eder. Ödemenin gerçekleştirildiğini gösterir. | ||
| Neden önemli? Temel son olay olarak toplam uçtan uca çevrim süresini hesaplamak için önemlidir. Sürecin başarıyla tamamlandığını doğrular ve zamanında ödeme performansını ölçmek için kullanılır. Nereden alınır? Bu, fatura kalemi tablosu BSEG'de kaydedilen açık bir olaydır. Kapatma tarihi AUGDT alanında, kapatma belgesi numarası ise AUGBL alanında tutulur. Yakalayın Fatura belgesinin kaleminden kapatma tarihini, BSEG-AUGDT alanını kullanın. Olay türü explicit | |||
| Fatura kaydedildi | Bu, faturanın genel muhasebeye resmi olarak kaydedildiği ve bir borç oluşturduğu temel finansal olaydır. Belgeyi geçici, yani park edilmiş durumdan kalıcı bir muhasebe kaydına dönüştürür. | ||
| Neden önemli? Kayıt işlemi, faturanın geçerliliğini doğrulayan önemli bir kilometre taşıdır. Ödeme için ön koşuldur ve işleme kapasitesinin temel göstergelerinden biridir. Nereden alınır? Bu, belge başlığı tablosu BKPF'de kaydedilen açık bir olaydır. Zaman damgası, BKPF-BUDAT kayıt tarihidir. Belge artık 'park edilmiş' durumda olmaz. Yakalayın Park edilmemiş belgeler için BKPF-BUDAT kayıt tarihini kullanın. Bu belgelerde BKPF-BSTAT alanı boş veya ' ' olmalıdır. Olay türü explicit | |||
| Fatura ters kaydedildi | Kaydedilmiş bir fatura belgesinin iptal edilmesini ifade eder. Orijinal faturanın finansal etkisini ortadan kaldırmak için bir ters kayıt belgesi oluşturulur. | ||
| Neden önemli? Bu faaliyet, önemli bir istisna ve yeniden işleme yolunu gösterir. Ters kayıtların sıklığını ve nedenlerini analiz etmek, fatura doğrulama ve kayıt sürecindeki sistemik sorunları ortaya çıkarabilir. Nereden alınır? Bu, belge başlığı tablosu BKPF'de kaydedilen açık bir olaydır. Ters kaydedilen belgenin başlığında ters kayıt belgesi numarası (STBLG) ve mali yıl (STJAH) bulunur. Yakalayın BKPF-STBLG alanı dolu olan belgeleri belirleyin. Olay zaman damgası, ters kayıt belgesinin kayıt tarihidir. Olay türü explicit | |||
| Fatura verileri yakalandı | Fatura belgesinin SAP'de, park edilmiş veya tamamen kaydedilmiş belge olarak ilk kez oluşturulmasını ifade eder. Bu, genellikle faturanın yaşam döngüsü boyunca sistemde kaydedilen ilk olaydır ve süreç başlangıç zamanı olarak kullanılır. | ||
| Neden önemli? Bu faaliyet, uçtan uca fatura işleme çevrim süresini ölçmek için temel başlangıç noktasıdır. Bu noktadan itibaren geçen süreyi analiz etmek, ilk veri girişi ve belge oluşturma aşamasındaki gecikmeleri belirlemeye yardımcı olur. Nereden alınır? Oluşturma zaman damgası, SAP'deki BKPF tablosunda CPUDT alanında, muhasebe belgesinin girildiği tarih olarak ve CPUTM alanında giriş zamanı olarak tutulur. Yakalayın BKPF tablosu başlığındaki belge oluşturma zaman damgasını, CPUDT alanını kullanın. Olay türü explicit | |||
| Ödeme bloğu ayarlandı | Bu faaliyet, bir fatura kaleminin üzerine ödeme yapılmasını engelleyen bir blok konulduğunda gerçekleşir. Bloklar, 3'lü eşleştirmedeki tutarsızlıklar nedeniyle otomatik olarak veya çeşitli nedenlerle manuel biçimde ayarlanabilir. | ||
| Neden önemli? Bu olay, Ödeme Bloğu Çözüm Süresi'ni ölçmek ve ödeme gecikmelerinin temel nedenlerini belirlemek için önemlidir. Fiyat, miktar veya gerekli onaylarla ilgili sorunları ortaya çıkarır. Nereden alınır? Bu, BSEG tablosundaki ZLSPR (Ödeme Bloğu Anahtarı) alanı için CDHDR ve CDPOS tablolarındaki değişiklik belgesi günlüklerinden izlenebilen açık bir olaydır. Yakalayın BSEG-ZLSPR değerinin boş durumdan boş olmayan duruma geçtiği anda değişiklik belgelerindeki (CDHDR) zaman damgasını kullanın. Olay türü explicit | |||
| Fatura onaya gönderildi | Bir faturanın resmi bir onay iş akışına gönderildiği noktayı ifade eder. Yakalama mekanizması, kullanılan SAP Workflow veya üçüncü taraf sistem uygulamasına büyük ölçüde bağlıdır. | ||
| Neden önemli? Bu faaliyet, Fatura Onay Döngüsü Süresi KPI'ı için süre ölçümünü başlatır. Onay zincirindeki gecikmeleri belirlemek ve onaylayanların performansını analiz etmek için gereklidir. Nereden alınır? Bu olay genellikle SAP Business Workflow tablolarından, örneğin SWW_WI2OBJ ve SWWLOG'dan, belirli bir onay görevinin başlangıcı belirlenerek yakalanır. Daha basit senaryolarda özel bir alandaki durum değişikliğinden çıkarılabilir. Yakalayın Fatura belgesiyle bağlantılı SAP Workflow günlüklerinin veya özel durum alanlarının analiz edilmesi gerekir. Olay türü inferred | |||
| Fatura onaylandı | Faturanın yetkili kişi tarafından resmi olarak onaylandığını ve kayda alma ile ödeme aşamalarına ilerleyebileceğini gösterir. Bu, çoğu zaman iş akışının son adımıdır. | ||
| Neden önemli? Bu kilometre taşı, onay döngüsü süresi ölçümünü tamamlar. Sürecin önündeki engeli kaldırarak ödemenin zamanında yapılmasını sağlar ve onaylayanlar arasındaki iş yükü dağılımının analiz edilmesine yardımcı olur. Nereden alınır? Bu olay genellikle SAP Business Workflow tablolarından bir onay görevinin tamamlandığı belirlenerek yakalanır. Alternatif olarak, onayla ilişkili bir ödeme bloğunun kaldırılmasından çıkarılabilir. Yakalayın Workflow günlüklerindeki tamamlanmış onay adımının veya belirli bir ödeme bloğunun kaldırılmasının zaman damgası. Olay türü inferred | |||
| Fatura park edildi | Faturanın SAP'ye girildiğini ancak henüz genel muhasebeye kaydedilmediğini gösterir. Bu geçici durum, finansal kayıt yapılmadan önce inceleme, düzeltme veya onay işlemlerine olanak tanır. | ||
| Neden önemli? Faturaların ne zaman ve ne kadar süreyle park edildiğini izlemek, kayıt öncesi doğrulama ve onay sürecindeki darboğazları ortaya çıkarır. Veri giriş süresini finansal işleme süresinden ayırır. Nereden alınır? Bu durum, BKPF tablosundaki BSTAT alanında yer alan belge durumundan çıkarılır. 'V' (Park Edilmiş Belge) veya 'W' (Değişiklik Onaylı Park Edilmiş Belge) değeri, park edilmiş durumu gösterir. Yakalayın BKPF-BSTAT durum alanı 'V' olan belgeleri belirleyin. Olay zaman damgası, BKPF-CPUDT oluşturma tarihidir. Olay türü inferred | |||
| Fatura reddedildi | Faturanın onay sürecinde reddedildiğini gösterir. Bu işlem genellikle düzeltme ve yeniden gönderim gerektirir ve bir yeniden işleme döngüsü oluşturur. | ||
| Neden önemli? Retleri izlemek, yanlış veri veya politika ihlalleri gibi yaygın başarısızlık nedenlerini belirlemek için önemlidir. Yeniden işleme miktarını ölçmeye ve süreç iyileştirmesi ya da tedarikçi eğitimi gereken alanları belirlemeye yardımcı olur. Nereden alınır? Bu olay genellikle SAP Business Workflow günlüklerinde ret adımı olarak bulunur. Fatura belgesine eklenen belirli durum değişikliklerinden veya notlardan da çıkarılabilir. Yakalayın Workflow günlüklerindeki ret adımının veya reddedilmeyi gösteren belge durum değişikliğinin zaman damgası. Olay türü inferred | |||
| Faturanın vadesi geçti | Geçerli tarih faturanın net vade tarihini geçtiğinde ve fatura henüz ödenmediğinde gerçekleşen hesaplanmış bir olaydır. Vade tarihi, ödeme koşulları ve temel tarih kullanılarak belirlenir. | ||
| Neden önemli? Bu faaliyet, Zamanında Ödeme Oranı KPI'ını izlemek için gereklidir. Tedarikçi ilişkilerine zarar verebilecek ve cezalara yol açabilecek geç ödemeler açısından riskli faturaları proaktif biçimde işaretler. Nereden alınır? Bu olay, geçerli tarih ile net vade tarihi karşılaştırılarak hesaplanır. Vade tarihi, temel tarih olan BSEG-ZFBDT ve ödeme koşulları olan BSEG-ZTERM kullanılarak elde edilir. Yakalayın Olay, Olay türü calculated | |||
| Ödeme bloğu kaldırıldı | Bir fatura kalemindeki ödeme bloğunun kaldırılmasını ve kalemin ödeme çalıştırmasına ilerleyebilmesini ifade eder. Bu, daha önce belirlenen bir sorunun çözüldüğünü gösterir. | ||
| Neden önemli? Bu faaliyet, blok süresi ölçümünü tamamlar. Blok konulması ile kaldırılması arasındaki süreyi analiz etmek, sorun çözme sürecinin verimliliğini ortaya çıkarır. Nereden alınır? Bu olay, blok kaldırıldığında BSEG tablosundaki ZLSPR (Ödeme Bloğu Anahtarı) alanı için CDHDR ve CDPOS tablolarındaki değişiklik belgesi günlüklerinden izlenir. Yakalayın BSEG-ZLSPR değerinin boş olmayan durumdan boş duruma geçtiği anda değişiklik belgelerindeki (CDHDR) zaman damgasını kullanın. Olay türü explicit | |||
Veri çıkarma rehberleri
Adımlar
- ABAP programını oluşturun: Yeni bir çalıştırılabilir program oluşturmak için
SE38veyaSE80işlemini kullanın. Örneğin program adıZ_PM_INVOICE_EXTRACTolabilir. Uygun bir başlık girin ve türü Çalıştırılabilir Program olarak ayarlayın. - Seçim ekranını tanımlayın: Programda, kullanıcıların verileri filtrelemesini sağlayacak bir seçim ekranı tanımlayın. Temel parametreler Şirket kodu (
BUKRS), Mali yıl (GJAHR), Kayda alma tarihi aralığı (BUDAT) ve uygulama sunucusundaki çıktı dosyası yolu için bir parametre olmalıdır. - Veri yapılarını bildirin: Nihai Event Logu tutacak bir dahili tablo yapısı tanımlayın. Bu yapı gerekli ve önerilen tüm öznitelikleri içermelidir:
InvoiceNumber,Etkinlik,EventTime,UserName,VendorNumber,PurchaseOrderNumber,InvoiceAmount,PostingDate,PaymentDueDate,PaymentBlockReasonveClearingDate. - Veri seçme mantığını uygulayın: Fatura verilerini seçmek için temel ABAP mantığını yazın. Yaklaşım, nihai Event Log tablosunda birleştirilen birden fazla seçimden oluşur.
- Önce, seçim ekranı ölçütlerine göre
BKPF,BSEG,RBKPveRSEGbirincil fatura tablolarından başlık ve kalem verilerini seçin. - Her fatura için oluşturma zaman damgasından Fatura verileri yakalandı ve kayda alma zaman damgasından Fatura kaydedildi gibi temel olayları oluşturun.
- Ödeme blokeleriyle (
BSEGtablosundakiZLSPRalanı) ilgili değişiklikleri bulmak için değişiklik belgesi tablolarıCDHDRveCDPOSüzerinde sorgu çalıştırın. İlgili her değişiklik için Ödeme blokesi kondu ve Ödeme blokesi kaldırıldı olaylarını oluşturun. BSEGtablosunda takas belgesi (AUGBL) ve takas tarihi (AUGDT) olup olmadığını kontrol ederek Fatura takası yapıldı olaylarını belirleyin.BKPFbaşlığında ters kayıt belgesi (STBLG) olup olmadığını kontrol ederek Fatura ters kaydedildi olaylarını belirleyin.- İş akışı olaylarını (Fatura onaya gönderildi, Onaylandı, Reddedildi) yakalamak için özel mantık uygulayın. Bu bölüm tamamen müşteriye özeldir ve kodun iş akışınızın tablolarına veya durum alanlarına uyarlanmasını gerektirir.
- Önce, seçim ekranı ölçütlerine göre
- Hesaplanan olayları oluşturun: Program mantığı içinde Fatura vadesi geçti olayını hesaplayın. Bu olay, ödenmemiş tüm faturalar için fatura ödeme vadesinin (
PaymentDueDate) geçerli tarihle karşılaştırılmasıyla elde edilir. Vade tarihi geçmişseEventTimedeğerini vade tarihine ayarlayarak bir olay oluşturun. - Event Log tablosunu doldurun: Her fatura için farklı kaynaklardan veri toplarken verileri biçimlendirin ve nihai dahili Event Log tablosuna etkinlik başına bir satır olacak şekilde yeni satırlar ekleyin.
- Verileri dosyaya aktarın: Nihai dahili tablonun içeriğini, seçim ekranında belirtilen SAP uygulama sunucusu yolundaki düz dosyaya yazmak için
OPEN DATASET,TRANSFERveCLOSE DATASETifadelerini kullanın. CSV dosyası oluşturmak için noktalı virgül veya sekme gibi tutarlı bir ayraç kullanın. - Çıkarma işlemini zamanlayın: Düzenli veri çıkarma için programda istediğiniz seçim ölçütlerini içeren bir varyant oluşturun ve işlemi
SM36kullanarak arka plan işi olarak zamanlayın. - Çıktı dosyasını alın: Oluşturulan dosyayı bulmak için
AL11işlemini kullanarak SAP uygulama sunucusu dizinine erişin. Dosyayı uygulama sunucusundan yerel bilgisayarınıza indirmek içinCG3Yişlemini kullanın. - Yüklemeye hazırlanın: Bir process mining aracına yüklemeden önce CSV dosyasını açarak başlıkların doğru olduğunu, veri biçiminin özellikle zaman damgaları açısından tutarlı olduğunu ve ayırıcının beklendiği gibi kullanıldığını doğrulayın. Dosyanın UTF-8 kodlamasıyla kaydedildiğinden emin olun.
Yapılandırma
- Seçim ölçütleri: ABAP raporu kapsamlı bir seçim ekranı içermelidir. En önemli filtreler şunlardır:
Company Code (BUKRS): Çıkarma işlemini belirli tüzel kişilerle sınırlandırır.Posting Date (BUDAT): Çıkarma işleminin zaman aralığını belirler. Verilerin, örneğin bir seferde 3 ila 6 aylık dönemler gibi yönetilebilir parçalar halinde çıkarılması önerilir.Document Type (BLART): Lojistik faturaları için 'RE' ve tedarikçi faturaları için 'KR' gibi yalnızca ilgili fatura belge türlerini dahil eder.
- Çıktı dosyası yolu: Çıktı dosyasının oluşturulacağı SAP uygulama sunucusundaki tam yol ve dosya adını belirtmek için zorunlu bir parametredir. Raporu çalıştıran kullanıcının bu dizine yazma yetkisi olmalıdır.
- Performansla ilgili noktalar: Büyük veri setlerinde sistem performansının düşmesini önlemek için rapor, yoğun olmayan saatlerde arka plan işi olarak çalıştırılmalıdır. Mantık, tablolardan yalnızca gerekli alanları seçmeli ve mümkün olduğunda standart SAP veritabanı dizinlerinden yararlanmalıdır.
- Ön koşullar ve yetkilendirmeler: Bu çıkarmayı çalıştıran kullanıcı veya servis hesabı aşağıdaki yetkilere ihtiyaç duyar:
- ABAP raporu çalıştırma yetkileri (
S_PROGRAMkapsamındadır). BKPF,BSEG,RBKP,RSEG,CDHDRveCDPOSdahil finans ve lojistik tablolarına okuma erişimi.- Belirtilen uygulama sunucusu dizinine (
S_DATASET) dosya yazma yetkisi. - Geliştirme, zamanlama ve dosya alma işlemleri için
SE38,SM36,AL11veCG3Yişlemlerine erişim.
- ABAP raporu çalıştırma yetkileri (
a Örnek sorgu 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. Başlamaya hazır mısınız?
Bu şablonu izleyerek değerli içgörüleri ortaya çıkarabilir ve Satın Almadan Ödemeye - Fatura İşleme sürecinizde önemli iyileştirmeler sağlayabilirsiniz. Veri çıkarma işleminize bugün başlayın ve operasyonlarınızı dönüştürün.
Satın Almadan Ödemeye fatura işleme sürecinizi bugün optimize edin
Verimsizlikleri belirleyin ve fatura çevrim süresini %30 azaltın.
Kredi kartı gerekmez. Kurulum birkaç dakika sürer.