Šablona dat pro zpracování mezd
Šablona dat pro zpracování mezd
- Doporučená datová pole pro analýzu mezd
- Podrobné sledování aktivit pro mapování životního cyklu
- Podrobný návod k extrakci dat z Oracle HCM Cloud Payroll
Atributy zpracování mezd
| Název | Popis | ||
|---|---|---|---|
| Časové razítko události EventTimestamp | Přesné datum a čas, kdy k aktivitě došlo. | ||
| Popis Zaznamenává přesný okamžik, kdy aktivita proběhla. Je nezbytné pro výpočet dob trvání a průběžných časů i pro odhalování úzkých míst. U automatizovaných kroků jde o čas provedení systémem. U ručních kroků, například schvalování, jde o časovou značku uživatelské akce zaznamenané v protokolu transakcí. Proč je to důležité Je nezbytné pro chronologické seřazení událostí a výpočet všech časových KPI. Kde data získat Sloupce CREATION_DATE nebo ACTION_DATE v příslušných transakčních tabulkách, například PAY_ACTION_INFORMATION. Příklady 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Mzdový záznam PayrollRecord | Jedinečný identifikátor zaměstnance v konkrétním mzdovém období. | ||
| Popis Mzdový záznam slouží jako hlavní identifikátor případu pro analýzu process mining. Jde o kombinaci nebo jedinečný klíč, který spojuje identifikátor pracovního zařazení zaměstnance s identifikátorem mzdového období. Tento atribut sdružuje všechny aktivity spojené s výplatou mzdy jednomu zaměstnanci za konkrétní období, od odeslání prvního výkazu práce až po konečný bankovní převod a daňové podání. Díky němu lze rozlišit výplatu stejného zaměstnance například za leden a únor. Proč je to důležité Slouží jako ID případu a spojuje různé události do jedné instance procesu pro analýzu. Kde data získat Vytváří se z PAY_ASSIGNMENT_ACTIONS nebo kombinací Person Number a Payroll Period Name v Oracle HCM. Příklady ZAM1001-2023-M01ZAM5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Název aktivity ActivityName | Konkrétní krok nebo událost v mzdovém cyklu. | ||
| Popis Tento atribut zachycuje název události v procesu zpracování mezd. Příklady: „Výkaz práce odeslán“, „Zahájen výpočet mezd“ a „Platba provedena“. Jde o hlavní dimenzi pro zjišťování procesů a analýzu variant. V Oracle HCM Cloud se obvykle odvozuje od typu akce nebo stavu akce v tabulkách mzdových akcí. Proč je to důležité Určuje, co se v procesu děje, a umožňuje sestavit mapu procesu. Kde data získat Odvozuje se z kódu ACTION_TYPE v PAY_PAYROLL_ACTIONS nebo ze změn stavů v auditních záznamech. Příklady Zahájen výpočet mezdVýkaz práce schválenVytvořen bankovní převodZaznamenána auditní výjimka | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko poslední změny záznamu ve zdrojové databázi. | ||
| Popis Ukazuje, jak aktuální jsou data použitá k analýze. Liší se od časového razítka události: zaznamenává, kdy řádek v databázi naposledy změnil proces ETL nebo aktualizace systému. Slouží k ověření aktuálnosti dat a hledání příčin zpoždění při extrakci. Proč je to důležité Analytici díky tomu vědí, zda pracují s aktuálními, nebo zastaralými daty. Kde data získat Sloupec LAST_UPDATE_DATE, který se nachází téměř ve všech tabulkách Oracle HCM. Příklady 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Zdrojový systém SourceSystem | Název systému, ve kterém událost vznikla. | ||
| Popis Určuje software nebo modul, který vytvořil datový bod. V tomto procesu je hlavní hodnotou „Oracle HCM Cloud Payroll“. Ve složitějším prostředí může rozlišovat mezi hlavním mzdovým systémem, modulem pro evidenci pracovní doby a práce nebo externím bankovním rozhraním. Proč je to důležité Poskytuje kontext o původu dat, zejména při integraci dat ze systémů pro evidenci pracovní doby nebo z bankovních subsystémů. Kde data získat Pevně nastaveno při extrakci nebo odvozeno z ID rozhraní. Příklady Oracle HCM Cloud PayrollOracle Time and LaborExterní bankovní rozhraní | |||
| Hrubá mzda GrossPayAmount | Celková vypočtená hrubá mzda za dané období. | ||
| Popis Představuje peněžní hodnotu hrubé mzdy vypočtené během cyklu. Používá se při analýze „Přesnost výpočtu daní a benefitů“ a „Integrace pobídek“. Analytici mohou porovnat výši plateb s dobou zpracování nebo četností chyb. Proč je to důležité Poskytuje analýze process mining finanční kontext. Kde data získat Tabulka PAY_RUN_RESULT_VALUES, agregovaná pro zůstatek Gross Pay. Příklady 5000.002350.5010000.00 | |||
| Jde o ruční opravu IsManualCorrection | Příznak, který ukazuje, zda aktivita vyžadovala ruční zásah. | ||
| Popis Logická hodnota, která je nastavena na true u aktivit, jako jsou „Provedena oprava dat“ nebo „Opraven mzdový záznam“. Používá se k výpočtu KPI „Podíl ručních oprav dat“ a „Přesnost mezd při prvním zpracování“. Proč je to důležité Rozlišuje mezi automatickým zpracováním bez zásahu a ručním přepracováním. Kde data získat Odvozeno z názvu aktivity nebo konkrétních typů akcí označujících úpravy, například QuickPay nebo úprava zůstatku. Příklady truefalse | |||
| Legislativní skupina dat LegislativeDataGroup | Rozděluje mzdová data podle země nebo regulačního prostředí. | ||
| Popis V Oracle HCM Cloud rozděluje Legislative Data Group (LDG) mzdová a související data. Obvykle odpovídá zemi nebo území s vlastní legislativou. Tento atribut je důležitý pro filtrování analýzy podle země, například mzdy v USA nebo ve Spojeném království. Často se mapuje na obecný atribut Country. Proč je to důležité Pravidla shody i průběh procesu se mohou v jednotlivých jurisdikcích výrazně lišit. Kde data získat Tabulka PAY_ALL_PAYROLLS_F propojená s definicemi Legislative Data Group. Příklady Legislativní skupina dat USALDG Spojeného královstvíMzdy ve Francii | |||
| Název mzdového období PayrollPeriodName | Konkrétní název časového intervalu, za který se zpracovávají mzdy. | ||
| Popis Určuje konkrétní cyklus, například „Měsíční, leden 2024“ nebo „Týdenní období 42“. Je důležitý pro „Sledování dodržení termínu SLA“. Pomáhá seskupit případy jednotlivých zaměstnanců do příslušných dávek pro souhrnné výkaznictví. Proč je to důležité Základ pro analýzu na úrovni dávek a sledování SLA. Kde data získat Tabulka PAY_TIME_PERIODS nebo název období v definici mezd. Příklady 2023 měsíční 102023 týdenní 42Bonusová výplata, prosinec 2023 | |||
| Název oddělení DepartmentName | Organizační jednotka, ve které zaměstnanec pracuje. | ||
| Popis Určuje oddělení odpovědné za zaměstnance uvedeného v mzdovém záznamu. Tento údaj je důležitý pro dashboard „Efektivita schvalování výkazů pracovní doby“. Analytici mohou data rozdělit podle oddělení a zjistit, které organizační jednotky pravidelně schvalují výkazy pozdě, a tím zdržují zpracování mezd. Proč je to důležité Pomáhá hledat příčiny zpoždění souvisejících se schvalováním ze strany vedoucích. Kde data získat Odvozeno ze záznamu o pracovním zařazení zaměstnance platného v době zpracování mezd. Příklady Prodej, Severní AmerikaTechnické odděleníLidské zdrojeLogistika | |||
| Skupina zaměstnanců pro výplatu PayGroup | Logické seskupení zaměstnanců pro zpracování mezd. | ||
| Popis Označuje konkrétní definici mezd, do které zaměstnanec patří, například „Týdenní, výroba“ nebo „Měsíční, kancelářské pozice“. Tento atribut je důležitý pro většinu dashboardů. Umožňuje porovnávat výkonnost různých mzdových cyklů a frekvencí výplat. Proč je to důležité Hlavní konfigurační objekt, který určuje plán zpracování mezd. Kde data získat Tabulka PAY_ALL_PAYROLLS_F (Payroll Name). Příklady USA, dvakrát měsíčněSpojené království, měsíčněTýdenní, odbory | |||
| Termín zpracování podle SLA SlaProcessingDeadline | Cílové datum a čas, do kdy musí být platba provedena. | ||
| Popis Ukládá smluvní nebo zákonný termín výplaty mezd. Tento atribut se porovnává s časovým razítkem události „Platba provedena“. Používá se k výpočtu KPI „Dodržení termínu zpracování podle SLA“ a k identifikaci rizikových skupin zaměstnanců. Proč je to důležité Hlavní měřítko toho, zda byl proces dokončen včas. Kde data získat Obvykle jde o nakonfigurované pole (DFF) v definici mezd nebo o hodnotu odvozenou od data vystavení šeku minus X dní. Příklady 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Uživatel provádějící zpracování ProcessingUser | ID uživatele nebo jméno osoby, která aktivitu provedla. | ||
| Popis Zaznamenává identitu mzdového specialisty, vedoucího nebo systémového účtu, který aktivitu spustil. Tento údaj slouží pro dashboard „Rozložení pracovní zátěže mzdových specialistů“. Pomáhá odhalit úzká místa v dostupnosti zdrojů a potřeby školení mzdového týmu. Proč je to důležité Umožňuje analyzovat produktivitu zdrojů a vyrovnávat pracovní zátěž. Kde data získat Sloupce CREATED_BY nebo LAST_UPDATED_BY v transakčních tabulkách. Příklady sysadminj.smithpayroll_batch_userm.doe | |||
| Daňová jurisdikce TaxJurisdiction | Konkrétní stát, provincie nebo místní oblast, pro kterou se podává daňové přiznání. | ||
| Popis Určuje hlavní daňový úřad související s mzdovým záznamem, například „CA“ pro Kalifornii nebo „NY“ pro New York. Tento údaj slouží pro dashboard „Doba zpracování daňových povinností“. Pomáhá zjistit, zda jsou v některých regionech výpočty a podávání daní složitější nebo pomalejší. Proč je to důležité Umožňuje porovnávat výkonnost podle náročnosti regulačních požadavků. Kde data získat Odvozeno z daňové karty zaměstnance nebo adresy jeho pracoviště. Příklady CA-KalifornieNY-New YorkTX-TexasFederální-USA | |||
| Počet náhledů výpočtu PreviewIterationCount | Kolikrát se zobrazily výsledky před jejich finalizací. | ||
| Popis Počítadlo se zvýší pokaždé, když u stejného případu proběhne aktivita „Zobrazen náhled výsledků mezd“. Jde o přímou metriku pro dashboard „Sledování opakovaných náhledů mezd“. Ukazuje míru přepracování nebo váhání před schválením. Proč je to důležité Vyjadřuje efektivitu fáze ověřování. Kde data získat Vypočítává se při transformaci dat počítáním výskytů konkrétních aktivit pro každé ID případu. Příklady 1350 | |||
| Příznak zpětné změny RetroactiveChangeFlag | Ukazuje, zda zpracování mezd zahrnuje zpětné platby. | ||
| Popis Logický příznak, který má hodnotu true, pokud se v tomto záznamu zpracovávají položky „Retropay“. Pomáhá vysvětlit delší dobu zpracování nebo výjimky z auditu při „Porovnání variant průběhu procesu“. Zpětné změny často vyvolají složité přepočty za předchozí období. Proč je to důležité Pomáhá identifikovat složité případy, jejichž zpracování přirozeně trvá déle. Kde data získat Přítomnost položek „Retropay“ v tabulce PAY_ELEMENT_ENTRIES. Příklady truefalse | |||
| Stav SLA SlaStatus | Stav dodržení SLA, například splněno nebo nesplněno. | ||
| Popis Odvozuje se porovnáním časového razítka události „Platba provedena“ s termínem zpracování podle SLA. Možné hodnoty zahrnují „Včas“, „V ohrožení“ nebo „Po termínu“. Zjednodušuje vykazování v dashboardu „Sledování dodržení termínu SLA“ tím, že případy rozděluje do skupin podle výkonnosti. Proč je to důležité Převádí složité časové porovnání do kategorií, podle kterých lze jednat. Kde data získat Vypočítává se porovnáním časového razítka události s termínem SLA. Příklady SplněnoPo termínuBlíží se překročení termínu | |||
| Typ výjimky z auditu AuditExceptionType | Kategorie chyby nebo upozornění zaznamenaného při auditu. | ||
| Popis Zařazuje konkrétní problém zjištěný při aktivitě „Zaznamenána výjimka z auditu“, například „Záporná čistá mzda“ nebo „Chybějící daňové ID“. Tento atribut pomáhá v dashboardu „Analýza výjimek z auditu a oprav“ určit nejčastější problémy s kvalitou dat. Proč je to důležité Je důležitý pro hledání příčin opakovaného přepracování. Kde data získat Sloupce Message nebo Error Code v protokolech mzdového procesu či sestavách výjimek. Příklady Záporná čistá mzdaChybějící SSNNeplatné bankovní údajePřekročený limit přesčasů | |||
| Typ zaměstnance EmployeeType | Zařazení zaměstnance, například zaměstnanec s pevnou mzdou, hodinově placený zaměstnanec nebo smluvní pracovník. | ||
| Popis Klasifikuje záznam zaměstnance. Tento údaj je důležitý pro dashboard „Zpoždění při zveřejnění digitální výplatní pásky“, protože pro různé typy zaměstnanců mohou platit odlišná pravidla nebo lhůty zpracování. Umožňuje filtrovat analýzu a porovnávat průběh procesu v různých skupinách zaměstnanců. Proč je to důležité Pro různé typy zaměstnanců se často používají různé varianty procesu. Kde data získat Kategorie pracovního zařazení nebo podmínky zaměstnání v tabulce PER_ALL_ASSIGNMENTS_M. Příklady Zaměstnanec na plný úvazek s pevnou mzdouHodinově placený zaměstnanec na částečný úvazekSmluvní pracovníkVedoucí pracovník | |||
Aktivity při zpracování mezd
| Aktivita | Popis | ||
|---|---|---|---|
| Platba provedena | Konečné potvrzení, že platba byla zpracována. V Oracle odpovídá dokončení platebního workflow nebo odsouhlasení v Cash Management. | ||
| Proč je to důležité Hlavní časové razítko pro ověření plnění SLA. Slouží ke zjištění, zda zaměstnanci dostali výplatu včas. Kde data získat Lze ji odvodit z data účinnosti akce Bank Transfer nebo přímo z protokolů o odsouhlasení v Cash Management (CE_STATEMENT_LINES). Zachycení Zaznamená se podle data účinnosti platební akce nebo události odsouhlasení Typ události explicit | |||
| Výpočet mezd dokončen | Úspěšné dokončení procesu Calculate Payroll včetně výpočtu hrubé mzdy a čisté mzdy. Tato událost potvrzuje, že byly vypočítány výdělky, srážky a daně pro dané pracovní zařazení. | ||
| Proč je to důležité Důležitý milník, který potvrzuje, že jsou data připravena k ověření. Dlouhá doba v této fázi může ukazovat na problémy s výkonem systému nebo složité vzorce. Kde data získat Propojte PAY_PAYROLL_REL_ACTIONS s PAY_PAYROLL_ACTIONS a vyhledejte záznamy, kde je ACTION_TYPE R nebo Q a ACTION_STATUS se změní na C (Complete). Zachycení Zaznamená se při změně stavu akce Payroll Run na Complete Typ události explicit | |||
| Vypočteny zálohové platby | Provedení procesu Prepayments, který rozděluje čistou mzdu mezi zvolené způsoby výplaty zaměstnance, například šek nebo EFT. Ověřuje, zda lze vypočtené částky skutečně vyplatit. | ||
| Proč je to důležité Propojuje výpočet mezd s výplatou. Chyby v této fázi obvykle ukazují na chybějící bankovní údaje nebo neplatné způsoby výplaty. Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS záznamy, kde je ACTION_TYPE P (Prepayments) a stav Complete. Zachycení Zaznamená se po dokončení akce Prepayments Typ události explicit | |||
| Vytvořen bankovní převod | Vytvoření souboru EFT (Electronic Funds Transfer) nebo jiného výstupu pro platby. Jde o technický krok, při kterém vzniká soubor s platebními příkazy pro banku. | ||
| Proč je to důležité Měří dobu vytvoření souboru pro platby. Zpoždění může vést k nedodržení bankovních uzávěrek. Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS záznamy, kde je ACTION_TYPE M (Magnetic Tape), E (EFT) nebo C (Check Writer). Zachycení Zaznamená se po dokončení akce EFT/Check Typ události explicit | |||
| Zahájen výpočet mezd | Zahájení hlavního výpočtu mezd pro konkrétní definici a období. Označuje přechod od shromažďování dat k jejich zpracování. | ||
| Proč je to důležité Označuje začátek hlavní fáze zpracování. Slouží k výpočtu celkové doby technického zpracování mezd. Kde data získat Vyhledejte v tabulce PAY_PAYROLL_ACTIONS záznam, kde je ACTION_TYPE R (Run) nebo Q (QuickPay) a ACTION_STATUS označuje zahájení, případně začátek odvoďte z data vytvoření. Zachycení Zaznamená se při vložení záznamu do PAY_PAYROLL_ACTIONS Typ události explicit | |||
| Daňové přiznání dokončeno | Vytvoření zákonných daňových souborů, například čtvrtletního daňového souboru pro třetí stranu. Tím se zajišťuje plnění zákonných povinností za dané mzdové období. | ||
| Proč je to důležité Důležité pro KPI doby zpracování daňových povinností. Chyba v této fázi může vést k sankcím. Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS akce konkrétní legislativní skupiny dat související s daňovým výkaznictvím, například US Third Party Tax Filing. Zachycení Zaznamená se po dokončení konkrétního workflow daňového výkaznictví Typ události explicit | |||
| Motivační údaje importovány | Vytvoření mzdových položek pro proměnlivou složku odměny, například bonusy nebo provize, pomocí dávkového načítání nebo importu HDL. Událost zachycuje přenos externích údajů o odměnách do mzdového výpočtu. | ||
| Proč je to důležité Sleduje rychlost přenosu údajů o proměnlivé složce odměny. Pozdní importy často vyžadují dodatečné zpracování mezd nebo ruční opravy. Kde data získat Ověřte dokončení importu v PAY_BATCH_HEADERS nebo sledujte vytvoření záznamů v PAY_ELEMENT_ENTRIES_F s konkrétním odkazem na zdrojový systém. Zachycení Zaznamená se po úspěšném dokončení dávkového zpracování mzdových položek Typ události explicit | |||
| Mzdový záznam opraven | Ruční úpravy mzdových položek nebo údajů o pracovním zařazení po prvním výpočtu mezd, ale před jeho dokončením. Tato aktivita zachycuje opakovanou práci potřebnou k opravě chyb nebo výjimek. | ||
| Proč je to důležité Ukazuje na neefektivní proces a problémy s kvalitou dat. Omezení této aktivity pomáhá zvýšit přesnost mezd při prvním výpočtu. Kde data získat Událost lze odvodit z aktualizací v PAY_ELEMENT_ENTRIES_F, jejichž Last Update Date spadá mezi datum prvního výpočtu mezd a datum Prepayments. Zachycení Porovnejte časová razítka aktualizací mzdových položek s časovými razítky výpočtu mezd Typ události inferred | |||
| Náklady převedeny do účetnictví | Přenos výsledků mzdového účtování do hlavní knihy. Tím se účetně uzavírá mzdový cyklus. | ||
| Proč je to důležité Zajišťuje správné účtování nákladů na práci a soulad s finančními předpisy. Zpoždění brání finančnímu oddělení v uzavření účetnictví. Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS záznamy, kde je ACTION_TYPE T (Transfer to GL) a stav Complete. Zachycení Zaznamená se po dokončení procesu Transfer to GL Typ události explicit | |||
| Proveden QuickPay | Provedení výpočtu mezd pro jednu osobu (QuickPay), který se obvykle používá k ověření oprav. Slouží jako náhradní ukazatel aktivity Payroll Result Previewed. | ||
| Proč je to důležité Časté použití QuickPay u jednoho zaměstnance ukazuje na postup metodou pokusů a omylů při zpracování mezd, nikoli na Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS záznamy, kde je ACTION_TYPE Q (QuickPay). Spočítejte jejich počet pro každého zaměstnance v každém mzdovém období. Zachycení Zaznamená se při uložení akce QuickPay do PAY_PAYROLL_ACTIONS Typ události explicit | |||
| Výkaz práce odeslán | První událost, při které zaměstnanec nebo vedoucí odešle údaje o odpracované době ke zpracování. V Oracle HCM se zaznamená změnou stavu výkazu práce na Submitted v modulu Time and Labor. | ||
| Proč je to důležité Označuje vložení prvotních dat do procesu zpracování mezd. Zpoždění v této fázi se přenáší do dalších kroků a zkracuje čas, který mají mzdoví specialisté na ověření výpočtů. Kde data získat Vyhledejte tabulku HWM_TM_REC_GRP_DTLS nebo pohled HXT_TIMECARDS, kde se stav změní na SUBMITTED. Použijte časové razítko odeslání. Zachycení Zaznamená se při změně stavu na SUBMITTED v modulu Time and Labor Typ události explicit | |||
| Výkaz práce schválen | Potvrzení, že vedoucí zkontroloval a schválil odeslané údaje o odpracované době. Tato změna stavu spustí přenos dat do mzdových položek. | ||
| Proč je to důležité Tato událost je důležitá pro měření doby schválení vedoucím. Zpoždění v této fázi často způsobuje zpětné úpravy mezd v dalších obdobích. Kde data získat Vyhledejte tabulku HWM_TM_REC_GRP_DTLS nebo pohled HXT_TIMECARDS, kde se stav změní na APPROVED. Porovnejte časové razítko schválení s časovým razítkem odeslání. Zachycení Zaznamená se při změně stavu na APPROVED v modulu Time and Labor Typ události explicit | |||
| Výpočet mezd schválen | Formální schválení mzdového přehledu nebo workflow v Payroll Dashboard. Obvykle k němu dochází po kontrole validačních reportů a před vytvořením bankovních souborů. | ||
| Proč je to důležité Označuje formální schválení vedoucím. Doba mezi výpočtem a schválením představuje čas vyhrazený na kontrolu. Kde data získat Vyhledejte změny stavu v PAY_REQ_FLOW_INSTANCES nebo dokončení konkrétní úlohy v definovaném Payroll Flow Pattern. Zachycení Zaznamená se při změně stavu instance workflow na Completed/Approved Typ události explicit | |||
| Vytvořeny archivní výsledky | Dokončení procesu Archive Periodic Payroll Results. Tento snímek uzamkne data pro reporting a tvorbu výplatních pásek. | ||
| Proč je to důležité Technický předpoklad pro tvorbu výplatních pásek a zákonných reportů. Potvrzuje, že jsou data konečná. Kde data získat Vyhledejte v PAY_PAYROLL_ACTIONS záznamy, kde je ACTION_TYPE X (Archive) a stav Complete. Zachycení Zaznamená se po dokončení akce Archive Typ události explicit | |||
| Zaznamenána auditní výjimka | Zaznamenání chybové nebo varovné zprávy během výpočtu či ověřování mezd. Událost zachycuje konkrétní chyby při ověřování, které vyžadují zásah uživatele. | ||
| Proč je to důležité Pomáhá odhalit problémy s kvalitou dat. Vysoký počet výjimek zvyšuje množství ruční práce a riziko nedodržení SLA. Kde data získat Vyhledejte v tabulce PAY_MESSAGE_LINES záznamy propojené s konkrétním PAY_PAYROLL_REL_ACTION_ID. Tato tabulka obsahuje chyby a upozornění vzniklé během zpracování. Zachycení Zaznamená se při vložení záznamu do PAY_MESSAGE_LINES Typ události explicit | |||
| Zveřejněna výplatní páska | Okamžik, kdy se výplatní páska zobrazí zaměstnanci v samoobslužném portálu. Následuje po archivaci a případně po samostatném procesu 'Generate Payslip'. | ||
| Proč je to důležité Ovlivňuje spokojenost zaměstnanců. Dlouhá prodleva mezi výplatou a zpřístupněním pásky vede k požadavkům na podporu. Kde data získat Vyhledejte tabulku Documents of Record (HR_DOCUMENTS_OF_RECORD) nebo dokončení procesu Generate Payslip v PAY_PAYROLL_ACTIONS. Zachycení Zaznamená se po dokončení procesu tvorby PDF výplatní pásky Typ události explicit | |||
Návody k extrakci dat
Kroky
Otevřete Data Exchange: Přihlaste se do Oracle HCM Cloud jako uživatel s rolí 'Human Capital Management Integration Specialist'. Přejděte do My Client Groups > Data Exchange > Extract Definitions.
Vytvořte novou extrakci: Kliknutím na ikonu '+' vytvořte novou extrakci. Pojmenujte ji 'ProcessMind_Payroll_Extract'. Jako konzumenta vyberte 'Payroll' a jako kategorii 'HR Archive', abyste měli přístup k historickým údajům o mzdových akcích.
Definujte skupiny dat: Vytvořte kořenovou skupinu dat založenou na User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). Ta naváže extrakci na mzdový vztah zaměstnance. Vytvořte podřízené skupiny dat proPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEaHWM_MEASURE_DAY_V_UE(pro evidenci času a práce).Nastavte záznamy extrakce: Ve skupinách dat definujte záznamy, které převedou hierarchická data do ploché struktury. Vytvořte samostatné záznamy pro jednotlivé typy aktivit, například jeden pro události 'Time Card' a druhý pro 'Run Results'.
Použijte logiku SQL přes FastFormula nebo BIP: Převod hierarchických mzdových dat do lineárního záznamu událostí je složitý. Nejspolehlivější je proto pomocí 'Extract Delivery Option' zavolat sestavu BI Publisher. V části 'Query' níže uvedený SQL použijte jako datový model. Tento postup je vhodnější než filtrování v nativním grafickém rozhraní, pokud potřebujete vytvořit jednotný záznam událostí.
Vytvořte datový model BI Publisher: Přejděte do Tools > Reports and Analytics > Browse Catalog. Vytvořte nový datový model a vložte níže uvedený SQL dotaz. Definujte parametry
bind_start_dateabind_end_date.Propojte extrakci s BIP: Na kartě 'Delivery' v definici extrakce vytvořte možnost doručení. Jako výstupní formát vyberte 'PDF' nebo 'XML'. ProcessMind upřednostňuje CSV, výstup z BIP ale převedete. Vyberte sestavu BI Publisher vytvořenou v předchozím kroku.
Definujte parametry: Ve stromu spuštění extrakce přidejte parametry počátečního a koncového data, které se dynamicky předají dotazu BI Publisher.
Ověřte a odešlete: Ověřte definici extrakce a zkontrolujte případné chyby. Klikněte na 'Submit Extract' a zadejte parametry, například posledních 90 dní.
Sledujte průběh: Přejděte do 'View Extract Results'. Počkejte, až se stav změní na 'Succeeded'.
Stáhněte výstup: Stáhněte vygenerovaný soubor XML/CSV a ověřte, že obsahuje požadované sloupce, například PayrollRecord, ActivityName a EventTimestamp.
Připravte data pro ProcessMind: Pokud je výstup ve formátu XML, převeďte ho na plochý soubor CSV a zajistěte, aby názvy sloupců odpovídaly požadavkům v části 'Attributes to include'. Výsledný soubor nahrajte do ProcessMind.
Konfigurace
- Režim extrakce: Pouze změny nebo úplná extrakce. Při prvním načtení použijte úplnou extrakci. Pro každodenní aktualizace nastavte 'Changes Only' podle data poslední aktualizace.
- Legislative Data Group (LDG): Pokud vaše instance podporuje více zemí, doporučujeme filtrovat podle LDG, protože definice mezd se liší podle legislativy.
- Rozsah dat: Nastavte
bind_start_dateabind_end_datetak, aby pokrývaly alespoň 3 až 6 měsíců. Process mining tak zachytí celé cykly. - Velikost dávky: U velkých mzdových agend (více než 10 000 zaměstnanců) nastavte v definici extrakce velikost dávky na 2 000, abyste předešli vypršení časového limitu.
- Platnost záznamů v čase: Mzdové tabulky mají časově omezenou platnost. Logika dotazu zohledňuje
effective_start_dateaeffective_end_date, aby načetla správnou historickou verzi záznamu. - Zabezpečení: Spouštějící uživatel musí mít profily zabezpečení dat, které mu umožní zobrazit všechny mzdy a oddělení určené k analýze.
Ukázkový dotaz 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 Kroky
- Přihlaste se do Oracle BI Publisher: Otevřete prostředí Oracle Cloud a přejděte do Tools > Reports and Analytics. Kliknutím na Browse Catalog otevřete rozhraní BI Publisher.
- Vytvořte datový model: Klikněte na New (vlevo nahoře) a vyberte Data Model. Zde připravíte logiku extrakce SQL.
- Vytvořte datovou sadu SQL: Na kartě Diagram klikněte na ikonu New Data Set a vyberte SQL Query.
- Nastavte zdroj dat: Pojmenujte datovou sadu, například
ProcessMind_Payroll_Extract. Jako Data Source nastavteApplicationDB_HCMnebo konkrétní připojení k databázi aplikace HCM. Typ ponechte Standard SQL. - Zadejte dotaz: Zkopírujte celý SQL skript z níže uvedené části Query a vložte ho do textového pole SQL Query. Nevkládejte formátování Markdown.
- Definujte parametry: Dotaz používá proměnné
:p_start_datea:p_end_date. Na kartě Parameters v datovém modelu vytvořte tyto dva parametry typu Date. Omezí rozsah extrakce, například podleppa.EFFECTIVE_DATE. - Ověřte strukturu dat: Klikněte na OK a v editoru datového modelu přejděte na kartu Data. Zadejte ukázková data, například
2023-01-01až2023-03-31, a klikněte na View. Ověřte, že výstup obsahuje řádky se sloupciPayrollRecord,ActivityNameaEventTimestamp. - Uložte datový model: Uložte model do sdílené složky, například
/Shared Folders/Custom/ProcessMining. - Vytvořte sestavu pro export: Klikněte na Create Report a vyberte právě uložený datový model. Pomocí Report Wizard vytvořte jednoduchou tabulku se všemi sloupci. Zrušte zaškrtnutí políčka 'Show Grand Totals'.
- Exportujte do CSV: Otevřete sestavu v Report Viewer. Klikněte na nabídku Actions (ikona ozubeného kola) > Export > Data > CSV.
- Upravte soubor: Otevřete CSV. Pokud se formáty dat nenastavily automaticky, použijte ISO 8601 (
YYYY-MM-DD HH:MM:SS). Pokud jste SQL vložili správně, další úpravy struktury nebudou potřeba. - Nahrajte soubor: Importujte výsledný soubor CSV do ProcessMind a namapujte sloupce podle požadavků na data.
Konfigurace
- Připojení ke zdroji dat: Použijte
ApplicationDB_HCMnebo ekvivalentní zdroj dat JNDI s přístupem pro čtení ke schématůmPAY_aPER_. - Rozsah dat: Doporučené období extrakce je 3 až 6 měsíců, aby zahrnovalo celé mzdové cykly. Dynamické načítání řiďte pomocí parametrů
:p_start_datea:p_end_date. - Legislative Data Group (LDG): Dotaz ve výchozím nastavení extrahuje data ze všech LDG. Pokud zpracováváte více zemí, zvažte rozdělení dat přidáním filtru
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]. - Výkon: Dotaz pracuje s tabulkami obsahujícími velké objemy dat (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Nenastavujte příliš široký rozsah dat, například delší než 1 rok, abyste předešli vypršení časového limitu v BI Publisher. - Zabezpečení: Uživatel spouštějící sestavu potřebuje oprávnění Data Access Set pro příslušné definice mezd.
Ukázkový dotaz 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 Chcete začít?
Pomocí této datové šablony získejte přehled o celém průběhu výplat a zlepšete zpracování mezd. Začněte snižovat podíl ruční práce a zpřesňovat výkaznictví.
Zlepšete zpracování mezd v Oracle HCM
Zkraťte mzdový cyklus o 30 % a odstraňte úzká místa.
Platební kartu nepotřebujete. Nastavení zabere jen několik minut.