Šablona dat pro zpracování mezd
Šablona dat pro zpracování mezd
- Důležitá datová pole pro analýzu mezd
- Milníky pro zmapování procesu
- Pokyny k extrakci dat podle systému
Atributy zpracování mezd
| Název | Popis | ||
|---|---|---|---|
| Aktivita Activity | Konkrétní úkol nebo událost, ke které dochází při zpracování mezd. | ||
| Popis Tento atribut zachycuje název prováděného kroku procesu, například „Odeslání výkazu pracovní doby“, „Provedení simulace mezd“ nebo „Provedení platby“. Tvoří základ procesní mapy a analytikům umožňuje zobrazit pořadí činností během výplatního cyklu. Údaje pro tento atribut se získávají z různých záznamů, například z logů Workflow (SWWLOGHIST), záznamů změn infotypů (CDHDR/CDPOS) a konkrétních tabulek se stavem mezd. Při extrakci se používají jednotné názvy, aby se technické kódy událostí převedly na srozumitelné názvy činností. Proč je to důležité Určuje uzly v procesním grafu a umožňuje zobrazit průběh procesu, smyčky a varianty. Kde data získat Odvozuje se ze změn stavu v SWWLOGHIST (Workflow), CDHDR (změnové dokumenty) nebo PA03 (záznam řízení). Příklady Výkaz pracovní doby odeslánHrubá mzda vypočtenaVýjimka při auditu označenaPlatba provedena | |||
| Časové razítko události EventTimestamp | Přesné datum a čas, kdy k činnosti došlo. | ||
| Popis Tento atribut zaznamenává přesný okamžik události včetně data a času. Je nezbytný pro výpočet časových ukazatelů, například doby zpracování, průběžné doby a propustnosti mezi jednotlivými fázemi procesu. V SAP ECP se údaje získávají z polí časového razítka, jako jsou Proč je to důležité Umožňuje vypočítat dobu mezi událostmi, což je důležité pro odhalení úzkých míst a porušení SLA. Kde data získat CDHDR-UDATE/UTIME, SWWLOGHIST-WI_CD/WI_CT nebo časová razítka z konkrétních auditních záznamů. Příklady 2023-10-25T08:30:00Z2023-10-26T14:15:22Z2023-11-01T09:00:00Z | |||
| Mzdový záznam PayrollRecord | Jedinečný identifikátor tvořený číslem zaměstnance a výplatním obdobím. | ||
| Popis Mzdový záznam slouží jako hlavní identifikátor případu pro analýzu process mining. Představuje jedno zpracování mezd konkrétního zaměstnance za stanovené výplatní období a propojuje všechny činnosti od prvního odeslání výkazu pracovní doby až po závěrečné podání daňového přiznání. V SAP SuccessFactors Employee Central Payroll se obvykle vytváří spojením osobního čísla (PERNR), roku zúčtování (PABRJ) a výplatního období (PABRP). Pro rozlišení více běhů lze přidat také pořadové číslo (SEQNR). Díky této podrobnosti se každý výplatní cyklus analyzuje jako samostatná instance, což umožňuje přesně měřit dobu zpracování a sledovat chyby. Proč je to důležité Slouží jako ID případu a sdružuje všechny související události, aby bylo možné rekonstruovat celý průběh zpracování každé výplaty. Kde data získat Vytváří se z clusteru SAP B2 (výsledky vyhodnocení pracovní doby) nebo z tabulek PC_PAYRESULT (PERNR, PABRJ, PABRP, SEQNR). Příklady 10023499-2023-1088291022-2024-01-SEQ01US-10293-2023-52 | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko poslední extrakce dat. | ||
| Popis Tento atribut uvádí, kdy byly záznamy naposledy aktualizovány v datovém modelu process mining. Analytici tak mohou posoudit aktuálnost dat a ověřit, že závěry vycházejí z aktuálních informací. Při analýze průběhu procesu se přímo nepoužívá, je však důležitý pro správu a ověřování dat. Pomáhá potvrdit, že dashboard zobrazuje nejnovější stav mzdového systému. Proč je to důležité Upozorňuje uživatele na zpoždění dat a pomáhá ověřit aktuálnost vykazovaných ukazatelů. Kde data získat Generuje se při běhu skriptu ETL nebo extrakce. Příklady 2023-11-05T00:00:00Z2023-11-05T12:00:00Z | |||
| Zdrojový systém SourceSystem | Systém, ze kterého pocházejí data o události. | ||
| Popis Tento atribut určuje konkrétní instanci SAP SuccessFactors Employee Central Payroll nebo připojeného subsystému, ze kterého byla data extrahována. V prostředí s více mzdovými systémy nebo hybridním řešením zajišťuje dohledatelnost původu dat. Hodí se zejména při analýze dat z různých regionálních instalací nebo při porovnávání výkonu starších a migrovaných systémů. Obvykle jde o statický řetězec nastavený při konfiguraci extrakce dat. Proč je to důležité Umožňuje rozdělit data podle systémů a při řešení problémů s jejich kvalitou určit jejich původ. Kde data získat ID systému (SID) z instalace SAP nebo konfigurace extrakce. Příklady SAP_ECP_NASAP_ECP_EMEASuccessFactors_Core | |||
| Automatizováno IsAutomated | Příznak určující, zda činnost provedl systémový uživatel. | ||
| Popis Tento booleovský atribut určuje, zda konkrétní krok procesu provedla dávková úloha či systémový uživatel, nebo člověk. Dashboard „Sledování automatizace bankovních převodů“ jej používá k výpočtu podílu zpracování bez ručních zásahů. Obvykle se odvozuje porovnáním ID uživatele se seznamem známých systémových účtů, například „BATCH“ nebo „SAP_WORKFLOW“. Proč je to důležité Pomáhá měřit míru automatizace a hledat možnosti, jak omezit ruční práci. Kde data získat Odvozuje se z ID uživatele, například pokud je uživatel v seznamu ['BATCH', 'SYSTEM'], pak true. Příklady truefalse | |||
| Četnost výplatního cyklu PayCycleFrequency | Určuje, zda jde o pravidelný běh, nebo běh mimo běžný cyklus. | ||
| Popis Tento atribut rozlišuje mezi standardními plánovanými běhy mezd a mimořádnými běhy „mimo cyklus“, které slouží k opravám nebo okamžitým platbám. Vysoký počet mimořádných běhů může ukazovat na neefektivní proces. Sleduje ho dashboard „Analýza objemu mimořádných plateb“. Údaj se odvozuje z polí důvodu běhu mimo cyklus ( Proč je to důležité Je nezbytný pro měření KPI „Podíl mimořádných plateb“ a omezení nestandardního zpracování. Kde data získat Tabulka RGDIR (adresář clusteru), pole OCRSN nebo PAYTY. Příklady Pravidelná výplataOprava AVýplata bonusuUkončení pracovního poměru | |||
| Hrubá mzda GrossPayAmount | Celková hrubá mzda vypočtená pro daný záznam. | ||
| Popis Tento atribut představuje celkovou částku hrubé mzdy před srážkami. Jde o základní ukazatel pro finanční kontrolu, který umožňuje porovnat výši plateb s mírou kontroly při auditu nebo délkou schvalování. Údaj se získává z tabulky výsledků mezd (RT), obvykle z konkrétních mzdových druhů představujících celkovou hrubou mzdu, například /101. V analýze „Přesnost výpočtu benefitů a daní“ slouží jako základ pro výpočty. Proč je to důležité Umožňuje analyzovat průběh procesu podle výše platby, například zda schválení vyšších částek trvá déle. Kde data získat Tabulka výsledků mezd (RT), mzdový druh /101 nebo podobný. Příklady 5000.002500.5010500.00 | |||
| Mzdová oblast PayrollArea | Určuje konkrétní mzdovou skupinu, do které zaměstnanec patří. | ||
| Popis Mzdová oblast sdružuje zaměstnance, jejichž mzdy se zpracovávají společně v jednom běhu. Skupiny se obvykle určují podle četnosti výplat, například měsíčně nebo jednou za dva týdny, případně podle organizační struktury. Tento atribut umožňuje rozdělit analýzu a porovnat průběh zpracování u různých skupin zaměstnanců. V SAP odpovídá technickému poli Proč je to důležité Umožňuje porovnat průběh výplatního cyklu u různých skupin, například u zaměstnanců placených hodinově a zaměstnanců s pevnou mzdou. Kde data získat Tabulka PA0001 (organizační zařazení), pole ABKRS. Příklady USA, výplata jednou za dva týdnyNěmecko, měsíční výplataMzdy vedoucích pracovníků | |||
| Nákladové středisko CostCenter | Nákladové středisko přiřazené zaměstnanci. | ||
| Popis Nákladové středisko označuje finanční oddělení nebo jednotku, na kterou se účtují náklady zaměstnance. V dashboardu „Úzká místa při schvalování výkazů pracovní doby“ slouží jako ukazatel oddělení a pomáhá určit, které organizační jednotky zdržují výplatní cyklus. Údaj se nachází v infotypu organizačního zařazení (PA0001) v poli Proč je to důležité Umožňuje přejít na úroveň jednotlivých organizačních jednotek a určit, která oddělení způsobují prodlevy nebo opakovanou práci. Kde data získat Tabulka PA0001, pole KOSTL. Příklady CC-1000 FinanceCC-2000 ITCC-3000 Prodej | |||
| Specialista na mzdy PayrollSpecialist | ID uživatele nebo jméno osoby, která záznam zpracovává. | ||
| Popis Tento atribut zachycuje totožnost mzdového administrátora nebo specialisty odpovědného za ruční kroky či schvalování. Je základem dashboardu „Výkon a vytížení specialistů“, který umožňuje analyzovat rozložení práce a produktivitu jednotlivých pracovníků. Údaj se získává z pole Proč je to důležité Je důležitý pro vyrovnávání pracovního vytížení a odhalování úzkých míst způsobených kapacitou pracovníků. Kde data získat Systémová pole (SY-UNAME) zaznamenaná v CDHDR nebo ID aktéra Workflow. Příklady JSMITHKMILLERSYSTEM | |||
| Typ zaměstnance EmployeeType | Zařazení zaměstnance, například stálý zaměstnanec nebo smluvní pracovník. | ||
| Popis Tento atribut rozděluje zaměstnance podle typu pracovního vztahu, například na aktivní zaměstnance, důchodce nebo smluvní pracovníky. Náročnost zpracování mezd často závisí na typu zaměstnance. U některých skupin je potřeba více ručních zásahů nebo zvláštních kontrol shody. Technicky se údaj získává z polí skupiny zaměstnanců ( Proč je to důležité Pomáhá zjistit, zda se odchylky nebo prodlevy v procesu týkají konkrétních kategorií zaměstnanců. Kde data získat Tabulka PA0001, pole PERSG (skupina) a PERSK (podskupina). Příklady Aktivní zaměstnanecStážistaDůchodceSmluvní pracovník placený hodinově | |||
| Výplatní období PayPeriod | Konkrétní číslo období v rámci fiskálního roku. | ||
| Popis Tento atribut označuje pořadové číslo výplatního období, například 01 pro leden nebo první dvoutýdenní cyklus. Analytici díky němu mohou sledovat vývoj v čase a odhalovat sezónní změny v objemu zpracování. Údaj se získává z pole Proč je to důležité Umožňuje sledovat vývoj a odhalovat sezónní úzká místa v určitých obdobích roku. Kde data získat Tabulka PA0001 nebo cluster výsledků mezd (RGDIR), pole PABRP. Příklady 01122652 | |||
| Daňová jurisdikce TaxJurisdiction | Daňový region nebo úřad příslušný pro zaměstnance. | ||
| Popis Tento atribut určuje konkrétní daňový úřad nebo oblast, například stát, provincii či kanton, podle které se řídí mzdový záznam. Dashboard „Výjimky při auditu a riziko nesouladu“ umožňuje zobrazit, kde se problémy se shodou vyskytují nejčastěji. V SAP US Payroll jde o pole Proč je to důležité Umožňuje rozdělit rizika nesouladu a výjimky z auditu podle oblasti s vlastními předpisy. Kde data získat Tabulka PA0001 nebo PA0207/PA0208, pole TXJCD. Příklady CANYTXNRW | |||
| Počet oprav ReworkCount | Počet provedených oprav. | ||
| Popis Tento vypočítaný ukazatel počítá, kolikrát se v historii případu objevila činnost „Provedení opravy dat“. Přímo měří neefektivitu procesu a slouží jako podklad pro dashboard „Ruční opravy a míra opakované práce“. Vysoký počet oprav ukazuje na přetrvávající problémy s kvalitou dat nebo složité případy, které neprojdou validací napoprvé. Proč je to důležité Vyčísluje práci vynaloženou na opravy chyb a pomáhá zdůvodnit iniciativy zaměřené na kvalitu dat. Kde data získat Vypočítá se jako počet činností „Provedení opravy dat“ pro každé CaseId. Příklady 013 | |||
| Právní subjekt LegalEntity | Kód společnosti nebo právní subjekt zaměstnance. | ||
| Popis Tento atribut určuje právní subjekt (kód společnosti) přiřazený ke mzdovému záznamu. Umožňuje finanční výkaznictví a porovnání průběhu zpracování mezd mezi různými dceřinými společnostmi nebo právními subjekty. Údaj se získává z pole Proč je to důležité Podporuje porovnávání mezi společnostmi a analýzu rozdělení nákladů. Kde data získat Tabulka PA0001, pole BUKRS. Příklady US01DE011000 | |||
| Příznak výjimky z auditu AuditExceptionFlag | Příznak určující, zda došlo k výjimce při auditu. | ||
| Popis Tento atribut označuje případy, kdy validační pravidla během simulace nebo výpočtu mezd vyvolala výjimku či varování. Je hlavním vstupem pro KPI „Četnost výjimek při auditu“. Údaje se často získávají z mzdového logu nebo z konkrétních tabulek chybových zpráv (FEHLER). Hodnota true znamená, že proces zahrnoval větev pro zpracování výjimky. Proč je to důležité Upozorňuje na problémy s kvalitou dat a potřebu ručního zásahu. Kde data získat Odvozuje se z přítomnosti chybových zpráv v mzdovém logu nebo z konkrétních stavových kódů. Příklady truefalse | |||
| Termín zpracování podle SLA SLAProcessingDeadline | Cílové časové razítko pro dokončení běhu mezd. | ||
| Popis Tento atribut představuje interní nebo externí termín dokončení mezd, který má zajistit včasnou výplatu. KPI „Míra dodržení SLA“ se vypočítá porovnáním tohoto termínu se skutečným časem „Provedení platby“. V tabulkách SAP nemusí být vždy k dispozici jako standardní pole. Často se ukládá do vlastní řídicí tabulky nebo se odvozuje z výplatního kalendáře, například jako dva dny před výplatním dnem. V tomto datovém modelu se obvykle počítá odečtením nastavené rezervy od výplatního dne. Proč je to důležité Poskytuje referenční hodnotu pro posouzení včasnosti a dodržení SLA. Kde data získat Odvozuje se od výplatního dne (T549S) po odečtení nastaveného počtu dnů zpracování. Příklady 2023-10-28T17:00:00Z2023-11-28T17:00:00Z | |||
Aktivity při zpracování mezd
| Aktivita | Popis | ||
|---|---|---|---|
| Hrubá mzda vypočtena | Úspěšné provedení výpočtu hrubé mzdy podle mzdového schématu. Při standardním zpracování k němu dochází, když mzdový program zapíše výsledky do clusteru PCL2. | ||
| Proč je to důležité Důležitý milník potvrzující, že údaje o pracovní době a sazbách byly úspěšně spojeny. Zpoždění v této fázi ovlivňuje efektivitu výpočtu hrubé a čisté mzdy. Kde data získat Cluster PCL2 (Payroll Results), konkrétně časové razítko tabulky adresáře (RGDIR) pro období „For-Period“. Zachycení Zaznamená se při zápisu nového pořadového čísla do mzdového clusteru Typ události explicit | |||
| Mzdový záznam schválen | Formální schválení výsledků mezd zaměstnance nebo mzdové skupiny. Probíhá v kroku „Monitoring“ nebo „Sign Off“ v PCC. | ||
| Proč je to důležité Označuje konec fáze výpočtu a ověření a uvolnění mezd k výplatě. Je důležitý pro analýzu průchodnosti práce specialistů. Kde data získat Protokoly instancí kroků Payroll Control Center (PYC_D_STEP_INST) pro krok Approval nebo Confirmation. Zachycení Zaznamená se při změně stavu kroku Approval v PCC na COMPLETED Typ události explicit | |||
| Platba provedena | Dokončení platebního procesu, které obvykle potvrzuje banka nebo dokončení zpracování plateb F110. | ||
| Proč je to důležité Hlavní koncové časové razítko pro míru dodržení SLA. Určuje, zda zaměstnanec dostal výplatu včas. Kde data získat Datum a čas zpracování v tabulkách plateb (REGUH) nebo údaj odvozený z data valuty. Zachycení Zaznamená se při nastavení stavu zpracování platby na Posted/Complete Typ události explicit | |||
| Podání daňového přiznání dokončeno | Vytvoření souborů pro daňové výkazy (např. PU19 v USA) nebo jejich předání externímu poskytovateli služeb pro podávání daňových přiznání. | ||
| Proč je to důležité Zajišťuje dodržování předpisů. Sleduje závěrečný krok procesu, který potvrzuje shodu. Kde data získat Protokoly Tax Reporter Log Manager nebo B2A (Business to Administration) Manager potvrzující úspěšné vytvoření souboru. Zachycení Zaznamená se po úspěšném dokončení běhu Tax Reporter Typ události explicit | |||
| Simulace mezd provedena | Zkušební spuštění mzdového programu, které odhalí chyby, aniž by se výsledky uložily do databáze. Jde o důležitý krok validační fáze v PCC. | ||
| Proč je to důležité Nezbytné pro výpočet míry úspěšnosti výpočtu napoprvé. Opakované simulace ukazují na problémy s kvalitou dat. Kde data získat Protokoly instancí kroků Payroll Control Center (PYC_D_STEP_INST), kde typ kroku odpovídá Simulation. Zachycení Zaznamená se při změně stavu kroku Simulation v PCC na COMPLETED Typ události explicit | |||
| Soubor pro bankovní převod vytvořen | Vytvoření souboru Preliminary Data Medium Exchange (pre-DME) nebo konečného souboru DME. Soubor obsahuje platební příkazy pro banku. | ||
| Proč je to důležité Sleduje automatizaci bankovních převodů. Neúspěšné vytvoření souboru představuje závažné přerušení procesu. Kde data získat Protokoly spuštění DME / Payment Medium Workbench (PMW), často uložené v TemSe nebo v konkrétních tabulkách zpracování plateb (ReguH/ReguP). Zachycení Zaznamená se při vytvoření výstupu během zpracování plateb (F110/RPCIPE) Typ události explicit | |||
| Výkaz pracovní doby odeslán | Událost, při které zaměstnanec nebo vedoucí odešle údaje o pracovní době za výplatní období. Zaznamenává se v protokolech požadavků workflow v modulu Employee Central propojeném s ECP. | ||
| Proč je to důležité Označuje začátek shromažďování údajů. Zpoždění v této fázi se přenášejí do dalších kroků a zkracují čas vyhrazený na zpracování mezd. Kde data získat Tabulky požadavků workflow v Employee Central (WfRequest), filtrované podle kategorií Time Sheet nebo Time Off. Zachycení Zaznamená se při změně stavu workflow na SUBMITTED Typ události explicit | |||
| Výkaz pracovní doby schválen | Formální schválení údajů o pracovní době vedoucím nebo administrátorem. Změna stavu potvrzuje, že lze údaje předat do mzdového systému. | ||
| Proč je to důležité Slouží k výpočtu KPI doby schválení výkazu pracovní doby. Úzká místa v této fázi ukazují na zpoždění ze strany vedoucích nebo složitou hierarchii schvalování. Kde data získat Tabulky požadavků workflow v Employee Central (WfRequest), filtrované podle stavu COMPLETED nebo APPROVED. Zachycení Zaznamená se při změně stavu workflow na APPROVED Typ události explicit | |||
| Zpracování mezd zahájeno | Vytvoření instance zpracování mezd v Payroll Control Center (PCC). Tím se oficiálně zahajuje mzdový cyklus pro konkrétní mzdovou oblast. | ||
| Proč je to důležité Stanovuje výchozí bod pro celkovou dobu mzdového cyklu od začátku do konce. Určuje rozsah zaměstnanců, jejichž mzdy se budou zpracovávat. Kde data získat Tabulky Payroll Control Center (např. PYC_D_PY_PROC_INST), které sledují vytvoření nového ID procesu. Zachycení Zaznamená se při vytvoření instance procesu PCC Typ události explicit | |||
| Oprava dat provedena | Změny kmenových údajů nebo údajů o pracovní době provedené v reakci na výjimku při auditu. Jde o přepracování nutné k vyřešení upozornění v mzdovém procesu. | ||
| Proč je to důležité Sleduje míru ručních oprav a přepracování. Jde o hlavní činnost, která snižuje efektivitu procesu. Kde data získat Odvozuje se propojením časových razítek upozornění PCC s následnými změnami v auditním protokolu (PCL4) u stejného zaměstnance, provedenými před uzavřením upozornění. Zachycení Vyhledejte aktualizace kmenových údajů provedené v době, kdy je upozornění PCC aktivní Typ události inferred | |||
| Srážky na benefity uplatněny | Konkrétní krok ve výpočetním schématu, ve kterém se zpracovávají pravidla pro benefity. Je součástí hlavního zpracování, ale jeho samostatné sledování pomáhá odhalit chyby v konfiguraci. | ||
| Proč je to důležité Podporuje analýzu přesnosti výpočtu benefitů a daní. Je užitečný při hledání chyb ve složitých pravidlech pro srážky. Kde data získat Odvozuje se z existence rozdělení V0 ve výsledcích mezd nebo z konkrétních položek protokolu, pokud je zapnuté podrobné protokolování, což se v produkčním prostředí používá zřídka. Zachycení Časově se shoduje s výpočtem hrubé mzdy, ale pro účely analýzy jde o samostatnou událost Typ události inferred | |||
| Údaje o motivačních odměnách importovány | Načtení nestandardních mzdových údajů, například bonusů nebo provizí, do mzdového systému. Obvykle zahrnuje načtení údajů do Infotype 0015 nebo 2010. | ||
| Proč je to důležité Pozdní importy znemožňují přesný výpočet hrubé mzdy. Analýza pomáhá zkrátit dobu integrace údajů o motivačních odměnách. Kde data získat Auditní protokol (PCL4 nebo ekvivalent) zachycující vytvoření záznamů v Infotype 0015 (Additional Payments) nebo 2010 (Employee Remuneration Info). Zachycení Porovnejte časová razítka vytvoření Infotype s protokoly úloh importu Typ události inferred | |||
| Výjimka při auditu označena | Vytvoření upozornění na základě validačních kontrol pravidel v Payroll Control Center. Upozornění odhalují nesrovnalosti v datech nebo rizika ohrožující shodu s předpisy. | ||
| Proč je to důležité Přímo podporuje dashboardy četnosti výjimek při auditu a rizik ohrožujících shodu. Vysoký počet výjimek ukazuje na problémy s kvalitou dat v předchozích fázích. Kde data získat Tabulky upozornění Payroll Control Center (PYC_D_ALERT), které propojují konkrétní chybové kódy se záznamem zaměstnance. Zachycení Zaznamená se při vytvoření nové položky v tabulce upozornění PCC Typ události explicit | |||
| Výplatní páska zveřejněna | Zpřístupnění výplatní pásky zaměstnanci prostřednictvím samoobslužného portálu (ESS). | ||
| Proč je to důležité Měří plnění SLA pro doručování výplatních pásek. Zpoždění v této fázi vede k požadavkům na podporu. Kde data získat Odvozuje se z nastavení „Print Date“ nebo data zpřístupnění v protokolech služby mashup pro výplatní pásky. Zachycení Vypočítá se jako datum výplaty + prodleva daná konfigurací systému Typ události inferred | |||
Návody k extrakci dat
Kroky
- Určete cílovou mzdovou oblast a parametry období pro extrakci. Data budete získávat především z tabulek Payroll Control Center (PCC) (PYC_*) a adresáře mzdových clusterů (HRPY_RGDIR).
- Spusťte SQL klienta nebo SAP HANA Studio připojené k backendovému schématu SAP SuccessFactors Employee Central Payroll (ECP).
- Spusťte skript pro extrakci dat uvedený v části Query. Skript agreguje data z tabulek kmenových dat, výsledků mezd a auditních záznamů PCC.
- Namapujte aktivity 'Time Sheet Submitted' a 'Time Sheet Approved'. ECP často přebírá tato data z Employee Central. Použijte proto časová razítka vytvoření a poslední změny v tabulce PA2001 nebo ve specializovaných tabulkách časového rozhraní, například PTREQ_HEADER, pokud jsou k dispozici.
- Aktivitu 'Incentive Data Imported' získejte dotazem na infotypy 0015 (Additional Payments) a 2010 (Employee Remuneration Info) pro záznamy vytvořené v cílovém výplatním období.
- Načtěte kroky procesu PCC z tabulek PYC_D_PYP (Process Instances) a PYC_D_BINST (Step Instances), abyste zachytili aktivity 'Payroll Process Initialized', 'Payroll Simulation Executed', 'Payroll Record Approved' a 'Pay Slip Published'.
- Dotazem na tabulku PYC_D_ALERT vyhledejte události 'Audit Exception Flagged'. Tyto záznamy propojují konkrétní zaměstnance s chybami validace zjištěnými při kontrolních krocích PCC.
- Události 'Data Correction Performed' vytvořte propojením tabulky hlaviček změnových dokumentů SAP (CDHDR) s infotypy souvisejícími se mzdami (např. 0008, 0015, 2001) v aktivním mzdovém období.
- Pomocí tabulky HRPY_RGDIR určete přesný okamžik události 'Gross Pay Calculated'. Událost 'Benefit Deductions Applied' odvoďte ze stejného časového razítka, protože k oběma dochází současně při běhu schématu.
- Propojte finanční data z tabulek REGUH (Settlement Data) a REGUT (DME Administration), abyste zachytili události 'Bank Transfer File Generated' a 'Payment Executed'.
- Upravte sloupec 'PayrollRecord' tak, aby přesně odpovídal formátu [EmployeeID]-[Period]-[Year] a zajišťoval jedinečnost ID případu.
- Výslednou datovou sadu exportujte do souboru CSV. Zkontrolujte, že záhlaví odpovídají atributům definovaným ve specifikaci, a nahrajte soubor do ProcessMind.
Konfigurace
- Časové období: Nastavte extrakci na průběžné období za posledních 6 až 12 měsíců. Mzdové procesy se opakují v cyklech a toto rozmezí zachytí dostatečné rozdíly mezi pravidelnými a mimořádnými běhy.
- Mzdová oblast (ABKRS): Filtrujte podle konkrétních mzdových oblastí (např. US Monthly, DE Weekly), aby analýza porovnávala podobné cykly procesu.
- Jazyk: Zajistěte, aby se popisy aktivit a kroků procesu extrahovaly v primárním jazyce systému (např. SPRAS = 'E').
- ID procesů PCC: V konfiguraci PCC zjistěte konkrétní ID definic procesů (PYP_ID) pro 'Monitoring', 'Production' a 'Off-Cycle' a podle nich filtrujte příslušné kroky.
- Měna: Pokud extrahujete data pro globální provoz mzdové agendy, převeďte finanční částky (GrossPayAmount) na jednu měnu.
- Oprávnění: Uživatel databáze potřebuje přístup pro čtení tabulek Human Resources (PA/PY), zejména adresáře clusterů (HRPY_RGDIR) a tabulek PCC (PYC_*).
Ukázkový dotaz sql
/* Activity 1: Time Sheet Submitted */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Submitted' AS Activity,
T.BEGDA AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 2: Time Sheet Approved */
SELECT
CONCAT(T.PERNR, CONCAT('-', T.PABRJ, T.PABRP)) AS PayrollRecord,
'Time Sheet Approved' AS Activity,
T.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
T.PABRP AS PayPeriod,
CASE WHEN T.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'False' AS IsAutomated
FROM PA2001 AS T
LEFT JOIN PA0001 AS O ON T.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 3: Incentive Data Imported */
SELECT
CONCAT(I.PERNR, CONCAT('-', I.PABRJ, I.PABRP)) AS PayrollRecord,
'Incentive Data Imported' AS Activity,
I.AEDTM AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
I.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
I.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
I.BETRG AS GrossPayAmount,
I.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM PA0015 AS I
LEFT JOIN PA0001 AS O ON I.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE I.AEDTM BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 4: Payroll Process Initialized */
SELECT
CONCAT('N/A', CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payroll Process Initialized' AS Activity,
P.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
P.CREATED_BY AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_PYP AS P
WHERE P.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 5: Payroll Simulation Executed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Simulation Executed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Simulate%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 6: Audit Exception Flagged */
SELECT
CONCAT(A.RO_ID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Audit Exception Flagged' AS Activity,
A.CREATED_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
'SYSTEM' AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_ALERT AS A
JOIN PYC_D_PYP AS P ON A.PYP_ID = P.ID
WHERE A.CREATED_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 7: Data Correction Performed */
SELECT
CONCAT(C.OBJECTID, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Data Correction Performed' AS Activity,
TO_TIMESTAMP(CONCAT(C.UDATE, C.UTIME)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
C.USERNAME AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM CDHDR AS C
JOIN HRPY_RGDIR AS P ON C.OBJECTID = P.PERNR
WHERE C.TCODE IN ('PA30', 'PA40') AND C.UDATE BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 8: Gross Pay Calculated */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Gross Pay Calculated' AS Activity,
TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 9: Benefit Deductions Applied */
SELECT
CONCAT(R.PERNR, CONCAT('-', R.PABRJ, R.PABRP)) AS PayrollRecord,
'Benefit Deductions Applied' AS Activity,
ADD_SECONDS(TO_TIMESTAMP(CONCAT(R.RUNDT, R.RUNTM)), 1) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
R.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
R.PABRP AS PayPeriod,
CASE WHEN R.PABRP LIKE '9%' THEN 'Off-Cycle' ELSE 'Regular' END AS PayCycleFrequency,
0.00 AS GrossPayAmount,
R.UNAME AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM HRPY_RGDIR AS R
LEFT JOIN PA0001 AS O ON R.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE R.RUNDT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 10: Payroll Record Approved */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Payroll Record Approved' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'False' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Check%' AND S.STATUS = 'OK' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 11: Bank Transfer File Generated */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Bank Transfer File Generated' AS Activity,
TO_TIMESTAMP(CONCAT(T.TSDAT, T.TSTIM)) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
T.USRID AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUT AS T
JOIN REGUH AS H ON T.LAUFD = H.LAUFD AND T.LAUFI = H.LAUFI
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE T.TSDAT BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 12: Payment Executed */
SELECT
CONCAT(P.PERNR, CONCAT('-', P.PABRJ, P.PABRP)) AS PayrollRecord,
'Payment Executed' AS Activity,
TO_TIMESTAMP(CONCAT(H.LAUFD, '120000')) AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
P.ABKRS AS PayrollArea,
'Permanent' AS EmployeeType,
P.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
H.RBETR AS GrossPayAmount,
H.ZNME1 AS PayrollSpecialist,
O.KOSTL AS CostCenter,
'True' AS IsAutomated
FROM REGUH AS H
JOIN HRPY_RGDIR AS P ON H.PERNR = P.PERNR
LEFT JOIN PA0001 AS O ON P.PERNR = O.PERNR AND O.ENDDA = '99991231'
WHERE H.LAUFD BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 13: Pay Slip Published */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Pay Slip Published' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Remuneration%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]'
UNION ALL
/* Activity 14: Tax Filing Completed */
SELECT
CONCAT('N/A', CONCAT('-', S.PABRJ, S.PABRP)) AS PayrollRecord,
'Tax Filing Completed' AS Activity,
S.END_TS AS EventTimestamp,
'SAP_ECP' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
'ALL' AS PayrollArea,
NULL AS EmployeeType,
S.PABRP AS PayPeriod,
'Regular' AS PayCycleFrequency,
0.00 AS GrossPayAmount,
S.EXEC_USER AS PayrollSpecialist,
NULL AS CostCenter,
'True' AS IsAutomated
FROM PYC_D_BINST AS S
JOIN PYC_D_STEP AS D ON S.STEP_ID = D.ID
WHERE D.NAME LIKE '%Tax%' AND S.END_TS BETWEEN '[START_DATE]' AND '[END_DATE]' Kroky
- Otevření editoru ABAP: Přihlaste se do systému SAP SuccessFactors Employee Central Payroll (ECP) přes SAP GUI. Přejděte na transakční kód SE38 (ABAP Editor).
- Vytvoření programu: Zadejte název nového programu, například
Z_PROCESSMINING_PAYROLL_EXT, a klikněte na Vytvořit. Jako typ vyberte Executable program a pro testování program uložte jako lokální objekt (balíček $TMP) pomocí Uložit. - Vložení kódu: Zkopírujte celý kód ABAP z níže uvedené části Query a vložte jej do editoru. Nahraďte jím případný výchozí kód.
- Kontrola a aktivace: Kliknutím na tlačítko Zkontrolovat (Ctrl+F2) ověřte syntaxi. Jakmile se nezobrazí žádné chyby, klikněte na Aktivovat (Ctrl+F3).
- Spuštění extrakce: Stisknutím Direct Processing (F8) spusťte sestavu.
- Nastavení výběru: Na obrazovce výběru zadejte
Payroll Area, například US nebo 99, platnýDate Range, například poslední 3 měsíce, a případně pro testování filtrujte konkrétníPersonnel Numbers(PERNR). - Extrakce dat: Spusťte sestavu. Systém zpracuje tabulky HRPY_RGDIR, CATSDB, PA0015 a REGUH a sestaví záznam událostí.
- Kontrola výstupu: Sestava pomocí
cl_demo_outputzobrazí výsledky přímo na obrazovce v tabulce, abyste je mohli ihned ověřit. - Export dat: Klikněte pravým tlačítkem na tabulku s výsledky, vyberte Spreadsheet a uložte soubor ve formátu CSV nebo Excel.
- Formátování pro ProcessMind: Otevřete exportovaný soubor. Ověřte, že sloupec
EventTimestampmá formátYYYY-MM-DD HH:MM:SS. Zkontrolujte, že sloupecPayrollRecordjednoznačně určuje případ, obvykle pomocí PERNR-SEQNR. - Nahrání: Importujte upravený soubor CSV do ProcessMind a namapujte sloupce na ID případu, Aktivitu, Časové razítko a odpovídající atributy.
Konfigurace
- Rozsah dat: Doporučujeme extrahovat data po 3 až 6 měsících, abyste předešli vyčerpání paměti v běhovém prostředí ABAP.
- Mzdová oblast: Jde o důležitý filtr (tabulka T549A). Vždy extrahujte data jen pro jednu mzdovou oblast, například měsíční nebo čtrnáctidenní, aby byl proces konzistentní.
- Konfigurační tabulka: Skript používá jako hlavní zdroj tabulku
HRPY_RGDIR(Payroll Directory). Zkontrolujte, že máte k této tabulce oprávněníS_TABU_DIS. - Zdroj časových dat: Skript předpokládá, že data pracovních výkazů jsou v tabulce
CATSDB. Pokud používáte systém třetí strany pro evidenci času, který se propojuje přímo sIT2001neboIT2010bez CATS, aktivity pracovních výkazů mohou být prázdné a skript bude nutné upravit. - Platební data: Skript propojuje mzdové běhy s platebními běhy přes
REGUH(Settlement Data). Aby se zobrazily platební události, musí být pro vybrané období spuštěn platební běhF110. - Výkon: U systémů s velkým objemem dat (více než 100 000 zaměstnanců) nahraďte použití
SELECT *načítáním pomocí kurzoru nebo spusťte zpracování na pozadí (F9).
Ukázkový dotaz abap
REPORT Z_PROCESSMINING_PAYROLL_EXT.
TABLES: pernr, hrpy_rgdir, catsdb, pa0015, reguh.
TYPES: BEGIN OF ty_event_log,
payroll_record TYPE string,
activity TYPE string,
event_timestamp TYPE string,
source_system TYPE string,
last_data_update TYPE string,
payroll_area TYPE abkrs,
employee_type TYPE persg,
pay_period TYPE pabrj,
pay_cycle_freq TYPE string,
gross_pay_amount TYPE string,
payroll_specialist TYPE usnam,
cost_center TYPE kostl,
is_automated TYPE string,
END OF ty_event_log.
DATA: gt_output TYPE TABLE OF ty_event_log,
gs_output TYPE ty_event_log,
gt_rgdir TYPE TABLE OF hrpy_rgdir,
gs_rgdir TYPE hrpy_rgdir,
gt_cats TYPE TABLE OF catsdb,
gs_cats TYPE catsdb,
gt_p0015 TYPE TABLE OF pa0015,
gs_p0015 TYPE pa0015,
gt_reguh TYPE TABLE OF reguh,
gs_reguh TYPE reguh,
gv_tstamp TYPE timestamp,
gv_date TYPE d,
gv_time TYPE t,
gv_pernr TYPE pernr_d.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_pernr FOR pernr-pernr,
s_date FOR sy-datum OBLIGATORY.
PARAMETERS: p_abkrs TYPE abkrs OBLIGATORY DEFAULT '99'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
" 1. Fetch Payroll Directory (The Core Process Driver)
SELECT * FROM hrpy_rgdir INTO TABLE gt_rgdir
WHERE pernr IN s_pernr
AND fpper LIKE '%'
AND cdate IN s_date.
IF gt_rgdir IS INITIAL.
WRITE: / 'No payroll results found for selection.'.
EXIT.
ENDIF.
SORT gt_rgdir BY pernr seqnr.
" Loop through Payroll Directory to build events
LOOP AT gt_rgdir INTO gs_rgdir.
CLEAR gs_output.
CONCATENATE gs_rgdir-pernr '-' gs_rgdir-seqnr INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-last_data_update = sy-datum.
gs_output-payroll_area = p_abkrs.
gs_output-pay_period = gs_rgdir-fpper.
gs_output-payroll_specialist = gs_rgdir-uname.
" --- Activity: Payroll Process Initialized ---
" Derived from the run date start
gs_output-activity = 'Payroll Process Initialized'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Simulation Executed ---
IF gs_rgdir-srtza = 'S'. " S = Simulation
gs_output-activity = 'Payroll Simulation Executed'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Audit Exception Flagged ---
IF gs_rgdir-void IS NOT INITIAL. " Void indicator means rejected/exception
gs_output-activity = 'Audit Exception Flagged'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Data Correction Performed ---
" Inferred: If voided, a correction usually follows immediately
gs_output-activity = 'Data Correction Performed'.
" Add 1 hour to simulate reaction time
DATA: lv_corr_time TYPE t.
lv_corr_time = gs_rgdir-ctime + 3600.
CONCATENATE gs_rgdir-cdate lv_corr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Gross Pay Calculated ---
IF gs_rgdir-srtza = 'A'. " A = Actual Result
gs_output-activity = 'Gross Pay Calculated'.
CONCATENATE gs_rgdir-cdate gs_rgdir-ctime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-gross_pay_amount = '1000.00'. " Placeholder: Cluster read required for actual amount
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Benefit Deductions Applied ---
" Logically occurs immediately after gross calc
gs_output-activity = 'Benefit Deductions Applied'.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payroll Record Approved ---
" Inferred from successful write of 'A' record
gs_output-activity = 'Payroll Record Approved'.
DATA: lv_appr_time TYPE t.
lv_appr_time = gs_rgdir-ctime + 60. " +1 minute
CONCATENATE gs_rgdir-cdate lv_appr_time INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
" --- Activity: Pay Slip Published ---
" Available via ESS usually next day
gs_output-activity = 'Pay Slip Published'.
DATA: lv_slip_date TYPE d.
lv_slip_date = gs_rgdir-cdate + 1.
CONCATENATE lv_slip_date '080000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Tax Filing Completed ---
" End of period logic
gs_output-activity = 'Tax Filing Completed'.
DATA: lv_tax_date TYPE d.
lv_tax_date = gs_rgdir-paydt.
CONCATENATE lv_tax_date '235959' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 2. Fetch Time Sheet Data (CATSDB)
" Linking to Payroll Record loosely via Period/Date
SELECT * FROM catsdb INTO TABLE gt_cats
WHERE pernr IN s_pernr
AND workdate IN s_date.
LOOP AT gt_cats INTO gs_cats.
CLEAR gs_output.
CONCATENATE gs_cats-pernr '-00000' INTO gs_output-payroll_record. " Generic mapping
gs_output-payroll_area = p_abkrs.
gs_output-source_system = 'SAP_ECP'.
" --- Activity: Time Sheet Submitted ---
IF gs_cats-status = '20' OR gs_cats-status = '30'.
gs_output-activity = 'Time Sheet Submitted'.
CONCATENATE gs_cats-laudate gs_cats-lautime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
" --- Activity: Time Sheet Approved ---
IF gs_cats-status = '30'. " 30 = Approved
gs_output-activity = 'Time Sheet Approved'.
CONCATENATE gs_cats-apdat gs_cats-aptime INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDIF.
ENDLOOP.
" 3. Fetch Incentive Data (Infotype 0015)
SELECT * FROM pa0015 INTO TABLE gt_p0015
WHERE pernr IN s_pernr
AND begda IN s_date.
LOOP AT gt_p0015 INTO gs_p0015.
CLEAR gs_output.
CONCATENATE gs_p0015-pernr '-00000' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Incentive Data Imported ---
gs_output-activity = 'Incentive Data Imported'.
CONCATENATE gs_p0015-aedtm '120000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'FALSE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" 4. Fetch Payment Data (REGUH)
SELECT * FROM reguh INTO TABLE gt_reguh
WHERE zaldt IN s_date.
LOOP AT gt_reguh INTO gs_reguh.
" Filter for our PERNRs roughly (REGUH does not always have PERNR directly indexable easily in all views)
" For simulation, we map broadly or require join logic. Here assuming simple extraction.
CLEAR gs_output.
CONCATENATE gs_reguh-pernr '-99999' INTO gs_output-payroll_record.
gs_output-source_system = 'SAP_ECP'.
gs_output-payroll_area = p_abkrs.
" --- Activity: Bank Transfer File Generated ---
gs_output-activity = 'Bank Transfer File Generated'.
CONCATENATE gs_reguh-laufd gs_reguh-cpzut INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
" --- Activity: Payment Executed ---
gs_output-activity = 'Payment Executed'.
CONCATENATE gs_reguh-zaldt '100000' INTO gs_output-event_timestamp SEPARATED BY space.
gs_output-is_automated = 'TRUE'.
APPEND gs_output TO gt_output.
ENDLOOP.
" Output Display
cl_demo_output=>display( gt_output ). Chcete začít?
Použijte tuto šablonu při extrakci dat a začněte zlepšovat proces zpracování mezd. Díky strukturovanému postupu rychle převedete nezpracovaná data na užitečné poznatky.
Zlepšete výkon zpracování mezd
Přidejte se k firmám, které už dnes zkracují mzdový cyklus o 30 %.
Platební kartu nepotřebujete. Nastavení zabere jen několik minut.