Uw Payroll Verwerkings Data Template
Uw Payroll Verwerkings Data Template
- Geoptimaliseerde data-velden voor salarisanalyse
- Uitgebreide activiteitstracking voor lifecycle-mapping
- Gedetailleerde extractiehandleiding voor Oracle HCM Cloud Payroll
Salarisverwerkingsattributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke stap of event uitgevoerd in de salariscyclus. | ||
| Omschrijving Dit attribuut legt de naam vast van de gebeurtenis die plaatsvindt binnen het salarisproces. Voorbeelden zijn 'Time Card Submitted', 'Payroll Calculation Started' en 'Payment Executed'. Het is de primaire dimensie voor procesontdekking en variantanalyse. In Oracle HCM Cloud wordt dit vaak afgeleid van de Action Type of Action Status binnen de payroll actietabellen. Het belang Dit definieert het 'wat' van het proces, waardoor de proceskaart kan worden gereconstrueerd. Vindplaats Afgeleid van de ACTION_TYPE-code in PAY_PAYROLL_ACTIONS of statuswijzigingen in audit trails. Voorbeelden Salarisberekening GestartTijdkaart GoedgekeurdBank Transfer GeneratedAudit Exception Flagged | |||
| Bronsysteem SourceSystem | De naam van het systeem waar het event is ontstaan. | ||
| Omschrijving Identificeert de software of module die het datapunkt heeft gegenereerd. Voor dit proces is de primaire waarde 'Oracle HCM Cloud Payroll'. In complexe landschappen kan dit echter onderscheid maken tussen de core payroll engine, de time and labor module, of een externe banking interface. Het belang Biedt lineage context, vooral bij het integreren van data uit tijdregistratie- of banksystemen. Vindplaats Hardcoded tijdens extractie of afgeleid van interface-ID's. Voorbeelden Oracle HCM Cloud PayrollOracle Time and LaborExternal Banking Interface | |||
| Gebeurtenistijdstempel EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond. | ||
| Omschrijving Registreert het specifieke moment waarop een activiteit plaatsvond. Dit is cruciaal voor het berekenen van duraties, doorlooptijden en het identificeren van bottlenecks. Voor geautomatiseerde stappen is dit de uitvoeringstijd van het systeem. Voor handmatige stappen, zoals goedkeuringen, is dit de timestamp van de gebruikersactie die is vastgelegd in de transactielog. Het belang Essentieel voor het chronologisch ordenen van gebeurtenissen en het berekenen van alle tijdgebaseerde KPI's. Vindplaats CREATION_DATE- of ACTION_DATE-kolommen in relevante transactietabellen zoals PAY_ACTION_INFORMATION. Voorbeelden 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Laatste data-update LastDataUpdate | De timestamp wanneer het record voor het laatst is gewijzigd in de brondatabase. | ||
| Omschrijving Geeft de actualiteit aan van de data die voor analyse wordt gebruikt. Dit verschilt van de Event Timestamp; het weerspiegelt wanneer de rij in de database voor het laatst is aangeraakt door een ETL-proces of systeemupdate. Het wordt gebruikt om de data-actualiteit te verifiëren en extractie-latencyproblemen te debuggen. Het belang Zorgt ervoor dat analisten weten of ze naar real-time of verouderde data kijken. Vindplaats LAST_UPDATE_DATE-kolom, veelvoorkomend in bijna alle Oracle HCM-tabellen. Voorbeelden 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Salarisrecord PayrollRecord | Unieke identificatie voor een medewerker binnen een specifieke betaalperiode. | ||
| Omschrijving Het Payroll Record fungeert als de centrale case-identifier voor de process mining analyse. Het is een concatenatie of unieke sleutel die de Medewerkers Toewijzings-ID en de Salarisperiode-ID combineert. Dit attribuut groepeert alle activiteiten die verband houden met de betaling van één medewerker voor een specifieke cyclus, van de initiële tijdkaartindiening tot de uiteindelijke bankoverdracht en belastingaangifte. Het zorgt ervoor dat de analyse onderscheid kan maken tussen dezelfde medewerker die in januari versus februari wordt betaald. Het belang Het dient als Case ID, dat alle verschillende gebeurtenissen bindt tot één procesinstantie voor analyse. Vindplaats Geconstrueerd uit PAY_ASSIGNMENT_ACTIONS of een combinatie van Person Number en Payroll Period Name in Oracle HCM. Voorbeelden EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Betaalgroep PayGroup | Logische groepering van medewerkers voor salarisverwerking. | ||
| Omschrijving Vertegenwoordigt de specifieke salarisdefinitie waartoe de medewerker behoort (bijv. 'Weekly Manufacturing', 'Monthly Corporate'). Dit attribuut is cruciaal voor bijna alle dashboards, waardoor prestatievergelijking over verschillende salariscycli en frequenties mogelijk is. Het belang Het primaire configuratieobject dat de salarisplanning aanstuurt. Vindplaats PAY_ALL_PAYROLLS_F tabel (Payroll Naam). Voorbeelden US HalfmaandelijksUK MaandelijksWekelijkse Vakbond | |||
| Brutoloon Bedrag GrossPayAmount | Het totaal berekende brutoloon voor de periode. | ||
| Omschrijving Vertegenwoordigt de geldwaarde van het brutoloon berekend tijdens de cyclus. Dit wordt gebruikt in de 'Tax and Benefit Calculation Accuracy' en 'Incentive Integration' analyse. Het stelt analisten in staat om waardevolle betalingen te correleren met verwerkingstijd of foutpercentages. Het belang Biedt financiële context aan de process mining analyse. Vindplaats PAY_RUN_RESULT_VALUES tabel, geaggregeerd voor Gross Pay saldo. Voorbeelden 5000.002350.5010000.00 | |||
| Is Manual Correction IsManualCorrection | Vlag die aangeeft of de activiteit handmatige interventie omvatte. | ||
| Omschrijving Een Booleaanse vlag die op 'true' wordt ingesteld voor activiteiten zoals 'Data Correction Performed' of 'Payroll Record Corrected'. Deze wordt gebruikt om de KPI's 'Manual Data Correction Rate' en 'First-Pass Payroll Accuracy Rate' te berekenen. Het belang Onderscheidt straight-through processing en handmatige herbewerking. Vindplaats Afgeleid van Activity Name of specifieke Action Types die aanpassingen aangeven (bijv. QuickPay, Balance Adjustment). Voorbeelden truefalse | |||
| Legislative Data Group LegislativeDataGroup | Partitioneert salarisdata op land of regelgevingsomgeving. | ||
| Omschrijving In Oracle HCM Cloud partitioneert de Legislative Data Group (LDG) salaris- en gerelateerde data. Deze komt typisch overeen met de wetgeving van een land of een specifiek territorium. Dit attribuut is van vitaal belang voor het filteren van de procesanalyse per land (bijv. US Payroll versus UK Payroll) en wordt vaak gekoppeld aan het generieke attribuut 'Country'. Het belang Compliance-regels en processtromen variëren vaak aanzienlijk per jurisdictie. Vindplaats PAY_ALL_PAYROLLS_F tabel samengevoegd met definities van Legislative Data Group. Voorbeelden US Legislative Data GroupUK LDGFrance Payroll | |||
| Naam afdeling DepartmentName | De organisatorische eenheid waar de medewerker werkt. | ||
| Omschrijving Identificeert de afdeling die verantwoordelijk is voor de werknemer die gekoppeld is aan het salarisrecord. Dit is cruciaal voor het 'Timesheet Approval Efficiency'-dashboard. Door data per afdeling te segmenteren, kunnen analisten identificeren welke business units consequent te laat zijn met het goedkeuren van urenstaten, wat de algehele salarisrun vertraagt. Het belang Maakt root cause-analyse mogelijk van vertragingen gerelateerd aan managementgoedkeuringen. Vindplaats Afgeleid van het assignment record van de werknemer, effectief op het moment van de salarisrun. Voorbeelden Verkoop Noord-AmerikaEngineeringPersoneelszakenLogistiek | |||
| Procesduur Dagen ProcessDurationDays | Totale tijd van initialisatie tot betaling. | ||
| Omschrijving De berekende duur tussen de eerste activiteit en de 'Payment Executed' activiteit. Gebruikt voor het 'End To End Payroll Cycle Time' dashboard. Deze metric dient als de high-level gezondheidscheck voor de snelheid van de salarisfunctie. Het belang High-level KPI voor procesefficiëntie. Vindplaats Berekend: Timestamp(Payment Executed) - Timestamp(Start). Voorbeelden 3.55.00.5 | |||
| Salarisperiode Naam PayrollPeriodName | De specifieke naam van het tijdsinterval voor de payroll run. | ||
| Omschrijving Identificeert de specifieke cyclus, zoals 'Monthly January 2024' of 'Weekly Period 42'. Dit is essentieel voor de 'SLA Deadline Compliance Monitor'. Het helpt individuele werknemers-cases te groeperen in hun respectievelijke batch runs voor geaggregeerde rapportage. Het belang Fundamenteel voor batch-level analyse en SLA-tracking. Vindplaats PAY_TIME_PERIODS tabel of Time Period Name op de Payroll Definitie. Voorbeelden 2023 Monthly 102023 Weekly 42Dec 2023 Bonus Run | |||
| SLA Verwerkingsdeadline SlaProcessingDeadline | De streefdatum/-tijd waarop de betaling moet zijn uitgevoerd. | ||
| Omschrijving Slaat de contractuele of wettelijke deadline voor de salarisuitbetaling op. Dit attribuut wordt vergeleken met de 'Payment Executed' timestamp. Het wordt gebruikt om de 'SLA Processing Deadline Adherence' KPI te berekenen en risicovolle betaalgroepen te identificeren. Het belang De primaire benchmark voor processucces of -falen met betrekking tot tijdigheid. Vindplaats Meestal een geconfigureerd veld (DFF) op de Payroll Definitie of afgeleid van de Check Datum min X dagen. Voorbeelden 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Verwerkende Gebruiker ProcessingUser | De gebruikers-ID of naam van de persoon die de activiteit uitvoert. | ||
| Omschrijving Legt de identiteit vast van de salarisspecialist, manager of het systeemaccount dat de activiteit heeft geactiveerd. Dit ondersteunt het 'Payroll Specialist Workload Distribution'-dashboard. Het helpt bij het identificeren van resource-knelpunten en trainingsbehoeften binnen het salaristeam. Het belang Maakt analyse van resourceproductiviteit en werklastbalancering mogelijk. Vindplaats CREATED_BY- of LAST_UPDATED_BY-kolommen in transactietabellen. Voorbeelden sysadminj.smithpayroll_batch_userm.doe | |||
| Audit Exception Type AuditExceptionType | De categorie fout of waarschuwing die tijdens de audit is gemarkeerd. | ||
| Omschrijving Categoriseert het specifieke probleem dat is gevonden tijdens de activiteit 'Audit Exception Flagged' (bijv. 'Negative Net Pay', 'Missing Tax ID'). Dit attribuut ondersteunt het 'Audit Exception and Correction Analysis'-dashboard door veelvoorkomende data-kwaliteitsproblemen aan te wijzen. Het belang Cruciaal voor root cause-analyse van herbewerkingslussen. Vindplaats Bericht- of Foutcodekolommen in salarisproceslogs of uitzonderingsrapporten. Voorbeelden Negatief Netto SalarisOntbrekende SSNInvalid Bank DetailsOverwerklimiet Overschreden | |||
| Belastingjurisdictie TaxJurisdiction | De specifieke staat, provincie of plaats voor belastingaangifte. | ||
| Omschrijving Geeft de primaire belastingautoriteit aan die verband houdt met het salarisrecord (bijv. 'CA' voor Californië, 'NY' voor New York). Dit ondersteunt het 'Tax Compliance Processing Duration'-dashboard. Het helpt te identificeren of specifieke regio's complexere of langzamere belastingberekenings- en aangifteprocessen hebben. Het belang Segmenteert prestaties op basis van regelgevende complexiteit. Vindplaats Afgeleid van de belastingkaart of werklocatie-adressen van de werknemer. Voorbeelden CA-CaliforniëNY-New YorkTX-TexasFederal-US | |||
| Preview Iteratie Aantal PreviewIterationCount | Aantal keren dat resultaten zijn gepreviewd vóór finalisatie. | ||
| Omschrijving Een teller die oploopt telkens wanneer een activiteit 'Payroll Result Previewed' plaatsvindt voor dezelfde case. Dit is de directe meting voor het 'Payroll Preview Iteration Tracker'-dashboard, wat de hoeveelheid herbewerking of aarzeling vóór goedkeuring aangeeft. Het belang Kwantificeert de efficiëntie van de validatiefase. Vindplaats Berekend tijdens datatransformatie door het tellen van specifieke activiteitsvoorkomens per Case ID. Voorbeelden 1350 | |||
| Retroactieve Wijzigingsvlag RetroactiveChangeFlag | Geeft aan of de salarisrun retroactieve betalingen omvat. | ||
| Omschrijving Een Booleaanse indicator die 'true' is als 'Retropay'-elementen in dit record worden verwerkt. Dit helpt langere verwerkingstijden of audit-uitzonderingen te verklaren in de 'Process Path Variant Comparison'. Retroactieve wijzigingen leiden vaak tot complexe herberekeningen die eerdere perioden omvatten. Het belang Identificeert complexe cases die van nature meer verwerkingstijd vereisen. Vindplaats Aanwezigheid van 'Retropay' element entries in PAY_ELEMENT_ENTRIES. Voorbeelden truefalse | |||
| SLA-Status SlaStatus | Categorische status van SLA-naleving (Gehaald/Gemist). | ||
| Omschrijving Afgeleid door de 'Payment Executed'-timestamp te vergelijken met de 'SLA Processing Deadline'. Waarden kunnen 'On Time', 'At Risk' of 'Breached' omvatten. Dit vereenvoudigt de rapportage voor de 'SLA Deadline Compliance Monitor' door cases te groeperen in prestatiecategorieën. Het belang Vereenvoudigt complexe tijdvergelijkingen tot bruikbare categorieën. Vindplaats Berekende logica die Event Timestamp vergelijkt met SLA Deadline. Voorbeelden BehaaldOverschredenBijna Overtreding | |||
| Werknemerstype EmployeeType | Categorisering van de werknemer (bijv. Salaried, Hourly, Contractor). | ||
| Omschrijving Classificeert het werknemersrecord. Dit is van vitaal belang voor het 'Digital Pay Slip Publishing Lag'-dashboard, aangezien verschillende werknemerstypen verschillende verwerkingsregels of urgenties kunnen hebben. Het helpt de analyse te filteren om procesprestaties te vergelijken tussen verschillende personeelssegmenten. Het belang Verschillende werknemerstypen volgen vaak verschillende procesvarianten. Vindplaats Assignment category of arbeidsovereenkomsten in PER_ALL_ASSIGNMENTS_M. Voorbeelden Full-Time SalariedParttime UurContractorExecutive | |||
Salarisverwerkingsactiviteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Bank Transfer Generated | Het genereren van het EFT (Electronic Funds Transfer) bestand of vergelijkbare betaaloutput. Dit is de technische stap van het creëren van het instructiebestand voor de bank. | ||
| Het belang Meet de doorlooptijd van het genereren van betalingsbestanden. Vertragingen hierin kunnen leiden tot het missen van bankafsluitingstijden. Vindplaats Query PAY_PAYROLL_ACTIONS waar ACTION_TYPE M (Magnetic Tape) of E (EFT) of C (Check Writer) is. Vastleggen Geregistreerd wanneer de EFT/Check-actie is voltooid Gebeurtenistype explicit | |||
| Betaling Uitgevoerd | De definitieve bevestiging dat de betaling is verwerkt. In Oracle correleert dit met de voltooiing van de payment flow of reconciliatie in Cash Management. | ||
| Het belang De primaire timestamp voor SLA Compliance. Gebruikt om te bepalen of medewerkers op tijd zijn betaald. Vindplaats Kan worden afgeleid uit de Effective Date van de Bank Transfer-actie, of expliciet via Cash Management-reconciliatielogs (CE_STATEMENT_LINES). Vastleggen Geregistreerd op basis van de effectieve datum van de betalingsactie of reconciliatiegebeurtenis Gebeurtenistype explicit | |||
| Salarisberekening Gestart | De initiatie van het hoofd payroll run proces voor een specifieke salarisdefinitie en periode. Dit markeert de overgang van dataverzameling naar verwerking. | ||
| Het belang Stelt het begin vast van het intensieve verwerkingsvenster. Wordt gebruikt om de totale cyclustijd voor de technische salarisuitvoering te berekenen. Vindplaats Query PAY_PAYROLL_ACTIONS tabel waar ACTION_TYPE R (Run) of Q (QuickPay) is en ACTION_STATUS gemarkeerd is als gestart (of afgeleid van aanmaakdatum). Vastleggen Geregistreerd wanneer een PAY_PAYROLL_ACTIONS record wordt ingevoegd Gebeurtenistype explicit | |||
| Salarisberekening Uitgevoerd | De succesvolle voltooiing van het Calculate Payroll proces, inclusief bruto-netto berekeningen. Dit event geeft aan dat verdiensten, inhoudingen en belastingen zijn berekend voor de toewijzing. | ||
| Het belang Een belangrijke mijlpaal die aangeeft dat de data klaar is voor validatie. Lange doorlooptijden hier kunnen duiden op systeemprestatieproblemen of complexe fast formulas. Vindplaats Query PAY_PAYROLL_REL_ACTIONS joinend aan PAY_PAYROLL_ACTIONS waar ACTION_TYPE R of Q is en ACTION_STATUS wijzigt naar C (Complete). Vastleggen Geregistreerd wanneer de status van de Payroll Run actie wordt bijgewerkt naar Voltooid Gebeurtenistype explicit | |||
| Vooruitbetalingen Berekend | De uitvoering van het Prepayments proces dat nettobetalingen verdeelt over de gekozen betaalmethoden van de medewerker (Check, EFT, etc.). Dit valideert dat de berekende bedragen daadwerkelijk kunnen worden betaald. | ||
| Het belang De brug tussen berekening en uitbetaling. Storingen hier duiden meestal op ontbrekende bankgegevens of ongeldige betaalmethoden. Vindplaats Query PAY_PAYROLL_ACTIONS waar ACTION_TYPE P (Prepayments) is en status Voltooid is. Vastleggen Geregistreerd wanneer de Prepayments-actie is voltooid Gebeurtenistype explicit | |||
| Archive Results Generated | De voltooiing van het Archive Periodic Payroll Results proces. Deze snapshot vergrendelt de data effectief voor rapportage en salarisstrookgeneratie. | ||
| Het belang Een technische voorwaarde voor het genereren van loonstroken en wettelijke rapporten. Het bevestigt dat de data is gefinaliseerd. Vindplaats Query PAY_PAYROLL_ACTIONS waar ACTION_TYPE X (Archive) is en status Voltooid is. Vastleggen Geregistreerd wanneer de archiveringsactie is voltooid Gebeurtenistype explicit | |||
| Audit Exception Flagged | Het vastleggen van een fout- of waarschuwingsbericht tijdens de salarisberekenings- of validatiefase. Dit vangt specifieke validatiefouten op die menselijke interventie vereisen. | ||
| Het belang Essentieel voor het identificeren van datakwaliteitsproblemen. Een hoog volume aan uitzonderingen verhoogt de handmatige inspanning en het risico op een SLA-breach. Vindplaats Query PAY_MESSAGE_LINES tabel gekoppeld aan de specifieke PAY_PAYROLL_REL_ACTION_ID. Deze tabel slaat fouten en waarschuwingen op die tijdens runs zijn gegenereerd. Vastleggen Geregistreerd wanneer een record wordt ingevoegd in PAY_MESSAGE_LINES Gebeurtenistype explicit | |||
| Belastingaangifte Voltooid | Het genereren van wettelijke belastingbestanden (bijv. Third Party Quarterly Tax File). Dit zorgt voor regulatory compliance voor de betaalperiode. | ||
| Het belang Cruciaal voor de KPI 'Tax Compliance Processing Duration'. Fouten hier leiden tot boetes. Vindplaats Query PAY_PAYROLL_ACTIONS voor specifieke acties van wetgevende data groepen gerelateerd aan belastingrapportage (bijv. US Third Party Tax Filing). Vastleggen Geregistreerd wanneer een specifieke belastingrapportageflow is voltooid Gebeurtenistype explicit | |||
| Costing Transferred | De overdracht van payroll costing resultaten naar het Grootboek. Dit vertegenwoordigt de financiële boekhoudkundige afsluiting van de salariscyclus. | ||
| Het belang Zorgt voor financiële compliance en nauwkeurige boeking van arbeidskosten. Vertragingen voorkomen dat Financiën de boeken sluit. Vindplaats Query PAY_PAYROLL_ACTIONS waar ACTION_TYPE T (Transfer to GL) is en status Voltooid is. Vastleggen Geregistreerd wanneer het Transfer to GL-proces is voltooid Gebeurtenistype explicit | |||
| Incentive Data Imported | De aanmaak van element entries voor variabele beloning zoals bonussen of commissies via batch loader of HDL import. Dit vertegenwoordigt de integratie van externe compensatiedata in de payroll run. | ||
| Het belang Bewaakt de integratiesnelheid van variabele beloning. Late imports dwingen vaak tot aanvullende salarisruns of handmatige correcties. Vindplaats Query PAY_BATCH_HEADERS voor voltooiing van de import of volg de aanmaak van PAY_ELEMENT_ENTRIES_F met een specifieke bronsysteemreferentie. Vastleggen Geregistreerd wanneer het batch element entry proces succesvol is voltooid Gebeurtenistype explicit | |||
| Payroll Run Goedgekeurd | De formele goedkeuring van het salarisregister of de flow binnen het Payroll Dashboard. Dit gebeurt doorgaans nadat validatierapporten zijn beoordeeld en voordat bankbestanden worden gegenereerd. | ||
| Het belang Vertegenwoordigt de managementgoedkeuring. De tijd tussen berekening en goedkeuring vertegenwoordigt het verificatievenster. Vindplaats Query PAY_REQ_FLOW_INSTANCES voor statuswijzigingen of specifieke taakvoltooiing binnen een gedefinieerd Payroll Flow Pattern. Vastleggen Geregistreerd wanneer de status van de Flow Instance wijzigt naar Voltooid/Goedgekeurd Gebeurtenistype explicit | |||
| QuickPay Uitgevoerd | De uitvoering van een éénpersoons payroll run (QuickPay), doorgaans gebruikt voor het verifiëren van correcties. Dit dient als een proxy voor de Payroll Result Previewed activiteit. | ||
| Het belang Frequente QuickPays per persoon duiden op een trial-and-error benadering van salarisverwerking in plaats van een Vindplaats Query PAY_PAYROLL_ACTIONS waar ACTION_TYPE Q (QuickPay) is. Tel instanties per salarisperiode per medewerker. Vastleggen Geregistreerd wanneer een QuickPay-actie wordt vastgelegd in PAY_PAYROLL_ACTIONS Gebeurtenistype explicit | |||
| Salarisrecord Gecorrigeerd | Handmatige updates toegepast op element entries of toewijzingsdata na een initiële payroll run, maar vóór de finalisatie. Deze activiteit vertegenwoordigt herstelwerk dat nodig is om fouten of uitzonderingen te corrigeren. | ||
| Het belang Duidt op procesinefficiëntie en datakwaliteitsproblemen. Het verminderen van deze activiteit is cruciaal voor het verbeteren van de 'First-Pass Payroll Accuracy Rate'. Vindplaats Afgeleid door updates te identificeren in PAY_ELEMENT_ENTRIES_F waarbij de Last Update Date tussen de initiële Payroll Run-datum en de Prepayments-datum ligt. Vastleggen Vergelijk element entry update timestamps met payroll run timestamps Gebeurtenistype inferred | |||
| Salarisstrook Gepubliceerd | Het punt waarop het salarisstrookdocument zichtbaar wordt voor de medewerker in Self Service. Dit volgt op de Archiver en mogelijk een specifiek 'Generate Payslip' proces. | ||
| Het belang Beïnvloedt de werknemerstevredenheid. Lange vertragingen tussen betaling en beschikbaarheid van loonstroken genereren supporttickets. Vindplaats Query de Documents of Record tabel (HR_DOCUMENTS_OF_RECORD) of de voltooiing van het Generate Payslip proces in PAY_PAYROLL_ACTIONS. Vastleggen Geregistreerd wanneer het salarisstrook PDF-generatieproces is voltooid Gebeurtenistype explicit | |||
| Tijdkaart Goedgekeurd | De bevestiging dat ingediende tijddata is beoordeeld en geautoriseerd door een manager. Deze statuswijziging triggert de overdracht van data naar de payroll element entries. | ||
| Het belang Cruciaal voor het meten van de Manager Approval Lead Time. Vertragingen hier zijn een primaire oorzaak van retro-betalingsaanpassingen in volgende perioden. Vindplaats Query de HWM_TM_REC_GRP_DTLS tabel of HXT_TIMECARDS view waar de status wijzigt naar GOEDGEKEURD. Vergelijk de goedkeuring timestamp met de indiening timestamp. Vastleggen Geregistreerd wanneer de status in Time and Labor wijzigt naar GOEDGEKEURD Gebeurtenistype explicit | |||
| Tijdkaart Ingediend | De initiële gebeurtenis waarbij een medewerker of manager tijd- en arbeidsdata indient voor verwerking. In Oracle HCM wordt dit vastgelegd wanneer de status van de tijdkaart wijzigt naar Submitted in de Time and Labor module. | ||
| Het belang Markeert de invoer van ruwe data in de potentiële salarisverwerkingspipeline. Vertragingen hierin hebben een stroomafwaarts effect, waardoor het venster voor salarisspecialisten om berekeningen te valideren korter wordt. Vindplaats Query de HWM_TM_REC_GRP_DTLS tabel of HXT_TIMECARDS view waar de status wijzigt naar INGEDIEND. Gebruik de indiening timestamp. Vastleggen Geregistreerd wanneer de status in Time and Labor wijzigt naar INGEDIEND Gebeurtenistype explicit | |||
Extractie Guides
Stappen
Access Data Exchange: Log in bij Oracle HCM Cloud met een gebruiker die de rol 'Human Capital Management Integration Specialist' heeft. Navigeer naar My Client Groups > Data Exchange > Extract Definitions.
Create New Extract: Klik op het '+'-icoon om een nieuwe extractie aan te maken. Noem deze 'ProcessMind_Payroll_Extract'. Selecteer 'Payroll' als de consumer en 'HR Archive' als de categorie om toegang te verzekeren tot historische payroll action data.
Define Data Groups: Creëer een Root Data Group op basis van de User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). Dit verankert de extractie aan de payroll relationship van de werknemer. Creëer child data groups voorPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEenHWM_MEASURE_DAY_V_UE(voor time and labor).Configure Extract Records: Definieer binnen de data groups records om de hiërarchische data af te vlakken. U moet specifieke records creëren voor elk activiteitstype (bijv. een record dat filtert op 'Time Card'-events, een ander voor 'Run Results').
Implement SQL Logic via FastFormula or BIP: Vanwege de complexiteit van het transformeren van hiërarchische payroll data naar een lineaire event log, is de meest robuuste aanpak om de 'Extract Delivery Option' te gebruiken om een BI Publisher Report aan te roepen. Dit stelt u in staat de SQL die hieronder in de sectie 'Query' wordt aangeboden, te gebruiken als Data Model. Dit is superieur aan native GUI filtering voor het creëren van een unified event log.
Create BI Publisher Data Model: Navigeer naar Tools > Reports and Analytics > Browse Catalog. Creëer een nieuw Data Model. Plak de hieronder aangeleverde SQL-query. Definieer een Parameter voor
bind_start_dateenbind_end_date.Link Extract to BIP: Maak in het tabblad 'Delivery' van de Extract Definition een delivery option aan. Selecteer 'PDF' of 'XML' als het outputtype (ProcessMind geeft de voorkeur aan CSV, maar u converteert de BIP-output). Selecteer het BI Publisher-rapport dat u in de vorige stap hebt gemaakt.
Define Parameters: Voeg in de Extract Execution Tree parameters toe voor de Start Date en End Date om dynamisch door te geven aan de BI Publisher-query.
Validate and Submit: Valideer de extractdefinitie om fouten te controleren. Klik op 'Submit Extract'. Voer de parameters in (bijv. de laatste 90 dagen).
Monitor Process: Ga naar 'View Extract Results'. Wacht tot de status verandert naar 'Succeeded'.
Download Output: Download het gegenereerde XML/CSV-bestand. Open het om te verifiëren dat de structuur de vereiste kolommen bevat: PayrollRecord, ActivityName, EventTimestamp, etc.
Format for ProcessMind: Als de output XML is, converteer deze dan naar een plat CSV-bestand en zorg ervoor dat de headers overeenkomen met de 'Attributes to include'-vereisten. Upload het resulterende bestand naar ProcessMind.
Configuratie
- Extraction Mode: Changes Only vs. Full Extract. Voor de initiële load, gebruik Full Extract. Voor dagelijkse updates, configureer 'Changes Only' op basis van de Last Update Date.
- Legislative Data Group (LDG): Het wordt sterk aanbevolen om te filteren op LDG als uw instantie meerdere landen ondersteunt, aangezien salarisdefinities per wetgeving verschillen.
- Datumbereik: Stel de
bind_start_dateenbind_end_datein om ten minste 3-6 maanden te bestrijken voor process mining om volledige cyclustijden vast te leggen. - Chunk Size: Voor high-volume payrolls (10k+ werknemers), stel de chunk size in de Extract Definition in op 2000 om timeout-fouten te voorkomen.
- Effective Dating: Payroll-tabellen zijn datum-effectief. De query-logica behandelt expliciet
effective_start_dateeneffective_end_dateom te garanderen dat de correcte historische versie van het record wordt opgehaald. - Beveiliging: De uitvoerende gebruiker moet data security profiles hebben die het bekijken van alle payrolls en afdelingen die bedoeld zijn voor analyse mogelijk maken.
a Voorbeeldquery config
/* Oracle HCM Cloud Payroll Extraction for ProcessMind */
/* Aggregating 16 specific activities into a unified Event Log */
SELECT
/* Attributes */
rel.person_number || '-' || ppa.payroll_action_id AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
TO_CHAR(htr.creation_date, 'YYYY-MM-DD HH24:MI:SS') AS EventTimestamp,
'Oracle HCM Time and Labor' AS SourceSystem,
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS') AS LastDataUpdate,
pap.name AS PayrollPeriodName,
org.name AS DepartmentName,
NULL AS GrossPayAmount
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id /* Adjust mapping */
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'SUBMITTED'
AND htr.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Time Card Approved',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Time and Labor',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'APPROVED'
AND htr.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || pee.element_entry_id,
'Incentive Data Imported',
TO_CHAR(pee.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
NULL,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_element_types_f pet ON pee.element_type_id = pet.element_type_id
JOIN per_all_assignments_m asg ON pee.assignment_id = asg.assignment_id
JOIN per_all_people_f rel ON asg.person_id = rel.person_id
LEFT JOIN per_departments org ON asg.organization_id = org.organization_id
WHERE pet.classification_name IN ('Supplemental Earnings', 'Voluntary Deductions')
AND pee.creator_type IN ('H', 'F') /* HDL or Flat File */
AND pee.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Started',
TO_CHAR(ppa.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_actions ppa
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id /* Simplified Join */
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q') /* Run or QuickPay */
AND ppa.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(prrv.result_value) FROM pay_run_result_values prrv JOIN pay_run_results prr ON prrv.run_result_id = prr.run_result_id WHERE prr.payroll_rel_action_id = pra.payroll_rel_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q')
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Audit Exception Flagged',
TO_CHAR(pml.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pml.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_message_lines pml
JOIN pay_payroll_rel_actions pra ON pml.source_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pml.message_level IN ('F', 'E') /* Fatal or Error */
AND pml.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Record Corrected',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_payroll_rel_actions pra ON pee.creator_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pee.last_update_date > pee.creation_date
AND pee.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'QuickPay Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'Q'
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Prepayments Calculated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'P' /* Distribution */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Run Approved',
TO_CHAR(pfi.action_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pfi.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_flow_instances pfi
JOIN pay_payroll_actions ppa ON pfi.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pfi.status = 'COMPLETED'
AND pfi.instance_name LIKE '%Approval%'
AND pfi.action_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Archive Results Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'X' /* Archive */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Bank Transfer Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(ppp.value) FROM pay_pre_payments ppp WHERE ppp.payroll_action_id = ppa.payroll_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('M', 'E') /* Mag Tape or EFT */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payment Executed',
TO_CHAR(ppp.base_currency_value, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
ppp.value AS GrossPayAmount
FROM pay_pre_payments ppp
JOIN pay_payroll_actions ppa ON ppp.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('H', 'E', 'M') /* Check or EFT */
AND ppa.effective_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Pay Slip Published',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'G' /* Generate Payslip */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Costing Transferred',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'T' /* Transfer to GL */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Tax Filing Completed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.report_category IN ('Tax', 'Regulatory') /* Customize based on local requirements */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date Stappen
- Log in to Oracle BI Publisher: Ga naar de Oracle Cloud-omgeving en navigeer naar Tools > Reports and Analytics. Klik op Browse Catalog om de BI Publisher-interface te openen.
- Create a Data Model: Klik op New (linksboven) en selecteer Data Model. Dit is de container voor uw SQL extraction logic.
- Create a SQL Data Set: Klik onder het tabblad Diagram op het pictogram New Data Set en selecteer SQL Query.
- Configure Data Source: Geef de data set een naam (bijv.
ProcessMind_Payroll_Extract). Stel de Data Source in opApplicationDB_HCM(of uw specifieke HCM Application Database-verbinding). Laat het type als Standard SQL. - Input the Query: Kopieer het volledige SQL-script dat hieronder in de sectie Query wordt aangeboden en plak het in het SQL Query-tekstvak. Zorg ervoor dat u geen markdown-opmaak opneemt.
- Define Parameters: De query gebruikt bindvariabelen
:p_start_dateen:p_end_date. Maak in het tabblad Parameters van de Data Model deze twee parameters aan (Date type) om het extractiebereik te filteren (bijv. op basis vanppa.EFFECTIVE_DATE). - Validate Data Structure: Klik op OK. Schakel over naar het tabblad Data binnen de Data Model-editor. Voer voorbeelddatums in (bijv.
2023-01-01tot2023-03-31) en klik op View. Zorg ervoor dat de output rijen bevat metPayrollRecord,ActivityNameenEventTimestamp. - Save the Data Model: Sla het model op in een gedeelde map (bijv.
/Shared Folders/Custom/ProcessMining). - Create Report for Export: Klik op Create Report, selecteer de Data Model die u zojuist hebt opgeslagen. Gebruik de Report Wizard om een eenvoudige Table layout te creëren die alle kolommen bevat. Vink 'Show Grand Totals' uit.
- Export to CSV: Bekijk het rapport in de Report Viewer. Klik op het menu Actions (tandwielpictogram) > Export > Data > CSV.
- Transform: Open de CSV. Zorg ervoor dat datumnotaties ISO 8601 (
JJJJ-MM-DD HH:MM:SS) zijn, indien niet automatisch opgemaakt. Verdere reshaping zou niet nodig moeten zijn als de SQL correct is geplakt. - Upload: Importeer het resulterende CSV-bestand in ProcessMind en map de kolommen zoals gedefinieerd in de Data Requirements.
Configuratie
- Data Source Connection: Moet
ApplicationDB_HCMof de equivalente JNDI-gegevensbron gebruiken die leesrechten heeft tot dePAY_enPER_-schema's. - Datumbereik: Het aanbevolen extractievenster is 3-6 maanden om volledige salariscycli vast te leggen. Gebruik de
:p_start_dateen:p_end_dateparameters om deze dynamische lading te beheren. - Legislative Data Group (LDG): De query extraheert standaard alle LDG's. Als u meerdere landen beheert, overweeg dan een filter toe te voegen
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]om de data te partitioneren. - Prestaties: De query raadpleegt tabellen met een hoog volume (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Zorg ervoor dat het datumbereik niet te breed is (bijv. >1 jaar) om timeout-fouten in BI Publisher te voorkomen. - Beveiliging: De gebruiker die het rapport uitvoert, heeft Data Access Set-machtigingen nodig voor de beoogde Salarisdefinities.
a Voorbeeldquery 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