Templat data pemrosesan penggajian Anda
Templat data pemrosesan penggajian Anda
- Kolom data utama untuk analisis penggajian
- Tahapan penting untuk menemukan proses
- Panduan ekstraksi khusus sistem
Atribut pemrosesan penggajian
| Nama | Deskripsi | ||
|---|---|---|---|
| Aktivitas Activity | Tugas atau event tertentu yang terjadi dalam proses penggajian. | ||
| Deskripsi Atribut ini mencatat nama langkah proses yang dijalankan, seperti 'Lembar Waktu Dikirim', 'Simulasi Penggajian Dijalankan', atau 'Pembayaran Dijalankan'. Nama aktivitas menjadi dasar peta proses dan membantu analis melihat urutan operasional selama siklus penggajian. Data atribut ini diambil dari berbagai log, termasuk log Workflow (SWWLOGHIST), log perubahan Infotype (CDHDR/CDPOS), dan tabel status penggajian tertentu. Saat ekstraksi, nama diseragamkan agar kode event teknis mudah dipahami sebagai nama aktivitas bisnis. Mengapa ini penting Atribut ini menentukan simpul dalam grafik proses sehingga alur, pengulangan, dan variasi proses dapat divisualisasikan. Sumber data Diambil dari SWWLOGHIST (Workflow), CDHDR (Dokumen Perubahan), atau perubahan status PA03 (Catatan Kontrol). Contoh Lembar waktu diajukanGaji bruto dihitungPengecualian audit ditandaiPembayaran dilakukan | |||
| Catatan penggajian PayrollRecord | Pengenal unik yang menggabungkan karyawan dan periode penggajian. | ||
| Deskripsi Catatan penggajian berfungsi sebagai pengenal kasus utama untuk analisis process mining. Catatan ini mewakili satu siklus pemrosesan gaji untuk seorang karyawan dalam periode penggajian tertentu. Semua aktivitas terhubung di dalamnya, mulai dari pengiriman lembar waktu hingga pelaporan pajak akhir. Di SAP SuccessFactors Employee Central Payroll, pengenal ini biasanya dibuat dengan menggabungkan Nomor Personel (PERNR), Tahun Penggajian (PABRJ), dan Periode Penggajian (PABRP). Nomor urut (SEQNR) juga dapat ditambahkan untuk membedakan beberapa kali proses. Dengan tingkat perincian ini, setiap siklus pembayaran dianalisis sebagai kasus tersendiri sehingga waktu siklus dan kesalahan dapat diukur dengan tepat. Mengapa ini penting Catatan ini berfungsi sebagai Case ID yang mengelompokkan semua event terkait untuk merekonstruksi alur proses dari awal hingga akhir pada setiap pembayaran gaji. Sumber data Dibentuk dari SAP Cluster B2 (Hasil Evaluasi Waktu) atau tabel PC_PAYRESULT (PERNR, PABRJ, PABRP, SEQNR). Contoh 10023499-2023-1088291022-2024-01-SEQ01US-10293-2023-52 | |||
| Stempel waktu event EventTimestamp | Tanggal dan waktu persis saat aktivitas terjadi. | ||
| Deskripsi Atribut ini mencatat waktu persis terjadinya event, termasuk tanggal dan jam. Data ini menjadi dasar untuk menghitung metrik berbasis waktu, seperti waktu siklus, waktu penyelesaian, dan laju penyelesaian di antara berbagai tahap proses. Di SAP ECP, data ini bersumber dari kolom stempel waktu seperti Mengapa ini penting Atribut ini memungkinkan penghitungan durasi antar-event, yang penting untuk menemukan hambatan kinerja dan pelanggaran SLA. Sumber data CDHDR-UDATE/UTIME, SWWLOGHIST-WI_CD/WI_CT, atau stempel waktu tertentu dari log audit. Contoh 2023-10-25T08:30:00Z2023-10-26T14:15:22Z2023-11-01T09:00:00Z | |||
| Pembaruan data terakhir LastDataUpdate | Stempel waktu ekstraksi data terbaru. | ||
| Deskripsi Atribut ini menunjukkan kapan data terakhir diperbarui dalam model data process mining. Analis dapat menggunakannya untuk mengetahui seberapa baru data dan memastikan insight didasarkan pada informasi terkini. Atribut ini tidak digunakan langsung untuk menganalisis alur proses, tetapi penting untuk tata kelola dan validasi data. Atribut ini membantu memastikan dashboard menampilkan kondisi terbaru sistem penggajian. Mengapa ini penting Atribut ini memberi tahu pengguna tentang jeda pembaruan data dan membantu memastikan metrik yang dilaporkan masih terkini. Sumber data Dibuat oleh skrip ETL/ekstraksi saat dijalankan. Contoh 2023-11-05T00:00:00Z2023-11-05T12:00:00Z | |||
| Sistem sumber SourceSystem | Sistem asal data event. | ||
| Deskripsi Atribut ini menunjukkan instans SAP SuccessFactors Employee Central Payroll atau subsistem terhubung yang menjadi sumber data. Dalam lingkungan dengan beberapa sistem penggajian atau konfigurasi hibrida, kolom ini membantu memastikan asal-usul dan keterlacakan data. Atribut ini berguna saat menganalisis data dari berbagai instalasi regional atau membandingkan kinerja sistem lama dengan sistem hasil migrasi. Biasanya, atribut ini berupa teks tetap yang ditentukan saat penyiapan ekstraksi data. Mengapa ini penting Atribut ini memungkinkan pemilahan data di lingkungan dengan banyak sistem dan membantu menelusuri masalah kualitas data hingga ke sumbernya. Sumber data System ID (SID) dari instalasi SAP atau konfigurasi ekstraksi. Contoh SAP_ECP_NASAP_ECP_EMEASuccessFactors_Core | |||
| Area penggajian PayrollArea | Menentukan kelompok penggajian tempat seorang karyawan terdaftar. | ||
| Deskripsi Area penggajian mengelompokkan karyawan yang diproses bersama dalam satu proses penggajian. Pengelompokan ini biasanya didasarkan pada frekuensi pembayaran, misalnya bulanan atau dua mingguan, maupun struktur organisasi. Atribut ini penting untuk membandingkan kinerja proses di berbagai kelompok karyawan. Di SAP, atribut ini merujuk pada kolom teknis Mengapa ini penting Atribut ini memungkinkan perbandingan kinerja siklus penggajian antar kelompok, misalnya karyawan per jam dan karyawan bergaji tetap. Sumber data Tabel PA0001 (Penugasan Organisasi), kolom ABKRS. Contoh AS dua mingguanJerman bulananPenggajian eksekutif | |||
| Frekuensi siklus penggajian PayCycleFrequency | Menunjukkan apakah proses penggajian berjalan rutin atau di luar siklus. | ||
| Deskripsi Atribut ini membedakan proses penggajian rutin yang terjadwal dari proses di luar siklus untuk koreksi atau pembayaran segera. Tingginya jumlah proses di luar siklus menjadi indikator utama ketidakefisienan proses dan dipantau melalui dashboard 'Analisis Volume Pembayaran di Luar Siklus'. Atribut ini diturunkan dari kolom Alasan di Luar Siklus ( Mengapa ini penting Atribut ini penting untuk mengukur KPI 'Rasio Pembayaran di Luar Siklus' dan mengurangi pemrosesan yang tidak standar. Sumber data Tabel RGDIR (Direktori Cluster), kolom OCRSN atau PAYTY. Contoh RutinKoreksi APembayaran bonusPemutusan hubungan kerja | |||
| Jenis karyawan EmployeeType | Klasifikasi karyawan, misalnya karyawan tetap atau kontraktor. | ||
| Deskripsi Atribut ini mengelompokkan karyawan berdasarkan hubungan kerja, seperti karyawan aktif, pensiunan, atau kontraktor. Tingkat kerumitan pemrosesan gaji sering berbeda menurut jenis karyawan. Beberapa kelompok mungkin memerlukan lebih banyak penanganan manual atau pemeriksaan kepatuhan tertentu. Secara teknis, data diambil dari kolom Employee Group ( Mengapa ini penting Atribut ini membantu mengetahui apakah variasi atau keterlambatan proses hanya terjadi pada kategori hubungan kerja tertentu. Sumber data Tabel PA0001, kolom PERSG (Grup) dan PERSK (Subgrup). Contoh Karyawan aktifPeserta pelatihanPensiunanKontraktor per jam | |||
| Jumlah gaji bruto GrossPayAmount | Total gaji bruto yang dihitung untuk catatan ini. | ||
| Deskripsi Atribut ini menunjukkan total nilai gaji bruto sebelum potongan. Metrik ini menjadi dasar validasi keuangan dan digunakan untuk melihat apakah pembayaran bernilai tinggi memerlukan pemeriksaan audit lebih ketat atau waktu persetujuan lebih lama. Data diambil dari tabel hasil penggajian (RT), biasanya dari jenis upah tertentu yang mewakili total bruto, misalnya /101. Data ini menjadi dasar perhitungan dalam analisis 'Akurasi Perhitungan Tunjangan dan Pajak'. Mengapa ini penting Atribut ini memungkinkan analisis perilaku proses berdasarkan nilai pembayaran, misalnya apakah pembayaran yang lebih besar memerlukan waktu persetujuan lebih lama. Sumber data Tabel Hasil Penggajian (RT), Jenis Upah /101 atau yang serupa. Contoh 5000.002500.5010500.00 | |||
| Otomatis IsAutomated | Penanda yang menunjukkan apakah aktivitas dijalankan oleh pengguna sistem. | ||
| Deskripsi Atribut Boolean ini menunjukkan apakah langkah proses tertentu dijalankan oleh pekerjaan latar belakang atau pengguna sistem, atau oleh seseorang. Atribut ini penting bagi 'Pemantau Otomatisasi Transfer Bank' untuk menghitung persentase pemrosesan tanpa campur tangan manual. Biasanya, atribut ini ditentukan dengan mencocokkan ID Pengguna dengan daftar akun sistem yang diketahui, seperti 'BATCH' atau 'SAP_WORKFLOW'. Mengapa ini penting Atribut ini membantu mengukur tingkat otomatisasi dan menemukan peluang untuk mengurangi pekerjaan manual. Sumber data Ditentukan dari ID Pengguna, misalnya jika User IN ['BATCH', 'SYSTEM], maka nilainya true. Contoh truefalse | |||
| Periode penggajian PayPeriod | Nomor periode tertentu dalam tahun fiskal. | ||
| Deskripsi Atribut ini menunjukkan nomor urut periode penggajian, misalnya 01 untuk Januari atau siklus dua mingguan pertama. Analis dapat menggunakannya untuk memantau tren kinerja dari waktu ke waktu dan menemukan pola musiman dalam beban pemrosesan. Data diambil dari Mengapa ini penting Atribut ini mendukung analisis tren dan membantu menemukan hambatan musiman pada waktu tertentu dalam setahun. Sumber data Tabel PA0001 atau Payroll Results Cluster (RGDIR), kolom PABRP. Contoh 01122652 | |||
| Pusat biaya CostCenter | Pusat biaya yang terkait dengan karyawan. | ||
| Deskripsi Pusat biaya menunjukkan departemen atau unit keuangan tempat biaya karyawan dialokasikan. Dalam dashboard 'Hambatan Persetujuan Lembar Waktu', atribut ini mewakili departemen dan membantu menemukan unit organisasi yang memperlambat siklus penggajian. Data ini terdapat di infotype Penugasan Organisasi (PA0001), pada kolom Mengapa ini penting Atribut ini memungkinkan penelusuran berdasarkan struktur organisasi untuk menemukan departemen tertentu yang menyebabkan keterlambatan atau pengerjaan ulang. Sumber data Tabel PA0001, kolom KOSTL. Contoh CC-1000 KeuanganCC-2000 TICC-3000 Penjualan | |||
| Spesialis penggajian PayrollSpecialist | ID pengguna atau nama orang yang memproses catatan. | ||
| Deskripsi Atribut ini mencatat identitas administrator atau spesialis penggajian yang bertanggung jawab menjalankan langkah manual atau memberikan persetujuan. Atribut ini menjadi dasar dashboard 'Produktivitas dan Beban Kerja Spesialis' untuk menganalisis pembagian beban kerja dan produktivitas tiap orang. Data diambil dari kolom Mengapa ini penting Atribut ini penting untuk menyeimbangkan beban kerja dan menemukan hambatan proses yang disebabkan oleh kapasitas personel. Sumber data Kolom sistem (SY-UNAME) yang dicatat di CDHDR atau ID pelaku Workflow. Contoh JSMITHKMILLERSISTEM | |||
| Badan hukum LegalEntity | Kode perusahaan atau badan hukum tempat karyawan terdaftar. | ||
| Deskripsi Atribut ini menunjukkan badan hukum (Kode Perusahaan) yang terkait dengan catatan penggajian. Atribut ini mendukung pelaporan keuangan dan analisis kinerja penggajian di berbagai anak perusahaan atau badan usaha. Data diambil dari kolom Mengapa ini penting Atribut ini mendukung perbandingan kinerja antarperusahaan dan analisis alokasi keuangan. Sumber data Tabel PA0001, kolom BUKRS. Contoh US01DE011000 | |||
| Batas waktu pemrosesan SLA SLAProcessingDeadline | Stempel waktu target untuk menyelesaikan proses penggajian. | ||
| Deskripsi Atribut ini menunjukkan batas waktu internal atau eksternal untuk menyelesaikan penggajian agar pembayaran dilakukan tepat waktu. KPI 'Tingkat Kepatuhan SLA' dihitung dengan membandingkan batas waktu ini dengan stempel waktu aktual 'Pembayaran Dijalankan'. Kolom ini tidak selalu tersedia sebagai kolom standar di tabel SAP. Biasanya, batas waktu disimpan dalam tabel kontrol khusus atau ditentukan berdasarkan kalender penggajian, misalnya 2 hari sebelum tanggal pembayaran. Dalam model data ini, batas waktu biasanya dihitung dari tanggal pembayaran dikurangi sejumlah hari penyangga. Mengapa ini penting Atribut ini menjadi tolok ukur untuk menilai ketepatan waktu dan kepatuhan terhadap SLA. Sumber data Dihitung dari Tanggal Pembayaran (T549S) dikurangi jumlah hari pemrosesan yang dikonfigurasi. Contoh 2023-10-28T17:00:00Z2023-11-28T17:00:00Z | |||
| Jumlah pengerjaan ulang ReworkCount | Berapa kali koreksi dilakukan. | ||
| Deskripsi Metrik ini menghitung berapa kali aktivitas 'Koreksi Data Dilakukan' muncul dalam riwayat kasus. Metrik ini mengukur langsung ketidakefisienan proses dan mendukung dashboard 'Tingkat Koreksi Manual dan Pengerjaan Ulang'. Jumlah pengerjaan ulang yang tinggi menunjukkan masalah kualitas data yang berulang atau kasus rumit yang gagal dalam validasi pertama. Mengapa ini penting Metrik ini mengukur upaya yang terpakai untuk memperbaiki kesalahan dan membantu mendukung inisiatif peningkatan kualitas data. Sumber data Dihitung dengan menghitung aktivitas 'Koreksi Data Dilakukan' untuk setiap CaseId. Contoh 013 | |||
| Penanda pengecualian audit AuditExceptionFlag | Penanda yang menunjukkan apakah terjadi pengecualian audit. | ||
| Deskripsi Atribut ini menandai kasus saat aturan validasi memicu pengecualian atau peringatan selama simulasi atau perhitungan penggajian. Atribut ini menjadi masukan utama untuk KPI 'Frekuensi Pengecualian Audit'. Data biasanya diambil dari log penggajian atau tabel pesan kesalahan tertentu (FEHLER). Nilai true menunjukkan bahwa alur proses mencakup jalur penanganan pengecualian. Mengapa ini penting Atribut ini menyoroti masalah kualitas data dan kebutuhan akan penanganan manual. Sumber data Ditentukan dari keberadaan pesan kesalahan di log penggajian atau kode status tertentu. Contoh truefalse | |||
| Wilayah pajak TaxJurisdiction | Wilayah atau otoritas pajak yang berlaku bagi karyawan. | ||
| Deskripsi Atribut ini menunjukkan otoritas atau wilayah pajak tertentu, seperti negara bagian, provinsi, atau kanton, yang mengatur catatan penggajian. Atribut ini penting bagi dashboard 'Pengecualian Audit dan Risiko Kepatuhan' untuk menemukan titik rawan kepatuhan berdasarkan wilayah. Di SAP US Payroll, atribut ini menggunakan kolom Mengapa ini penting Atribut ini memungkinkan pemilahan risiko kepatuhan dan pengecualian audit berdasarkan wilayah regulasi. Sumber data Tabel PA0001 atau PA0207/PA0208, kolom TXJCD. Contoh CaliforniaNew YorkTexasNRW | |||
Aktivitas pemrosesan penggajian
| Aktivitas | Deskripsi | ||
|---|---|---|---|
| Catatan penggajian disetujui | Persetujuan resmi atas hasil penggajian untuk karyawan atau kelompok gaji. Langkah ini dilakukan pada tahap 'Monitoring' atau 'Sign Off' di PCC. | ||
| Mengapa ini penting Menandai berakhirnya tahap perhitungan dan validasi serta persetujuan untuk pembayaran. Penting untuk analisis Produktivitas Spesialis. Sumber data Log Instans Langkah Payroll Control Center (PYC_D_STEP_INST) untuk langkah Approval atau Confirmation. Pengumpulan data Dicatat saat status Langkah Persetujuan PCC berubah menjadi COMPLETED Jenis peristiwa explicit | |||
| File transfer bank dibuat | Pembuatan file Preliminary Data Medium Exchange (pre-DME) atau DME final. File ini berisi instruksi pembayaran untuk bank. | ||
| Mengapa ini penting Melacak Pemantauan Otomatisasi Transfer Bank. Kegagalan pembuatan file merupakan penghentian proses yang perlu segera ditangani. Sumber data Log dari pelaksanaan DME / Payment Medium Workbench (PMW), yang sering disimpan di TemSe atau tabel proses pembayaran tertentu (ReguH/ReguP). Pengumpulan data Dicatat saat proses pembayaran (F110/RPCIPE) menghasilkan output Jenis peristiwa explicit | |||
| Gaji bruto dihitung | Keberhasilan menjalankan perhitungan skema penggajian bruto. Dalam pemrosesan standar, ini terjadi saat payroll driver menulis ke klaster PCL2. | ||
| Mengapa ini penting Tonggak penting yang menandakan data waktu dan tarif berhasil digabungkan. Keterlambatan pada tahap ini memengaruhi Efisiensi Pemrosesan Gaji Bruto ke Neto. Sumber data Klaster PCL2 (Hasil Penggajian), khususnya stempel waktu tabel direktori (RGDIR) untuk 'For-Period'. Pengumpulan data Dicatat saat nomor urutan baru ditulis ke klaster penggajian Jenis peristiwa explicit | |||
| Lembar waktu diajukan | Peristiwa saat karyawan atau manajer mengajukan data waktu untuk periode penggajian. Data ini diambil dari log permintaan alur kerja di modul Employee Central yang terhubung ke ECP. | ||
| Mengapa ini penting Menandai dimulainya tahap pengumpulan data. Keterlambatan pada tahap ini berdampak pada langkah berikutnya dan mempersempit waktu pemrosesan penggajian. Sumber data Tabel permintaan alur kerja Employee Central (WfRequest), dengan filter kategori Time Sheet atau Time Off. Pengumpulan data Dicatat saat status alur kerja berubah menjadi SUBMITTED Jenis peristiwa explicit | |||
| Lembar waktu disetujui | Persetujuan resmi atas data waktu oleh manajer atau administrator. Perubahan status ini memvalidasi data agar dapat dikirim ke mesin penggajian. | ||
| Mengapa ini penting Menghitung KPI Waktu Persetujuan Lembar Waktu. Hambatan pada tahap ini menandakan keterlambatan manajer atau hierarki persetujuan yang rumit. Sumber data Tabel permintaan alur kerja Employee Central (WfRequest), dengan filter status COMPLETED atau APPROVED. Pengumpulan data Dicatat saat status alur kerja berubah menjadi APPROVED Jenis peristiwa explicit | |||
| Pelaporan pajak selesai | Pembuatan file pelaporan pajak (misalnya, PU19 di AS) atau pengiriman ke penyedia pelaporan pajak pihak ketiga. | ||
| Mengapa ini penting Memastikan kepatuhan terhadap peraturan. Melacak langkah kepatuhan terakhir dalam urutan proses. Sumber data Log Tax Reporter Log Manager atau B2A (Business to Administration) Manager yang menunjukkan keberhasilan pembuatan file. Pengumpulan data Dicatat saat proses Tax Reporter berhasil diselesaikan Jenis peristiwa explicit | |||
| Pembayaran dilakukan | Penyelesaian proses pembayaran, biasanya dikonfirmasi oleh bank atau setelah proses pembayaran F110 selesai. | ||
| Mengapa ini penting Stempel waktu akhir utama untuk Tingkat Kepatuhan SLA. Menentukan apakah karyawan dibayar tepat waktu. Sumber data Tanggal dan waktu proses dari tabel Proses Pembayaran (REGUH), atau disimpulkan dari Tanggal Valuta. Pengumpulan data Dicatat saat status Proses Pembayaran diatur ke Posted/Complete Jenis peristiwa explicit | |||
| Proses penggajian dimulai | Pembuatan instans proses penggajian di Payroll Control Center (PCC). Ini menandai dimulainya siklus penggajian resmi untuk area penggajian tertentu. | ||
| Mengapa ini penting Menetapkan titik awal untuk Durasi Siklus Penggajian dari Awal hingga Akhir. Langkah ini menentukan cakupan karyawan yang akan diproses. Sumber data Tabel Payroll Control Center (misalnya, PYC_D_PY_PROC_INST) yang melacak pembuatan ID proses baru. Pengumpulan data Dicatat saat Instans Proses PCC dibuat Jenis peristiwa explicit | |||
| Simulasi penggajian dijalankan | Uji coba payroll driver untuk menemukan kesalahan tanpa menyimpan hasil ke database. Ini merupakan langkah penting dalam tahap validasi PCC. | ||
| Mengapa ini penting Penting untuk menghitung Tingkat Keberhasilan Perhitungan pada Upaya Pertama. Simulasi berulang menandakan masalah kualitas data. Sumber data Log Instans Langkah Payroll Control Center (PYC_D_STEP_INST) dengan jenis langkah Simulation. Pengumpulan data Dicatat saat status Langkah Simulasi PCC berubah menjadi COMPLETED Jenis peristiwa explicit | |||
| Data insentif diimpor | Pemasukan data gaji nonstandar, seperti bonus atau komisi, ke dalam sistem penggajian. Biasanya, data dimuat ke Infotype 0015 atau 2010. | ||
| Mengapa ini penting Impor yang terlambat menghambat perhitungan gaji bruto secara akurat. Analisis ini membantu mengoptimalkan Waktu Integrasi Data Insentif. Sumber data Log audit (PCL4 atau yang setara) yang menunjukkan pembuatan catatan di Infotype 0015 (Pembayaran Tambahan) atau 2010 (Informasi Remunerasi Karyawan). Pengumpulan data Bandingkan stempel waktu pembuatan Infotype dengan log tugas impor Jenis peristiwa inferred | |||
| Koreksi data dilakukan | Perubahan pada data induk atau data waktu sebagai tindak lanjut atas pengecualian audit. Aktivitas ini menunjukkan pengolahan ulang yang diperlukan untuk menghapus peringatan penggajian. | ||
| Mengapa ini penting Melacak tingkat koreksi manual dan pengolahan ulang. Aktivitas ini menjadi penyebab utama ketidakefisienan proses. Sumber data Disimpulkan dengan menggabungkan stempel waktu Peringatan PCC dan perubahan Log Audit (PCL4) berikutnya untuk karyawan yang sama, sebelum peringatan ditutup. Pengumpulan data Temukan pembaruan data induk yang dilakukan saat peringatan PCC masih aktif Jenis peristiwa inferred | |||
| Pemotongan tunjangan diterapkan | Langkah khusus dalam skema perhitungan untuk memproses aturan tunjangan. Langkah ini merupakan bagian dari proses utama, tetapi analisis terpisah dapat membantu menemukan kesalahan konfigurasi. | ||
| Mengapa ini penting Mendukung analisis Ketepatan Perhitungan Tunjangan dan Pajak. Berguna untuk menelusuri perbedaan dalam aturan pemotongan yang rumit. Sumber data Disimpulkan dari keberadaan pemisahan V0 dalam hasil penggajian atau entri log tertentu jika pencatatan terperinci diaktifkan, yang jarang dilakukan di lingkungan produksi. Pengumpulan data Terjadi bersamaan dengan perhitungan gaji bruto, tetapi dibedakan untuk keperluan analisis Jenis peristiwa inferred | |||
| Pengecualian audit ditandai | Pembuatan peringatan validasi oleh pemeriksaan kebijakan Payroll Control Center. Peringatan ini menunjukkan ketidakkonsistenan data atau risiko kepatuhan. | ||
| Mengapa ini penting Mendukung dasbor Frekuensi Pengecualian Audit dan Risiko Kepatuhan secara langsung. Volume yang tinggi menandakan masalah kualitas data pada tahap sebelumnya. Sumber data Tabel Peringatan Payroll Control Center (PYC_D_ALERT) yang menghubungkan kode kesalahan tertentu dengan catatan karyawan. Pengumpulan data Dicatat saat entri baru dibuat di tabel Peringatan PCC Jenis peristiwa explicit | |||
| Slip gaji diterbitkan | Tindakan menyediakan slip gaji kepada karyawan melalui layanan mandiri (ESS). | ||
| Mengapa ini penting Mengukur Kinerja SLA Penyampaian Slip Gaji. Keterlambatan pada tahap ini memicu tiket ke helpdesk. Sumber data Disimpulkan dari 'Print Date' atau konfigurasi tanggal ketersediaan dalam log layanan mashup Pay Slip. Pengumpulan data Hitung berdasarkan Tanggal Pembayaran + jeda konfigurasi sistem Jenis peristiwa inferred | |||
Panduan ekstraksi
Langkah
- Tentukan area penggajian dan parameter periode yang akan diekstrak. Data terutama diambil dari tabel Payroll Control Center (PCC) (PYC_*) dan direktori cluster penggajian (HRPY_RGDIR).
- Buka klien SQL atau SAP HANA Studio yang terhubung ke skema backend SAP SuccessFactors Employee Central Payroll (ECP).
- Jalankan skrip ekstraksi data yang tersedia di bagian Query. Skrip ini menggabungkan data dari tabel data induk, hasil penggajian, dan log audit PCC.
- Petakan aktivitas 'Time Sheet Submitted' dan 'Time Sheet Approved'. Karena ECP sering menerima data ini dari Employee Central, gunakan stempel waktu pembuatan dan perubahan terakhir di tabel PA2001 atau tabel antarmuka waktu khusus seperti PTREQ_HEADER jika tersedia.
- Ekstrak 'Incentive Data Imported' dengan membuat kueri untuk Infotype 0015 (Additional Payments) dan 2010 (Employee Remuneration Info) untuk catatan yang dibuat dalam periode pembayaran yang ditentukan.
- Ambil langkah proses PCC dari tabel PYC_D_PYP (Process Instances) dan PYC_D_BINST (Step Instances) untuk mencatat 'Payroll Process Initialized', 'Payroll Simulation Executed', 'Payroll Record Approved', dan 'Pay Slip Published'.
- Buat kueri pada tabel PYC_D_ALERT untuk menemukan peristiwa 'Audit Exception Flagged'. Catatan ini menghubungkan karyawan tertentu dengan kesalahan validasi yang ditemukan saat langkah pemeriksaan PCC.
- Buat peristiwa 'Data Correction Performed' dengan menggabungkan tabel SAP Change Document Header (CDHDR) dan Infotype terkait penggajian (misalnya, 0008, 0015, 2001) selama periode penggajian aktif.
- Gunakan tabel HRPY_RGDIR untuk menentukan waktu persis 'Gross Pay Calculated'. Buat peristiwa turunan 'Benefit Deductions Applied' dengan stempel waktu yang sama karena keduanya terjadi bersamaan saat skema dijalankan.
- Hubungkan data keuangan dari tabel REGUH (Settlement Data) dan REGUT (DME Administration) untuk mencatat 'Bank Transfer File Generated' dan 'Payment Executed'.
- Ubah kolom 'PayrollRecord' agar selalu mengikuti format [EmployeeID]-[Period]-[Year] sehingga ID kasus unik.
- Ekspor kumpulan data akhir sebagai file CSV. Pastikan header sesuai dengan atribut yang ditetapkan dalam kontrak, lalu unggah ke ProcessMind.
Konfigurasi
- Rentang waktu: Atur ekstraksi untuk mencakup periode bergulir selama 6 hingga 12 bulan terakhir. Proses penggajian berlangsung secara siklus, dan rentang ini mencakup variasi yang memadai antara proses reguler dan di luar siklus.
- Area penggajian (ABKRS): Filter berdasarkan area penggajian tertentu (misalnya, bulanan AS, mingguan DE) agar analisis membandingkan siklus proses yang serupa.
- Bahasa: Pastikan deskripsi Aktivitas dan Langkah Proses diekstrak dalam bahasa utama sistem (misalnya, SPRAS = 'E').
- ID proses PCC: Tentukan ID Definisi Proses (PYP_ID) yang digunakan dalam konfigurasi PCC untuk 'Monitoring', 'Production', dan 'Off-Cycle' agar langkah yang relevan dapat difilter.
- Mata uang: Samakan mata uang jumlah keuangan (GrossPayAmount) jika mengekstrak data untuk operasional penggajian global.
- Otorisasi: Pengguna basis data memerlukan akses baca ke tabel Human Resources (PA/PY), khususnya Cluster Directory (HRPY_RGDIR) dan tabel PCC (PYC_*).
Contoh kueri sql
/* Activity 1: Time Sheet Submitted */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Submitted' AS Activity,
T.BEGDA AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 2: Time Sheet Approved */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Approved' AS Activity,
T.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'False' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 3: Incentive Data Imported */
SELECT
CONCAT(I.PERNR, CONCAT('-', I.PABRJ, I.PABRP)) AS PayrollRecord,
'Incentive Data Imported' AS Activity,
I.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
I.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
I.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
I.BETRG AS GrossPayAmount,
I.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA0015 AS I
LEFT JOIN PA0001 AS O ON I.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE I.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 4: Payroll Process Initialized */
SELECT
CONCAT('N/A', CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payroll Process Initialized' AS Activity,
P.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
P.CREATED_BY AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_PYP AS P
WHERE P.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 5: Payroll Simulation Executed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Simulation Executed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Simulate%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 6: Audit Exception Flagged */
SELECT
CONCAT(A.RO_ID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Audit Exception Flagged' AS Activity,
A.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
'SYSTEM' AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_ALERT AS A
JOIN PYC_D_PYP AS P ON A.PYP_ID = P.ID
WHERE A.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 7: Data Correction Performed */
SELECT
CONCAT(C.OBJECTID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Data Correction Performed' AS Activity,
TO_TIMESTAMP(CONCAT(C.UDATE, C.UTIME)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
C.USERNAME AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM CDHDR AS C
JOIN HRPY_RGDIR AS P ON C.OBJECTID = P.PERNR
WHERE C.TCODE IN ('PA30', 'PA40') AND C.UDATE BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 8: Gross Pay Calculated */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Gross Pay Calculated' AS Activity,
TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 9: Benefit Deductions Applied */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Benefit Deductions Applied' AS Activity,
ADD_SECONDS(TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)), 1) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 10: Payroll Record Approved */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Record Approved' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Check%' AND S.STATUS = 'OK' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 11: Bank Transfer File Generated */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Bank Transfer File Generated' AS Activity,
TO_TIMESTAMP(CONCAT(T.TSDAT, T.TSTIM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.USRID AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUT AS T
JOIN REGUH AS H ON T.LAUFD = H.LAUFD AND T.LAUFI = H.LAUFI
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.TSDAT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 12: Payment Executed */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payment Executed' AS Activity,
TO_TIMESTAMP(CONCAT(H.LAUFD, '120000')) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
H.RBETR AS GrossPayAmount,
H.ZNME1 AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUH AS H
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE H.LAUFD BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 13: Pay Slip Published */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Pay Slip Published' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Remuneration%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 14: Tax Filing Completed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Tax Filing Completed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Tax%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]' Langkah
- Buka ABAP Editor: Masuk ke sistem SAP SuccessFactors Employee Central Payroll (ECP) melalui SAP GUI. Buka kode transaksi SE38 (ABAP Editor).
- Buat program: Masukkan nama untuk program baru, misalnya
Z_PROCESSMINING_PAYROLL_EXT, lalu klik Buat. Pilih Executable program sebagai jenisnya, lalu Simpan sebagai Local Object (Package $TMP) untuk keperluan pengujian. - Terapkan kode: Salin seluruh kode ABAP dari bagian Kueri di bawah, lalu tempelkan ke editor untuk menggantikan kode bawaan yang ada.
- Periksa dan aktifkan: Klik tombol Periksa (Ctrl+F2) untuk memvalidasi sintaks. Setelah tidak ada kesalahan, klik Aktifkan (Ctrl+F3).
- Jalankan ekstraksi: Tekan Direct Processing (F8) untuk menjalankan laporan.
- Atur pilihan: Di layar pilihan, masukkan
Payroll Area(misalnya US, 99),Date Rangeyang valid (misalnya 3 bulan terakhir), dan, jika perlu, filter berdasarkanPersonnel Numbers(PERNR) tertentu untuk pengujian. - Jalankan ekstraksi: Jalankan laporan. Sistem akan memproses tabel HRPY_RGDIR, CATSDB, PA0015, dan REGUH untuk menyusun log peristiwa.
- Tinjau hasil: Laporan menggunakan
cl_demo_outputuntuk menampilkan hasil dalam tampilan kisi langsung di layar agar dapat segera divalidasi. - Ekspor data: Klik kanan kisi hasil, pilih Spreadsheet, lalu simpan file dalam format CSV atau Excel.
- Siapkan untuk ProcessMind: Buka file yang diekspor. Pastikan kolom
EventTimestampmenggunakan formatYYYY-MM-DD HH:MM:SS. Pastikan kolomPayrollRecordmengidentifikasi setiap kasus secara unik, biasanya dengan PERNR-SEQNR. - Unggah: Impor file CSV yang sudah dibersihkan ke ProcessMind, lalu petakan kolom ke ID kasus, Aktivitas, Stempel waktu, dan Atribut.
Konfigurasi
- Rentang tanggal: Sebaiknya ekstrak data dalam rentang 3 hingga 6 bulan agar tidak terjadi kehabisan waktu memori di lingkungan runtime ABAP.
- Area penggajian: Ini filter penting (Tabel T549A). Ekstrak satu area penggajian setiap kali (misalnya, bulanan atau dua mingguan) agar proses tetap konsisten.
- Tabel konfigurasi: Skrip menggunakan
HRPY_RGDIR(Payroll Directory) sebagai sumber utama. Pastikan pengguna Anda memiliki otorisasiS_TABU_DISuntuk tabel ini. - Sumber data waktu: Skrip mengasumsikan data lembar waktu tersimpan di
CATSDB. Jika Anda menggunakan pencatat waktu pihak ketiga yang terhubung langsung keIT2001atauIT2010tanpa CATS, aktivitas lembar waktu mungkin tidak menghasilkan data dan skrip perlu disesuaikan. - Data pembayaran: Skrip menghubungkan proses penggajian dengan proses pembayaran melalui
REGUH(Settlement Data). Pastikan proses pembayaranF110sudah dijalankan untuk periode yang dipilih agar peristiwa pembayaran muncul. - Kinerja: Untuk sistem dengan volume tinggi (lebih dari 100.000 karyawan), ganti logika
SELECT *dengan pengambilan data berbasis kursor atau jalankan dalam mode latar belakang (F9).
Contoh kueri abap
REPORT Z_PROCESSMINING_PAYROLL_EXT.
TABLES: pernr, hrpy_rgdir, catsdb, pa0015, reguh.
TYPES: BEGIN OF ty_event_log,
payroll_record TYPE string,
activity TYPE string,
event_timestamp TYPE string,
source_system TYPE string,
last_data_update TYPE string,
payroll_area TYPE abkrs,
employee_type TYPE persg,
pay_period TYPE pabrj,
pay_cycle_freq TYPE string,
gross_pay_amount TYPE string,
payroll_specialist TYPE usnam,
cost_center TYPE kostl,
is_automated TYPE string,
END OF ty_event_log.
DATA: gt_output TYPE TABLE OF ty_event_log,
gs_output TYPE ty_event_log,
gt_rgdir TYPE TABLE OF hrpy_rgdir,
gs_rgdir TYPE hrpy_rgdir,
gt_cats TYPE TABLE OF catsdb,
gs_cats TYPE catsdb,
gt_p0015 TYPE TABLE OF pa0015,
gs_p0015 TYPE pa0015,
gt_reguh TYPE TABLE OF reguh,
gs_reguh TYPE reguh,
gv_tstamp TYPE timestamp,
gv_date TYPE d,
gv_time TYPE t,
gv_pernr TYPE pernr_d.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_pernr FOR pernr-pernr,
s_date FOR sy-datum OBLIGATORY.
PARAMETERS: p_abkrs TYPE abkrs OBLIGATORY DEFAULT '99'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
" 1. Fetch Payroll Directory (The Core Process Driver)
SELECT * FROM hrpy_rgdir INTO TABLE gt_rgdir
WHERE pernr IN s_pernr
AND fpper LIKE '%'
AND cdate IN s_date.
IF gt_rgdir IS INITIAL.
WRITE: / 'No payroll results found for selection.'.
EXIT.
ENDIF.
SORT gt_rgdir BY pernr seqnr.
" Loop through Payroll Directory to build events
LOOP AT gt_rgdir INTO gs_rgdir.
CLEAR gs_output.
CONCATENATE gs_rgdir-pernr '-' gs_rgdir-seqnr INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-last_data_update = sy-datum.
gs_output-payroll_area = p_abkrs.
gs_output-pay_period = gs_rgdir-fpper.
gs_output-payroll_specialist = gs_rgdir-uname.
" --- Activity: Payroll Process Initialized ---
" Derived from the run date start
gs_output-activity = 'Payroll Process Initialized'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Simulation Executed ---
IF gs_rgdir-srtza = 'S'. " S = Simulation
gs_output-activity = 'Payroll Simulation Executed'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Audit Exception Flagged ---
IF gs_rgdir-void IS NOT INITIAL. " Void indicator means rejected/exception
gs_output-activity = 'Audit Exception Flagged'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Data Correction Performed ---
" Inferred: If voided, a correction usually follows immediately
gs_output-activity = 'Data Correction Performed'.
" Add 1 hour to simulate reaction time
DATA: lv_corr_time TYPE t.
lv_corr_time = gs_rgdir-ctime + 3600.
CONCATENATE gs_rgdir-cdate lv_corr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Gross Pay Calculated ---
IF gs_rgdir-srtza = 'A'. " A = Actual Result
gs_output-activity = 'Gross Pay Calculated'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-gross_pay_amount = '1000.00'. " Placeholder: Cluster read required for actual amount
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Benefit Deductions Applied ---
" Logically occurs immediately after gross calc
gs_output-activity = 'Benefit Deductions Applied'.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Record Approved ---
" Inferred from successful write of 'A' record
gs_output-activity = 'Payroll Record Approved'.
DATA: lv_appr_time TYPE t.
lv_appr_time = gs_rgdir-ctime + 60. " +1 minute
CONCATENATE gs_rgdir-cdate lv_appr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
" --- Activity: Pay Slip Published ---
" Available via ESS usually next day
gs_output-activity = 'Pay Slip Published'.
DATA: lv_slip_date TYPE d.
lv_slip_date = gs_rgdir-cdate + 1.
CONCATENATE lv_slip_date '080000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Tax Filing Completed ---
" End of period logic
gs_output-activity = 'Tax Filing Completed'.
DATA: lv_tax_date TYPE d.
lv_tax_date = gs_rgdir-paydt.
CONCATENATE lv_tax_date '235959' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 2. Fetch Time Sheet Data (CATSDB)
" Linking to Payroll Record loosely via Period/Date
SELECT * FROM catsdb INTO TABLE gt_cats
WHERE pernr IN s_pernr
AND workdate IN s_date.
LOOP AT gt_cats INTO gs_cats.
CLEAR gs_output.
CONCATENATE gs_cats-pernr '-00000' INTO gs_output-payroll_record. " Generic mapping
gs_output-payroll_area = p_abkrs.
gs_output-source_system = 'SAP_ECP'.
" --- Activity: Time Sheet Submitted ---
IF gs_cats-status = '20' OR gs_cats-status = '30'.
gs_output-activity = 'Time Sheet Submitted'.
CONCATENATE gs_cats-laudate gs_cats-lautime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Time Sheet Approved ---
IF gs_cats-status = '30'. " 30 = Approved
gs_output-activity = 'Time Sheet Approved'.
CONCATENATE gs_cats-apdat gs_cats-aptime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 3. Fetch Incentive Data (Infotype 0015)
SELECT * FROM pa0015 INTO TABLE gt_p0015
WHERE pernr IN s_pernr
AND begda IN s_date.
LOOP AT gt_p0015 INTO gs_p0015.
CLEAR gs_output.
CONCATENATE gs_p0015-pernr '-00000' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Incentive Data Imported ---
gs_output-activity = 'Incentive Data Imported'.
CONCATENATE gs_p0015-aedtm '120000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" 4. Fetch Payment Data (REGUH)
SELECT * FROM reguh INTO TABLE gt_reguh
WHERE zaldt IN s_date.
LOOP AT gt_reguh INTO gs_reguh.
" Filter for our PERNRs roughly (REGUH does not always have PERNR directly indexable easily in all views)
" For simulation, we map broadly or require join logic. Here assuming simple extraction.
CLEAR gs_output.
CONCATENATE gs_reguh-pernr '-99999' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Bank Transfer File Generated ---
gs_output-activity = 'Bank Transfer File Generated'.
CONCATENATE gs_reguh-laufd gs_reguh-cpzut INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payment Executed ---
gs_output-activity = 'Payment Executed'.
CONCATENATE gs_reguh-zaldt '100000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" Output Display
cl_demo_output=>display( gt_output ). Siap memulai?
Mulai tingkatkan efisiensi proses penggajian dengan menggunakan templat ini saat mengekstrak data. Pendekatan terstruktur ini membantu Anda mengubah data mentah menjadi wawasan yang dapat ditindaklanjuti dengan cepat.
Tingkatkan kinerja pemrosesan penggajian Anda sekarang
Bergabunglah dengan perusahaan yang kini memangkas waktu siklus penggajian hingga 30%.
Tidak perlu kartu kredit. Penyiapan hanya beberapa menit.