Templat data pemrosesan penggajian Anda
Templat data pemrosesan penggajian Anda
- Kolom data yang dioptimalkan untuk analisis penggajian
- Pelacakan aktivitas menyeluruh untuk pemetaan siklus
- Panduan ekstraksi terperinci untuk Oracle HCM Cloud Payroll
Atribut pemrosesan penggajian
| Nama | Deskripsi | ||
|---|---|---|---|
| Catatan penggajian PayrollRecord | Pengenal unik yang mewakili seorang karyawan dalam periode penggajian tertentu. | ||
| Deskripsi Catatan penggajian berfungsi sebagai pengenal kasus utama untuk analisis process mining. Catatan ini berupa gabungan atau kunci unik yang menyatukan pengenal penugasan karyawan dan pengenal periode penggajian. Atribut ini mengelompokkan semua aktivitas pembayaran untuk satu karyawan dalam satu siklus, mulai dari pengiriman lembar waktu hingga transfer bank dan pelaporan pajak. Dengan begitu, analisis dapat membedakan pembayaran kepada karyawan yang sama pada Januari dan Februari. Mengapa ini penting Berfungsi sebagai ID Kasus yang menggabungkan berbagai peristiwa menjadi satu instans proses untuk dianalisis. Sumber data Dibuat dari PAY_ASSIGNMENT_ACTIONS atau gabungan Nomor Personel dan Nama Periode Penggajian di Oracle HCM. Contoh EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Nama aktivitas ActivityName | Langkah atau peristiwa tertentu dalam siklus penggajian. | ||
| Deskripsi Atribut ini mencatat nama peristiwa dalam proses penggajian. Contohnya, 'Lembar waktu dikirim', 'Perhitungan penggajian dimulai', dan 'Pembayaran diproses'. Atribut ini menjadi dimensi utama untuk menemukan proses dan menganalisis variasinya. Di Oracle HCM Cloud, nilainya sering diturunkan dari Action Type atau Action Status dalam tabel tindakan penggajian. Mengapa ini penting Atribut ini menjelaskan apa yang terjadi dalam proses, sehingga peta proses dapat direkonstruksi. Sumber data Ditentukan dari kode ACTION_TYPE di PAY_PAYROLL_ACTIONS atau perubahan status dalam jejak audit. Contoh Perhitungan penggajian dimulaiLembar waktu disetujuiTransfer bank dibuatPengecualian audit ditandai | |||
| Pembaruan data terakhir LastDataUpdate | Waktu saat catatan terakhir diubah di database sumber. | ||
| Deskripsi Menunjukkan seberapa baru data yang digunakan untuk analisis. Ini berbeda dari stempel waktu peristiwa, karena menunjukkan kapan baris di database terakhir kali diperbarui oleh proses ETL atau pembaruan sistem. Informasi ini digunakan untuk memastikan data masih mutakhir dan menelusuri masalah keterlambatan ekstraksi. Mengapa ini penting Membantu analis mengetahui apakah data yang mereka lihat adalah data terkini atau sudah usang. Sumber data Kolom LAST_UPDATE_DATE yang umum ditemukan di hampir semua tabel Oracle HCM. Contoh 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Sistem sumber SourceSystem | Nama sistem tempat peristiwa berasal. | ||
| Deskripsi Menunjukkan perangkat lunak atau modul yang menghasilkan titik data. Untuk proses ini, nilai utamanya adalah 'Oracle HCM Cloud Payroll'. Namun, dalam lanskap sistem yang kompleks, atribut ini dapat membedakan mesin penggajian inti, modul waktu dan tenaga kerja, atau antarmuka perbankan eksternal. Mengapa ini penting Memberikan konteks asal-usul data, terutama saat mengintegrasikan data dari subsistem pencatatan waktu atau perbankan. Sumber data Diisi dengan nilai tetap saat ekstraksi atau diturunkan dari ID antarmuka. Contoh Penggajian Oracle HCM CloudOracle Time and LaborAntarmuka perbankan eksternal | |||
| Stempel waktu peristiwa EventTimestamp | Tanggal dan waktu persis saat aktivitas terjadi. | ||
| Deskripsi Mencatat waktu persis terjadinya aktivitas. Data ini penting untuk menghitung durasi dan waktu tunggu, serta menemukan hambatan. Untuk langkah otomatis, gunakan waktu eksekusi sistem. Untuk langkah manual seperti persetujuan, gunakan stempel waktu tindakan pengguna yang tercatat di log transaksi. Mengapa ini penting Penting untuk mengurutkan peristiwa secara kronologis dan menghitung semua KPI berbasis waktu. Sumber data Kolom CREATION_DATE atau ACTION_DATE di tabel transaksi terkait, seperti PAY_ACTION_INFORMATION. Contoh 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Apakah koreksi dilakukan secara manual IsManualCorrection | Penanda yang menunjukkan apakah aktivitas memerlukan campur tangan manual. | ||
| Deskripsi Penanda boolean yang bernilai true untuk aktivitas seperti 'Koreksi data dilakukan' atau 'Catatan penggajian dikoreksi'. Penanda ini digunakan untuk menghitung KPI 'Tingkat koreksi data manual' dan 'Tingkat akurasi penggajian pada proses pertama'. Mengapa ini penting Membedakan pemrosesan otomatis dari pekerjaan ulang manual. Sumber data Ditentukan dari nama aktivitas atau jenis tindakan tertentu yang menunjukkan penyesuaian, misalnya QuickPay atau penyesuaian saldo. Contoh truefalse | |||
| Jumlah gaji bruto GrossPayAmount | Total gaji bruto yang dihitung untuk periode tersebut. | ||
| Deskripsi Menunjukkan nilai uang dari gaji bruto yang dihitung selama siklus penggajian. Data ini digunakan dalam analisis 'Akurasi perhitungan pajak dan tunjangan' serta 'Integrasi insentif'. Analis dapat menggunakannya untuk melihat hubungan antara pembayaran bernilai tinggi, waktu pemrosesan, dan tingkat kesalahan. Mengapa ini penting Memberikan konteks keuangan untuk analisis process mining. Sumber data Tabel PAY_RUN_RESULT_VALUES, yang diagregasi untuk saldo gaji bruto. Contoh 5000.002350.5010000.00 | |||
| Kelompok data legislatif LegislativeDataGroup | Membagi data penggajian berdasarkan negara atau lingkungan regulasi. | ||
| Deskripsi Di Oracle HCM Cloud, Legislative Data Group (LDG) membagi data penggajian dan data terkait. Biasanya, LDG mewakili suatu negara atau wilayah dengan peraturan tersendiri. Atribut ini penting untuk memfilter analisis proses berdasarkan negara, misalnya penggajian AS dan Inggris. Atribut ini juga sering dipetakan ke atribut umum Negara. Mengapa ini penting Aturan kepatuhan dan alur proses sering berbeda jauh di setiap yurisdiksi. Sumber data Tabel PAY_ALL_PAYROLLS_F yang digabungkan dengan definisi Legislative Data Group. Contoh Kelompok data legislatif ASLDG InggrisPenggajian Prancis | |||
| Kelompok pembayaran PayGroup | Pengelompokan karyawan untuk pemrosesan penggajian. | ||
| Deskripsi Menunjukkan definisi penggajian yang mencakup karyawan, misalnya 'Manufaktur mingguan' atau 'Korporat bulanan'. Atribut ini menjadi dasar bagi hampir semua dasbor dan memungkinkan perbandingan kinerja antar siklus serta frekuensi penggajian. Mengapa ini penting Objek konfigurasi utama yang mengatur jadwal penggajian. Sumber data Tabel PAY_ALL_PAYROLLS_F (Nama penggajian). Contoh Dua kali sebulan ASBulanan InggrisSerikat pekerja mingguan | |||
| Nama departemen DepartmentName | Unit organisasi tempat karyawan bekerja. | ||
| Deskripsi Menunjukkan departemen yang bertanggung jawab atas karyawan dalam catatan penggajian. Atribut ini penting untuk dasbor 'Efisiensi persetujuan lembar waktu'. Dengan mengelompokkan data berdasarkan departemen, analis dapat mengetahui unit bisnis mana yang sering terlambat menyetujui lembar waktu sehingga proses penggajian ikut tertunda. Mengapa ini penting Membantu menganalisis akar penyebab keterlambatan yang terkait dengan persetujuan manajer. Sumber data Ditentukan dari catatan penugasan karyawan yang berlaku saat proses penggajian berlangsung. Contoh Penjualan Amerika UtaraTeknikSumber daya manusiaLogistik | |||
| Nama periode penggajian PayrollPeriodName | Nama khusus untuk rentang waktu proses penggajian. | ||
| Deskripsi Menunjukkan siklus tertentu, seperti 'Bulanan Januari 2024' atau 'Periode mingguan 42'. Informasi ini penting untuk 'Pemantau kepatuhan tenggat SLA'. Informasi ini membantu mengelompokkan kasus setiap karyawan ke dalam proses penggajian terkait untuk pelaporan agregat. Mengapa ini penting Penting untuk analisis di tingkat batch dan pemantauan SLA. Sumber data Tabel PAY_TIME_PERIODS atau nama periode waktu pada definisi penggajian. Contoh Bulanan 10 2023Mingguan 42 2023Proses bonus Desember 2023 | |||
| Pengguna pemroses ProcessingUser | ID pengguna atau nama orang yang melakukan aktivitas. | ||
| Deskripsi Mencatat identitas spesialis penggajian, manajer, atau akun sistem yang memicu aktivitas. Informasi ini mendukung dasbor 'Distribusi beban kerja spesialis penggajian'. Informasi ini membantu menemukan hambatan dalam pemanfaatan sumber daya dan kebutuhan pelatihan di tim penggajian. Mengapa ini penting Mendukung analisis produktivitas sumber daya dan pemerataan beban kerja. Sumber data Kolom CREATED_BY atau LAST_UPDATED_BY di tabel transaksi. Contoh sysadminj.smithpayroll_batch_userm.doe | |||
| Tenggat pemrosesan SLA SlaProcessingDeadline | Tanggal dan waktu batas pembayaran harus dilaksanakan. | ||
| Deskripsi Mencatat tenggat pembayaran gaji yang ditetapkan dalam kontrak atau peraturan. Atribut ini dibandingkan dengan stempel waktu 'Pembayaran dilaksanakan'. Atribut ini digunakan untuk menghitung KPI 'Kepatuhan terhadap tenggat pemrosesan SLA' dan menemukan kelompok pembayaran yang berisiko. Mengapa ini penting Tolok ukur utama untuk menilai keberhasilan atau kegagalan proses dari segi ketepatan waktu. Sumber data Biasanya berupa kolom yang dikonfigurasi (DFF) pada definisi penggajian atau dihitung dari tanggal cek dikurangi X hari. Contoh 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Jenis karyawan EmployeeType | Pengelompokan karyawan, misalnya bergaji tetap, dibayar per jam, atau kontraktor. | ||
| Deskripsi Mengelompokkan catatan karyawan. Atribut ini penting untuk dasbor 'Keterlambatan publikasi slip gaji digital', karena aturan atau tingkat urgensi pemrosesan dapat berbeda menurut jenis karyawan. Atribut ini membantu membandingkan kinerja proses di berbagai segmen tenaga kerja. Mengapa ini penting Jenis karyawan yang berbeda sering mengikuti variasi proses yang berbeda. Sumber data Kategori penugasan atau ketentuan kerja di PER_ALL_ASSIGNMENTS_M. Contoh Karyawan tetap penuh waktuKaryawan per jam paruh waktuKontraktorEksekutif | |||
| Jenis pengecualian audit AuditExceptionType | Kategori kesalahan atau peringatan yang ditemukan saat audit. | ||
| Deskripsi Mengelompokkan masalah tertentu yang ditemukan dalam aktivitas 'Pengecualian audit ditandai', misalnya 'Gaji bersih negatif' atau 'ID pajak tidak ada'. Atribut ini mendukung dasbor 'Analisis pengecualian dan koreksi audit' dengan menunjukkan masalah kualitas data yang sering terjadi. Mengapa ini penting Penting untuk menganalisis akar penyebab pengulangan pekerjaan. Sumber data Kolom Message atau Error Code di log proses penggajian atau laporan pengecualian. Contoh Gaji bersih negatifSSN tidak adaDetail bank tidak validBatas lembur terlampaui | |||
| Jumlah iterasi pratinjau PreviewIterationCount | Berapa kali hasil ditinjau sebelum ditetapkan. | ||
| Deskripsi Penghitung bertambah setiap kali aktivitas 'Hasil penggajian ditinjau' terjadi pada kasus yang sama. Nilai ini menjadi ukuran langsung untuk dasbor 'Pelacak iterasi pratinjau penggajian' dan menunjukkan banyaknya pekerjaan ulang atau keraguan sebelum persetujuan. Mengapa ini penting Mengukur efisiensi tahap validasi. Sumber data Dihitung saat transformasi data dengan menghitung kemunculan aktivitas tertentu untuk setiap ID kasus. Contoh 1350 | |||
| Penanda perubahan retroaktif RetroactiveChangeFlag | Menunjukkan apakah proses penggajian mencakup pembayaran retroaktif. | ||
| Deskripsi Penanda boolean yang bernilai true jika elemen 'Retropay' diproses dalam catatan ini. Informasi ini membantu menjelaskan waktu pemrosesan yang lebih lama atau pengecualian audit dalam 'Perbandingan variasi jalur proses'. Perubahan retroaktif sering memicu penghitungan ulang yang rumit untuk periode sebelumnya. Mengapa ini penting Menandai kasus rumit yang memang memerlukan waktu pemrosesan lebih lama. Sumber data Adanya entri elemen 'Retropay' di PAY_ELEMENT_ENTRIES. Contoh truefalse | |||
| Status SLA SlaStatus | Status kategoris kepatuhan SLA (terpenuhi/terlewat). | ||
| Deskripsi Ditentukan dengan membandingkan stempel waktu 'Pembayaran dilaksanakan' dengan 'Tenggat pemrosesan SLA'. Nilainya dapat berupa 'Tepat waktu', 'Berisiko', atau 'Terlambat'. Pengelompokan ini menyederhanakan pelaporan untuk 'Pemantau kepatuhan tenggat SLA' dengan membagi kasus ke dalam kategori kinerja. Mengapa ini penting Menyederhanakan perbandingan waktu yang rumit menjadi kategori yang dapat ditindaklanjuti. Sumber data Dihitung dengan membandingkan stempel waktu peristiwa dengan tenggat SLA. Contoh TerpenuhiTerlambatHampir terlambat | |||
| Yurisdiksi pajak TaxJurisdiction | Negara bagian, provinsi, atau wilayah setempat yang menjadi lokasi pelaporan pajak. | ||
| Deskripsi Menunjukkan otoritas pajak utama yang terkait dengan catatan penggajian, misalnya 'CA' untuk California atau 'NY' untuk New York. Informasi ini mendukung dasbor 'Durasi pemrosesan kepatuhan pajak'. Informasi ini membantu mengetahui apakah proses penghitungan dan pelaporan pajak di wilayah tertentu lebih rumit atau lebih lambat. Mengapa ini penting Membandingkan kinerja berdasarkan tingkat kerumitan regulasi. Sumber data Ditentukan dari kartu pajak karyawan atau alamat lokasi kerja. Contoh CA-CaliforniaNY-New YorkTX-TexasFederal-AS | |||
Aktivitas pemrosesan penggajian
| Aktivitas | Deskripsi | ||
|---|---|---|---|
| Pembayaran diproses | Konfirmasi akhir bahwa pembayaran telah diproses. Di Oracle, peristiwa ini berkaitan dengan penyelesaian alur pembayaran atau rekonsiliasi di Cash Management. | ||
| Mengapa ini penting Stempel waktu utama untuk kepatuhan SLA. Digunakan untuk memastikan apakah karyawan dibayar tepat waktu. Sumber data Dapat disimpulkan dari Effective Date tindakan Bank Transfer, atau dicatat secara langsung melalui log rekonsiliasi Cash Management (CE_STATEMENT_LINES). Pengumpulan data Dicatat berdasarkan tanggal efektif tindakan pembayaran atau peristiwa rekonsiliasi Jenis peristiwa explicit | |||
| Perhitungan penggajian dijalankan | Penyelesaian proses Calculate Payroll, termasuk perhitungan gaji bruto hingga bersih. Peristiwa ini menunjukkan bahwa penghasilan, potongan, dan pajak telah dihitung untuk penugasan tersebut. | ||
| Mengapa ini penting Tonggak penting yang menandakan data siap divalidasi. Durasi yang panjang pada tahap ini dapat menunjukkan masalah kinerja sistem atau fast formula yang kompleks. Sumber data Gabungkan PAY_PAYROLL_REL_ACTIONS dengan PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai R atau Q dan ACTION_STATUS berubah menjadi C (Complete). Pengumpulan data Dicatat saat status tindakan Payroll Run berubah menjadi Complete Jenis peristiwa explicit | |||
| Perhitungan penggajian dimulai | Dimulainya proses utama penggajian untuk definisi dan periode penggajian tertentu. Tahap ini menandai peralihan dari pengumpulan data ke pemrosesan. | ||
| Mengapa ini penting Menandai awal periode pemrosesan intensif. Digunakan untuk menghitung total waktu siklus pelaksanaan teknis penggajian. Sumber data Periksa tabel PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai R (Run) atau Q (QuickPay) dan ACTION_STATUS ditandai sebagai started, atau simpulkan dari tanggal pembuatan. Pengumpulan data Dicatat saat catatan PAY_PAYROLL_ACTIONS dibuat Jenis peristiwa explicit | |||
| Prepayments dihitung | Pelaksanaan proses Prepayments yang menyalurkan gaji bersih ke metode pembayaran pilihan karyawan, seperti cek atau EFT. Tahap ini memastikan jumlah yang dihitung benar-benar dapat dibayarkan. | ||
| Mengapa ini penting Penghubung antara perhitungan dan pencairan. Kegagalan pada tahap ini biasanya menunjukkan detail bank yang belum diisi atau metode pembayaran yang tidak valid. Sumber data Periksa PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai P (Prepayments) dan statusnya Complete. Pengumpulan data Dicatat saat tindakan Prepayments selesai Jenis peristiwa explicit | |||
| Transfer bank dibuat | Pembuatan file EFT (Electronic Funds Transfer) atau keluaran pembayaran serupa. Ini adalah langkah teknis untuk membuat file instruksi bagi bank. | ||
| Mengapa ini penting Mengukur waktu siklus pembuatan file pembayaran. Keterlambatan pada tahap ini dapat menyebabkan batas waktu pemrosesan bank terlewat. Sumber data Periksa PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai M (Magnetic Tape), E (EFT), atau C (Check Writer). Pengumpulan data Dicatat saat tindakan EFT/Check selesai Jenis peristiwa explicit | |||
| Biaya ditransfer | Pemindahan hasil perhitungan biaya penggajian ke General Ledger. Tahap ini menutup siklus penggajian dari sisi akuntansi keuangan. | ||
| Mengapa ini penting Memastikan kepatuhan keuangan dan pencatatan biaya tenaga kerja yang akurat. Keterlambatan menghambat tim Finance menutup pembukuan. Sumber data Periksa PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai T (Transfer to GL) dan statusnya Complete. Pengumpulan data Dicatat saat proses Transfer to GL selesai Jenis peristiwa explicit | |||
| Catatan penggajian dikoreksi | Pembaruan manual pada entri elemen atau data penugasan setelah proses penggajian awal, tetapi sebelum finalisasi. Aktivitas ini menunjukkan pekerjaan ulang untuk memperbaiki kesalahan atau pengecualian. | ||
| Mengapa ini penting Menunjukkan inefisiensi proses dan masalah kualitas data. Mengurangi aktivitas ini penting untuk meningkatkan tingkat akurasi penggajian pada proses pertama. Sumber data Disimpulkan dengan mencari pembaruan pada PAY_ELEMENT_ENTRIES_F yang tanggal Last Update-nya berada di antara tanggal Payroll Run awal dan tanggal Prepayments. Pengumpulan data Bandingkan stempel waktu pembaruan entri elemen dengan stempel waktu Payroll Run Jenis peristiwa inferred | |||
| Data insentif diimpor | Pembuatan entri elemen untuk pembayaran variabel, seperti bonus atau komisi, melalui batch loader atau impor HDL. Peristiwa ini menandai integrasi data kompensasi eksternal ke dalam proses penggajian. | ||
| Mengapa ini penting Memantau kecepatan integrasi pembayaran variabel. Impor yang terlambat sering memaksa pemrosesan penggajian tambahan atau koreksi manual. Sumber data Periksa PAY_BATCH_HEADERS untuk mengetahui penyelesaian impor, atau lacak pembuatan PAY_ELEMENT_ENTRIES_F dengan referensi sistem sumber tertentu. Pengumpulan data Dicatat saat proses batch entri elemen berhasil diselesaikan Jenis peristiwa explicit | |||
| Hasil arsip dibuat | Penyelesaian proses Archive Periodic Payroll Results. Rekam ini mengunci data untuk pelaporan dan pembuatan slip gaji. | ||
| Mengapa ini penting Prasyarat teknis untuk membuat slip gaji dan laporan wajib. Tahap ini memastikan data sudah final. Sumber data Periksa PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai X (Archive) dan statusnya Complete. Pengumpulan data Dicatat saat tindakan Archive selesai Jenis peristiwa explicit | |||
| Lembar waktu dikirim | Peristiwa awal saat karyawan atau manajer mengirim data waktu dan tenaga kerja untuk diproses. Di Oracle HCM, peristiwa ini tercatat ketika status lembar waktu berubah menjadi Submitted di modul Time and Labor. | ||
| Mengapa ini penting Menandai masuknya data awal ke dalam alur penggajian. Keterlambatan pada tahap ini berdampak pada tahap berikutnya dan mempersempit waktu yang tersedia bagi spesialis penggajian untuk memvalidasi perhitungan. Sumber data Periksa tabel HWM_TM_REC_GRP_DTLS atau tampilan HXT_TIMECARDS saat status berubah menjadi SUBMITTED. Gunakan stempel waktu pengiriman. Pengumpulan data Dicatat saat status di Time and Labor berubah menjadi SUBMITTED Jenis peristiwa explicit | |||
| Lembar waktu disetujui | Konfirmasi bahwa data waktu yang dikirim telah ditinjau dan disetujui oleh manajer. Perubahan status ini memicu pemindahan data ke entri elemen penggajian. | ||
| Mengapa ini penting Penting untuk mengukur waktu tunggu persetujuan manajer. Keterlambatan pada tahap ini menjadi penyebab utama penyesuaian pembayaran retroaktif pada periode berikutnya. Sumber data Periksa tabel HWM_TM_REC_GRP_DTLS atau tampilan HXT_TIMECARDS saat status berubah menjadi APPROVED. Bandingkan stempel waktu persetujuan dengan stempel waktu pengiriman. Pengumpulan data Dicatat saat status di Time and Labor berubah menjadi APPROVED Jenis peristiwa explicit | |||
| Payroll Run disetujui | Persetujuan resmi atas register atau alur penggajian di Payroll Dashboard. Biasanya dilakukan setelah laporan validasi ditinjau dan sebelum file bank dibuat. | ||
| Mengapa ini penting Menandai persetujuan manajer. Waktu antara perhitungan dan persetujuan menunjukkan durasi pemeriksaan. Sumber data Periksa perubahan status di PAY_REQ_FLOW_INSTANCES atau penyelesaian tugas tertentu dalam Payroll Flow Pattern yang ditetapkan. Pengumpulan data Dicatat saat status Flow Instance berubah menjadi Completed/Approved Jenis peristiwa explicit | |||
| Pelaporan pajak selesai | Pembuatan file pajak wajib, misalnya Third Party Quarterly Tax File. Tahap ini memastikan kepatuhan terhadap peraturan untuk periode penggajian tersebut. | ||
| Mengapa ini penting Penting untuk KPI durasi pemrosesan kepatuhan pajak. Kegagalan pada tahap ini dapat berujung pada denda. Sumber data Periksa PAY_PAYROLL_ACTIONS untuk tindakan kelompok data legislatif tertentu yang terkait dengan pelaporan pajak, misalnya US Third Party Tax Filing. Pengumpulan data Dicatat saat alur pelaporan pajak tertentu selesai Jenis peristiwa explicit | |||
| Pengecualian audit ditandai | Pencatatan pesan kesalahan atau peringatan selama perhitungan atau validasi penggajian. Peristiwa ini mencatat kegagalan validasi tertentu yang memerlukan penanganan manusia. | ||
| Mengapa ini penting Penting untuk menemukan masalah kualitas data. Banyaknya pengecualian meningkatkan beban kerja manual dan risiko pelanggaran SLA. Sumber data Periksa tabel PAY_MESSAGE_LINES yang terhubung ke PAY_PAYROLL_REL_ACTION_ID terkait. Tabel ini menyimpan kesalahan dan peringatan yang muncul selama proses. Pengumpulan data Dicatat saat catatan dimasukkan ke PAY_MESSAGE_LINES Jenis peristiwa explicit | |||
| QuickPay dijalankan | Pelaksanaan penggajian untuk satu orang (QuickPay), yang umumnya digunakan untuk memeriksa koreksi. Aktivitas ini dapat menjadi pengganti untuk aktivitas pratinjau hasil penggajian. | ||
| Mengapa ini penting QuickPay yang sering dijalankan untuk orang yang sama menunjukkan proses penggajian yang mengandalkan coba-coba, bukan Sumber data Periksa PAY_PAYROLL_ACTIONS saat ACTION_TYPE bernilai Q (QuickPay). Hitung jumlahnya per karyawan untuk setiap periode penggajian. Pengumpulan data Dicatat saat tindakan QuickPay tercatat di PAY_PAYROLL_ACTIONS Jenis peristiwa explicit | |||
| Slip gaji diterbitkan | Saat dokumen slip gaji dapat dilihat karyawan di Self Service. Tahap ini berlangsung setelah Archiver dan mungkin setelah proses khusus 'Generate Payslip'. | ||
| Mengapa ini penting Memengaruhi kepuasan karyawan. Jeda yang panjang antara pembayaran dan ketersediaan slip gaji dapat memicu tiket dukungan. Sumber data Periksa tabel Documents of Record (HR_DOCUMENTS_OF_RECORD) atau penyelesaian proses Generate Payslip di PAY_PAYROLL_ACTIONS. Pengumpulan data Dicatat saat proses pembuatan PDF slip gaji selesai Jenis peristiwa explicit | |||
Panduan ekstraksi
Langkah
Akses Data Exchange: Masuk ke Oracle HCM Cloud menggunakan pengguna dengan peran 'Human Capital Management Integration Specialist'. Buka My Client Groups > Data Exchange > Extract Definitions.
Buat Extract Baru: Klik ikon '+' untuk membuat extract. Beri nama 'ProcessMind_Payroll_Extract'. Pilih 'Payroll' sebagai konsumen dan 'HR Archive' sebagai kategori agar data tindakan penggajian historis dapat diakses.
Tentukan Grup Data: Buat Root Data Group berdasarkan User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). Ini mengaitkan ekstraksi dengan hubungan penggajian karyawan. Buat grup data turunan untukPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UE, danHWM_MEASURE_DAY_V_UE(untuk waktu dan tenaga kerja).Konfigurasikan Catatan Extract: Di dalam grup data, tentukan catatan untuk meratakan data hierarkis. Buat catatan khusus untuk setiap jenis aktivitas, misalnya catatan yang memfilter peristiwa 'Time Card' dan catatan lain untuk 'Run Results'.
Terapkan Logika SQL melalui FastFormula atau BIP: Karena data penggajian hierarkis cukup rumit untuk diubah menjadi log peristiwa linear, pendekatan paling andal adalah menggunakan 'Extract Delivery Option' untuk memanggil laporan BI Publisher. Dengan begitu, Anda dapat menggunakan SQL di bagian 'Query' di bawah ini sebagai Data Model. Cara ini lebih efektif daripada pemfilteran melalui antarmuka bawaan untuk membuat log peristiwa terpadu.
Buat Data Model BI Publisher: Buka Tools > Reports and Analytics > Browse Catalog. Buat Data Model baru. Tempel kueri SQL di bawah ini. Tentukan parameter untuk
bind_start_datedanbind_end_date.Hubungkan Extract ke BIP: Di tab 'Delivery' pada Extract Definition, buat opsi pengiriman. Pilih 'PDF' atau 'XML' sebagai jenis output. ProcessMind menyarankan CSV, tetapi output BIP dapat dikonversi. Pilih laporan BI Publisher yang dibuat pada langkah sebelumnya.
Tentukan Parameter: Di Extract Execution Tree, tambahkan parameter Start Date dan End Date untuk meneruskannya secara dinamis ke kueri BI Publisher.
Validasi dan Kirim: Validasi definisi extract untuk memeriksa kesalahan. Klik 'Submit Extract'. Masukkan parameter, misalnya 90 hari terakhir.
Pantau Proses: Buka 'View Extract Results'. Tunggu hingga status berubah menjadi 'Succeeded'.
Unduh Output: Unduh file XML/CSV yang dihasilkan. Buka file dan pastikan strukturnya memuat kolom yang diperlukan, seperti PayrollRecord, ActivityName, EventTimestamp, dan lainnya.
Siapkan untuk ProcessMind: Jika output berupa XML, ubah menjadi file CSV datar dan pastikan header sesuai dengan persyaratan 'Attributes to include'. Unggah file tersebut ke ProcessMind.
Konfigurasi
- Mode Ekstraksi: Changes Only atau Full Extract. Untuk pemuatan awal, gunakan Full Extract. Untuk pembaruan harian, konfigurasikan 'Changes Only' berdasarkan Last Update Date.
- Legislative Data Group (LDG): Sebaiknya filter berdasarkan LDG jika instans Anda mendukung beberapa negara, karena definisi penggajian berbeda menurut peraturan setempat.
- Rentang Tanggal: Atur
bind_start_datedanbind_end_dateagar mencakup setidaknya 3-6 bulan. Dengan begitu, process mining dapat menangkap waktu siklus secara lengkap. - Ukuran Potongan: Untuk penggajian bervolume tinggi (lebih dari 10.000 karyawan), atur ukuran potongan di Extract Definition menjadi 2000 agar tidak terjadi kesalahan waktu habis.
- Tanggal Efektif: Tabel penggajian menggunakan tanggal efektif. Logika kueri menangani
effective_start_datedaneffective_end_datesecara khusus agar versi historis catatan yang tepat dapat diambil. - Keamanan: Pengguna yang menjalankan proses harus memiliki profil keamanan data yang mengizinkan akses ke semua penggajian dan departemen yang akan dianalisis.
Contoh kueri sql
/* Oracle HCM Cloud Payroll Extraction for ProcessMind */
/* Aggregating 16 specific activities into a unified Event Log */
SELECT
/* Attributes */
rel.person_number || '-' || ppa.payroll_action_id AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
TO_CHAR(htr.creation_date, 'YYYY-MM-DD HH24:MI:SS') AS EventTimestamp,
'Oracle HCM Time and Labor' AS SourceSystem,
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS') AS LastDataUpdate,
pap.name AS PayrollPeriodName,
org.name AS DepartmentName,
NULL AS GrossPayAmount
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id /* Adjust mapping */
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'SUBMITTED'
AND htr.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Time Card Approved',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Time and Labor',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'APPROVED'
AND htr.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || pee.element_entry_id,
'Incentive Data Imported',
TO_CHAR(pee.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
NULL,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_element_types_f pet ON pee.element_type_id = pet.element_type_id
JOIN per_all_assignments_m asg ON pee.assignment_id = asg.assignment_id
JOIN per_all_people_f rel ON asg.person_id = rel.person_id
LEFT JOIN per_departments org ON asg.organization_id = org.organization_id
WHERE pet.classification_name IN ('Supplemental Earnings', 'Voluntary Deductions')
AND pee.creator_type IN ('H', 'F') /* HDL or Flat File */
AND pee.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Started',
TO_CHAR(ppa.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_actions ppa
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id /* Simplified Join */
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q') /* Run or QuickPay */
AND ppa.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(prrv.result_value) FROM pay_run_result_values prrv JOIN pay_run_results prr ON prrv.run_result_id = prr.run_result_id WHERE prr.payroll_rel_action_id = pra.payroll_rel_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q')
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Audit Exception Flagged',
TO_CHAR(pml.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pml.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_message_lines pml
JOIN pay_payroll_rel_actions pra ON pml.source_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pml.message_level IN ('F', 'E') /* Fatal or Error */
AND pml.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Record Corrected',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_payroll_rel_actions pra ON pee.creator_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pee.last_update_date > pee.creation_date
AND pee.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'QuickPay Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'Q'
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Prepayments Calculated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'P' /* Distribution */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Run Approved',
TO_CHAR(pfi.action_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pfi.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_flow_instances pfi
JOIN pay_payroll_actions ppa ON pfi.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pfi.status = 'COMPLETED'
AND pfi.instance_name LIKE '%Approval%'
AND pfi.action_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Archive Results Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'X' /* Archive */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Bank Transfer Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(ppp.value) FROM pay_pre_payments ppp WHERE ppp.payroll_action_id = ppa.payroll_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('M', 'E') /* Mag Tape or EFT */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payment Executed',
TO_CHAR(ppp.base_currency_value, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
ppp.value AS GrossPayAmount
FROM pay_pre_payments ppp
JOIN pay_payroll_actions ppa ON ppp.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('H', 'E', 'M') /* Check or EFT */
AND ppa.effective_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Pay Slip Published',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'G' /* Generate Payslip */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Costing Transferred',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'T' /* Transfer to GL */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Tax Filing Completed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.report_category IN ('Tax', 'Regulatory') /* Customize based on local requirements */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date Langkah
- Masuk ke Oracle BI Publisher: Akses lingkungan Oracle Cloud, lalu buka Tools > Reports and Analytics. Klik Browse Catalog untuk membuka antarmuka BI Publisher.
- Buat Data Model: Klik New di kiri atas, lalu pilih Data Model. Data Model ini menjadi wadah untuk logika ekstraksi SQL Anda.
- Buat SQL Data Set: Di tab Diagram, klik ikon New Data Set, lalu pilih SQL Query.
- Konfigurasikan Sumber Data: Beri nama data set, misalnya
ProcessMind_Payroll_Extract. Atur Data Source keApplicationDB_HCMatau koneksi basis data aplikasi HCM yang Anda gunakan. Biarkan jenisnya sebagai Standard SQL. - Masukkan Kueri: Salin seluruh skrip SQL di bagian Query di bawah ini, lalu tempel ke kotak teks SQL Query. Jangan sertakan pemformatan markdown.
- Tentukan Parameter: Kueri menggunakan variabel bind
:p_start_datedan:p_end_date. Di tab Parameters pada Data Model, buat kedua parameter ini dengan jenis Date untuk memfilter rentang ekstraksi, misalnya berdasarkanppa.EFFECTIVE_DATE. - Validasi Struktur Data: Klik OK. Buka tab Data di editor Data Model. Masukkan tanggal contoh, misalnya
2023-01-01hingga2023-03-31, lalu klik View. Pastikan output berisi baris denganPayrollRecord,ActivityName, danEventTimestamp. - Simpan Data Model: Simpan model di folder bersama, misalnya
/Shared Folders/Custom/ProcessMining. - Buat Laporan untuk Ekspor: Klik Create Report, lalu pilih Data Model yang baru saja disimpan. Gunakan Report Wizard untuk membuat tata letak tabel sederhana yang memuat semua kolom. Hapus centang 'Show Grand Totals'.
- Ekspor ke CSV: Buka laporan di Report Viewer. Klik menu Actions (ikon roda gigi) > Export > Data > CSV.
- Ubah Format: Buka file CSV. Pastikan format tanggal menggunakan ISO 8601 (
YYYY-MM-DD HH:MM:SS) jika belum diatur otomatis. Jika SQL ditempel dengan benar, Anda tidak perlu mengubah struktur lainnya. - Unggah: Impor file CSV yang dihasilkan ke ProcessMind dan petakan kolom sesuai Data Requirements.
Konfigurasi
- Koneksi Sumber Data: Gunakan
ApplicationDB_HCMatau sumber data JNDI setara yang memiliki akses baca ke skemaPAY_danPER_. - Rentang Tanggal: Rentang ekstraksi yang disarankan adalah 3-6 bulan agar mencakup siklus penggajian secara lengkap. Gunakan parameter
:p_start_datedan:p_end_dateuntuk mengatur pemuatan dinamis. - Legislative Data Group (LDG): Secara default, kueri mengambil semua LDG. Jika Anda menjalankan proses di beberapa negara, pertimbangkan untuk menambahkan filter
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]agar data terbagi sesuai kelompok. - Performa: Kueri mengakses tabel bervolume tinggi (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Batasi rentang tanggal, misalnya jangan lebih dari 1 tahun, agar BI Publisher tidak mengalami kesalahan waktu habis. - Keamanan: Pengguna yang menjalankan laporan memerlukan izin Data Access Set untuk definisi penggajian yang dituju.
Contoh kueri sql
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME AS LegislativeDataGroup,
org.NAME AS DepartmentName,
peef.LAST_UPDATED_BY AS ProcessingUser,
NULL AS GrossPayAmount,
ptp.PERIOD_NAME AS PayrollPeriodName,
NULL AS SlaProcessingDeadline,
'N' AS IsManualCorrection,
pg.PAYROLL_NAME AS PayGroup,
NULL AS ProcessDurationDays
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Approved' AS ActivityName,
peef.EFFECTIVE_START_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.EFFECTIVE_START_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Incentive Data Imported' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE IN ('B', 'F')
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
CASE
WHEN ppa.ACTION_TYPE = 'R' AND paa.ACTION_STATUS = 'C' THEN 'Payroll Calculation Executed'
WHEN ppa.ACTION_TYPE = 'R' THEN 'Payroll Calculation Started'
WHEN ppa.ACTION_TYPE = 'Q' THEN 'QuickPay Executed'
WHEN ppa.ACTION_TYPE IN ('P', 'U') THEN 'Prepayments Calculated'
WHEN ppa.ACTION_TYPE = 'X' THEN 'Archive Results Generated'
WHEN ppa.ACTION_TYPE = 'M' THEN 'Bank Transfer Generated'
WHEN ppa.ACTION_TYPE IN ('Z', 'E') THEN 'Payment Executed'
WHEN ppa.ACTION_TYPE = 'T' THEN 'Costing Transferred'
ELSE 'Payroll Process Action'
END AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
paa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
ptp.REGULAR_PAYMENT_DATE AS SlaProcessingDeadline,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE IN ('R', 'Q', 'P', 'U', 'X', 'M', 'Z', 'E', 'T')
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Audit Exception Flagged' AS ActivityName,
pml.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
pml.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
pml.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_MESSAGE_LINES pml
JOIN PAY_PAYROLL_ACTIONS ppa ON pml.PAYROLL_ACTION_ID = ppa.PAYROLL_ACTION_ID
LEFT JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE pml.MESSAGE_LEVEL IN ('E', 'W')
AND pml.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Record Corrected' AS ActivityName,
peef.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.LAST_UPDATE_DATE > peef.CREATION_DATE
AND peef.LAST_UPDATE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Run Approved' AS ActivityName,
ppa.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'R'
AND paa.ACTION_STATUS = 'C'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Pay Slip Published' AS ActivityName,
(ppa.CREATION_DATE + 1) AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'X'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Tax Filing Completed' AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'Z'
AND ppa.CREATION_DATE BETWEEN :p_start_date AND :p_end_date Siap memulai?
Tingkatkan operasional penggajian Anda dengan templat data ini untuk melihat seluruh siklus secara jelas. Mulailah meningkatkan efisiensi dan akurasi pelaporan hari ini.
Optimalkan pemrosesan penggajian di Oracle HCM sekarang
Pangkas waktu siklus penggajian hingga 30% dan hilangkan hambatan.
Tidak perlu kartu kredit. Siapkan dalam hitungan menit.