Maaş Bordrosu İşleme Data Templateiniz
Maaş Bordrosu İşleme Data Templateiniz
- Maaş bordrosu analizi için optimize edilmiş `data` alanları
- Yaşam döngüsü haritalaması için kapsamlı etkinlik takibi
- Oracle HCM Cloud Bordro için ayrıntılı çıkarma rehberliği
Maaş Bordrosu İşlem Nitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet Adı ActivityName | Maaş bordrosu döngüsünde gerçekleştirilen belirli adım veya `event`. | ||
| Açıklama Bu nitelik, maaş bordrosu süreci içinde meydana gelen Süreç keşfi ve varyant analizi için birincil boyuttur. Oracle HCM Cloud'da bu, genellikle maaş bordrosu eylem tablolarındaki Eylem Türü veya Eylem Durumu'ndan türetilir. Neden önemli Sürecin 'ne'sini tanımlayarak süreç haritasının yeniden oluşturulmasına olanak tanır. Nereden alınır PAY_PAYROLL_ACTIONS'taki ACTION_TYPE kodundan veya denetim izlerindeki durum değişikliklerinden türetilmiştir. Örnekler Maaş Bordrosu Hesaplaması BaşladıZaman Kartı OnaylandıBanka Transferi OluşturulduDenetim İstisnası İşaretlendi | |||
| Kaynak Sistem SourceSystem | `Event`'in originated ettiği system'in name'i. | ||
| Açıklama Veri noktasını oluşturan yazılımı veya modülü tanımlar. Bu süreç için birincil değer 'Oracle HCM Cloud Payroll'dur. Ancak, karmaşık sistemlerde bu, çekirdek bordro motoru, zaman ve işgücü modülü veya harici bir bankacılık arayüzü arasında ayrım yapabilir. Neden önemli Özellikle zaman çizelgesi veya bankacılık alt sistemlerinden Nereden alınır Çıkarma sırasında sabit kodlanmış veya arayüz kimliklerinden türetilmiştir. Örnekler Oracle HCM Cloud PayrollOracle Zaman ve İşgücü YönetimiExternal Banking Interface | |||
| Maaş Bordrosu Kaydı PayrollRecord | Belirli bir ödeme döneminde bir çalışanı temsil eden benzersiz tanımlayıcı. | ||
| Açıklama Maaş Bordrosu Kaydı, Bu nitelik, tek bir çalışana belirli bir döngü için ödeme yapılmasıyla ilgili tüm etkinlikleri, ilk zaman kartı gönderiminden nihai banka transferine ve vergi beyanına kadar gruplandırır. Analizin aynı çalışanın Ocak ayında mı yoksa Şubat ayında mı ödendiğini ayırt etmesini sağlar. Neden önemli Tüm farklı olayları analiz için tek bir süreç örneğine bağlayan Nereden alınır PAY_ASSIGNMENT_ACTIONS'tan veya Oracle HCM'deki Kişi Numarası ve Bordro Dönemi Adının birleşiminden oluşturulmuştur. Örnekler EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Olay Zaman Damgası EventTimestamp | Aktivitenin gerçekleştiği kesin tarih ve saat. | ||
| Açıklama Bir etkinliğin gerçekleştiği belirli anı kaydeder. Bu, süreleri, teslim sürelerini hesaplamak ve Otomatik adımlar için bu, sistem yürütme zamanıdır. Onaylar gibi manuel adımlar için ise işlem günlüğüne kaydedilen kullanıcı eyleminin Neden önemli Olayları kronolojik olarak sıralamak ve tüm zaman tabanlı KPI'ları hesaplamak için temeldir. Nereden alınır PAY_ACTION_INFORMATION gibi ilgili işlem tablolarındaki CREATION_DATE veya ACTION_DATE sütunları. Örnekler 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Son Veri Güncellemesi LastDataUpdate | Kaydın kaynak veritabanında en son değiştirildiği `timestamp`. | ||
| Açıklama Analiz için kullanılan verilerin güncelliğini gösterir. Bu, Veri güncelliğini doğrulamak ve çıkarma gecikmesi sorunlarını gidermek için kullanılır. Neden önemli Analistlerin gerçek zamanlı mı yoksa eski verilere mi baktıklarını bilmesini sağlar. Nereden alınır Hemen hemen tüm Oracle HCM tablolarında ortak olan LAST_UPDATE_DATE sütunu. Örnekler 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Brüt Maaş Tutarı GrossPayAmount | Dönem için hesaplanan toplam brüt ücret. | ||
| Açıklama Döngü sırasında hesaplanan brüt ücretin parasal değerini temsil eder. Bu, 'Vergi ve Yan Hak Hesaplama Doğruluğu' ve 'Teşvik Entegrasyonu' analizlerinde kullanılır. Analistlerin yüksek değerli ödemeleri işlem süresi veya hata oranlarıyla ilişkilendirmesine olanak tanır. Neden önemli
Nereden alınır PAY_RUN_RESULT_VALUES tablosu, Brüt Maaş bakiyesi için toplandı. Örnekler 5000.002350.5010000.00 | |||
| Departman Adı DepartmentName | Çalışanın çalıştığı organizasyon birimi. | ||
| Açıklama Bordro kaydıyla ilişkili çalışandan sorumlu departmanı belirler. Bu, 'Zaman Çizelgesi Onay Verimliliği' Verileri departmanlara göre segmentlere ayırarak, analistler hangi iş birimlerinin zaman kartlarını onaylamada sürekli olarak geç kaldığını ve genel bordro çalıştırmasını geciktirdiğini belirleyebilir. Neden önemli Yönetim onaylarıyla ilgili gecikmelerin temel neden analizine olanak tanır. Nereden alınır Bordro çalıştırması sırasında geçerli olan çalışanın atama kaydından türetilmiştir. Örnekler Kuzey Amerika SatışlarıMühendislikİnsan KaynaklarıLojistik | |||
| İşlem Yapan Kullanıcı ProcessingUser | Etkinliği gerçekleştiren kişinin kullanıcı kimliği veya adı. | ||
| Açıklama Aktiviteyi tetikleyen bordro uzmanının, yöneticinin veya sistem hesabının kimliğini yakalar. Bu, 'Bordro Uzmanı İş Yükü Dağıtımı' Bordro ekibindeki kaynak darboğazlarını ve eğitim ihtiyaçlarını belirlemeye yardımcı olur. Neden önemli Kaynak verimliliği analizi ve iş yükü dengeleme sağlar. Nereden alınır İşlem tablolarındaki CREATED_BY veya LAST_UPDATED_BY sütunları. Örnekler sysadminj.smithpayroll_batch_userm.doe | |||
| Maaş Bordrosu Dönem Adı PayrollPeriodName | Maaş bordrosu çalıştırması için zaman aralığının belirli adı. | ||
| Açıklama 'Ocak 2024 Aylık' veya 'Haftalık Dönem 42' gibi belirli döngüyü tanımlar. Bu, 'SLA Son Tarihi Uyumluluk Monitörü' için çok önemlidir. Bireysel çalışan Neden önemli Toplu iş düzeyinde analiz ve SLA takibi için temeldir. Nereden alınır PAY_TIME_PERIODS tablosu veya Maaş Bordrosu Tanımındaki Zaman Dönemi Adı. Örnekler 2023 Aylık 102023 Haftalık 42Aralık 2023 Bonus Çalıştırması | |||
| Manuel Düzeltme mi IsManualCorrection | Aktivitenin manuel müdahale içerip içermediğini gösteren bayrak. | ||
| Açıklama 'Data Correction Performed' veya 'Payroll Record Corrected' gibi aktiviteler için true olarak ayarlanan bir boolean bayrağıdır. 'Manuel Veri Düzeltme Oranı' ve 'İlk Geçiş Bordro Doğruluk Oranı' KPI'larını hesaplamak için kullanılır. Neden önemli Düz geçişli işleme ile manuel yeniden işleme arasında ayrım yapar. Nereden alınır Aktivite Adından veya ayarlamaları gösteren belirli Eylem Türlerinden (örn. QuickPay, Bakiye Ayarlaması) türetilmiştir. Örnekler truefalse | |||
| Ödeme Grubu PayGroup | Maaş bordrosu işlemleri için çalışanların mantıksal gruplandırılması. | ||
| Açıklama Çalışanın ait olduğu belirli maaş bordrosu tanımını temsil eder (örn. 'Haftalık Üretim', 'Aylık Kurumsal'). Bu nitelik, farklı maaş bordrosu döngüleri ve sıklıkları arasında performans karşılaştırmasına olanak tanıyan hemen hemen tüm Neden önemli Maaş bordrosu planlamasını yönlendiren birincil yapılandırma nesnesi. Nereden alınır PAY_ALL_PAYROLLS_F tablosu (Maaş Bordrosu Adı). Örnekler ABD Yarı AylıkBirleşik Krallık AylıkHaftalık Sendika | |||
| SLA İşlem Son Teslim Tarihi SlaProcessingDeadline | Ödemenin yapılması gereken hedef tarih/saat. | ||
| Açıklama Maaş bordrosu ödemesi için sözleşmeye dayalı veya yasal son teslim tarihini saklar. Bu nitelik, 'Ödeme Gerçekleştirildi' 'SLA İşlem Son Teslim Tarihi Uyumu' KPI'sını hesaplamak ve risk altındaki ödeme gruplarını belirlemek için kullanılır. Neden önemli Süreç başarısı veya başarısızlığı için zamanındalık açısından birincil ölçüt. Nereden alınır Genellikle Maaş Bordrosu Tanımı üzerinde yapılandırılmış bir alan (DFF) veya Kontrol Tarihi eksi X gününden türetilir. Örnekler 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Süreç Süresi Günleri ProcessDurationDays | Başlatmadan ödemeye kadar geçen toplam süre. | ||
| Açıklama İlk etkinlik ile 'Ödeme Gerçekleştirildi' etkinliği arasındaki hesaplanan süre. 'Uçtan Uca Maaş Bordrosu Döngü Süresi' Bu metrik, maaş bordrosu işlevinin hızı için üst düzey bir sağlık kontrolü görevi görür. Neden önemli Süreç verimliliği için üst düzey KPI. Nereden alınır Hesaplandı: Zaman Damgası(Ödeme Yürütüldü) - Zaman Damgası(Başlangıç). Örnekler 3.55.00.5 | |||
| Yasal Veri Grubu LegislativeDataGroup | Maaş bordrosu `data`sını ülkeye veya yasal ortama göre böler. | ||
| Açıklama Oracle HCM Cloud'da, Yasal Veri Grubu (LDG), bordro ve ilgili verileri bölümlendirir. Genellikle bir ülkenin veya belirli bir bölgenin mevzuatına karşılık gelir. Bu öznitelik, süreç analizini ülkeye göre filtrelemek (örn. ABD Bordrosu vs. İngiltere Bordrosu) için hayati öneme sahiptir ve genellikle Ülke genel özniteliğiyle eşlenir. Neden önemli Uyumluluk kuralları ve süreç akışları genellikle yargı alanına göre önemli ölçüde farklılık gösterir. Nereden alınır PAY_ALL_PAYROLLS_F tablosu, Yasal Örnekler ABD Yasal Veri GrubuBirleşik Krallık LDGFransa Bordrosu | |||
| Çalışan Tipi EmployeeType | Çalışanın kategorizasyonu (örn. Maaşlı, Saatlik, Yüklenici). | ||
| Açıklama Çalışan kaydını sınıflandırır. Farklı çalışan türlerinin farklı işlem kuralları veya acil durumları olabileceğinden, bu, 'Dijital Maaş Bordrosu Yayınlama Gecikmesi' Farklı işgücü segmentleri arasındaki süreç performansını karşılaştırmak için analizi filtrelemeye yardımcı olur. Neden önemli Farklı çalışan türleri genellikle farklı süreç varyantlarını takip eder. Nereden alınır PER_ALL_ASSIGNMENTS_M'deki atama kategorisi veya istihdam koşulları. Örnekler Tam Zamanlı MaaşlıYarı Zamanlı SaatlikContractorYönetici | |||
| Denetim İstisna Türü AuditExceptionType | Denetim sırasında işaretlenen hata veya uyarı kategorisi. | ||
| Açıklama 'Audit Exception Flagged' aktivitesi sırasında bulunan belirli sorunu kategorize eder (örn. 'Negatif Net Maaş', 'Eksik Vergi Kimliği'). Bu öznitelik, yaygın veri kalitesi sorunlarını belirleyerek 'Denetim İstisnası ve Düzeltme Analizi' Neden önemli Yeniden işleme döngülerinin temel neden analizinde kritik öneme sahiptir. Nereden alınır Maaş bordrosu süreci günlüklerindeki veya istisna raporlarındaki Mesaj veya Hata Kodu sütunları. Örnekler Negatif Net MaaşEksik SSNGeçersiz Banka BilgileriFazla Mesai Limiti Aşıldı | |||
| Gerçekleştikten Sonra Değişiklik Bayrağı RetroactiveChangeFlag | Bordro çalıştırmasının geriye dönük ödemeler içerip içermediğini gösterir. | ||
| Açıklama Bu kayıtta 'Retropay' unsurlarının işlenip işlenmediğini gösteren bir boolean göstergesidir. Bu, 'Process Path Variant Comparison' (Süreç Yolu Varyant Karşılaştırması) içindeki daha uzun işlem sürelerini veya denetim istisnalarını açıklamaya yardımcı olur. Geriye dönük değişiklikler genellikle önceki dönemleri kapsayan karmaşık yeniden hesaplamaları tetikler. Neden önemli Doğal olarak daha fazla işlem süresi gerektiren karmaşık durumları belirler. Nereden alınır PAY_ELEMENT_ENTRIES içinde 'Retropay' öğe girişlerinin varlığı. Örnekler truefalse | |||
| Ön İzleme Tekrarlama Sayısı PreviewIterationCount | Sonlandırmadan önce sonuçların ön izlendiği sayı. | ||
| Açıklama Aynı Bu, onaydan önceki yeniden işleme veya tereddüt miktarını gösteren 'Payroll Preview Iteration Tracker' Neden önemli Doğrulama aşamasının verimliliğini nicelleştirir. Nereden alınır
Örnekler 1350 | |||
| SLA Statüsü SlaStatus | SLA uyumluluğunun kategorik durumu (Karşılandı/Kaçırıldı). | ||
| Açıklama 'Payment Executed' Bu, Neden önemli Karmaşık zaman karşılaştırmalarını eyleme geçirilebilir kategorilere basitleştirir. Nereden alınır
Örnekler Karşılandıİhlal Edildiİhlale Yakın | |||
| Vergi Yargı Yetkisi TaxJurisdiction | Vergi beyanı için belirli eyalet, il veya yerellik. | ||
| Açıklama Bordro kaydıyla ilgili birincil vergi otoritesini gösterir (örn. Kaliforniya için 'CA', New York için 'NY'). Bu, 'Vergi Uyumluluk İşleme Süresi' Belirli bölgelerin daha karmaşık veya yavaş vergi hesaplama ve beyan süreçlerine sahip olup olmadığını belirlemeye yardımcı olur. Neden önemli Performansı düzenleyici karmaşıklığa göre segmentlere ayırır. Nereden alınır Çalışanın vergi kartından veya iş yeri adreslerinden türetilmiştir. Örnekler CA-CaliforniaNY-New YorkTX-TexasFederal-ABD | |||
Maaş Bordrosu İşlem Etkinlikleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Banka Transferi Oluşturuldu | EFT (Elektronik Fon Transferi) dosyasının veya benzeri ödeme çıktısının oluşturulması. Bu, banka için talimat dosyasını oluşturmanın teknik adımıdır. | ||
| Neden önemli Ödeme Dosyası Oluşturma Döngü Süresini ölçer. Buradaki gecikmeler, banka son teslim tarihlerinin kaçırılmasına neden olabilir. Nereden alınır PAY_PAYROLL_ACTIONS'ı ACTION_TYPE M (Manyetik Bant) veya E (EFT) veya C (Çek Yazıcı) olanlar için sorgulayın. Yakala EFT/Çek eylemi tamamlandığında kaydedilir. Event tipi explicit | |||
| Maaş Bordrosu Hesaplaması Başladı | Belirli bir maaş bordrosu tanımı ve dönemi için ana maaş bordrosu çalıştırma sürecinin başlatılması. Bu, `data` toplama aşamasından işlem aşamasına geçişi işaret eder. | ||
| Neden önemli Yoğun işlem penceresinin başlangıcını belirler. Teknik bordro yürütmesi için toplam döngü süresini hesaplamak için kullanılır. Nereden alınır PAY_PAYROLL_ACTIONS tablosunu, ACTION_TYPE R (Çalıştır) veya Q (QuickPay) ve ACTION_STATUS başlatıldı olarak işaretlenmiş (veya oluşturma tarihinden çıkarılmış) olanlar için sorgulayın. Yakala PAY_PAYROLL_ACTIONS kaydı eklendiğinde kaydedilir. Event tipi explicit | |||
| Maaş Bordrosu Hesaplaması Gerçekleştirildi | Brüt-net hesaplamalar dahil olmak üzere Maaş Bordrosu Hesaplama sürecinin başarıyla tamamlanması. Bu `event`, atama için kazançların, kesintilerin ve vergilerin hesaplandığını gösterir. | ||
| Neden önemli Verinin doğrulama için hazır olduğunu gösteren önemli bir kilometre taşıdır. Buradaki yüksek süreler, sistem performans sorunlarını veya karmaşık Nereden alınır PAY_PAYROLL_ACTIONS'a birleşen PAY_PAYROLL_REL_ACTIONS'ı, ACTION_TYPE R veya Q ve ACTION_STATUS C (Tamamlandı) olarak değişenler için sorgulayın. Yakala Maaş Bordrosu Çalıştırma eylemi durumu Tamamlandı olarak güncellendiğinde kaydedilir. Event tipi explicit | |||
| Ödeme Gerçekleştirildi | Ödemenin işlendiğine dair nihai onay. Oracle'da bu, ödeme akışının tamamlanması veya Nakit Yönetimi'ndeki mutabakat ile ilişkilidir. | ||
| Neden önemli SLA Uyumluluğu için birincil Nereden alınır Banka Transferi eyleminin Geçerlilik Tarihinden veya açıkça Nakit Yönetimi mutabakat kayıtları (CE_STATEMENT_LINES) aracılığıyla çıkarılabilir. Yakala Ödeme eyleminin veya mutabakat olayının geçerlilik tarihi aracılığıyla kaydedildi Event tipi explicit | |||
| Ön Ödemeler Hesaplandı | Net maaşı çalışanın seçtiği ödeme yöntemlerine (Çek, EFT vb.) dağıtan Ön Ödemeler sürecinin yürütülmesi. Bu, hesaplanan tutarların gerçekten ödenebileceğini doğrular. | ||
| Neden önemli Hesaplama ve ödeme arasındaki köprü. Buradaki hatalar genellikle eksik bankacılık detaylarını veya geçersiz ödeme yöntemlerini gösterir. Nereden alınır PAY_PAYROLL_ACTIONS'ı ACTION_TYPE P (Ön Ödemeler) ve durumu Tamamlandı olanlar için sorgulayın. Yakala Ön Ödemeler eylemi tamamlandığında kaydedilir. Event tipi explicit | |||
| Arşiv Sonuçları Oluşturuldu | Dönemsel Maaş Bordrosu Sonuçlarını Arşivle sürecinin tamamlanması. Bu anlık görüntü, raporlama ve maaş bordrosu oluşturma için `data`yı etkili bir şekilde kilitler. | ||
| Neden önemli Maaş bordroları ve yasal raporlar oluşturmak için teknik bir ön koşuldur. Verinin kesinleştiğini doğrular. Nereden alınır PAY_PAYROLL_ACTIONS'ı ACTION_TYPE X (Arşiv) ve durumu Tamamlandı olanlar için sorgulayın. Yakala Arşivleme eylemi tamamlandığında kaydedilir. Event tipi explicit | |||
| Denetim İstisnası İşaretlendi | Maaş bordrosu hesaplama veya doğrulama aşamasında bir hata veya uyarı mesajının kaydedilmesi. Bu, insan müdahalesi gerektiren belirli doğrulama hatalarını yakalar. | ||
| Neden önemli Veri kalitesi sorunlarını belirlemek için temeldir. Yüksek hacimli istisnalar, manuel çabayı ve SLA ihlali riskini artırır. Nereden alınır Belirli PAY_PAYROLL_REL_ACTION_ID'ye bağlı PAY_MESSAGE_LINES tablosunu sorgulayın. Bu tablo, çalıştırmalar sırasında oluşturulan hataları ve uyarıları depolar. Yakala PAY_MESSAGE_LINES'a bir kayıt eklendiğinde Event tipi explicit | |||
| Maaş Bordrosu Çalıştırması Onaylandı | Maaş Bordrosu `Dashboard`ı içindeki maaş bordrosu defterinin veya akışının resmi onayı. Bu genellikle doğrulama raporları incelendikten ve banka dosyaları oluşturulmadan önce gerçekleşir. | ||
| Neden önemli Yönetici onayını temsil eder. Hesaplama ve onay arasındaki süre, doğrulama penceresini temsil eder. Nereden alınır Tanımlanmış bir Maaş Bordrosu Akış Deseni içindeki durum değişiklikleri veya belirli görev tamamlamaları için PAY_REQ_FLOW_INSTANCES'ı sorgulayın. Yakala Akış Örneği durumu Tamamlandı/Onaylandı olarak değiştiğinde kaydedilir. Event tipi explicit | |||
| Maaş Bordrosu Kaydı Düzeltildi | İlk maaş bordrosu çalıştırmasından sonra ancak kesinleşmeden önce öğe girişlerine veya atama verilerine uygulanan manuel güncellemeler. Bu etkinlik, hata veya istisnaları düzeltmek için gereken yeniden çalışmayı temsil eder. | ||
| Neden önemli Süreç verimsizliğini ve veri kalitesi sorunlarını gösterir. Bu aktiviteyi azaltmak, İlk Geçiş Bordro Doğruluk Oranını iyileştirmek için anahtardır. Nereden alınır PAY_ELEMENT_ENTRIES_F'ye yapılan güncellemeleri belirleyerek çıkarılmıştır; burada Son Güncelleme Tarihi, ilk Bordro Çalıştırma tarihi ile Peşin Ödemeler tarihi arasındadır. Yakala Öğe giriş güncelleme Event tipi inferred | |||
| Maaş Bordrosu Yayınlandı | Maaş bordrosu belgesinin Çalışan `Self-Service`'te çalışana görünür hale geldiği nokta. Bu, Arşivleyiciyi ve potansiyel olarak belirli bir 'Maaş Bordrosu Oluştur' sürecini takip eder. | ||
| Neden önemli Çalışan memnuniyetini etkiler. Ödeme ile maaş bordrosu kullanılabilirliği arasındaki uzun gecikmeler destek biletleri oluşturur. Nereden alınır Kayıt Belgeleri tablosunu (HR_DOCUMENTS_OF_RECORD) veya PAY_PAYROLL_ACTIONS içindeki Maaş Bordrosu Oluştur sürecinin tamamlanmasını sorgulayın. Yakala Maaş Bordrosu PDF oluşturma süreci tamamlandığında kaydedilir. Event tipi explicit | |||
| Maliyetlendirme Transfer Edildi | Maaş bordrosu maliyetlendirme sonuçlarının Genel Muhasebeye aktarılması. Bu, maaş bordrosu döngüsünün finansal muhasebe kapanışını temsil eder. | ||
| Neden önemli Finansal uyumluluğu ve işgücü maliyetlerinin doğru kaydedilmesini sağlar. Gecikmeler, Finans'ın defterleri kapatmasını engeller. Nereden alınır PAY_PAYROLL_ACTIONS'ı ACTION_TYPE T (Genel Muhasebeye Aktarım) ve durumu Tamamlandı olanlar için sorgulayın. Yakala Genel Muhasebeye (GL) Aktarım süreci tamamlandığında kaydedilir. Event tipi explicit | |||
| QuickPay Gerçekleştirildi | Düzeltmeleri doğrulamak için genellikle kullanılan tek kişilik bir maaş bordrosu çalıştırmasının (QuickPay) gerçekleştirilmesi. Bu, Maaş Bordrosu Sonucu Ön İzlemesi etkinliği için bir vekil görevi görür. | ||
| Neden önemli Kişi başına sık QuickPay'ler, bordro işlemlerinde deneme yanılma yaklaşımını gösterir, bir Nereden alınır PAY_PAYROLL_ACTIONS'ı ACTION_TYPE Q (QuickPay) olanlar için sorgulayın. Her maaş bordrosu dönemi için çalışan başına örnekleri sayın. Yakala PAY_PAYROLL_ACTIONS'ta bir QuickPay eylemi kaydedildiğinde Event tipi explicit | |||
| Teşvik Verileri İçe Aktarıldı | Prim veya komisyon gibi değişken ücretler için toplu yükleyici veya HDL içe aktarma yoluyla öğe girişlerinin oluşturulması. Bu, harici tazminat `data`larının maaş bordrosu çalıştırmasına entegrasyonunu temsil eder. | ||
| Neden önemli Değişken ücretin entegrasyon hızını izler. Geç yapılan içe aktarmalar genellikle ek maaş bordrosu çalıştırmalarını veya manuel düzeltmeleri zorunlu kılar. Nereden alınır PAY_BATCH_HEADERS'ı içe aktarım tamamlanması için sorgulayın veya belirli bir kaynak sistem referansıyla PAY_ELEMENT_ENTRIES_F'nin oluşturulmasını izleyin. Yakala Toplu öğe girişi süreci başarıyla tamamlandığında kaydedilir. Event tipi explicit | |||
| Vergi Beyanı Tamamlandı | Yasal vergi dosyalarının (örn. Üçüncü Taraf Üç Aylık Vergi Dosyası) oluşturulması. Bu, ödeme dönemi için düzenleyici uyumluluğu sağlar. | ||
| Neden önemli Vergi Uyumluluk İşleme Süresi KPI'sı için kritiktir. Buradaki başarısızlık cezalara yol açar. Nereden alınır PAY_PAYROLL_ACTIONS'ı vergi raporlamasıyla ilgili belirli yasal Yakala Belirli bir vergi raporlama akışı tamamlandığında kaydedilir. Event tipi explicit | |||
| Zaman Kartı Gönderildi | Bir çalışanın veya yöneticinin işlem için zaman ve işgücü `data`larını gönderdiği ilk `event`. Oracle HCM'de bu, Zaman ve İşgücü Yönetimi modülünde zaman kartı durumunun Gönderildi olarak değiştiği zaman yakalanır. | ||
| Neden önemli Ham verilerin potansiyel maaş bordrosu sürecine girişini işaretler. Buradaki gecikmeler sonraki aşamalara yansıyarak maaş bordrosu uzmanlarının hesaplamaları doğrulaması için ayrılan süreyi kısaltır. Nereden alınır Durumun GÖNDERİLDİ olarak değiştiği HWM_TM_REC_GRP_DTLS tablosunu veya HXT_TIMECARDS görünümünü sorgulayın. Gönderim Yakala Zaman ve İşgücü Yönetimi'nde durum GÖNDERİLDİ olarak değiştiğinde kaydedilir. Event tipi explicit | |||
| Zaman Kartı Onaylandı | Gönderilen zaman `data`larının bir yönetici tarafından incelendiği ve yetkilendirildiği onayı. Bu durum değişikliği, `data`ların maaş bordrosu öğe girişlerine aktarılmasını tetikler. | ||
| Neden önemli Yönetici Onay Süresi'ni ölçmek için kritik öneme sahiptir. Buradaki gecikmeler, sonraki dönemlerde geriye dönük ödeme ayarlamalarının birincil nedenidir. Nereden alınır Durumun ONAYLANDI olarak değiştiği HWM_TM_REC_GRP_DTLS tablosunu veya HXT_TIMECARDS görünümünü sorgulayın. Onay Yakala Zaman ve İşgücü Yönetimi'nde durum ONAYLANDI olarak değiştiğinde kaydedilir. Event tipi explicit | |||
Veri Çekim Kılavuzları
Adımlar
Veri Değişimine Erişin: 'Human Capital Management Integration Specialist' rolüne sahip bir kullanıcıyla Oracle HCM Cloud'a giriş yapın. My Client Groups > Data Exchange > Extract Definitions yolunu izleyin.
Yeni Çıkarma Oluşturun: Yeni bir çıkarma oluşturmak için '+' simgesine tıklayın. Adını 'ProcessMind_Payroll_Extract' olarak belirleyin. Tüketici olarak 'Payroll'u ve geçmiş bordro eylem verilerine erişimi sağlamak için kategori olarak 'HR Archive'ı seçin.
Veri Gruplarını Tanımlayın:
PAY_PAYROLL_REL_UE(Bordro İlişkisi) Kullanıcı Varlığına dayalı bir Kök Veri Grubu oluşturun. Bu, çıkarmayı çalışanın bordro ilişkisine bağlar.PAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEveHWM_MEASURE_DAY_V_UE(zaman ve iş gücü için) için alt veri grupları oluşturun.Çıkarma Kayıtlarını Yapılandırın: Veri grupları içinde, hiyerarşik verileri düzleştirmek için kayıtları tanımlayın. Her etkinlik türü için belirli kayıtlar oluşturmalısınız (örn. 'Time Card' olayları için filtreleme yapan bir kayıt, 'Run Results' için başka bir kayıt).
SQL Mantığını FastFormula veya BIP aracılığıyla Uygulayın: Hiyerarşik bordro verilerini doğrusal bir
event log'a dönüştürmenin karmaşıklığı nedeniyle, en sağlam yaklaşım, bir BI Publisher Raporunu çağırmak için 'Extract Delivery Option'ı kullanmaktır. Bu, aşağıdaki 'Query' bölümünde sağlanan SQL'i Veri Modeli olarak kullanmanıza olanak tanır. Bu, birleşik birevent logoluşturmak için yerel GUI filtrelemesinden üstündür.BI Publisher Veri Modeli Oluşturun: Tools > Reports and Analytics > Browse Catalog yolunu izleyin. Yeni bir Veri Modeli oluşturun. Aşağıda sağlanan SQL sorgusunu yapıştırın.
bind_start_datevebind_end_dateiçin bir Parametre tanımlayın.Çıkarmayı BIP'ye Bağlayın: Çıkarma Tanımı 'Delivery' sekmesinde bir teslimat seçeneği oluşturun. Çıktı türü olarak 'PDF' veya 'XML' seçin (ProcessMind CSV'yi tercih eder, ancak BIP çıktısını dönüştüreceksiniz). Bir önceki adımda oluşturduğunuz BI Publisher raporunu seçin.
Parametreleri Tanımlayın: Çıkarma Yürütme Ağacında, BI Publisher sorgusuna dinamik olarak iletmek için Başlangıç Tarihi ve Bitiş Tarihi parametrelerini ekleyin.
Doğrulayın ve Gönderin: Hataları kontrol etmek için çıkarma tanımını doğrulayın. 'Submit Extract' düğmesine tıklayın. Parametreleri girin (örn. son 90 gün).
Süreci İzleyin: 'View Extract Results'a gidin. Durumun 'Succeeded' olarak değişmesini bekleyin.
Çıktıyı İndirin: Oluşturulan XML/CSV dosyasını indirin. Gerekli sütunları (PayrollRecord, ActivityName, EventTimestamp vb.) içerdiğini doğrulamak için açın.
ProcessMind için Biçimlendirme: Çıktı XML ise, başlıkların 'Attributes to include' gereksinimleriyle eşleştiğinden emin olarak düz bir CSV dosyasına dönüştürün. Elde edilen dosyayı ProcessMind'e yükleyin.
Konfigürasyon
- Çıkarma Modu: Sadece Değişiklikler ve Tam Çıkarma. İlk yükleme için Tam Çıkarma'yı kullanın. Günlük güncellemeler için Son Güncelleme Tarihi'ne göre 'Sadece Değişiklikler'i yapılandırın.
- Yasal Veri Grubu (LDG): Bordro tanımları yasaya göre değiştiğinden, örneğiniz birden fazla ülkeyi destekliyorsa LDG'ye göre filtreleme yapılması şiddetle tavsiye edilir.
- Tarih Aralığı:
bind_start_datevebind_end_dateparametrelerini, süreç madenciliğinin tam döngü sürelerini yakalaması için en az 3-6 ayı kapsayacak şekilde ayarlayın. - Parça Boyutu: Yüksek hacimli bordrolar (10 binden fazla çalışan) için, zaman aşımı hatalarını önlemek amacıyla Çıkarma Tanımındaki parça boyutunu 2000 olarak ayarlayın.
- Geçerlilik Tarihi: Bordro tabloları tarih bazlıdır. Sorgu mantığı, kaydın doğru geçmiş sürümünün alınmasını sağlamak için
effective_start_dateveeffective_end_dateparametrelerini açıkça işler. - Güvenlik: Yürütücü kullanıcının, analiz için hedeflenen tüm bordroları ve departmanları görüntülemesine izin veren veri güvenlik profilleri olmalıdır.
a Örnek Sorgu config
/* 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 Adımlar
- Oracle BI Publisher'a Giriş Yapın: Oracle Cloud ortamına erişin ve Tools > Reports and Analytics (Araçlar > Raporlar ve Analizler) yolunu izleyin. BI Publisher arayüzünü açmak için Browse Catalog (Kataloğa Göz At) seçeneğine tıklayın.
- Bir Veri Modeli Oluşturun: New (Yeni) (sol üst) seçeneğine tıklayın ve Data Model (Veri Modeli) seçin. Bu, SQL çıkarma mantığınızın kapsayıcısıdır.
- Bir SQL Veri Kümesi Oluşturun: Diagram (Şema) sekmesi altında, New Data Set (Yeni Veri Kümesi) simgesine tıklayın ve SQL Query (SQL Sorgusu) seçeneğini seçin.
- Veri Kaynağını Yapılandırın: Veri kümesine bir ad verin (örn.
ProcessMind_Payroll_Extract). Data Source (Veri Kaynağı) olarakApplicationDB_HCM(veya özel HCM Uygulama Veritabanı bağlantınız) belirleyin. Türü Standart SQL olarak bırakın. - Sorguyu Girin: Aşağıdaki Sorgu bölümünde verilen tam SQL komut dosyasını kopyalayın ve SQL Sorgusu metin kutusuna yapıştırın. Herhangi bir Markdown biçimlendirmesi eklemediğinizden emin olun.
- Parametreleri Tanımlayın: Sorgu,
:p_start_dateve:p_end_datebağlama değişkenlerini kullanır. Veri Modelinin Parameters (Parametreler) sekmesinde, çıkarma aralığını filtrelemek için bu iki parametreyi (Tarih türü) oluşturun (örn.ppa.EFFECTIVE_DATE'e göre). - Veri Yapısını Doğrulayın: OK (Tamam) düğmesine tıklayın. Veri Modeli düzenleyicisinde Data (Veri) sekmesine geçin. Örnek tarihler girin (örn.
2023-01-01ila2023-03-31) ve View (Görüntüle) seçeneğine tıklayın. ÇıktınınPayrollRecord,ActivityNameveEventTimestampiçeren satırlar içerdiğinden emin olun. - Veri Modelini Kaydedin: Modeli paylaşılan bir klasöre kaydedin (örn.
/Shared Folders/Custom/ProcessMining). - Dışa Aktarma Raporu Oluşturun: Create Report (Rapor Oluştur) düğmesine tıklayın, az önce kaydettiğiniz Veri Modelini seçin. Tüm sütunları içeren basit bir Tablo düzeni oluşturmak için Report Wizard (Rapor Sihirbazı)nı kullanın. 'Show Grand Totals' (Genel Toplamları Göster) işaretini kaldırın.
- CSV'ye Aktarın: Raporu Rapor Görüntüleyicisinde görüntüleyin. Actions (Eylemler) menüsüne (dişli simgesi) tıklayın > Export (Dışa Aktar) > Data (Veri) > CSV.
- Dönüştürün: CSV dosyasını açın. Tarih biçimlerinin otomatik olarak biçimlendirilmemişse ISO 8601 (
YYYY-MM-DD HH:MM:SS) olduğundan emin olun. SQL doğru yapıştırılmışsa başka bir yeniden şekillendirmeye gerek kalmayacaktır. - Yükleyin: Elde edilen CSV dosyasını ProcessMind'e aktarın ve sütunları Veri Gereksinimlerinde tanımlandığı gibi eşleyin.
Konfigürasyon
- Veri Kaynağı Bağlantısı:
PAY_vePER_şemalarına okuma erişimi olanApplicationDB_HCMveya eşdeğer JNDI veri kaynağı kullanılmalıdır. - Tarih Aralığı: Tam bordro döngülerini yakalamak için önerilen çıkarma penceresi 3-6 aydır. Bu dinamik yüklemeyi kontrol etmek için
:p_start_dateve:p_end_dateparametrelerini kullanın. - Yasal Veri Grubu (LDG): Sorgu, varsayılan olarak tüm LDG'leri çıkarır. Birden fazla ülke kullanıyorsanız, verileri bölümlendirmek için
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]filtresini eklemeyi düşünebilirsiniz. - Performans: Sorgu, yüksek hacimli tablolara (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS) erişir. BI Publisher'da zaman aşımı hatalarını önlemek için tarih aralığının çok geniş olmadığından (örn. >1 yıl) emin olun. - Güvenlik: Raporu çalıştıran kullanıcının hedef Bordro tanımları için Veri Erişim Kümesi izinlerine ihtiyacı vardır.
a Örnek Sorgu 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