Templat Data Record to Report, Penutupan Periode & Rekonsiliasi
Templat Data Record to Report, Penutupan Periode & Rekonsiliasi
- Atribut yang disarankan untuk dikumpulkan
- Aktivitas utama yang perlu dilacak untuk analisis proses
- Panduan ekstraksi data langkah demi langkah
Atribut Record to Report, Penutupan Periode & Rekonsiliasi
| Nama | Deskripsi | ||
|---|---|---|---|
| Periode keuangan FinancialPeriod | Pengenal unik untuk siklus pelaporan keuangan, seperti '2023-12' untuk Desember 2023. Nilai ini menjadi kasus untuk proses penutupan akhir periode. | ||
| Deskripsi Periode Keuangan adalah pengenal kasus utama yang mengelompokkan semua aktivitas terkait penutupan pembukuan untuk rentang waktu tertentu, biasanya satu bulan kalender atau periode fiskal. Setiap periode keuangan mewakili satu siklus penuh proses penutupan akhir periode. Dalam analisis process mining, atribut ini membantu melacak seluruh siklus Period Close, dari awal hingga pelaporan akhir. Anda dapat membandingkan waktu siklus antarperiode, menemukan alur proses yang umum, dan menganalisis perbedaan antara prosedur penutupan bulanan, triwulanan, dan tahunan. Dengan menjadikan setiap periode sebagai kasus, analis dapat mengukur kinerja dari waktu ke waktu dan menemukan hambatan sistemik. Mengapa ini penting Ini adalah pengenal kasus penting yang menjadi dasar analisis. Dengan atribut ini, Anda dapat membandingkan kinerja Period Close dari waktu ke waktu serta menemukan tren atau masalah yang berulang. Sumber data Diperoleh dengan menggabungkan kolom Tahun Fiskal (GJAHR) dan Periode Pembukuan (MONAT) dari header dokumen keuangan, biasanya dari tabel seperti BKPF. Contoh 2023-122024-032024-Q1 | |||
| Aktivitas ActivityName | Nama langkah bisnis atau tugas tertentu dalam proses Period Close, seperti 'Jurnal penyesuaian dibukukan' atau 'Periode ditutup untuk pembukuan'. | ||
| Deskripsi Atribut ini mewakili satu peristiwa atau tugas dalam proses Period Close dan rekonsiliasi dari awal hingga akhir. Aktivitas membentuk peta proses dan menunjukkan urutan pekerjaan. Aktivitas biasanya diperoleh dari kombinasi kode transaksi, jenis dokumen, atau perubahan status di SAP S/4HANA. Menganalisis aktivitas merupakan dasar process mining. Analisis ini membantu memvisualisasikan alur proses, menemukan penyimpangan dari prosedur standar, mengidentifikasi hambatan saat aktivitas memakan waktu terlalu lama, serta memahami frekuensi dan urutan tugas. Informasi ini penting untuk dasbor seperti Period Close Variant Analysis dan Current Period Close Status. Mengapa ini penting Menentukan langkah-langkah dalam proses dan menjadi dasar peta proses. Atribut ini memungkinkan analisis alur proses, penyimpangan, dan hambatan. Sumber data Diperoleh dari berbagai sumber, seperti Kode Transaksi (TCODE), Jenis Dokumen (BLART), atau kolom status di tabel terkait tugas penutupan keuangan (misalnya, dari SAP Financial Closing Cockpit). Contoh Periode dibuka untuk pembukuanRekonsiliasi akun dimulaiLaporan keuangan dibuatRekonsiliasi antarperusahaan dimulai | |||
| Waktu mulai EventTime | Stempel waktu yang menunjukkan kapan aktivitas tertentu dimulai atau dicatat di sistem. | ||
| Deskripsi Waktu Peristiwa mencatat tanggal dan waktu persis terjadinya suatu aktivitas. Untuk pembukuan keuangan, waktu ini biasanya berupa waktu pembuatan (CPUTM) atau tanggal pembukuan (BUDAT) dokumen. Untuk perubahan status atau tugas, waktu ini adalah stempel waktu saat perubahan dicatat. Atribut ini penting untuk mengurutkan aktivitas secara kronologis dan menjadi dasar semua analisis berbasis waktu. Atribut ini digunakan untuk menghitung waktu siklus antaraktivitas, durasi tugas tertentu, dan durasi proses dari awal hingga akhir. Atribut ini mendukung KPI seperti Average Period Close Cycle Time dan Avg Reconciliation Approval Time. Mengapa ini penting Stempel waktu wajib ini memungkinkan peristiwa diurutkan secara kronologis dan menjadi dasar semua perhitungan durasi serta kinerja. Sumber data Bersumber dari kolom stempel waktu seperti Tanggal Pembuatan (CPUDT) dan Waktu Pembuatan (CPUTM) di tabel seperti BKPF, atau dari kolom tanggal perubahan di berbagai tabel status (misalnya, CDHDR dan CDPOS). Contoh 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Kode perusahaan CompanyCode | Pengenal unik untuk entitas hukum atau perusahaan dalam organisasi SAP. | ||
| Deskripsi Company Code menunjukkan unit akuntansi mandiri dalam perusahaan, yang memiliki rangkaian akun lengkap dan terpisah. Semua aktivitas penutupan akhir periode dilakukan pada tingkat Company Code. Dimensi organisasi ini penting untuk analisis keuangan. Dalam process mining, dimensi ini membantu membandingkan proses penutupan periode di berbagai badan hukum. Dasbor 'Period Close Variant Analysis' menggunakan Company Code untuk menemukan ketidakkonsistenan dan mendorong standardisasi prosedur penutupan. Mengapa ini penting Memberikan konteks organisasi yang penting untuk membandingkan proses di berbagai badan hukum, menemukan variasi, dan mengidentifikasi praktik terbaik. Sumber data Tersedia di hampir semua tabel keuangan SAP, terutama tabel header BKPF (field BUKRS). Contoh 10001710US01DE01 | |||
| Nomor akun GL GlAccountNumber | Pengenal untuk akun tertentu di General Ledger. | ||
| Deskripsi Nomor akun General Ledger (GL) mengidentifikasi akun yang digunakan untuk mencatat transaksi keuangan, seperti kas, utang usaha, atau pendapatan. Banyak aktivitas penutupan akhir periode, seperti rekonsiliasi dan jurnal penyesuaian, berkaitan langsung dengan akun GL tertentu. Atribut ini penting untuk analisis proses keuangan secara terperinci. Dasbor 'Adjusting Journal Entry Analysis' menggunakannya untuk menampilkan jumlah penyesuaian per akun dan membantu menemukan area bermasalah. KPI 'Avg GL Account Reconciliation Time' juga mengandalkan atribut ini untuk menunjukkan keterlambatan yang terkait dengan akun tertentu. Mengapa ini penting Menghubungkan aktivitas proses dengan akun keuangan tertentu. Dengan begitu, Anda dapat menganalisis rekonsiliasi dan jurnal secara terperinci untuk menemukan akar masalah. Sumber data Tersedia di tabel item baris dokumen keuangan, terutama BSEG (field HKONT) atau tabel universal journal S/4HANA, ACDOCA. Contoh 113100004000000073000000 | |||
| Nomor dokumen DocumentNumber | Pengenal unik untuk dokumen keuangan, seperti jurnal. | ||
| Deskripsi SAP memberikan Nomor Dokumen unik untuk setiap posting keuangan. Nomor ini menjadi referensi utama untuk melacak dan mengaudit transaksi individual yang membentuk aktivitas dalam proses penutupan. Nomor Dokumen bukan case ID, tetapi menghubungkan analisis kembali ke sistem sumber. Analis dapat menggunakannya untuk menelusuri dari tampilan process mining ke detail transaksi tertentu di SAP S/4HANA dan mencari akar masalah. Nomor ini sangat berguna saat menyelidiki jurnal penyesuaian atau posting rekonsiliasi tertentu. Mengapa ini penting Memberikan referensi langsung ke transaksi terkait di SAP, sehingga Anda dapat menelusuri detail dan melakukan audit dari model proses. Sumber data Tersedia di tabel header dokumen keuangan BKPF (field BELNR) dan tabel item baris seperti BSEG atau ACDOCA. Contoh 100000045190000001300000023 | |||
| Pengguna yang bertanggung jawab ResponsibleUser | ID pengguna yang menjalankan aktivitas atau bertanggung jawab atas tugas. | ||
| Deskripsi Atribut ini mengidentifikasi karyawan yang menjalankan tugas tertentu, seperti membukukan jurnal atau menyetujui rekonsiliasi. Biasanya, ID pengguna tercatat di log sistem dan header dokumen. Menganalisis proses berdasarkan pengguna penting untuk memahami pembagian beban kerja, kinerja individu, dan kebutuhan pelatihan. Dasbor Resource Allocation Efficiency menggunakan atribut ini untuk memvisualisasikan waktu pemrosesan aktivitas per pengguna. Atribut ini juga dapat membantu menemukan tugas yang berpotensi diotomatisasi dengan menunjukkan tugas berulang yang dilakukan banyak pengguna. Mengapa ini penting Menghubungkan aktivitas proses dengan orang yang menjalankannya, sehingga Anda dapat menganalisis beban kerja, mengoptimalkan sumber daya, dan mengelola kinerja. Sumber data Umumnya ditemukan di tabel header dokumen seperti BKPF (kolom USNAM, Nama Pengguna) atau tabel dokumen perubahan seperti CDHDR (kolom USERNAME). Contoh ABROWNCSMITHDJOHNSON | |||
| Status rekonsiliasi ReconciliationStatus | Status aktivitas rekonsiliasi akun, seperti 'Belum dimulai', 'Sedang berlangsung', atau 'Disetujui'. | ||
| Deskripsi Atribut ini mencatat status proses rekonsiliasi untuk akun atau tugas tertentu. Status menunjukkan apakah rekonsiliasi sudah dimulai, diajukan untuk ditinjau, disetujui, atau ditolak. Perubahan status menjadi peristiwa penting dalam proses. Atribut ini menjadi dasar dasbor 'Reconciliation Rework Analysis'. Dengan menganalisis urutan status, Anda dapat menemukan kasus saat status 'Disetujui' diikuti penyesuaian tambahan, yang menandakan pengerjaan ulang. Atribut ini juga mendukung KPI 'First-Pass Reconciliation Rate' dengan menunjukkan rekonsiliasi yang disetujui tanpa penolakan atau pembukaan kembali sebelumnya. Mengapa ini penting Mencatat kemajuan dan hasil tugas rekonsiliasi. Anda dapat menemukan pengerjaan ulang, mengukur tingkat persetujuan, dan menganalisis hambatan. Sumber data Informasi ini biasanya tersimpan di tabel yang terkait dengan alat rekonsiliasi yang digunakan, seperti SAP Financial Closing cockpit atau SAP Account Substantiation and Automation by BlackLine. Contoh Belum dimulaiSedang disiapkanDisetujuiDitolak | |||
| Tanggal target penyelesaian TargetCompletionDate | Tanggal rencana atau tenggat untuk menyelesaikan aktivitas penting, seperti menyusun laporan keuangan. | ||
| Deskripsi Tanggal target penyelesaian adalah tenggat internal atau eksternal untuk pencapaian tertentu dalam proses penutupan periode. Tanggal ini menunjukkan kapan tugas diharapkan selesai. Atribut ini penting untuk mengukur kepatuhan terhadap jadwal dan kinerja terhadap tenggat. Dasbor 'Reporting Deadline Adherence' dan KPI 'Financial Statement On-Time Rate' menggunakan tanggal ini sebagai dasar, lalu membandingkannya dengan Mengapa ini penting Membantu menganalisis kinerja terhadap tenggat, mengukur tingkat penyelesaian tepat waktu, dan meningkatkannya untuk aktivitas penutupan yang penting. Sumber data Data ini sering tersimpan di sistem manajemen tugas atau penjadwalan, seperti SAP Financial Closing cockpit, yang mencatat daftar tugas penutupan beserta tanggal akhir rencana. Contoh 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Waktu selesai EndTime | Stempel waktu yang menunjukkan kapan suatu aktivitas selesai. | ||
| Deskripsi Waktu Selesai menandai penyelesaian tugas. Untuk peristiwa yang dicatat secara instan di sistem, waktunya mungkin sama dengan Waktu Mulai. Untuk aktivitas yang durasinya dapat diukur, waktu ini menunjukkan saat aktivitas berakhir. Jika digabungkan dengan Waktu Mulai, atribut ini penting untuk menghitung Mengapa ini penting Memungkinkan penghitungan durasi aktivitas (Waktu Pemrosesan), yang penting untuk menemukan hambatan kinerja dan menganalisis efisiensi. Sumber data Seperti Waktu Mulai, atribut ini dapat bersumber dari berbagai kolom stempel waktu. Untuk beberapa aktivitas, nilainya mungkin sama dengan Waktu Mulai. Untuk aktivitas lain, nilainya dapat berasal dari kolom tanggal 'selesai pada' atau 'diubah pada' yang terpisah di tabel aplikasi atau log perubahan (CDHDR, CDPOS). Contoh 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Apakah otomatis IsAutomated | Penanda boolean yang menunjukkan apakah aktivitas dilakukan oleh pengguna sistem atau proses otomatis. | ||
| Deskripsi Penanda ini membedakan tugas yang dilakukan secara manual oleh pengguna dengan tugas yang dijalankan otomatis oleh sistem, seperti pekerjaan batch terjadwal untuk valuasi mata uang atau proses kliring otomatis. Nilainya biasanya ditentukan dari ID Atribut ini penting untuk memahami tingkat otomatisasi dalam proses penutupan. Atribut ini membantu menemukan peluang otomatisasi lebih lanjut dengan menyoroti tugas manual berjumlah besar. Atribut ini juga digunakan dalam analisis akar masalah untuk mengetahui apakah hambatan terjadi pada langkah manual atau otomatis. Mengapa ini penting Membedakan aktivitas manusia dan sistem. Informasi ini penting untuk menemukan peluang otomatisasi dan menganalisis efisiensi keduanya. Sumber data Atribut turunan ini biasanya ditentukan berdasarkan aturan pada field 'ResponsibleUser', misalnya dengan memeriksa ID pengguna sistem atau batch seperti 'BATCHUSER', atau berdasarkan Transaction Code. Contoh truefalse | |||
| Apakah tepat waktu IsOnTime | Penanda boolean bernilai benar jika pencapaian selesai pada atau sebelum tanggal target. | ||
| Deskripsi Atribut ini menunjukkan secara sederhana apakah jadwal dipatuhi. Nilainya dihitung dengan membandingkan Perhitungan ini menjadi dasar KPI 'Financial Statement On-Time Rate'. Perbandingan tanggal diubah menjadi status yang jelas, yaitu 'tepat waktu' atau 'terlambat', sehingga mudah ditampilkan di dasbor dan laporan. Atribut ini membantu mengukur efektivitas inisiatif untuk mempercepat penutupan. Mengapa ini penting Menyederhanakan analisis kepatuhan terhadap tenggat menjadi hasil yang jelas, berhasil atau terlambat, sehingga kinerja ketepatan waktu mudah dipantau dan dilaporkan. Sumber data Field hasil perhitungan: Contoh truefalse | |||
| Apakah terjadi pengerjaan ulang rekonsiliasi IsReconciliationRework | Penanda boolean bernilai benar jika aktivitas rekonsiliasi diikuti penolakan atau penyesuaian tambahan. | ||
| Deskripsi Atribut hasil perhitungan ini mengidentifikasi pengerjaan ulang dalam subproses rekonsiliasi. Logika ini menandai aktivitas atau kasus saat rekonsiliasi ditolak, dibuka kembali setelah diajukan, atau diikuti posting jurnal penyesuaian setelah rekonsiliasi akun GL dinyatakan selesai. Penanda ini dirancang khusus untuk mendukung dasbor 'Reconciliation Rework Analysis' dan KPI 'Reconciliation Rework Rate'. Penanda ini menyederhanakan urutan proses yang rumit menjadi atribut terukur untuk menghitung tingkat pengerjaan ulang, sehingga tim dapat berfokus pada peningkatan kualitas sejak pengerjaan pertama. Mengapa ini penting Mengukur pengerjaan ulang secara langsung, salah satu bentuk utama ketidakefisienan proses. Dengan begitu, Anda dapat menganalisis dan meningkatkan kualitas rekonsiliasi secara terarah. Sumber data Dihitung berdasarkan urutan aktivitas. Misalnya, penanda bernilai benar jika urutan 'Reconciliation Approved' diikuti 'Adjusting Journal Entry Posted' untuk akun GL yang sama dalam periode yang sama. Contoh truefalse | |||
| Durasi siklus penutupan periode PeriodCloseCycleTime | Total waktu yang dibutuhkan untuk menutup suatu periode keuangan, dari aktivitas pertama hingga terakhir. | ||
| Deskripsi Metrik ini menunjukkan durasi proses penutupan periode dari awal hingga akhir untuk satu kasus (Financial Period). Nilainya dihitung dari selisih waktu aktivitas terakhir dan aktivitas pertama dalam periode tersebut. Metrik ini menjadi KPI utama yang mendukung dasbor 'Period Close Cycle Time Overview' dan KPI 'Average Period Close Cycle Time'. Metrik ini memberikan gambaran umum tentang efisiensi dan kecepatan proses penutupan, sehingga Anda dapat membandingkan kinerja dari waktu ke waktu dan antar-Company Code. Mengapa ini penting Menjadi KPI utama untuk mengukur durasi keseluruhan proses dan memantau peningkatan efisiensi dari waktu ke waktu. Sumber data Dihitung pada tingkat kasus: Contoh P5D10H30MP7D2HP6D | |||
| Jenis jurnal JournalEntryType | Jenis dokumen keuangan yang diposting, untuk membedakan jurnal standar, akrual, dan penyesuaian. | ||
| Deskripsi Jenis Jurnal, atau Document Type dalam istilah SAP, adalah kode untuk mengelompokkan dokumen akuntansi. Kode ini menentukan jenis akun yang dapat digunakan untuk posting dan membedakan transaksi bisnis, seperti faktur pemasok (KR), posting general ledger (SA), atau pembayaran pelanggan (DZ). Dalam proses penutupan periode, atribut ini penting untuk memisahkan jenis aktivitas tertentu. Misalnya, analis dapat berfokus pada jurnal penyesuaian untuk mendukung dasbor 'Adjusting Journal Entry Analysis' dan KPI 'Adjusting Journal Entries Count'. Atribut ini juga membantu menghitung 'Manual Postings Ratio'. Mengapa ini penting Mengelompokkan transaksi keuangan agar analisis dapat berfokus pada jenis posting tertentu, seperti penyesuaian manual yang penting untuk kelancaran penutupan periode. Sumber data Field standar di tabel header dokumen keuangan BKPF (field BLART). Contoh SAKRAB | |||
| Kode transaksi TransactionCode | Kode transaksi SAP (T-code) yang digunakan untuk menjalankan aktivitas. | ||
| Deskripsi Kode transaksi adalah pintasan untuk menjalankan fungsi atau program tertentu di SAP. Contohnya, FB01 digunakan untuk memposting dokumen, sedangkan FAGLB03 digunakan untuk menampilkan saldo akun GL. T-code sering menjadi petunjuk teknis yang jelas tentang aktivitas yang dilakukan. Atribut ini membantu menentukan aktivitas dalam model proses. Atribut ini juga menjadi cara yang andal untuk membedakan aktivitas otomatis dan manual serta memahami cara tugas dijalankan di sistem. Analisis T-code dapat mengungkap metode kerja yang tidak standar atau kurang efisien. Mengapa ini penting Memberikan gambaran teknis di tingkat sistem tentang cara suatu aktivitas dilakukan. Informasi ini berguna untuk mengenali langkah manual dan otomatis serta prosedur yang tidak standar. Sumber data Tersedia di tabel header dokumen keuangan BKPF (field TCODE) atau log perubahan dokumen. Contoh FB01FAGL_FCVF.13 | |||
| Mata uang dokumen DocumentCurrency | Kode mata uang untuk nilai dalam dokumen keuangan. | ||
| Deskripsi Atribut ini menunjukkan mata uang yang digunakan untuk mencatat transaksi, seperti USD, EUR, atau JPY. Informasi ini memberi konteks penting untuk atribut Di organisasi multinasional, analisis berdasarkan mata uang dapat menjadi penting. Informasi ini memastikan nilai uang ditafsirkan dengan benar dan diperlukan untuk mengonversi nilai ke satu mata uang pelaporan dalam analisis gabungan. Tanpa konteks ini, nilai Mengapa ini penting Memberikan konteks yang diperlukan untuk menafsirkan nilai uang dengan benar, terutama saat menggunakan beberapa mata uang. Sumber data Tersedia di tabel header dokumen keuangan BKPF (field WAERS). Contoh USDEURJPY | |||
| Nilai dokumen DocumentAmount | Total nilai posting keuangan dalam mata uang dokumen. | ||
| Deskripsi Atribut ini menunjukkan nilai uang yang terkait dengan dokumen keuangan. Untuk penyesuaian akhir periode, nilainya dapat berupa jumlah akrual atau koreksi yang diposting. Analisis nilai berguna untuk menilai materialitas. Analis dapat memprioritaskan pemeriksaan jurnal penyesuaian bernilai tinggi yang mungkin menimbulkan risiko keuangan lebih besar. Anda juga dapat memfilter peta proses berdasarkan ambang nilai tertentu agar hanya aktivitas yang paling signifikan yang ditampilkan. Mengapa ini penting Menambahkan dimensi keuangan ke dalam analisis, sehingga Anda dapat memprioritaskan masalah berdasarkan dampak nilai uang dan materialitasnya. Sumber data Nilai ini biasanya perlu dihitung dari tabel item baris seperti BSEG atau ACDOCA (field WRBTR, nilai dalam mata uang dokumen). Contoh 15000.00250.75-500.00 | |||
| Pembaruan data terakhir LastDataUpdate | Stempel waktu yang menunjukkan kapan data terakhir diperbarui atau diekstrak dari sistem sumber. | ||
| Deskripsi Atribut ini mencatat tanggal dan waktu ekstraksi data terbaru. Informasi ini menunjukkan seberapa baru data yang dianalisis di alat process mining. Tujuan utamanya adalah mendukung tata kelola data dan memberi informasi kepada pengguna. Pengguna dasbor dapat melihat seberapa mutakhir analisisnya. Hal ini penting terutama untuk dasbor pemantauan yang mendekati waktu nyata, seperti 'Current Period Close Status'. Informasi ini membantu pengguna mengetahui apakah data yang dilihat berasal dari hari ini, kemarin, atau minggu lalu. Mengapa ini penting Memberi tahu pengguna seberapa baru data yang digunakan, sehingga mereka memahami kemutakhiran insight proses. Sumber data Metadata ini dibuat dan ditambahkan ke set data oleh alat ekstraksi data atau ETL saat proses dijalankan. Contoh 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Sistem sumber SourceSystemId | Pengenal untuk instans atau klien SAP S/4HANA tertentu tempat data diekstrak. | ||
| Deskripsi Atribut ini menunjukkan sistem asal data. Di lingkungan dengan beberapa instans SAP, misalnya untuk wilayah atau unit bisnis yang berbeda, kolom ini penting untuk membedakan sumber data. Atribut ini terutama digunakan untuk tata kelola data, audit, dan memastikan integritas data. Dalam analisis, atribut ini dapat digunakan sebagai filter untuk membandingkan proses di berbagai sistem sumber jika semuanya digabungkan dalam satu model process mining. Mengapa ini penting Memberikan informasi penting tentang asal-usul dan konteks data, sehingga sumber data tetap jelas, terutama di lingkungan dengan banyak sistem. Sumber data Biasanya, ini adalah metadata yang ditambahkan saat ekstraksi data, sering kali bersumber dari ID sistem (SY-SYSID) atau klien (SY-MANDT) di SAP. Contoh S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tanggal penyelesaian aktual ActualCompletionDate | Tanggal sebenarnya saat aktivitas penting atau seluruh penutupan periode selesai. | ||
| Deskripsi Atribut ini mencatat tanggal sebenarnya saat pencapaian penting selesai. Nilainya berupa waktu persetujuan akhir laporan keuangan atau penutupan periode posting. Atribut ini menjadi pasangan Mengapa ini penting Mencatat waktu aktual pencapaian penting. Informasi ini diperlukan untuk mengukur kinerja terhadap tenggat rencana dan menganalisis keterlambatan. Sumber data Diambil dari EventTime aktivitas terakhir dalam urutan, seperti 'Financial Statements Approved' atau 'Period Closed For Posting'. Contoh 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
Aktivitas Record to Report, Penutupan Periode & Rekonsiliasi
| Aktivitas | Deskripsi | ||
|---|---|---|---|
| Jurnal penyesuaian dibukukan | Menandai jurnal koreksi yang dibuat setelah rekonsiliasi awal, biasanya untuk memperbaiki selisih yang ditemukan saat peninjauan. Transaksi ini dibukukan secara eksplisit ke General Ledger. | ||
| Mengapa ini penting Frekuensi jurnal penyesuaian yang tinggi menunjukkan rendahnya kualitas proses sebelumnya atau rekonsiliasi sejak awal. Menganalisis jurnal ini penting untuk menemukan akar penyebab kesalahan dan mengurangi pengerjaan ulang. Sumber data Dicatat sebagai dokumen eksplisit di tabel ACDOCA dan BKPF. Dokumen ini dapat dikenali dari jenis dokumen tertentu, tanggal pembukuan yang mendekati akhir siklus penutupan, atau deskripsi teks tertentu. Pengumpulan data Filter jurnal di BKPF berdasarkan kombinasi jenis dokumen dan tanggal pembukuan relatif terhadap aktivitas rekonsiliasi. Jenis peristiwa explicit | |||
| Laporan keuangan dibuat | Aktivitas ini menandai pembuatan laporan keuangan resmi, seperti Neraca dan Laporan Laba Rugi. Aktivitas ini menjadi puncak proses akuntansi dan konsolidasi akhir periode. | ||
| Mengapa ini penting Ini adalah tonggak penting dalam siklus Record to Report. Waktunya sangat menentukan untuk memenuhi tenggat pelaporan dan menyampaikan informasi tepat waktu kepada pemangku kepentingan. Sumber data Cara terbaik untuk mencatatnya adalah melalui alat manajemen penutupan keuangan seperti SAP Financial Closing Cockpit, yang mencatatnya sebagai tugas eksplisit. Jika tidak, peristiwa ini perlu disimpulkan dari log pembuatan laporan atau stempel waktu pembuatan file. Pengumpulan data Lacak status penyelesaian tugas 'Generate Financial Statements' di alat penutupan, atau analisis log pelaksanaan laporan. Jenis peristiwa inferred | |||
| Periode dibuka untuk pembukuan | Aktivitas ini menandai dimulainya periode keuangan, saat periode pembukuan dibuka untuk pencatatan transaksi. Administrator keuangan melakukan perubahan konfigurasi ini secara eksplisit di SAP dan sistem mencatatnya, sehingga jurnal untuk periode baru dapat dibuat. | ||
| Mengapa ini penting Aktivitas ini menjadi peristiwa awal utama dalam proses penutupan akhir periode. Aktivitas ini memungkinkan pengukuran waktu siklus total secara akurat dan memberikan titik awal yang jelas untuk analisis proses. Sumber data Peristiwa ini diambil dari dokumen perubahan (tabel CDHDR dan CDPOS) yang mencatat perubahan pada tabel kontrol periode pembukuan T001B, biasanya melalui transaksi OB52. Pengumpulan data Filter log perubahan untuk tabel T001B berdasarkan tahun fiskal dan periode yang dimaksud. Jenis peristiwa explicit | |||
| Periode ditutup untuk pembukuan | Ini adalah aktivitas terakhir dalam siklus, saat periode pembukuan resmi ditutup agar tidak ada transaksi tambahan. Tindakan ini menjaga integritas data dalam laporan keuangan final. | ||
| Mengapa ini penting Aktivitas ini menjadi peristiwa akhir yang pasti dalam proses. Aktivitas ini penting untuk menghitung total waktu siklus Period Close dan menganalisis tren penyelesaian proses. Sumber data Seperti saat periode dibuka, peristiwa ini diambil dari dokumen perubahan (tabel CDHDR dan CDPOS) yang mencatat pembaruan pada tabel kontrol periode pembukuan T001B melalui transaksi OB52. Pengumpulan data Filter log perubahan untuk tabel T001B guna menemukan penutupan tahun fiskal dan periode terkait. Jenis peristiwa explicit | |||
| Rekonsiliasi akun dimulai | Menandai dimulainya proses manual atau semiotomatis untuk membuktikan saldo akun GL. Peristiwa ini disimpulkan saat status rekonsiliasi berubah dari 'New' menjadi 'In Progress', atau saat tindakan pertama penyusun tercatat. | ||
| Mengapa ini penting Ini adalah tonggak penting untuk memahami durasi dan upaya yang diperlukan dalam pembuktian saldo neraca. Aktivitas ini membantu menemukan akun atau departemen yang terlambat memulai rekonsiliasi. Sumber data Peristiwa ini biasanya diambil dari alat rekonsiliasi khusus, seperti SAP Account Substantiation and Automation by BlackLine atau sistem pihak ketiga lainnya. Peristiwa disimpulkan dari stempel waktu perubahan status. Pengumpulan data Lacak stempel waktu perubahan status pertama dari 'Not Started' untuk rekonsiliasi akun GL tertentu. Jenis peristiwa inferred | |||
| Rekonsiliasi akun disetujui | Aktivitas ini menandai persetujuan akhir atas rekonsiliasi akun GL, yang memastikan saldo sudah dibuktikan dan semua masalah telah diselesaikan. Peristiwa ini disimpulkan dari perubahan status menjadi 'Approved' di alat rekonsiliasi. | ||
| Mengapa ini penting Tonggak ini menandai selesainya aktivitas kontrol penting. Dengan melacak waktu persetujuan, Anda dapat menemukan hambatan dalam proses peninjauan. Data ini juga penting untuk mengukur pengerjaan ulang dan tingkat keberhasilan pada upaya pertama. Sumber data Diambil dari sistem manajemen rekonsiliasi, seperti SAP Account Substantiation and Automation, dengan melacak stempel waktu status persetujuan akhir. Pengumpulan data Temukan stempel waktu saat kolom status rekonsiliasi diperbarui menjadi status akhir 'Approved'. Jenis peristiwa inferred | |||
| Rekonsiliasi antarperusahaan dimulai | Aktivitas ini menandai dimulainya proses pencocokan dan rekonsiliasi transaksi antar kode perusahaan dalam satu grup. Proses ini biasanya dimulai dengan menjalankan pekerjaan rekonsiliasi atau membuat kasus rekonsiliasi baru di alat ICMR SAP. | ||
| Mengapa ini penting Rekonsiliasi antarperusahaan sering kali rumit dan memakan waktu. Menganalisis durasi dan alurnya penting untuk menyederhanakan penutupan grup dan memastikan laporan keuangan konsolidasi akurat. Sumber data Disimpulkan dari perubahan status di modul SAP Intercompany Matching and Reconciliation (ICMR), atau dari pembuatan dokumen rekonsiliasi pertama untuk periode tersebut. Pengumpulan data Lacak tanggal pembuatan atau stempel waktu perubahan status unit rekonsiliasi di alat ICMR untuk periode terkait. Jenis peristiwa inferred | |||
| Akrual dan provisi dibukukan | Peristiwa ini mencatat pembuatan jurnal manual untuk akrual, penangguhan, dan provisi lain yang diperlukan agar laporan keuangan akurat dengan metode akrual. Transaksi ini dibukukan secara eksplisit ke General Ledger. | ||
| Mengapa ini penting Dengan melacak pembukuan ini, Anda dapat menganalisis jumlah dan waktu penyesuaian manual. Jumlah yang tinggi dapat menunjukkan peluang untuk mengotomatiskan atau memperbaiki proses sebelumnya. Sumber data Dicatat sebagai jurnal eksplisit di tabel jurnal universal ACDOCA dan tabel header BKPF. Entri ini dapat dikenali dari jenis dokumen tertentu yang dikonfigurasi untuk akrual. Pengumpulan data Filter dokumen di tabel BKPF berdasarkan jenis dokumen (misalnya, 'SA' atau jenis khusus) dan tanggal pembukuan dalam periode tersebut. Jenis peristiwa explicit | |||
| Laporan keuangan disetujui | Menandai persetujuan akhir laporan keuangan oleh manajemen berwenang sebelum dipublikasikan. Proses ini sering dilakukan secara offline, tetapi dapat dicatat jika tersedia langkah persetujuan digital formal. | ||
| Mengapa ini penting Ini adalah gerbang pemeriksaan kualitas dan kontrol terakhir. Melacak waktunya penting untuk memahami kepatuhan terhadap tenggat pelaporan dan efisiensi keseluruhan siklus peninjauan manajemen. Sumber data Peristiwa ini dapat dicatat jika tersedia alur kerja atau kolom status untuk persetujuan laporan, misalnya di SAP Financial Closing Cockpit atau sistem manajemen dokumen. Pengumpulan data Temukan kolom data dan stempel waktu yang menunjukkan persetujuan akhir atas paket laporan keuangan. Jenis peristiwa inferred | |||
| Neraca saldo disiapkan | Menandakan bahwa neraca saldo telah dibuat dan disimpan untuk ditinjau. Ini menjadi titik pemeriksaan penting sebelum laporan keuangan final dibuat. Peristiwa ini sering kali dicatat melalui prosedur penyimpanan keluaran laporan. | ||
| Mengapa ini penting Penyusunan neraca saldo merupakan gerbang pemeriksaan kualitas yang penting. Menganalisis waktunya membantu Anda memahami kesiapan pelaporan akhir dan menemukan keterlambatan pada aktivitas sebelumnya. Sumber data Peristiwa ini sering kali tidak dicatat secara eksplisit. Peristiwa dapat disimpulkan dari pelaksanaan transaksi pelaporan tertentu jika varian disimpan dengan stempel waktu pengguna dan tanggal, atau jika proses dikelola dengan alat seperti SAP Financial Closing Cockpit. Pengumpulan data Perlu analisis sistem untuk memastikan apakah tersedia mekanisme pencatatan yang andal, seperti log pelaksanaan laporan atau daftar tugas closing cockpit. Jenis peristiwa inferred | |||
| Proses clearing otomatis dijalankan | Menandai pelaksanaan program clearing otomatis di SAP, seperti proses clearing GR/IR (Goods Receipt/Invoice Receipt). Pekerjaan ini mencocokkan dan menghapus item terbuka pada akun GL tertentu, sehingga mengurangi pekerjaan rekonsiliasi manual. | ||
| Mengapa ini penting Aktivitas ini menunjukkan tingkat otomatisasi dalam proses rekonsiliasi. Kegagalan atau pengecualian dalam proses ini dapat menambah banyak pekerjaan manual dan menyebabkan keterlambatan. Sumber data Diambil dari log pelaksanaan pekerjaan batch tertentu, seperti F.13 atau F.13E untuk clearing otomatis. Tabel log pekerjaan TBTCO dan TBTCP menyimpan detail pelaksanaannya. Pengumpulan data Pantau stempel waktu mulai dan selesai pekerjaan yang terkait dengan transaksi seperti F.13 di log pekerjaan SAP. Jenis peristiwa explicit | |||
| Proses valuasi mata uang asing dijalankan | Ini adalah prosedur standar akhir bulan untuk menilai ulang item terbuka dan saldo dalam mata uang asing berdasarkan kurs akhir periode. Program ini membukukan selisih hasil valuasi. | ||
| Mengapa ini penting Aktivitas ini membantu memastikan kepatuhan terhadap standar akuntansi dan memberikan gambaran keuangan yang akurat. Dengan melacaknya, Anda dapat memastikan semua valuasi mata uang dilakukan tepat waktu. Sumber data Diambil dari log pelaksanaan program valuasi mata uang asing (misalnya, FAGL_FCV). Detail pekerjaan tersimpan di tabel TBTCO dan TBTCP. Pengumpulan data Pantau log pelaksanaan pekerjaan yang terkait dengan transaksi FAGL_FCV atau program yang mendasarinya. Jenis peristiwa explicit | |||
| Transfer data subledger selesai | Menandai selesainya pekerjaan batch yang memindahkan data ringkasan dari buku pembantu, seperti Accounts Receivable, Accounts Payable, dan Asset Accounting, ke General Ledger. Dengan begitu, semua transaksi operasional yang mendasarinya tercermin di GL sebelum prosedur penutupan dimulai. | ||
| Mengapa ini penting Keterlambatan penutupan buku pembantu dapat menjadi hambatan besar bagi keseluruhan proses. Dengan melacak aktivitas ini, Anda dapat menemukan inefisiensi dalam pengumpulan dan integrasi data dari sistem sumber. Sumber data Disimpulkan dari status keberhasilan penyelesaian pekerjaan batch tertentu yang bertanggung jawab atas penyelesaian buku besar dan transfer data. Log pekerjaan tersedia di tabel TBTCO dan TBTCP. Pengumpulan data Temukan dan pantau stempel waktu penyelesaian pekerjaan batch terkait di ikhtisar pekerjaan SAP (transaksi SM37). Jenis peristiwa explicit | |||
| Tugas konsolidasi dijalankan | Menandai pelaksanaan aktivitas konsolidasi di SAP Group Reporting, seperti konversi mata uang, reklasifikasi, dan eliminasi laba antarperusahaan. Aktivitas ini biasanya dikelola dan dicatat di monitor konsolidasi. | ||
| Mengapa ini penting Bagi organisasi dengan banyak entitas hukum, konsolidasi merupakan bagian penting dalam jalur proses. Dengan memantau tugas ini, Anda dapat menyederhanakan penutupan grup dan memastikan laporan konsolidasi selesai tepat waktu. Sumber data Diambil dari log status di Data Monitor atau Consolidation Monitor SAP S/4HANA untuk Group Reporting. Setiap tugas biasanya mencatat pengguna, stempel waktu, dan status. Pengumpulan data Ekstrak log pelaksanaan tugas dari tabel yang mendasari monitor konsolidasi Group Reporting. Jenis peristiwa explicit | |||
Panduan Ekstraksi
Langkah
- Temukan dan verifikasi CDS View: Masuk ke sistem SAP S/4HANA menggunakan SAP HANA Studio atau Eclipse dengan ADT. Gunakan ABAP Development Tools untuk mencari dan memverifikasi keberadaan CDS View standar yang disebutkan dalam kueri, seperti I_JournalEntryItem, I_BatchJob, dan I_ConsolidationTaskLog. Untuk proses seperti Account Reconciliation, Anda mungkin perlu membuat CDS View khusus, misalnya Z_I_ACCOUNTRECONCILIATION, untuk mencatat perubahan status.
- Sediakan CDS View melalui OData: Di backend SAP, gunakan transaksi
SEGW(Gateway Service Builder) untuk membuat proyek baru. Klik kanan folder Data Model, lalu pilih 'Reference -> Data Source'. Tambahkan CDS View yang diperlukan. Buat objek runtime untuk menghasilkan layanan OData yang menyediakan akses eksternal ke view tersebut. - Aktifkan layanan OData: Buka transaksi
/IWFND/MAINT_SERVICEdi hub SAP Gateway. Klik 'Add Service', cari layanan yang dibuat pada langkah sebelumnya, lalu tambahkan. Layanan kini aktif dan dapat dikueri. - Hubungkan ke data: Dari alat ekstraksi data pilihan Anda, seperti Python, Power BI, atau platform ETL khusus, hubungkan ke layanan OData yang baru dibuat. Anda memerlukan URL layanan dan kredensial yang berwenang mengakses CDS View.
- Sesuaikan dan jalankan kueri: Salin kueri SQL yang disediakan. Ubah nilai contoh untuk rentang tanggal, kode perusahaan, serta nama CDS View khusus atau tugas batch agar sesuai dengan lingkungan SAP Anda. Jalankan kueri ke endpoint layanan OData. Perlu diingat, OData menggunakan sintaks berbeda, seperti ($filter, $select). Karena itu, Anda mungkin perlu mengubah logika kueri UNION ALL menjadi beberapa panggilan API terpisah, satu untuk setiap aktivitas.
- Gabungkan data aktivitas: OData biasanya tidak mendukung kueri UNION ALL yang kompleks dalam satu panggilan. Jadi, kirim permintaan terpisah untuk setiap blok aktivitas dalam kueri. Gabungkan hasil semua permintaan menjadi satu kumpulan data atau tabel di alat klien Anda.
- Transformasikan dan bersihkan data: Tinjau data yang sudah digabungkan. Pastikan kolom
EventTimedanEndTimemenggunakan format stempel waktu yang konsisten. PastikanFinancialPeriodmengikuti format 'YYYY-MM'. Tangani nilai NULL di kolom sepertiResponsibleUseratauDocumentNumbersesuai kebutuhan. - Ekspor sebagai log peristiwa: Ekspor kumpulan data akhir yang sudah digabungkan ke file CSV. Pastikan header kolom sesuai dengan atribut yang diwajibkan:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, dan seterusnya. File ini siap diunggah ke ProcessMind.
Konfigurasi
- CDS View: Kueri ini mengandalkan gabungan CDS View standar dan khusus. View standar seperti
I_JournalEntryItem(untuk entri jurnal) danI_BatchJob(untuk proses otomatis) sangat penting. View khusus sepertiZ_I_ACCOUNTRECONCILIATIONsering diperlukan untuk mencatat status proses internal yang tidak tercakup dalam view standar. - Rentang tanggal: Tentukan rentang tanggal ekstraksi untuk mengendalikan volume data. Kueri menggunakan nilai contoh
[Start Date]dan[End Date]. Biasanya, rentang ini perlu mencakup 3 hingga 6 periode fiskal penuh agar hasil analisis bermakna. - Filter utama: Filter sangat penting untuk menjaga kinerja dan relevansi. Selalu filter berdasarkan
CompanyCode. Filter penting lainnya mencakupLedger(misalnya, '0L' untuk buku besar utama),FiscalYear, dan nilaiDocumentTypetertentu untuk membedakan pembukuan rutin, akrual, dan penyesuaian. - Prasyarat: Pengguna yang menjalankan ekstraksi memerlukan otorisasi SAP untuk mengakses CDS View yang ditentukan dan menjalankan layanan OData, misalnya objek otorisasi
S_SERVICEdanS_RFC. Layanan SAP Gateway harus dikonfigurasi dan diaktifkan. - Kinerja: Mengueri
I_JournalEntryItemdapat membebani kinerja. Selalu gunakan filter yang spesifik, terutama untuk tanggal, kode perusahaan, dan buku besar. Pertimbangkan untuk menjalankan ekstraksi di luar jam sibuk atau menggunakan strategi pemuatan bertahap untuk pemantauan berkelanjutan.
Contoh kueri sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Langkah
- Pastikan akses baca langsung ke skema SAP HANA yang memuat tabel aplikasi yang diperlukan tersedia. Temukan pemilik skema untuk ACDOCA, TBTCO, CDHDR, dan CDPOS. Ganti nilai contoh skema dalam kueri dengan nama skema yang telah disetujui.
- Pastikan tahun fiskal, periode fiskal, cakupan kode perusahaan, dan rentang tanggal ekstraksi. Gunakan rentang tanggal yang mencakup seluruh siklus penutupan, biasanya tiga hingga enam bulan, lalu ganti parameter tanggal dengan nilai yang sesuai untuk sistem Anda.
- Validasi pemetaan kolom lokal untuk perubahan konfigurasi periode pembukuan, penyelesaian tugas batch, perubahan status rekonsiliasi, pelaksanaan konsolidasi, pembuatan laporan, dan catatan persetujuan. Kueri menggunakan nilai contoh umum untuk objek sumber yang belum tentu tersedia di setiap penerapan SAP S/4HANA. Sebelum menjalankan kueri, ganti nilai tersebut dengan view atau tabel yang disetujui di sistem Anda.
- Jalankan kueri menggunakan kredensial basis data hanya-baca. Kueri secara eksplisit membuat satu baris peristiwa untuk setiap aktivitas yang diperlukan dan tidak menyimpulkan peristiwa tambahan berdasarkan urutan peristiwa.
- Tinjau kolom yang dihasilkan. FinancialPeriod menjadi ID kasus, ActivityName menjadi aktivitas peristiwa, dan EventTime menjadi stempel waktu peristiwa yang wajib diisi. EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus, dan TargetCompletionDate disertakan jika tersedia dalam rekaman sumber.
- Pastikan semua aktivitas yang diperlukan tercantum dalam hasil, termasuk aktivitas yang mungkin tidak memiliki rekaman sumber pada periode tertentu. Untuk jenis aktivitas yang tidak ditemukan, kueri menghasilkan baris validasi dengan ActivityName bernilai Activity Coverage Validation. Hapus atau tangani baris tersebut secara terpisah sebelum mengunggah ke ProcessMind jika impor hanya menerima peristiwa bisnis.
- Cocokkan beberapa peristiwa dengan rekaman aplikasi dan log tugas SAP. Pastikan peristiwa entri jurnal sesuai dengan rekaman ACDOCA, peristiwa tugas sesuai dengan rekaman TBTCO, dan peristiwa perubahan sesuai dengan rekaman CDHDR dan CDPOS atau sumber rekonsiliasi dan persetujuan yang telah dikonfigurasi.
- Ekspor hasil sebagai CSV UTF-8 atau format tabular lain yang didukung ProcessMind. Pertahankan nama kolom persis seperti FinancialPeriod, ActivityName, dan EventTime. Urutkan berdasarkan FinancialPeriod dan EventTime, serta pertahankan satu baris untuk setiap peristiwa yang diekstrak secara eksplisit.
- Unggah log peristiwa ke ProcessMind. Atur FinancialPeriod sebagai ID kasus, ActivityName sebagai aktivitas, dan EventTime sebagai stempel waktu mulai. Petakan EndTime sebagai stempel waktu akhir jika tersedia, lalu petakan kolom lainnya sebagai atribut peristiwa atau kasus.
Catatan penting tentang pemetaan sumber: SAP S/4HANA tidak memiliki satu struktur tabel universal untuk setiap alat rekonsiliasi, pemantau konsolidasi, arsip laporan, alur kerja persetujuan, atau konfigurasi periode pembukuan. Ganti setiap nilai contoh [Your table name] dan [Your column name] dalam kueri dengan objek dan kolom yang sudah diverifikasi di sistem Anda. Jangan jalankan nilai contoh sebagai SQL.
Konfigurasi
- Akses database: Gunakan pengguna database SAP HANA hanya-baca dengan otorisasi SELECT pada ACDOCA, TBTCO, CDHDR, CDPOS, serta objek sumber yang dikonfigurasi untuk kontrol periode pembukuan, rekonsiliasi, konsolidasi, pelaporan, dan persetujuan.
- Konfigurasi skema: Ganti [Your SAP schema] dengan skema aktual yang memuat objek aplikasi. Pastikan apakah objek tersebut berupa tabel, calculation view, atau view pelaporan yang disetujui.
- Rentang tanggal: Ekstrak seluruh siklus penutupan, biasanya tiga hingga enam bulan. Sertakan aktivitas pembukaan dan penutupan, pembukuan terlambat, pembalikan, persetujuan, dan penyesuaian setelah penutupan.
- Periode fiskal: Filter berdasarkan tahun dan periode fiskal yang digunakan kode perusahaan. Jangan menganggap periode mengikuti tahun kalender jika varian tahun fiskal berbeda.
- Company Code: Terapkan filter kode perusahaan jika proses hanya mencakup entitas hukum tertentu. Gunakan [Configure based on your system] jika cakupan dikelola dalam pemetaan organisasi terpisah.
- Jenis dokumen: Batasi ekstraksi entri jurnal pada jenis dokumen yang digunakan untuk akrual, provisi, penyesuaian, valuasi, kliring, dan pembukuan penutupan lainnya. Pastikan konfigurasi jenis dokumen lokal sebelum mengaktifkan filter ini.
- Status job: Sertakan hanya job yang selesai atau berhasil untuk aktivitas penyelesaian. Validasi nilai status TBTCO lokal sebelum menerapkan kondisi filter status.
- Dokumen perubahan: Filter CDHDR dan CDPOS berdasarkan kelas objek dan indikator perubahan yang relevan setelah memastikan konfigurasi lokal. Dokumen perubahan saja mungkin tidak cukup untuk mengidentifikasi semua aktivitas bisnis.
- Sumber rekonsiliasi dan persetujuan: Konfigurasikan objek sumber terverifikasi untuk perubahan status rekonsiliasi, tindakan penyusun, persetujuan, tanggal target, dan persetujuan digital. Sumber ini berbeda-beda, bergantung pada komponen SAP dan ekstensi yang diterapkan.
- Kinerja: Batasi kondisi filter berdasarkan tahun fiskal, periode fiskal, kode perusahaan, tanggal pembukuan, dan stempel waktu peristiwa. Terapkan filter pada setiap bagian UNION ALL, hindari pemindaian ACDOCA tanpa batas, dan jalankan ekstraksi pada waktu pelaporan yang disetujui.
- Tipe data: Seragamkan stempel waktu ke zona waktu dan tipe data yang sama. Ubah string kosong menjadi NULL dan pertahankan angka nol di depan pada kode perusahaan, nomor akun, dan nomor dokumen.
- Prasyarat: Pastikan komponen SAP yang diperlukan, alat rekonsiliasi, fungsi konsolidasi, pencatatan job, aktivasi dokumen perubahan, serta pencatatan audit laporan atau workflow tersedia dan berisi data.
- Keamanan dan kepatuhan: Terapkan akses dengan hak minimum, lindungi data keuangan dan pengguna, dokumentasikan tujuan ekstraksi, serta ikuti persyaratan audit SAP dan database organisasi.
Contoh kueri sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName Siap Memulai?
Gunakan templat data ini untuk meningkatkan efisiensi dan kepatuhan organisasi Anda. Mulai perbaikan proses Record to Report hari ini.
Optimalkan Penutupan dan Rekonsiliasi Record to Report Anda
Temukan inefisiensi dan pangkas waktu siklus penutupan hingga 30%.
Tidak perlu kartu kredit. Anda bisa mulai dalam hitungan menit.