Templat data proses pengembalian barang dan dana
Templat data proses pengembalian barang dan dana
- Atribut yang disarankan untuk dikumpulkan
- Aktivitas utama yang perlu dilacak
- Panduan ekstraksi
Atribut proses pengembalian barang dan dana
| Nama | Deskripsi | ||
|---|---|---|---|
| ID kasus retur ReturnCaseId | Pengenal unik untuk permintaan retur pelanggan yang menghubungkan semua aktivitas dan dokumen terkait. | ||
| Deskripsi ID kasus retur menjadi kunci utama untuk melacak seluruh siklus proses retur, dari awal hingga selesai. Setiap ID mewakili satu retur pelanggan dan mencakup semua peristiwa terkait, seperti pembuatan pesanan, pengiriman, pemeriksaan, dan pemrosesan nota kredit. Dalam analisis proses, atribut ini menjadi dasar pembuatan peta proses. Sistem mengelompokkan setiap peristiwa menjadi rangkaian kasus dari awal hingga akhir. Dengan begitu, Anda dapat menganalisis variasi proses, waktu siklus, dan hambatan untuk setiap retur. Mengapa ini penting ID kasus ini menghubungkan semua langkah dalam proses retur, sehingga Anda dapat menganalisis alur dan kinerja proses dari awal hingga akhir. Sumber data Biasanya berupa nomor Pesanan Retur dari modul Sales and Distribution (SD). Nomor ini terdapat di tabel VBAK (Sales Document Header Data), kolom VBELN. Kategori dokumen (VBAK-VBTYP) bernilai 'H' untuk retur. Contoh 600001236000045660000789 | |||
| Nama aktivitas ActivityName | Nama peristiwa atau langkah bisnis tertentu yang terjadi dalam proses retur. | ||
| Deskripsi Atribut ini menjelaskan satu tindakan atau perubahan status dalam siklus retur, seperti 'Pesanan retur dibuat', 'Penerimaan barang dibukukan', atau 'Nota kredit dibuat'. Aktivitas-aktivitas ini membentuk peta proses. Dengan menganalisis urutan dan frekuensi aktivitas, Anda dapat menemukan jalur proses yang paling umum, penyimpangan, dan pekerjaan ulang. Informasi ini penting untuk memahami apa yang terjadi dalam suatu kasus dan urutannya, serta menjadi dasar analisis process mining. Mengapa ini penting Aktivitas menunjukkan langkah-langkah dalam proses. Analisis urutan, durasi, dan frekuensinya menjadi inti process mining dan mengungkap cara kerja yang sebenarnya. Sumber data Diambil dari perubahan status di tabel seperti VBUK/VBUP, peristiwa pembuatan dokumen (misalnya di VBAK, LIKP, VBRK), atau log perubahan di tabel CDHDR/CDPOS. Contoh Pesanan pengembalian dibuatPenerimaan barang dicatatNota kredit dibuatItem pesanan retur selesai | |||
| Waktu peristiwa EventTime | Tanggal dan waktu tepat saat aktivitas terjadi. | ||
| Deskripsi Stempel waktu ini menunjukkan saat tepat suatu peristiwa bisnis terjadi. Waktu dicatat untuk setiap aktivitas dalam proses agar urutan peristiwa di setiap kasus terlihat jelas. Waktu peristiwa penting untuk semua analisis berbasis waktu. Anda dapat menghitung waktu siklus antaraktivitas, menemukan hambatan saat pekerjaan menunggu, dan mengukur durasi kasus secara keseluruhan. Data ini juga mendukung analisis kinerja dan pemeriksaan kepatuhan terhadap perjanjian tingkat layanan (SLA). Mengapa ini penting Stempel waktu ini diperlukan untuk menghitung durasi, menganalisis kinerja proses, menemukan hambatan, dan memahami linimasa setiap kasus retur. Sumber data Diambil dari berbagai kolom tanggal dan waktu di tabel SAP. Untuk peristiwa pembuatan, biasanya digunakan kolom ERDAT dan ERZET, misalnya di VBAK. Untuk peristiwa perubahan, gunakan UDATE dan UTIME di tabel CDHDR. Contoh 2023-04-15T10:22:05Z2023-04-16T14:01:30Z2023-04-18T09:15:00Z | |||
| Pembaruan data terakhir LastDataUpdate | Stempel waktu yang menunjukkan kapan data untuk proses ini terakhir diperbarui. | ||
| Deskripsi Atribut ini mencatat tanggal dan waktu ekstraksi atau pembaruan data terbaru. Dengan begitu, Anda dapat mengetahui seberapa baru data yang dianalisis. Informasi ini membantu Anda menilai apakah wawasan yang diperoleh masih relevan. Pengguna dapat melihat kondisi terkini data, terutama saat memantau operasional yang sedang berjalan. Mengapa ini penting Menunjukkan kebaruan data agar pengguna tahu seberapa terkini analisis proses dan kapan pembaruan berikutnya diperkirakan. Sumber data Atribut metadata ini diisi dengan stempel waktu saat tugas ekstraksi data dijalankan. Contoh 2023-05-20T02:00:00Z2023-05-21T02:00:00Z | |||
| Sistem sumber SourceSystem | Sistem tempat data diambil. | ||
| Deskripsi Atribut ini menunjukkan asal data, yang penting jika Anda menggunakan beberapa sistem. Informasi ini memberi konteks dan membantu memastikan asal-usul serta integritas data. Dalam analisis, atribut ini digunakan untuk mengelompokkan atau memfilter data saat proses dari beberapa sistem sumber digabungkan. Atribut ini juga memastikan peristiwa berasal dari aplikasi yang diharapkan, dalam hal ini SAP ECC. Mengapa ini penting Menunjukkan asal data. Informasi ini penting untuk tata kelola data dan analisis yang mencakup beberapa sistem perusahaan. Sumber data Nilai statis ini ditetapkan saat ekstraksi data untuk mengidentifikasi instans SAP ECC tertentu, misalnya 'ECC_PROD_100'. Contoh SAP_ECC_PRODSAPECC_FINANCE_200 | |||
| Alasan retur ReturnReason | Kode alasan yang diberikan pelanggan untuk mengembalikan item. | ||
| Deskripsi Atribut ini menunjukkan alasan produk dikembalikan menggunakan kode alasan yang telah ditetapkan di SAP. Contohnya, 'Rusak saat pengiriman', 'Produk yang dikirim salah', atau 'Ukuran tidak sesuai'. Atribut ini penting untuk analisis akar masalah. Dengan memfilter peta proses atau KPI berdasarkan alasan retur, analis dapat mengetahui apakah alasan tertentu berkaitan dengan waktu pemrosesan yang lebih lama, tingkat kegagalan pemeriksaan yang lebih tinggi, atau penyimpangan proses tertentu. Temuan ini dapat mendorong perbaikan kualitas produk, logistik, atau proses penjualan. Mengapa ini penting Menjelaskan alasan retur terjadi. Informasi ini membantu menemukan akar masalah dan mengurangi retur dengan menangani masalah kualitas produk, pengiriman, atau deskripsi produk. Sumber data Terdapat di tabel item dokumen penjualan VBAP, kolom ABGRU (alasan penolakan dokumen penjualan). Contoh 001 - Produk rusak002 - Produk salah005 - Tiba terlambat | |||
| Jumlah pengembalian dana aktual ActualRefundAmount | Jumlah akhir yang dikreditkan kepada pelanggan, sebagaimana tercatat di dokumen keuangan. | ||
| Deskripsi Atribut ini menunjukkan jumlah akhir pengembalian dana yang telah diproses dan dibukukan di sistem akuntansi. Jumlahnya dapat berbeda dari jumlah yang diminta karena biaya pengisian ulang stok, penyesuaian berdasarkan kondisi barang, atau penerapan kebijakan lainnya. Atribut ini penting untuk dasbor 'Pelacakan selisih jumlah pengembalian dana'. Dengan membandingkannya dengan jumlah yang diminta, Anda dapat menemukan masalah sistematis dalam perhitungan dan persetujuan pengembalian dana serta memastikan keakuratan keuangan. Mengapa ini penting Menunjukkan hasil akhir keuangan dari retur. Bandingkan dengan jumlah yang diminta untuk memastikan keakuratan dan menemukan kebocoran keuangan. Sumber data Diambil dari dokumen keuangan yang terkait dengan nota kredit. Biasanya terdapat di tabel BSEG (Accounting Document Segment), kolom WRBTR (jumlah dalam mata uang dokumen), untuk pembukuan akun G/L terkait. Contoh 150.0045.001200.75 | |||
| Jumlah pengembalian dana yang diminta RequestedRefundAmount | Nilai pengembalian dana yang diperkirakan, biasanya berdasarkan nilai bersih item yang dikembalikan. | ||
| Deskripsi Atribut ini menunjukkan nilai awal retur dalam pesanan retur. Nilai ini menjadi dasar analisis dan rekonsiliasi keuangan. Bandingkan jumlah ini dengan 'Jumlah pengembalian dana aktual' untuk melacak selisih. Perbandingan ini menjadi metrik utama di dasbor 'Pelacakan selisih jumlah pengembalian dana'. Analisis nilai ini membantu memantau dampak keuangan retur dan menemukan potensi masalah pada harga atau perhitungan kredit. Mengapa ini penting Menetapkan nilai keuangan awal retur. Nilai ini penting untuk melacak selisih keuangan dan memahami total nilai barang yang dikembalikan. Sumber data Nilai ini biasanya berupa nilai bersih pada tingkat item pesanan retur. Terdapat di tabel VBAP, kolom NETWR. Contoh 150.0049.991250.75 | |||
| Kanal retur ReturnChannel | Kanal yang digunakan untuk memulai retur, seperti online, di toko, atau melalui call center. | ||
| Deskripsi Atribut ini menunjukkan asal atau cara permintaan retur diterima. Atribut ini membedakan retur yang diajukan melalui portal web, toko fisik, atau perwakilan layanan pelanggan. Mengelompokkan proses berdasarkan kanal retur penting untuk memahami perbedaan operasional dan alokasi sumber daya. Misalnya, pemeriksaan retur di toko mungkin lebih cepat, tetapi memerlukan langkah dokumentasi yang berbeda dari retur online. Atribut ini menjadi dimensi utama dalam dasbor 'Tren jumlah pemrosesan retur'. Mengapa ini penting Menunjukkan cara retur diajukan, yang sering memengaruhi alur proses, kebutuhan sumber daya, dan waktu siklus tiap kanal. Sumber data Kolom ini sering kali tidak tersedia secara standar di SAP ECC. Anda mungkin perlu mengambilnya dari kolom khusus, misalnya di VBAK, atau menyimpulkannya dari data lain seperti Organisasi Penjualan (VKORG) atau Kanal Distribusi (VTWEG). Periksa dokumentasi SAP ECC untuk mengetahui penerapan yang sesuai. Contoh Portal onlineDi tokoCall center | |||
| Nomor material MaterialNumber | Pengenal unik untuk produk yang dikembalikan. | ||
| Deskripsi Nomor material atau SKU menunjukkan item tertentu yang dikembalikan. Dengan atribut ini, Anda dapat menganalisis retur hingga tingkat produk. Analisis retur berdasarkan nomor material membantu perusahaan menemukan produk dengan tingkat retur tinggi. Hal ini dapat mengindikasikan masalah kualitas, deskripsi yang tidak akurat, atau cacat produksi. Atribut ini penting untuk dasbor seperti 'Dampak retur terhadap inventaris' dan untuk memahami alur berbagai produk dalam proses retur. Mengapa ini penting Menunjukkan produk yang dikembalikan dan membantu menemukan potensi masalah pengendalian kualitas atau deskripsi produk yang tidak akurat. Sumber data Terdapat di tabel item dokumen penjualan VBAP, kolom MATNR. Contoh RM-1025FG-2050-BACC-5591 | |||
| Petugas pemrosesan ProcessingAgent | ID pengguna karyawan yang melakukan aktivitas. | ||
| Deskripsi Atribut ini mencatat nama pengguna yang bertanggung jawab menjalankan langkah proses tertentu, seperti membuat pesanan retur atau membukukan penerimaan barang. Pengguna ini biasanya tercatat sebagai 'Diubah oleh' atau 'Dibuat oleh'. Analisis berdasarkan petugas pemrosesan membantu mengelola kinerja dan sumber daya. Anda dapat melihat petugas dengan kinerja terbaik, mengetahui siapa yang mungkin perlu pelatihan tambahan, dan memeriksa pembagian beban kerja tim. Atribut ini digunakan di dasbor seperti 'Kinerja petugas pemrosesan retur' untuk membandingkan waktu siklus dan jumlah pemrosesan. Mengapa ini penting Melacak keterlibatan pengguna untuk menganalisis kinerja tim, pembagian beban kerja, kebutuhan pelatihan, dan praktik terbaik. Sumber data Biasanya terdapat di kolom seperti ERNAM (Dibuat oleh) atau AENAM (Diubah oleh) pada tabel header seperti VBAK, LIKP, dan VBRK. Untuk peristiwa perubahan, gunakan USERNAME di CDHDR. Contoh CBURNSDSCRANTONJHALPERT | |||
| Dokumen penjualan asli OriginalSalesDocument | Nomor pesanan penjualan asli yang menjadi dasar retur. | ||
| Deskripsi Atribut ini menghubungkan retur langsung ke pembelian awal pelanggan. Dokumen referensi ini mengaitkan retur dengan detail transaksi aslinya. Tautan ini sangat berguna untuk analisis lebih lanjut. Analis dapat menyelidiki alasan penjualan dari pesanan tertentu dikembalikan, memeriksa harga dan ketentuan awal, serta memahami seluruh siklus pesanan hingga retur. Atribut ini juga membantu menjawab apakah produk yang dijual melalui kampanye atau kanal tertentu lebih sering diretur. Mengapa ini penting Menghubungkan retur dengan penjualan awal, sehingga Anda dapat melihat seluruh siklus transaksi pelanggan dan menganalisis akar masalah lebih lanjut. Sumber data Referensi ini disimpan di tingkat item pesanan retur. Anda dapat menemukannya di tabel VBAP, kolom VGBEL (nomor dokumen referensi). Contoh 100034561000987110012345 | |||
| ID pelanggan CustomerId | Pengenal unik untuk pelanggan yang mengajukan retur. | ||
| Deskripsi Atribut ini mengidentifikasi pelanggan tertentu yang mengembalikan produk, atau 'Sold-to Party' dalam istilah SAP. Atribut ini menghubungkan transaksi retur dengan data induk pelanggan. Analisis berdasarkan ID pelanggan membantu menemukan pelanggan yang sering melakukan retur, yang dapat mengindikasikan ketidakpuasan atau potensi penyalahgunaan kebijakan retur. Jika digabungkan dengan data segmentasi pelanggan, atribut ini juga membantu melihat perbedaan perilaku retur atau pengalaman proses antarsegmen. Mengapa ini penting Menghubungkan retur dengan pelanggan tertentu. Anda dapat menganalisis perilaku pelanggan, menemukan pelanggan yang berulang kali melakukan retur, dan memahami dampaknya terhadap hubungan pelanggan. Sumber data Terdapat di tabel header dokumen penjualan VBAK, kolom KUNNR (Sold-to party). Contoh CUST-100432CUST-203991CUST-831102 | |||
| Kepatuhan terhadap kebijakan retur ReturnPolicyAdherence | Penanda yang menunjukkan apakah retur mematuhi semua aturan dan kebijakan bisnis yang ditetapkan. | ||
| Deskripsi Atribut boolean terhitung ini menunjukkan apakah kasus retur mengikuti kebijakan standar perusahaan. Logikanya dapat memeriksa beberapa kondisi, seperti apakah retur diajukan dalam batas waktu yang diizinkan, kode alasannya valid untuk produk tersebut, atau persetujuan manajer telah diperoleh untuk pengecualian. Atribut ini mendukung dasbor 'Kepatuhan terhadap kebijakan persetujuan retur'. Anda dapat mengukur tingkat kepatuhan secara langsung dan menemukan kebijakan yang paling sering dilewati. Hasilnya dapat digunakan untuk menentukan perbaikan proses atau pelatihan yang tepat. Mengapa ini penting Mengukur kepatuhan terhadap aturan bisnis, membantu penerapan kebijakan secara konsisten dan menemukan kasus yang memerlukan peninjauan atau persetujuan khusus. Sumber data Atribut ini diturunkan dari serangkaian aturan bisnis. Contoh: (TanggalMulaiRetur - TanggalPembelianAsli) <= 30 hari DAN AlasanRetur IS NOT NULL. Contoh truefalse | |||
| Kode perusahaan CompanyCode | Badan hukum atau perusahaan yang bertanggung jawab atas transaksi. | ||
| Deskripsi Kode perusahaan mewakili unit akuntansi mandiri di SAP. Semua transaksi keuangan, termasuk retur dan pengembalian dana, dibukukan ke kode perusahaan tertentu. Atribut ini penting untuk pelaporan keuangan dan pengelompokan proses di organisasi multinasional atau yang memiliki beberapa entitas. Dengan menganalisis berdasarkan kode perusahaan, Anda dapat membandingkan kinerja proses retur antarentitas hukum dalam perusahaan. Mengapa ini penting Memungkinkan Anda memfilter dan membandingkan proses retur antarentitas hukum dalam organisasi. Ini penting untuk analisis keuangan. Sumber data Terdapat di tabel header dokumen penjualan VBAK, kolom BUKRS_VF (kode perusahaan untuk penagihan). Contoh 10002000US01 | |||
| Memenuhi SLA IsSLACompliant | Penanda yang menunjukkan apakah pengembalian dana diproses sesuai perjanjian tingkat layanan (SLA). | ||
| Deskripsi Atribut boolean terhitung ini membandingkan tanggal aktual aktivitas 'Pengembalian dana diproses' dengan 'Tanggal target SLA pengembalian dana'. Nilainya true jika pengembalian dana selesai tepat waktu dan false jika tidak. Atribut ini menyederhanakan analisis dan pelaporan dengan menunjukkan hasil SLA setiap kasus secara jelas, yaitu terpenuhi atau tidak. Gunakan atribut ini untuk menghitung tingkat 'Kepatuhan SLA pemrosesan pengembalian dana' secara keseluruhan dan memfilter kasus yang tidak memenuhi SLA. Mengapa ini penting Menunjukkan kinerja SLA setiap kasus dengan jelas, sehingga pemantauan dan pelaporan kepatuhan lebih mudah. Sumber data Atribut ini dihitung dengan logika: WaktuPeristiwa 'Pengembalian dana diproses' <= TanggalTargetSLAPengembalianDana. Contoh truefalse | |||
| Nomor nota kredit CreditMemoNumber | Pengenal unik untuk dokumen nota kredit yang diterbitkan sebagai pengembalian dana. | ||
| Deskripsi Nota kredit adalah dokumen penagihan resmi di SAP yang menetapkan pengembalian dana kepada pelanggan. Nomor ini mengidentifikasi dokumen keuangan tersebut secara unik. Atribut ini penting untuk rekonsiliasi keuangan dan pelacakan proses dari retur operasional hingga penyelesaian keuangan. Nota kredit menjadi tonggak penting dalam proses dan membantu menemukan dokumen akuntansi terkait untuk atribut seperti 'Jumlah pengembalian dana aktual'. Mengapa ini penting Memberi tautan langsung ke dokumen keuangan yang mengesahkan pengembalian dana kepada pelanggan. Tautan ini penting untuk audit dan rekonsiliasi keuangan. Sumber data Nota kredit adalah dokumen penagihan. Nomornya terdapat di tabel VBRK (Billing Document: Header Data), kolom VBELN. Tautannya dapat ditemukan melalui alur dokumen pesanan retur. Contoh 900011229000334490005566 | |||
| Pabrik Plant | Lokasi fisik atau fasilitas tempat item retur diterima dan diproses. | ||
| Deskripsi Di SAP, pabrik menunjukkan lokasi fisik seperti gudang atau pusat distribusi tempat barang ditangani. Untuk retur, biasanya ini adalah lokasi penerimaan dan pemeriksaan item. Analisis proses berdasarkan pabrik membantu menemukan perbedaan kinerja antarfasilitas. Anda dapat melihat gudang yang lebih efisien dalam memeriksa item atau memiliki jumlah pemrosesan lebih tinggi. Informasi ini mendukung dasbor 'Jumlah dan efisiensi pemeriksaan item'. Mengapa ini penting Menunjukkan lokasi fisik yang memproses retur, sehingga Anda dapat membandingkan kinerja antar gudang atau pusat distribusi. Sumber data Terdapat di tingkat item pesanan retur, tabel VBAP, kolom WERKS. Contoh PL01WH02DC05 | |||
| Selisih jumlah pengembalian dana RefundAmountDiscrepancy | Selisih terhitung antara jumlah pengembalian dana aktual dan jumlah yang diminta. | ||
| Deskripsi Metrik terhitung ini menunjukkan selisih nilai uang antara jumlah yang awalnya diminta dalam pesanan retur dan jumlah yang akhirnya diterbitkan dalam nota kredit. Nilai positif dapat menunjukkan pengembalian dana sebagian. Nilai negatif tidak lazim, tetapi dapat menunjukkan kelebihan pembayaran. Atribut ini menjadi ukuran utama di dasbor 'Pelacakan selisih jumlah pengembalian dana'. Atribut ini membantu menemukan dan menganalisis kasus dengan penyimpangan keuangan, yang mungkin disebabkan oleh penilaian kondisi barang, biaya pengisian ulang stok, atau kesalahan. Pemantauan ini membantu menjaga kendali keuangan dan memastikan kebijakan dipatuhi. Mengapa ini penting Mengukur langsung penyimpangan keuangan dalam proses pengembalian dana. Informasi ini membantu menemukan pelanggaran kebijakan, kesalahan pemrosesan, atau kebocoran keuangan. Sumber data Kolom terhitung: JumlahPengembalianDanaAktual - JumlahPengembalianDanaYangDiminta. Contoh 0.00-4.99-50.00 | |||
| Status pesanan retur ReturnOrderStatus | Status pemrosesan keseluruhan untuk kasus pesanan retur. | ||
| Deskripsi Atribut ini menunjukkan kondisi terkini kasus retur, seperti 'Terbuka', 'Sedang diproses', atau 'Selesai'. Nilainya berasal dari gabungan status di tingkat header atau item dokumen penjualan. Dalam analisis, gunakan atribut ini untuk memfilter kasus dan berfokus pada retur yang masih berjalan atau sudah selesai. Atribut ini membantu memantau beban kerja dan kemajuan kasus terbuka, serta menunjukkan hasil umum setiap proses retur. Mengapa ini penting Menunjukkan posisi kasus dalam siklus prosesnya. Anda dapat memfilter dan menganalisis retur yang terbuka, sedang diproses, atau sudah ditutup. Sumber data Diambil dari kolom status di tabel VBUK (Status Header) dan VBUP (Status Item). Misalnya, VBUK-GBSTK menunjukkan status pemrosesan keseluruhan dokumen. Contoh TerbukaSedang diprosesSelesai | |||
| Tanggal target SLA pengembalian dana RefundSLATargetDate | Tanggal batas pemrosesan pengembalian dana sesuai perjanjian tingkat layanan. | ||
| Deskripsi Atribut ini menetapkan batas waktu penyelesaian proses pengembalian dana untuk suatu kasus retur. Biasanya, tanggal dihitung berdasarkan aturan bisnis, misalnya '5 hari kerja sejak barang diterima'. Tanggal target ini menjadi tolok ukur untuk mengukur kinerja aktual. Atribut ini menjadi komponen utama dasbor 'Kepatuhan SLA pemrosesan pengembalian dana'. Bisnis dapat memantau pemenuhan komitmen kepada pelanggan dan menemukan kasus yang berisiko melewati batas SLA. Mengapa ini penting Menetapkan target kinerja pemrosesan pengembalian dana. Bisnis dapat mengukur dan melaporkan kepatuhan SLA serta memprioritaskan kasus yang terlambat. Sumber data Kolom ini biasanya tidak tersedia secara standar di SAP dan perlu dihitung berdasarkan aturan bisnis. Perhitungannya dapat menggunakan tanggal penting, misalnya tanggal penerimaan barang dari MKPF, ditambah durasi yang ditetapkan. Periksa dokumentasi SAP ECC atau persyaratan bisnis. Contoh 2023-04-25T23:59:59Z2023-04-28T23:59:59Z2023-05-02T23:59:59Z | |||
Aktivitas proses pengembalian barang dan dana
| Aktivitas | Deskripsi | ||
|---|---|---|---|
| Keputusan penggunaan dibuat | Setelah pemeriksaan, teknisi kualitas atau pemeriksa membuat keputusan resmi tentang kondisi barang yang dikembalikan. Keputusan ini menentukan proses selanjutnya, seperti mengembalikan barang ke stok, membuangnya, atau memperbaikinya. | ||
| Mengapa ini penting Aktivitas ini penting untuk memahami efisiensi pemeriksaan dan hasilnya. Keputusan tersebut berdampak langsung pada jumlah pengembalian dana dan pengelolaan persediaan. Sumber data Jika SAP QM digunakan, peristiwa ini tercatat secara eksplisit di tabel QAVE (Inspection processing usage decision). Waktu keputusan disimpan di QAVE-VDATUM. Tautan ke pengiriman terdapat di tabel QALS. Pengumpulan data Gunakan tanggal keputusan penggunaan (VDATUM) dari tabel QAVE, yang ditautkan melalui lot pemeriksaan (QALS-PRUEFLOS). Jenis peristiwa explicit | |||
| Nota kredit dibuat | Dokumen penagihan (nota kredit) dibuat untuk mengesahkan pemberian kredit kepada pelanggan. Dokumen resmi ini menetapkan jumlah pengembalian dana. | ||
| Mengapa ini penting Ini tonggak penting dalam proses keuangan. Dengan menganalisis waktu pembuatan nota kredit, Anda dapat menemukan keterlambatan pemrosesan dokumen keuangan setelah barang diterima dan diperiksa. Sumber data Peristiwa ini tercatat secara eksplisit di tabel VBRK (Billing Document Header). Tanggal pembuatannya tercatat di VBRK-ERDAT. Nota kredit terhubung ke pesanan retur atau permintaan nota kredit dalam alur dokumen. Pengumpulan data Gunakan stempel waktu pembuatan (ERDAT) dari tabel VBRK untuk dokumen penagihan terkait. Jenis peristiwa explicit | |||
| Nota kredit dibukukan ke FI | Nota kredit diteruskan ke akuntansi keuangan dan dicatat secara resmi sebagai piutang. Langkah ini memulai proses pembayaran pengembalian dana kepada pelanggan. | ||
| Mengapa ini penting Aktivitas ini menandai saat perusahaan mengakui pengembalian dana secara finansial. Jeda antara pembuatan dan pembukuan nota kredit dapat memperlambat pengembalian dana kepada pelanggan. Sumber data Peristiwa ini disimpulkan dari perubahan status pembukuan di header dokumen penagihan (VBRK-RFBSK) menjadi 'C' (dokumen pembukuan telah dibuat). Tanggal pembuatan dokumen akuntansi tercatat di tabel BKPF. Pengumpulan data Cari stempel waktu saat VBRK-RFBSK berubah menjadi 'C', atau gunakan tanggal pembuatan (CPUDT) dari dokumen akuntansi BKPF yang terhubung. Jenis peristiwa inferred | |||
| Penerimaan barang dicatat | Aktivitas ini terjadi saat barang fisik yang dikembalikan diterima di gudang atau pusat pemrosesan. Aktivitas ini tercatat ketika dokumen pergerakan barang diposting untuk pengiriman pengembalian. | ||
| Mengapa ini penting Tonggak penting yang menandakan perusahaan telah menerima barang yang dikembalikan. Tahap ini menjadi awal pemeriksaan fisik dan memengaruhi akurasi persediaan. Sumber data Peristiwa ini dapat disimpulkan dari status pergerakan barang pada item pengiriman pengembalian di tabel VBUP (misalnya, WBSTA = 'C'). Stempel waktu yang tepat tercatat di header dokumen material (MKPF-BUDAT) untuk penerimaan barang terkait. Pengumpulan data Temukan tanggal posting (BUDAT) di tabel MKPF untuk dokumen material yang tertaut ke pengiriman pengembalian. Jenis peristiwa inferred | |||
| Pesanan pengembalian dibuat | Aktivitas ini menandai dimulainya proses pengembalian saat pelanggan meminta pengembalian produk. Aktivitas ini tercatat ketika dokumen penjualan baru dengan jenis 'Pengembalian' (misalnya RE) dibuat di SAP ECC. | ||
| Mengapa ini penting Ini adalah peristiwa awal utama dalam proses pengembalian. Dengan menganalisis waktu dari aktivitas ini ke aktivitas lainnya, Anda dapat mengukur total waktu siklus dan menemukan keterlambatan pada tahap awal pemrosesan. Sumber data Ini adalah peristiwa eksplisit yang tercatat di tabel VBAK (Sales Document Header). Stempel waktu pembuatan disimpan di VBAK-ERDAT dan VBAK-ERZET untuk nomor dokumen penjualan terkait (VBAK-VBELN) dengan jenis pesanan VBAK-AUART = 'RE'. Pengumpulan data Gunakan stempel waktu pembuatan (ERDAT, ERZET) dari tabel VBAK untuk jenis dokumen penjualan 'RE'. Jenis peristiwa explicit | |||
| Pesanan retur selesai | Aktivitas ini menandai akhir proses retur dari sisi penjualan dan distribusi. Aktivitas terjadi setelah semua item dalam pesanan retur selesai diproses dan ditutup. | ||
| Mengapa ini penting Ini peristiwa akhir utama dalam proses. Ukur waktu dari 'Pesanan retur dibuat' hingga aktivitas ini untuk mengetahui waktu siklus retur dari awal sampai akhir. Sumber data Peristiwa ini disimpulkan dari tabel status. Peristiwa tercatat saat status keseluruhan header dokumen penjualan (VBUK-GBSTK) berubah menjadi 'C' (diproses sepenuhnya). Pengumpulan data Cari stempel waktu di dokumen perubahan (CDHDR/CDPOS) saat kolom status header VBUK-GBSTK berubah menjadi 'C'. Jenis peristiwa inferred | |||
| Blokir pesanan pengembalian dihapus | Menandai persetujuan permintaan pengembalian agar proses dapat berlanjut ke tahap berikutnya. Peristiwa ini biasanya tercatat saat status dokumen berubah atau blokir pengiriman maupun penagihan dihapus. | ||
| Mengapa ini penting Aktivitas ini merupakan tonggak penting dalam proses persetujuan. Mengukur waktu yang dibutuhkan untuk mencapai tahap ini membantu menemukan hambatan dalam proses otorisasi dan persetujuan pengembalian. Sumber data Ini adalah peristiwa yang disimpulkan dari log perubahan dokumen penjualan. Periksa tabel CDHDR dan CDPOS untuk perubahan pada kolom blokir di VBAK atau VBAP, atau kolom status di VBUK/VBUP. Pengumpulan data Temukan stempel waktu di tabel dokumen perubahan (CDHDR/CDPOS) saat status blokir terkait dihapus. Jenis peristiwa inferred | |||
| Item pesanan retur ditolak | Item tertentu dalam pesanan retur ditolak, baik saat peninjauan awal maupun setelah pemeriksaan. Artinya, item tersebut tidak akan diproses lebih lanjut, termasuk untuk pengembalian dana. | ||
| Mengapa ini penting Analisis penolakan membantu menemukan permintaan retur yang tidak valid dan menjadi dasar komunikasi kebijakan kepada pelanggan. Ini jalur penting dalam proses yang tidak berujung pada pengembalian dana. Sumber data Peristiwa ini disimpulkan dari kode 'Alasan penolakan' unik yang ditetapkan untuk item di tabel VBAP (VBAP-ABGRU). Stempel waktunya harus diambil dari log perubahan. Pengumpulan data Cari stempel waktu di dokumen perubahan (CDHDR/CDPOS) saat kolom VBAP-ABGRU diisi untuk item retur. Jenis peristiwa inferred | |||
| Item pesanan retur selesai | Satu item dalam pesanan retur ditandai telah diproses sepenuhnya. Biasanya, ini terjadi setelah semua dokumen logistik dan keuangan lanjutan untuk item tersebut selesai. | ||
| Mengapa ini penting Pelacakan per item membantu menemukan produk atau alasan retur yang paling lama diproses. Cara ini juga memberi gambaran penyelesaian proses yang lebih terperinci. Sumber data Peristiwa ini disimpulkan dari tabel status. Peristiwa tercatat saat status keseluruhan item dokumen penjualan (VBUP-GBSTK) berubah menjadi 'C' (diproses sepenuhnya). Pengumpulan data Cari stempel waktu di dokumen perubahan (CDHDR/CDPOS) saat kolom status item VBUP-GBSTK berubah menjadi 'C'. Jenis peristiwa inferred | |||
| Nota kredit dilunasi | Pos nota kredit yang masih terbuka di piutang dilunasi, biasanya melalui pembayaran keluar kepada pelanggan. Peristiwa ini menandai penutupan akhir pengembalian dana dari sisi keuangan. | ||
| Mengapa ini penting Aktivitas ini mengonfirmasi pembayaran keluar dan menuntaskan proses dari sisi keuangan. Dari sudut pandang pelanggan, inilah akhir proses pengembalian dana. Sumber data Peristiwa ini tercatat secara eksplisit di modul FI. Tanggal pelunasan dokumen akuntansi untuk pos pelanggan terkait tersimpan di tabel BSEG (BSEG-AUGDT). Pengumpulan data Gunakan tanggal pelunasan (AUGDT) dari tabel BSEG atau BSAD untuk dokumen akuntansi yang terhubung ke nota kredit. Jenis peristiwa explicit | |||
| Pengiriman pengembalian dibuat | Dokumen pengiriman dibuat untuk mengelola penerimaan fisik barang yang dikembalikan. Peristiwa ini menandakan dimulainya proses logistik untuk pengembalian tersebut. | ||
| Mengapa ini penting Aktivitas ini melacak peralihan dari pemrosesan administrasi ke logistik fisik. Keterlambatan pada tahap ini dapat memengaruhi perencanaan gudang dan total waktu siklus pengembalian. Sumber data Ini adalah peristiwa eksplisit yang tercatat di tabel LIKP (Delivery Header). Stempel waktu pembuatan tercatat di LIKP-ERDAT. Tautan ke pesanan pengembalian sumber terdapat di tabel LIPS (LIPS-VGBEL). Pengumpulan data Gunakan stempel waktu pembuatan (ERDAT) dari tabel LIKP untuk pengiriman yang terkait dengan pesanan pengembalian. Jenis peristiwa explicit | |||
| Permintaan nota kredit dibuat | Permintaan nota kredit dibuat untuk mendokumentasikan kebutuhan pengembalian dana secara resmi. Dalam banyak konfigurasi, pesanan pengembalian itu sendiri berfungsi sebagai permintaan nota kredit. | ||
| Mengapa ini penting Ini menandai dimulainya tahap penyelesaian keuangan dalam proses pengembalian. Peristiwa ini memicu persetujuan keuangan dan pembuatan dokumen berikutnya. Sumber data Peristiwa ini dapat tercatat secara eksplisit di VBAK untuk dokumen penjualan berjenis 'Permintaan Nota Kredit' (misalnya CR), atau dapat menggunakan peristiwa yang sama dengan 'Pesanan Pengembalian Dibuat' jika jenis pesanan dikonfigurasi untuk penagihan terkait pesanan. Pengumpulan data Gunakan stempel waktu pembuatan (ERDAT) dari VBAK untuk jenis dokumen 'CR', atau gunakan kembali peristiwa pembuatan pesanan pengembalian. Jenis peristiwa explicit | |||
Panduan ekstraksi
Langkah
- Buat program ABAP: Gunakan kode transaksi
SE38untuk membuat program ABAP baru yang dapat dijalankan, misalnyaZ_PM_RETURN_EXTRACTION. Beri judul yang jelas, lalu simpan sebagai objek lokal atau dalam paket pengembangan. - Tentukan layar seleksi: Buat layar seleksi dalam program agar pengguna dapat memfilter data. Filter utama mencakup rentang tanggal pembuatan pesanan pengembalian (
S_ERDAT), jenis dokumen penjualan untuk pengembalian (S_AUART, misalnya 'RE'), dan kode perusahaan (P_BUKRS). - Tentukan struktur data: Buat tipe struktur lokal yang sesuai dengan format log peristiwa yang diperlukan. Struktur ini harus mencakup kolom
ReturnCaseId,ActivityName,EventTime,SourceSystem,LastDataUpdate,ProcessingAgent,ReturnReason, serta atribut lain yang diperlukan. - Terapkan logika pemilihan data: Tulis logika ABAP utama untuk memilih data bagi 12 aktivitas yang diperlukan. Proses ini mencakup kueri ke berbagai tabel SAP, seperti VBAK, VBAP, LIKP, VBRK, BKPF, CDHDR, dan CDPOS. Gunakan tabel alur dokumen (VBFA) untuk menghubungkan dokumen terkait, seperti pengiriman dan nota kredit, ke pesanan pengembalian awal.
- Ekstrak 'Return Order Created': Pilih data dari tabel
VBAKdanVBAPberdasarkan kriteria pada layar seleksi. Nomor dokumen penjualan (VBAK-VBELN) akan digunakan sebagaiReturnCaseId. - Ekstrak perubahan status dan peristiwa utama: Untuk aktivitas seperti 'Return Order Block Removed' atau 'Return Order Item Rejected', kueri tabel dokumen perubahan (
CDHDR,CDPOS) atau kolom status pada tabel sepertiVBAP(ABGRU). Untuk aktivitas lanjutan terkait logistik dan keuangan, pilih data dari tabel sepertiLIKP,MKPF,VBRK, danBKPF. GunakanVBFAuntuk memastikan data tersebut terhubung dengan pesanan pengembalian awal. - Isi tabel log peristiwa: Untuk setiap aktivitas yang diambil, buat rekaman baru dalam tabel internal yang menggunakan struktur log peristiwa. Petakan data dari tabel SAP sumber ke kolom yang sesuai, misalnya, petakan
VBAK-ERNAMkeProcessingAgent, sertaVBAK-ERDATdanVBAK-ERZETkeEventTime. - Gabungkan data aktivitas: Pastikan setiap pernyataan SELECT untuk suatu aktivitas menambahkan hasilnya ke satu tabel internal utama. Hasilnya berupa file datar, dengan satu peristiwa pada setiap baris.
- Tangani stempel waktu dan informasi sistem: Gunakan kolom sistem
SY-DATUMdanSY-UZEITuntuk mengisi stempel waktuLastDataUpdatepada setiap baris. GunakanSY-SYSIDuntuk mengisiSourceSystem. - Tambahkan fungsi keluaran: Tampilkan hasil dalam kisi ALV (SAP List Viewer) untuk analisis daring menggunakan modul fungsi seperti
REUSE_ALV_GRID_DISPLAY. Sediakan opsi untuk mengunduh tabel internal akhir sebagai CSV atau file teks datar ke komputer pengguna. - Jalankan dan ekspor: Jalankan program melalui
SE38. Masukkan kriteria seleksi yang diinginkan, lalu jalankan program. Setelah data ditampilkan atau diproses, gunakan fitur ekspor program untuk menyimpan file log peristiwa. Simpan dalam format yang kompatibel dengan ProcessMind, biasanya CSV dengan baris judul kolom.
Konfigurasi
- Rentang tanggal: Tentukan rentang tanggal pembuatan pesanan pengembalian pada layar seleksi. Untuk analisis awal, disarankan menggunakan data 3 hingga 6 bulan agar volume data tetap terkendali dan hasil analisis tetap berguna.
- Jenis dokumen pengembalian: Filter berdasarkan jenis dokumen penjualan yang digunakan untuk pengembalian di sistem Anda, misalnya 'RE' untuk pengembalian atau 'CR' untuk permintaan nota kredit. Filter ini penting untuk memilih proses yang tepat. Masukkan nilainya pada opsi seleksi
S_AUART. - Kode perusahaan: Tentukan kode perusahaan yang relevan (
P_BUKRS) untuk membatasi data ke badan hukum tertentu. Ini penting jika organisasi Anda memiliki beberapa perusahaan. - Prasyarat: Pengguna yang menjalankan program memerlukan otorisasi untuk
SE38(menjalankan program) dan akses ke tabel SD, MM, dan FI yang mendasarinya, seperti VBAK, LIKP, VBRK, BKPF, dan CDHDR. Pengembangan program memerlukan peran pengembang ABAP. - Kinerja: Program mungkin berjalan lama jika memproses kumpulan data besar dari beberapa tahun. Pertimbangkan untuk menjalankannya sebagai pekerjaan latar belakang (
SM36) dan menyimpan hasilnya di sistem file server aplikasi, bukan menampilkannya secara daring.
Contoh kueri abap
REPORT Z_PM_RETURN_EXTRACTION.
" =======================================================================
" DATA DECLARATIONS
" =======================================================================
TYPES: BEGIN OF ty_event_log,
returncaseid TYPE vbeln_va,
activityname TYPE string,
eventtime TYPE timestamp,
sourcesystem TYPE sysysid,
lastdataupdate TYPE timestamp,
processingagent TYPE ernam,
returnreason TYPE augru,
materialnumber TYPE matnr,
returnchannel TYPE string, " Placeholder, needs custom logic
requestedrefundamount TYPE netwr,
actualrefundamount TYPE netwr,
END OF ty_event_log.
DATA: lt_event_log TYPE TABLE OF ty_event_log,
ls_event_log TYPE ty_event_log.
DATA: lv_timestamp TYPE timestamp,
lv_last_update TYPE timestamp.
" =======================================================================
" SELECTION SCREEN
" =======================================================================
SELECT-OPTIONS: s_erdat FOR sy-datum OBLIGATORY,
s_auart FOR vbak-auart.
PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY.
" =======================================================================
" MAIN LOGIC
" =======================================================================
START-OF-SELECTION.
" Set static values for the extraction run
GET TIME STAMP FIELD lv_last_update.
" 1. Return Order Created & 6. Credit Memo Request Created
" Note: In many SAP standard processes, the Return Order itself acts as the Credit Memo Request.
SELECT h~vbeln, h~erdat, h~erzet, h~ernam, h~augru, i~matnr, i~netwr
INTO TABLE @DATA(lt_return_orders)
FROM vbak AS h
INNER JOIN vbap AS i ON h~vbeln = i~vbeln
WHERE h~erdat IN @s_erdat
AND h~auart IN @s_auart
AND h~bukrs_vf = @p_bukrs.
LOOP AT lt_return_orders INTO DATA(ls_return_order).
" Activity: Return Order Created
ls_event_log-returncaseid = ls_return_order-vbeln.
ls_event_log-activityname = 'Return Order Created'.
CONVERT DATE ls_return_order-erdat TIME ls_return_order-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_return_order-ernam.
ls_event_log-returnreason = ls_return_order-augru.
ls_event_log-materialnumber = ls_return_order-matnr.
ls_event_log-requestedrefundamount = ls_return_order-netwr.
APPEND ls_event_log TO lt_event_log.
" Activity: Credit Memo Request Created
ls_event_log-activityname = 'Credit Memo Request Created'.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
IF lt_return_orders IS NOT INITIAL.
" 2. Return Order Block Removed (Example for Delivery Block)
SELECT objectid, udate, utime, username
FROM cdhdr
INTO TABLE @DATA(lt_block_changes)
FOR ALL ENTRIES IN @lt_return_orders
WHERE objectclas = 'VERKBELEG'
AND objectid = @lt_return_orders-vbeln
AND tcode = 'VA02'.
IF sy-subrc = 0.
SELECT objectid, fname, value_new
INTO TABLE @DATA(lt_cdpos_block)
FROM cdpos
FOR ALL ENTRIES IN @lt_block_changes
WHERE objectclas = @lt_block_changes-objectclas
AND objectid = @lt_block_changes-objectid
AND changenr = @lt_block_changes-changenr
AND tabname = 'VBAK'
AND fname = 'LIFSK' " Delivery Block field
AND value_new = ''.
LOOP AT lt_cdpos_block INTO DATA(ls_cdpos_block).
READ TABLE lt_block_changes INTO DATA(ls_block_change) WITH KEY objectid = ls_cdpos_block-objectid.
IF sy-subrc = 0.
ls_event_log-returncaseid = ls_cdpos_block-objectid.
ls_event_log-activityname = 'Return Order Block Removed'.
CONVERT DATE ls_block_change-udate TIME ls_block_change-utime INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_block_change-username.
CLEAR: ls_event_log-returnreason, ls_event_log-materialnumber, ls_event_log-requestedrefundamount, ls_event_log-actualrefundamount.
APPEND ls_event_log TO lt_event_log.
ENDIF.
ENDLOOP.
ENDIF.
" Get subsequent documents from flow
SELECT vbelv, vbtyp_n, vbeln, rfbsk
INTO TABLE @DATA(lt_doc_flow)
FROM vbfa
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbelv = @lt_return_orders-vbeln
AND vbtyp_n IN ('J', 'R', 'M'). " J=Delivery, R=Goods Mvmt, M=Invoice
" 3. Return Delivery Created
SELECT vbeln, erdat, erzet, ernam FROM likp
INTO TABLE @DATA(lt_deliveries)
FOR ALL ENTRIES IN @lt_doc_flow
WHERE vbeln = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'J'.
LOOP AT lt_deliveries INTO DATA(ls_delivery).
READ TABLE lt_doc_flow INTO DATA(ls_doc_flow_del) WITH KEY vbeln = ls_delivery-vbeln.
ls_event_log-returncaseid = ls_doc_flow_del-vbelv.
ls_event_log-activityname = 'Return Delivery Created'.
CONVERT DATE ls_delivery-erdat TIME ls_delivery-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_delivery-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 4. Goods Receipt Posted
SELECT mblnr, mjahr, budat, cputm, usnam FROM mkpf
INTO TABLE @DATA(lt_goods_receipt)
FOR ALL ENTRIES IN @lt_doc_flow
WHERE xblnr = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'R'.
LOOP AT lt_goods_receipt INTO DATA(ls_goods_receipt).
READ TABLE lt_doc_flow INTO DATA(ls_doc_flow_gr) WITH KEY vbeln = ls_goods_receipt-mblnr.
ls_event_log-returncaseid = ls_doc_flow_gr-vbelv.
ls_event_log-activityname = 'Goods Receipt Posted'.
CONVERT DATE ls_goods_receipt-budat TIME ls_goods_receipt-cputm INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_goods_receipt-usnam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 5. Usage Decision Made (Requires QM Module implementation)
SELECT q~prueflos, q~vdatu, q~vzeit, q~vname
FROM qals AS q
INNER JOIN qave AS v ON q~prueflos = v~prueflos
INTO TABLE @DATA(lt_usage_decisions)
FOR ALL ENTRIES IN @lt_deliveries
WHERE q~kdauf = @lt_deliveries-vbeln.
LOOP AT lt_usage_decisions INTO DATA(ls_ud).
SELECT SINGLE vbelv FROM vbfa INTO @DATA(lv_vbelv_ud) WHERE vbeln = @ls_ud-prueflos.
ls_event_log-returncaseid = lv_vbelv_ud.
ls_event_log-activityname = 'Usage Decision Made'.
CONVERT DATE ls_ud-vdatu TIME ls_ud-vzeit INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_ud-vname.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 7. Credit Memo Created
SELECT h~vbeln, h~erdat, h~erzet, h~ernam, i~netwr, i~vgbel
INTO TABLE @DATA(lt_cred_memos)
FROM vbrk AS h
INNER JOIN vbrp AS i ON h~vbeln = i~vbeln
FOR ALL ENTRIES IN @lt_doc_flow
WHERE h~vbeln = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'M'.
LOOP AT lt_cred_memos INTO DATA(ls_cred_memo).
ls_event_log-returncaseid = ls_cred_memo-vgbel.
ls_event_log-activityname = 'Credit Memo Created'.
CONVERT DATE ls_cred_memo-erdat TIME ls_cred_memo-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_cred_memo-ernam.
ls_event_log-actualrefundamount = ls_cred_memo-netwr.
APPEND ls_event_log TO lt_event_log.
" 8. Credit Memo Posted To FI
SELECT SINGLE budat, cputime, usnam FROM bkpf
INTO @DATA(ls_bkpf_post)
WHERE awkey = @ls_cred_memo-vbeln AND awtyp = 'VBRK'.
IF sy-subrc = 0.
ls_event_log-activityname = 'Credit Memo Posted To FI'.
CONVERT DATE ls_bkpf_post-budat TIME ls_bkpf_post-cputime INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-processingagent = ls_bkpf_post-usnam.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 12. Credit Memo Cleared
SELECT SINGLE augdt FROM bseg
INTO @DATA(lv_augdt)
WHERE bukrs = @p_bukrs
AND belnr = @ls_cred_memo-vbeln
AND augdt IS NOT NULL.
IF sy-subrc = 0 AND lv_augdt IS NOT INITIAL.
ls_event_log-activityname = 'Credit Memo Cleared'.
CONVERT DATE lv_augdt INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
CLEAR: ls_event_log-processingagent.
APPEND ls_event_log TO lt_event_log.
ENDIF.
ENDLOOP.
" 9. Return Order Item Completed
SELECT vbeln, erdat, erzet, ernam, abgru FROM vbap
INTO TABLE @DATA(lt_items_completed)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND gbsta = 'C'.
LOOP AT lt_items_completed INTO DATA(ls_item_completed).
ls_event_log-returncaseid = ls_item_completed-vbeln.
ls_event_log-activityname = 'Return Order Item Completed'.
CONVERT DATE ls_item_completed-erdat TIME ls_item_completed-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_item_completed-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 10. Return Order Completed
SELECT vbeln, erdat, erzet, ernam FROM vbak
INTO TABLE @DATA(lt_orders_completed)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND gbsta = 'C'.
LOOP AT lt_orders_completed INTO DATA(ls_order_completed).
ls_event_log-returncaseid = ls_order_completed-vbeln.
ls_event_log-activityname = 'Return Order Completed'.
CONVERT DATE ls_order_completed-erdat TIME ls_order_completed-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_order_completed-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 11. Return Order Item Rejected
SELECT vbeln, erdat, erzet, ernam FROM vbap
INTO TABLE @DATA(lt_items_rejected)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND abgru IS NOT NULL AND abgru <> ''.
LOOP AT lt_items_rejected INTO DATA(ls_item_rejected).
ls_event_log-returncaseid = ls_item_rejected-vbeln.
ls_event_log-activityname = 'Return Order Item Rejected'.
CONVERT DATE ls_item_rejected-erdat TIME ls_item_rejected-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_item_rejected-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
ENDIF.
" =======================================================================
" OUTPUT
" =======================================================================
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = lt_event_log ).
lo_alv->display( ). Langkah
- Prasyarat: Pastikan Anda memiliki pengguna database dengan akses baca ke tabel SAP ECC yang diperlukan. Tabel ini mencakup modul Sales and Distribution (SD), Materials Management (MM), dan Financial Accounting (FI). Anda memerlukan alat klien SQL yang sesuai, seperti DBeaver, SAP HANA Studio, atau Oracle SQL Developer, untuk terhubung ke database.
- Kenali konfigurasi sistem: Sebelum menjalankan kueri, tentukan jenis dokumen yang digunakan organisasi Anda untuk pengembalian. Kueri menggunakan penanda
[YOUR_RETURN_ORDER_TYPES]. Ganti dengan nilai sebenarnya, misalnya 'RE' untuk pengembalian standar. - Siapkan kueri: Salin seluruh kueri SQL dari bagian 'query' ke klien SQL Anda.
- Atur parameter: Temukan Common Table Expression (CTE) bernama
BaseReturnOrdersdi awal kueri. Ubah klausaWHEREuntuk menentukan rentang tanggal dengan mengganti[START_DATE]dan[END_DATE]. Perbarui daftar jenis pesanan pengembalian dan, jika perlu, filter berdasarkan kode perusahaan tertentu (BUKRS_VF). - Jalankan kueri: Jalankan kueri yang telah diubah pada database SAP ECC. Waktu eksekusi bergantung pada rentang tanggal yang dipilih dan ukuran database.
- Periksa data mentah: Setelah kueri selesai, periksa hasilnya. Pastikan kolom
ReturnCaseId,ActivityName, danEventTimeterisi serta data tersedia untuk beberapa aktivitas. - Ekspor ke CSV: Ekspor seluruh hasil dari klien SQL ke file CSV. Gunakan encoding UTF-8 agar semua karakter tersimpan dengan benar.
- Siapkan data untuk diunggah: Buka file CSV dan pastikan judul kolom sama persis dengan atribut yang diperlukan, seperti
ReturnCaseId,ActivityName,EventTime,SourceSystem, dan seterusnya. Perbaiki judul kolom jika klien SQL mengubahnya saat ekspor. - Unggah file: Unggah file CSV yang sudah diperiksa ke platform ProcessMind untuk dianalisis.
Konfigurasi
- Jenis dokumen pengembalian: Kueri harus menggunakan jenis dokumen penjualan yang mewakili pesanan pengembalian di sistem SAP Anda. Ganti penanda
[YOUR_RETURN_ORDER_TYPES]dengan jenis yang sesuai. Contoh umum: 'RE' atau jenis khusus yang diawali 'Z'. - Rentang tanggal: Tentukan rentang tanggal ekstraksi yang sesuai. Untuk analisis awal, biasanya disarankan menggunakan data 3 hingga 6 bulan. Isi penanda
[START_DATE]dan[END_DATE]dengan format 'YYYYMMDD'. - Kode perusahaan: Jika organisasi Anda memiliki beberapa kode perusahaan, filter data agar analisis lebih terarah. Tambahkan filter seperti
VBAK.BUKRS_VF = '[YOUR_COMPANY_CODE]'pada CTE awal untuk membatasi cakupan. - Dialek database: Kueri yang disediakan menggunakan fungsi SQL umum. Namun, konversi tanggal dan waktu seperti
TO_TIMESTAMPserta penggabungan string (CONCAT) mungkin perlu sedikit penyesuaian sintaks, bergantung pada sistem database yang digunakan, misalnya Oracle, HANA, atau DB2. - Otorisasi yang diperlukan: Pengguna database memerlukan akses baca ke tabel utama berikut: VBAK, VBAP, VBFA, LIKP, LIPS, VBRK, VBRP, MKPF, MSEG, BKPF, BSAD, QALS, QAVE, CDHDR, dan CDPOS.
Contoh kueri sql
WITH BaseReturnOrders AS (
SELECT
VBAK.VBELN AS ReturnOrderNumber,
VBAP.POSNR AS ReturnOrderItemNumber
FROM VBAK
JOIN VBAP ON VBAK.VBELN = VBAP.VBELN
WHERE VBAK.AUART IN ('[YOUR_RETURN_ORDER_TYPES]') -- e.g., 'RE'
AND VBAK.ERDAT BETWEEN '[START_DATE]' AND '[END_DATE]' -- e.g., '20230101' and '20231231'
)
-- 1. Return Order Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(VBAK.ERDAT, VBAK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
VBAK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
UNION ALL
-- 2. Return Order Block Removed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Block Removed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON B.ReturnOrderNumber = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBAK'
AND CDPOS.FNAME IN ('LIFSK', 'FAKSK')
AND CDPOS.VALUE_NEW = ''
AND CDPOS.VALUE_OLD <> ''
UNION ALL
-- 3. Return Delivery Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Delivery Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(LIKP.ERDAT, LIKP.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
LIKP.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN LIKP ON VBFA.VBELN = LIKP.VBELN
UNION ALL
-- 4. Goods Receipt Posted
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Goods Receipt Posted' AS "ActivityName",
TO_TIMESTAMP(CONCAT(MKPF.CPUDT, MKPF.CPUTM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
MKPF.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN LIPS ON VBFA.VBELN = LIPS.VBELN AND VBFA.POSNN = LIPS.POSNR
JOIN MSEG ON LIPS.VBELN = MSEG.LFBNR AND LIPS.POSNR = MSEG.LFPOS
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART IN ('651', '653', '655') -- Standard returns movement types
UNION ALL
-- 5. Usage Decision Made
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Usage Decision Made' AS "ActivityName",
TO_TIMESTAMP(CONCAT(QAVE.ADAT, QAVE.ATIM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
QAVE.AENAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN QALS ON VBFA.VBELN = QALS.VBELN AND VBFA.POSNN = QALS.POSNR -- Linking inspection lot to delivery item
JOIN QAVE ON QALS.PRUEFLOS = QAVE.PRUEFLOS
UNION ALL
-- 6. Credit Memo Request Created (assumes a separate doc, or can be the return order itself)
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Request Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CMR_VBAK.ERDAT, CMR_VBAK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CMR_VBAK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'K' -- 'K' is Credit Memo Request
JOIN VBAK AS CMR_VBAK ON VBFA.VBELN = CMR_VBAK.VBELN
UNION ALL
-- 7. Credit Memo Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(VBRK.ERDAT, VBRK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
VBRK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
WHERE VBRK.FKART IN ('[YOUR_CREDIT_MEMO_TYPES]') -- e.g., 'G2'
UNION ALL
-- 8. Credit Memo Posted To FI
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Posted To FI' AS "ActivityName",
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
BKPF.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
JOIN BKPF ON VBRK.VBELN = BKPF.AWKEY AND BKPF.AWTYP = 'VBRK'
UNION ALL
-- 9. Return Order Item Completed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Item Completed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON CONCAT(B.ReturnOrderNumber, LPAD(B.ReturnOrderItemNumber, 6, '0')) = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBUP'
AND CDPOS.FNAME = 'GBSTA'
AND CDPOS.VALUE_NEW = 'C'
UNION ALL
-- 10. Return Order Completed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Completed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON B.ReturnOrderNumber = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBUK'
AND CDPOS.FNAME = 'GBSTK'
AND CDPOS.VALUE_NEW = 'C'
UNION ALL
-- 11. Return Order Item Rejected
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Item Rejected' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
CDPOS.VALUE_NEW AS "ReturnReason", -- Using rejection reason for this specific event
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON CONCAT(B.ReturnOrderNumber, LPAD(B.ReturnOrderItemNumber, 6, '0')) = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBAP'
AND CDPOS.FNAME = 'ABGRU'
AND CDPOS.VALUE_NEW <> ''
UNION ALL
-- 12. Credit Memo Cleared
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Cleared' AS "ActivityName",
TO_TIMESTAMP(BSAD.AUGDT, 'YYYYMMDD') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CLEAR_DOC.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
JOIN BSAD ON VBRK.VBELN = BSAD.VBELN
JOIN BKPF AS CLEAR_DOC ON BSAD.AUGBL = CLEAR_DOC.BELNR AND BSAD.BUKRS = CLEAR_DOC.BUKRS AND BSAD.GJAHR_AUGL = CLEAR_DOC.GJAHR; Siap memulai?
Gunakan templat ini sekarang untuk mempermudah pengumpulan data dan mendapatkan wawasan yang berguna tentang proses pengembalian barang dan dana.
Optimalkan proses pengembalian barang dan dana sekarang
Sederhanakan proses pengembalian di SAP ECC dan pangkas waktu siklus hingga 30%. Mulai sekarang.
Tidak perlu kartu kredit. Penyiapan hanya beberapa menit.