Il Suo Template dei dati per l'elaborazione delle paghe
Il Suo Template dei dati per l'elaborazione delle paghe
- Campi dati ottimizzati per l'analisi delle paghe
- Monitoraggio completo delle attività per la mappatura del ciclo di vita
- Indicazioni dettagliate per l'estrazione da Oracle HCM Cloud Payroll
Attributi dell’elaborazione delle paghe
| Nome | Descrizione | ||
|---|---|---|---|
| Nome dell'attività ActivityName | Lo specifico passaggio o evento eseguito nel ciclo paghe. | ||
| Descrizione Questo attributo acquisisce il nome dell'evento che si verifica nel processo paghe. Tra gli esempi figurano 'Time Card Submitted', 'Payroll Calculation Started' e 'Payment Executed'. È la dimensione principale per la process discovery e l'analisi delle varianti. In Oracle HCM Cloud, spesso deriva da Action Type o Action Status nelle tabelle delle azioni paghe. Perché è importante Definisce il 'cosa' del processo e consente di ricostruire la mappa del processo. Dove reperirlo Derivato dal codice ACTION_TYPE in PAY_PAYROLL_ACTIONS o dalle variazioni di stato nei percorsi di audit. Esempi Calcolo delle paghe avviatoTimesheet approvatoBonifico bancario generatoEccezione di audit segnalata | |||
| Record della paga PayrollRecord | Identificativo univoco che rappresenta un dipendente in uno specifico periodo paghe. | ||
| Descrizione Il Payroll Record funge da identificativo centrale del caso per l'analisi di Process Mining. È una concatenazione o una chiave univoca che combina l'identificativo dell'assegnazione del dipendente e l'identificativo del periodo paghe. Questo attributo raggruppa tutte le attività relative al pagamento di un singolo dipendente per uno specifico ciclo, dall'invio iniziale del timesheet fino al bonifico bancario finale e alla dichiarazione fiscale. Garantisce che l'analisi distingua tra il pagamento dello stesso dipendente a gennaio e quello a febbraio. Perché è importante Funge da Case ID, collegando tutti gli eventi eterogenei in una singola istanza di processo per l'analisi. Dove reperirlo Costruito a partire da PAY_ASSIGNMENT_ACTIONS oppure dalla combinazione di Person Number e Payroll Period Name in Oracle HCM. Esempi EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Sistema di origine SourceSystem | Il nome del sistema da cui ha avuto origine l'evento. | ||
| Descrizione Identifica il software o il modulo che ha generato il dato. Per questo processo, il valore principale è 'Oracle HCM Cloud Payroll'. Tuttavia, in architetture complesse può distinguere tra il motore centrale delle paghe, il modulo Time and Labor o un'interfaccia bancaria esterna. Perché è importante Fornisce il contesto di provenienza dei dati, soprattutto quando si integrano dati provenienti da sottosistemi di rilevazione delle presenze o bancari. Dove reperirlo Codificato durante l'estrazione o derivato dagli identificativi dell'interfaccia. Esempi Oracle HCM Cloud PayrollOracle Time and LaborInterfaccia bancaria esterna | |||
| Timestamp dell'evento EventTimestamp | La data e l'ora esatte in cui si è verificata l'attività. | ||
| Descrizione Registra il momento preciso in cui si è svolta un'attività. È fondamentale per calcolare durate e tempi di attraversamento e per identificare i colli di bottiglia. Per i passaggi automatizzati corrisponde all'ora di esecuzione del sistema. Per i passaggi manuali, come le approvazioni, corrisponde al timestamp dell'azione dell'utente registrata nel log delle transazioni. Perché è importante È essenziale per ordinare cronologicamente gli eventi e calcolare tutti i KPI basati sul tempo. Dove reperirlo Colonne CREATION_DATE o ACTION_DATE nelle tabelle delle transazioni pertinenti, come PAY_ACTION_INFORMATION. Esempi 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp dell'ultima modifica del record nel database di origine. | ||
| Descrizione Indica l'aggiornamento dei dati utilizzati per l'analisi. È distinto dal Timestamp dell'evento e riflette il momento in cui la riga del database è stata modificata per l'ultima volta da un processo ETL o da un aggiornamento del sistema. Viene utilizzato per verificare l'attualità dei dati e analizzare i problemi di latenza nell'estrazione. Perché è importante Garantisce agli analisti di sapere se stanno esaminando dati in tempo reale o dati obsoleti. Dove reperirlo Colonna LAST_UPDATE_DATE comune a quasi tutte le tabelle Oracle HCM. Esempi 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| È una correzione manuale IsManualCorrection | Indicatore che segnala se l’attività ha comportato un intervento manuale. | ||
| Descrizione Indicatore booleano impostato su true per attività come "Data Correction Performed" o "Payroll Record Corrected". Viene utilizzato per calcolare i KPI "Manual Data Correction Rate" e "First-Pass Payroll Accuracy Rate". Perché è importante Distingue l’elaborazione straight-through dalla rilavorazione manuale. Dove reperirlo Derivato da Activity Name o da specifici Action Types che indicano rettifiche, ad esempio QuickPay o Balance Adjustment. Esempi truefalse | |||
| Gruppo di dati legislativi LegislativeDataGroup | Partiziona i dati delle paghe per Paese o contesto normativo. | ||
| Descrizione In Oracle HCM Cloud, il Legislative Data Group (LDG) suddivide il payroll e i dati correlati. In genere corrisponde alla legislazione di un Paese o di uno specifico territorio. Questo attributo è fondamentale per filtrare l’analisi del processo per Paese, ad esempio US Payroll rispetto a UK Payroll, e viene spesso mappato sull’attributo generico Country. Perché è importante Le regole di conformità e i flussi di processo variano spesso in modo significativo a seconda della giurisdizione. Dove reperirlo Tabella PAY_ALL_PAYROLLS_F collegata alle definizioni del Legislative Data Group. Esempi Gruppo di dati legislativi degli Stati UnitiUK LDGPaghe Francia | |||
| Gruppo payroll PayGroup | Raggruppamento logico dei dipendenti per l’elaborazione del payroll. | ||
| Descrizione Rappresenta la specifica definizione payroll a cui appartiene il dipendente, ad esempio "Weekly Manufacturing" o "Monthly Corporate". Questo attributo è centrale per quasi tutte le Dashboard, poiché consente di confrontare le prestazioni tra cicli e frequenze payroll differenti. Perché è importante Il principale oggetto di configurazione che determina la pianificazione del payroll. Dove reperirlo Tabella PAY_ALL_PAYROLLS_F (Payroll Name). Esempi Cadenza bisettimanale negli Stati UnitiCadenza mensile nel Regno UnitoCadenza settimanale per il personale sindacalizzato | |||
| Importo lordo GrossPayAmount | L’importo totale della retribuzione lorda calcolata per il periodo. | ||
| Descrizione Rappresenta il valore monetario della retribuzione lorda calcolata durante il ciclo. Viene utilizzato nelle analisi "Tax and Benefit Calculation Accuracy" e "Incentive Integration". Consente agli analisti di correlare i pagamenti di importo elevato con i tempi di elaborazione o i tassi di errore. Perché è importante Fornisce un contesto finanziario all’analisi di Process Mining. Dove reperirlo Tabella PAY_RUN_RESULT_VALUES, aggregata per il saldo Gross Pay. Esempi 5000.002350.5010000.00 | |||
| Nome del periodo payroll PayrollPeriodName | Il nome specifico dell’intervallo temporale a cui si riferisce l’elaborazione del payroll. | ||
| Descrizione Identifica il ciclo specifico, ad esempio "Monthly January 2024" o "Weekly Period 42". È essenziale per il monitor "SLA Deadline Compliance Monitor". Aiuta a raggruppare i singoli casi dei dipendenti nei rispettivi batch di elaborazione per la reportistica aggregata. Perché è importante Fondamentale per l’analisi a livello di batch e il monitoraggio degli SLA. Dove reperirlo Tabella PAY_TIME_PERIODS oppure Time Period Name nella Payroll Definition. Esempi 2023 Mensile 102023 Settimanale 42Erogazione bonus dicembre 2023 | |||
| Nome del reparto DepartmentName | L’unità organizzativa in cui lavora il dipendente. | ||
| Descrizione Identifica il reparto responsabile del dipendente associato al record payroll. È fondamentale per la Dashboard "Timesheet Approval Efficiency". Segmentando i dati per reparto, gli analisti possono individuare le unità aziendali che approvano sistematicamente in ritardo le schede delle ore lavorate, rallentando l’intera elaborazione del payroll. Perché è importante Consente di analizzare le cause principali dei ritardi legati alle approvazioni dei responsabili. Dove reperirlo Derivato dal record di assegnazione del dipendente valido al momento dell’elaborazione del payroll. Esempi Vendite Nord AmericaIngegneriaRisorse umaneLogistica | |||
| Scadenza di elaborazione SLA SlaProcessingDeadline | La data e l’ora entro cui deve essere eseguito il pagamento. | ||
| Descrizione Memorizza la scadenza contrattuale o legale per l’erogazione del payroll. Questo attributo viene confrontato con il timestamp "Payment Executed". Viene utilizzato per calcolare il KPI "SLA Processing Deadline Adherence" e individuare i gruppi di pagamento a rischio. Perché è importante Il principale parametro di riferimento per determinare il successo o il fallimento del processo in termini di puntualità. Dove reperirlo In genere è un campo configurato (DFF) nella Payroll Definition oppure deriva dalla Check Date meno X giorni. Esempi 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Utente che esegue l’elaborazione ProcessingUser | L’ID utente o il nome della persona che esegue l’attività. | ||
| Descrizione Registra l’identità dello specialista payroll, del responsabile o dell’account di sistema che ha attivato l’attività. Supporta la Dashboard "Payroll Specialist Workload Distribution". Aiuta a individuare i colli di bottiglia legati alle risorse e le esigenze formative del team payroll. Perché è importante Consente di analizzare la produttività delle risorse e di bilanciare i carichi di lavoro. Dove reperirlo Colonne CREATED_BY o LAST_UPDATED_BY nelle tabelle delle transazioni. Esempi sysadminj.smithpayroll_batch_userm.doe | |||
| Giurisdizione fiscale TaxJurisdiction | Lo Stato, la provincia o la località specifica per la dichiarazione fiscale. | ||
| Descrizione Indica l’autorità fiscale principale associata al record payroll, ad esempio "CA" per la California o "NY" per New York. Supporta la Dashboard "Tax Compliance Processing Duration". Aiuta a individuare se determinate regioni presentano processi di calcolo e dichiarazione fiscale più complessi o più lenti. Perché è importante Segmenta le prestazioni in base alla complessità normativa. Dove reperirlo Derivato dalla scheda fiscale del dipendente o dagli indirizzi della sede di lavoro. Esempi CA-CaliforniaNY-New YorkTX-TexasFederale-USA | |||
| Indicatore di modifica retroattiva RetroactiveChangeFlag | Indica se l’elaborazione payroll include pagamenti retroattivi. | ||
| Descrizione Indicatore booleano impostato su true se nel record vengono elaborati elementi "Retropay". Aiuta a spiegare tempi di elaborazione più lunghi o eccezioni di audit nel confronto "Process Path Variant Comparison". Le modifiche retroattive attivano spesso ricalcoli complessi che interessano periodi precedenti. Perché è importante Identifica i casi complessi che richiedono naturalmente più tempo di elaborazione. Dove reperirlo Presenza di voci dell’elemento "Retropay" in PAY_ELEMENT_ENTRIES. Esempi truefalse | |||
| Numero di iterazioni dell’anteprima PreviewIterationCount | Numero di volte in cui i risultati sono stati visualizzati in anteprima prima della finalizzazione. | ||
| Descrizione Contatore che aumenta ogni volta che si verifica un’attività "Payroll Result Previewed" per lo stesso caso. È la misura diretta per la Dashboard "Payroll Preview Iteration Tracker" e indica il livello di rilavorazione o di esitazione prima dell’approvazione. Perché è importante Quantifica l’efficienza della fase di convalida. Dove reperirlo Calcolato durante la trasformazione dei dati contando le occorrenze di attività specifiche per ogni Case ID. Esempi 1350 | |||
| Stato SLA SlaStatus | Stato categoriale del rispetto dello SLA (Rispettato/Non rispettato). | ||
| Descrizione Derivato dal confronto tra il timestamp "Payment Executed" e la "SLA Processing Deadline". I valori possono includere "On Time", "At Risk" o "Breached". Semplifica la reportistica per il monitor "SLA Deadline Compliance Monitor", raggruppando i casi in categorie di prestazione. Perché è importante Semplifica confronti temporali complessi trasformandoli in categorie operative. Dove reperirlo Logica calcolata che confronta Event Timestamp e SLA Deadline. Esempi RispettatoViolatoProssimo alla violazione | |||
| Tipo di dipendente EmployeeType | Classificazione del dipendente, ad esempio Salaried, Hourly o Contractor. | ||
| Descrizione Classifica il record del dipendente. È fondamentale per la Dashboard "Digital Pay Slip Publishing Lag", poiché diversi tipi di dipendente possono essere soggetti a regole di elaborazione o livelli di urgenza differenti. Consente di filtrare l’analisi per confrontare le prestazioni del processo tra diversi segmenti della forza lavoro. Perché è importante Tipi diversi di dipendente seguono spesso varianti di processo differenti. Dove reperirlo Categoria di assegnazione o condizioni di impiego in PER_ALL_ASSIGNMENTS_M. Esempi Dipendente a tempo pieno retribuito con stipendioDipendente a tempo parziale retribuito a oreCollaboratore a contrattoDirigente | |||
| Tipo di eccezione di audit AuditExceptionType | La categoria dell’errore o dell’avviso rilevato durante l’audit. | ||
| Descrizione Classifica il problema specifico rilevato durante l’attività "Audit Exception Flagged", ad esempio "Negative Net Pay" o "Missing Tax ID". Questo attributo supporta la Dashboard "Audit Exception and Correction Analysis", consentendo di individuare i problemi più comuni relativi alla qualità dei dati. Perché è importante È fondamentale per l’analisi delle cause principali dei cicli di rilavorazione. Dove reperirlo Colonne Message o Error Code nei log del processo payroll o nei report delle eccezioni. Esempi Retribuzione netta negativaNumero di previdenza sociale mancanteCoordinate bancarie non valideLimite degli straordinari superato | |||
Attività di elaborazione delle paghe
| Attività | Descrizione | ||
|---|---|---|---|
| Bonifico bancario generato | La generazione del file EFT (Electronic Funds Transfer) o di un output di pagamento analogo. È il passaggio tecnico in cui viene creato il file di istruzioni per la banca. | ||
| Perché è importante Misura il Payment File Generation Cycle Time. I ritardi in questa fase possono causare il mancato rispetto degli orari limite bancari. Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è M (Magnetic Tape), E (EFT) o C (Check Writer). Acquisizione Registrato quando l'azione EFT/Check viene completata Tipo di evento explicit | |||
| Calcolo delle paghe avviato | L'avvio del processo principale di elaborazione delle paghe per una specifica definizione paghe e un determinato periodo. Segna il passaggio dalla raccolta dei dati all'elaborazione. | ||
| Perché è importante Stabilisce l'inizio della finestra di elaborazione intensiva. Viene utilizzato per calcolare il tempo totale del ciclo di esecuzione tecnica delle paghe. Dove reperirlo Interrogare la tabella PAY_PAYROLL_ACTIONS dove ACTION_TYPE è R (Run) o Q (QuickPay) e ACTION_STATUS risulta avviato, oppure dedurlo dalla data di creazione. Acquisizione Registrato quando viene inserito un record in PAY_PAYROLL_ACTIONS Tipo di evento explicit | |||
| Calcolo delle paghe eseguito | Il completamento corretto del processo Calculate Payroll, inclusi i calcoli dal lordo al netto. Questo evento indica che competenze, trattenute e imposte sono state calcolate per l'assegnazione. | ||
| Perché è importante Una tappa fondamentale che indica che i dati sono pronti per la validazione. Durate elevate in questa fase possono indicare problemi di prestazioni del sistema o fast formula complesse. Dove reperirlo Interrogare PAY_PAYROLL_REL_ACTIONS collegata a PAY_PAYROLL_ACTIONS, dove ACTION_TYPE è R o Q e ACTION_STATUS cambia in C (Complete). Acquisizione Registrato quando lo stato dell'azione Payroll Run viene aggiornato a Complete Tipo di evento explicit | |||
| Pagamento eseguito | La conferma finale che il pagamento è stato elaborato. In Oracle, corrisponde al completamento del flusso di pagamento o della riconciliazione in Cash Management. | ||
| Perché è importante Il timestamp principale per la conformità agli SLA. Viene utilizzato per determinare se i dipendenti sono stati pagati puntualmente. Dove reperirlo Può essere dedotto dalla Effective Date dell'azione Bank Transfer oppure rilevato esplicitamente nei log di riconciliazione di Cash Management, CE_STATEMENT_LINES. Acquisizione Registrato tramite la data di efficacia dell'azione di pagamento o l'evento di riconciliazione Tipo di evento explicit | |||
| Prepayments calcolati | L'esecuzione del processo Prepayments, che distribuisce il netto ai metodi di pagamento scelti dal dipendente, come assegno, EFT e così via. Convalida che gli importi calcolati possano essere effettivamente pagati. | ||
| Perché è importante È il collegamento tra calcolo ed erogazione. Gli errori in questa fase indicano generalmente dati bancari mancanti o metodi di pagamento non validi. Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è P (Prepayments) e lo stato è Complete. Acquisizione Registrato quando l'azione Prepayments viene completata Tipo di evento explicit | |||
| Cedolino pubblicato | Il momento in cui il documento del cedolino diventa visibile al dipendente in Self Service. Segue l'Archiver e, potenzialmente, uno specifico processo Generate Payslip. | ||
| Perché è importante Influisce sulla soddisfazione dei dipendenti. Ritardi prolungati tra il pagamento e la disponibilità del cedolino generano richieste di assistenza. Dove reperirlo Interrogare la tabella Documents of Record, HR_DOCUMENTS_OF_RECORD, oppure verificare il completamento del processo Generate Payslip in PAY_PAYROLL_ACTIONS. Acquisizione Registrato quando il processo di generazione del PDF del cedolino viene completato Tipo di evento explicit | |||
| Costing trasferito | Il trasferimento dei risultati del costing delle paghe alla contabilità generale. Rappresenta la chiusura contabile del ciclo paghe. | ||
| Perché è importante Garantisce la conformità finanziaria e la corretta contabilizzazione dei costi del lavoro. I ritardi impediscono alla funzione Finance di chiudere i libri contabili. Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è T (Transfer to GL) e lo stato è Complete. Acquisizione Registrato quando il processo Transfer to GL viene completato Tipo di evento explicit | |||
| Dati degli incentivi importati | La creazione delle voci degli elementi per la retribuzione variabile, come bonus o commissioni, tramite batch loader o importazione HDL. Rappresenta l'integrazione dei dati retributivi esterni nell'elaborazione delle paghe. | ||
| Perché è importante Monitora la velocità di integrazione della retribuzione variabile. Le importazioni tardive spesso richiedono elaborazioni paghe supplementari o correzioni manuali. Dove reperirlo Interrogare PAY_BATCH_HEADERS per verificare il completamento dell'importazione oppure monitorare la creazione di PAY_ELEMENT_ENTRIES_F con uno specifico riferimento al sistema di origine. Acquisizione Registrato quando il processo di inserimento batch degli elementi viene completato correttamente Tipo di evento explicit | |||
| Dichiarazione fiscale completata | La generazione dei file fiscali obbligatori, ad esempio Third Party Quarterly Tax File. Garantisce la conformità normativa per il periodo paghe. | ||
| Perché è importante È fondamentale per il KPI Tax Compliance Processing Duration. Un errore in questa fase può comportare sanzioni. Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS per le azioni dello specifico legislative data group relative alla reportistica fiscale, ad esempio US Third Party Tax Filing. Acquisizione Registrato quando il flusso specifico di reportistica fiscale viene completato Tipo di evento explicit | |||
| Eccezione di audit segnalata | La registrazione di un messaggio di errore o avviso durante la fase di calcolo o validazione delle paghe. Cattura specifici errori di validazione che richiedono un intervento umano. | ||
| Perché è importante È essenziale per identificare i problemi di qualità dei dati. Un volume elevato di eccezioni aumenta il lavoro manuale e il rischio di violazione degli SLA. Dove reperirlo Interrogare la tabella PAY_MESSAGE_LINES collegata allo specifico PAY_PAYROLL_REL_ACTION_ID. Questa tabella memorizza gli errori e gli avvisi generati durante le elaborazioni. Acquisizione Registrato quando viene inserito un record in PAY_MESSAGE_LINES Tipo di evento explicit | |||
| Payroll Run approvato | L'approvazione formale del registro o del flusso paghe nel Payroll Dashboard. Avviene generalmente dopo l'esame dei report di validazione e prima della generazione dei file bancari. | ||
| Perché è importante Rappresenta l'approvazione manageriale finale. Il tempo tra il calcolo e l'approvazione rappresenta la finestra di verifica. Dove reperirlo Interrogare PAY_REQ_FLOW_INSTANCES per rilevare variazioni di stato o il completamento di attività specifiche all'interno di un determinato Payroll Flow Pattern. Acquisizione Registrato quando lo stato dell'istanza del flusso cambia in Completed/Approved Tipo di evento explicit | |||
| QuickPay eseguito | L'esecuzione di un'elaborazione paghe per una singola persona, QuickPay, generalmente utilizzata per verificare le correzioni. Funge da indicatore sostitutivo dell'attività Payroll Result Previewed. | ||
| Perché è importante QuickPay frequenti per persona indicano un approccio per tentativi all'elaborazione delle paghe, anziché un approccio Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è Q (QuickPay). Contare le istanze per periodo paghe e dipendente. Acquisizione Registrato quando un'azione QuickPay viene registrata in PAY_PAYROLL_ACTIONS Tipo di evento explicit | |||
| Record della paga corretto | Aggiornamenti manuali applicati alle voci degli elementi o ai dati dell'assegnazione dopo un'elaborazione iniziale delle paghe, ma prima della finalizzazione. Questa attività rappresenta la rilavorazione necessaria per correggere errori o eccezioni. | ||
| Perché è importante Indica inefficienze del processo e problemi di qualità dei dati. Ridurre questa attività è fondamentale per migliorare il First-Pass Payroll Accuracy Rate. Dove reperirlo Deducibile identificando gli aggiornamenti a PAY_ELEMENT_ENTRIES_F in cui la Last Update Date è compresa tra la data del Payroll Run iniziale e la data dei Prepayments. Acquisizione Confrontare i timestamp degli aggiornamenti delle voci degli elementi con quelli del Payroll Run Tipo di evento inferred | |||
| Risultati dell'archiviazione generati | Il completamento del processo Archive Periodic Payroll Results. Questa istantanea blocca di fatto i dati per la reportistica e la generazione dei cedolini. | ||
| Perché è importante Un prerequisito tecnico per generare cedolini e report obbligatori. Conferma che i dati siano stati finalizzati. Dove reperirlo Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è X (Archive) e lo stato è Complete. Acquisizione Registrato quando l'azione Archive viene completata Tipo di evento explicit | |||
| Timesheet approvato | La conferma che i dati sulle ore inviati sono stati esaminati e autorizzati da un responsabile. Questa variazione di stato attiva il trasferimento dei dati nelle voci degli elementi paghe. | ||
| Perché è importante È fondamentale per misurare il Manager Approval Lead Time. I ritardi in questa fase sono una delle principali cause degli adeguamenti retroattivi delle paghe nei periodi successivi. Dove reperirlo Interrogare la tabella HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS, dove lo stato cambia in APPROVED. Confrontare il timestamp di approvazione con quello di invio. Acquisizione Registrato quando lo stato cambia in APPROVED in Time and Labor Tipo di evento explicit | |||
| Timesheet inviato | L'evento iniziale in cui un dipendente o un responsabile invia i dati relativi a ore e lavoro per l'elaborazione. In Oracle HCM, viene registrato quando lo stato del timesheet cambia in Submitted nel modulo Time and Labor. | ||
| Perché è importante Segna l'ingresso dei dati grezzi nel potenziale flusso delle paghe. I ritardi in questa fase si ripercuotono sulle fasi successive, riducendo il tempo a disposizione degli specialisti delle paghe per convalidare i calcoli. Dove reperirlo Interrogare la tabella HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS, dove lo stato cambia in SUBMITTED. Utilizzare il timestamp di invio. Acquisizione Registrato quando lo stato cambia in SUBMITTED in Time and Labor Tipo di evento explicit | |||
Guide all'estrazione
Passaggi
Acceda a Data Exchange: acceda a Oracle HCM Cloud con un utente che disponga del ruolo 'Human Capital Management Integration Specialist'. Selezioni My Client Groups > Data Exchange > Extract Definitions.
Crei una nuova estrazione: faccia clic sull'icona '+' per creare una nuova estrazione. La denomini 'ProcessMind_Payroll_Extract'. Selezioni 'Payroll' come consumer e 'HR Archive' come categoria, così da garantire l'accesso ai dati storici delle azioni di payroll.
Definisca i gruppi di dati: crei un Root Data Group basato sulla User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). In questo modo l'estrazione viene ancorata alla relazione payroll del dipendente. Crei gruppi di dati secondari perPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEeHWM_MEASURE_DAY_V_UE(per time e labor).Configuri i record dell'estrazione: all'interno dei gruppi di dati, definisca i record necessari per appiattire i dati gerarchici. Deve creare record specifici per ogni tipo di attività, ad esempio un record filtrato per gli eventi 'Time Card' e un altro per i 'Run Results'.
Implementi la logica SQL tramite FastFormula o BIP: data la complessità della trasformazione dei dati gerarchici delle paghe in un Event Log lineare, l'approccio più affidabile consiste nell'utilizzare l' 'Extract Delivery Option' per richiamare un report BI Publisher. Questo Le consente di utilizzare come Data Model la query SQL fornita nella sezione 'Query' seguente. È una soluzione superiore al filtraggio tramite interfaccia nativa per creare un Event Log unificato.
Crei il Data Model BI Publisher: selezioni Tools > Reports and Analytics > Browse Catalog. Crei un nuovo Data Model. Incolli la query SQL fornita di seguito. Definisca un parametro per
bind_start_dateebind_end_date.Colleghi l'estrazione a BIP: nella scheda 'Delivery' della Extract Definition, crei un'opzione di consegna. Selezioni 'PDF' o 'XML' come tipo di output, poiché ProcessMind preferisce CSV ma sarà necessario convertire l'output BIP. Selezioni il report BI Publisher creato nel passaggio precedente.
Definisca i parametri: nell'Extract Execution Tree, aggiunga i parametri Start Date ed End Date per passarli dinamicamente alla query BI Publisher.
Convalidi e invii: convalidi la definizione dell'estrazione per verificare la presenza di errori. Faccia clic su 'Submit Extract'. Inserisca i parametri, ad esempio gli ultimi 90 giorni.
Monitori il processo: selezioni 'View Extract Results'. Attenda che lo stato diventi 'Succeeded'.
Scarichi l'output: scarichi il file XML/CSV generato. Lo apra per verificare che la struttura contenga le colonne richieste: PayrollRecord, ActivityName, EventTimestamp e così via.
Formattti per ProcessMind: se l'output è in XML, lo converta in un file CSV piatto, assicurandosi che le intestazioni corrispondano ai requisiti 'Attributes to include'. Carichi quindi il file risultante in ProcessMind.
Configurazione
- Modalità di estrazione: Changes Only rispetto a Full Extract. Per il caricamento iniziale, utilizzi Full Extract. Per gli aggiornamenti giornalieri, configuri 'Changes Only' in base alla Last Update Date.
- Legislative Data Group (LDG): è fortemente consigliato filtrare per LDG se la Sua istanza supporta più Paesi, poiché le definizioni delle paghe variano in base alla legislazione.
- Intervallo di date: imposti
bind_start_dateebind_end_datesu un periodo di almeno 3-6 mesi, affinché il Process Mining possa acquisire i tempi di ciclo completi. - Dimensione dei blocchi: per le elaborazioni delle paghe ad alto volume, con oltre 10.000 dipendenti, imposti la dimensione del blocco su 2000 nella Extract Definition, così da evitare errori di timeout.
- Validità temporale: le tabelle payroll sono soggette a validità temporale. La logica della query gestisce esplicitamente
effective_start_dateeeffective_end_dateper garantire il recupero della versione storica corretta del record. - Sicurezza: l'utente che esegue l'estrazione deve disporre di profili di sicurezza dei dati che consentano di visualizzare tutte le elaborazioni delle paghe e tutti i reparti inclusi nell'analisi.
a Query di esempio sql
/* Oracle HCM Cloud Payroll Extraction for ProcessMind */
/* Aggregating 16 specific activities into a unified Event Log */
SELECT
/* Attributes */
rel.person_number || '-' || ppa.payroll_action_id AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
TO_CHAR(htr.creation_date, 'YYYY-MM-DD HH24:MI:SS') AS EventTimestamp,
'Oracle HCM Time and Labor' AS SourceSystem,
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS') AS LastDataUpdate,
pap.name AS PayrollPeriodName,
org.name AS DepartmentName,
NULL AS GrossPayAmount
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id /* Adjust mapping */
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'SUBMITTED'
AND htr.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Time Card Approved',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Time and Labor',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'APPROVED'
AND htr.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || pee.element_entry_id,
'Incentive Data Imported',
TO_CHAR(pee.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
NULL,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_element_types_f pet ON pee.element_type_id = pet.element_type_id
JOIN per_all_assignments_m asg ON pee.assignment_id = asg.assignment_id
JOIN per_all_people_f rel ON asg.person_id = rel.person_id
LEFT JOIN per_departments org ON asg.organization_id = org.organization_id
WHERE pet.classification_name IN ('Supplemental Earnings', 'Voluntary Deductions')
AND pee.creator_type IN ('H', 'F') /* HDL or Flat File */
AND pee.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Started',
TO_CHAR(ppa.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_actions ppa
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id /* Simplified Join */
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q') /* Run or QuickPay */
AND ppa.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(prrv.result_value) FROM pay_run_result_values prrv JOIN pay_run_results prr ON prrv.run_result_id = prr.run_result_id WHERE prr.payroll_rel_action_id = pra.payroll_rel_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q')
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Audit Exception Flagged',
TO_CHAR(pml.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pml.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_message_lines pml
JOIN pay_payroll_rel_actions pra ON pml.source_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pml.message_level IN ('F', 'E') /* Fatal or Error */
AND pml.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Record Corrected',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_payroll_rel_actions pra ON pee.creator_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pee.last_update_date > pee.creation_date
AND pee.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'QuickPay Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'Q'
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Prepayments Calculated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'P' /* Distribution */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Run Approved',
TO_CHAR(pfi.action_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pfi.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_flow_instances pfi
JOIN pay_payroll_actions ppa ON pfi.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pfi.status = 'COMPLETED'
AND pfi.instance_name LIKE '%Approval%'
AND pfi.action_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Archive Results Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'X' /* Archive */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Bank Transfer Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(ppp.value) FROM pay_pre_payments ppp WHERE ppp.payroll_action_id = ppa.payroll_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('M', 'E') /* Mag Tape or EFT */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payment Executed',
TO_CHAR(ppp.base_currency_value, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
ppp.value AS GrossPayAmount
FROM pay_pre_payments ppp
JOIN pay_payroll_actions ppa ON ppp.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('H', 'E', 'M') /* Check or EFT */
AND ppa.effective_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Pay Slip Published',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'G' /* Generate Payslip */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Costing Transferred',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'T' /* Transfer to GL */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Tax Filing Completed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.report_category IN ('Tax', 'Regulatory') /* Customize based on local requirements */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date Passaggi
- Acceda a Oracle BI Publisher: acceda all'ambiente Oracle Cloud e selezioni Tools > Reports and Analytics. Faccia clic su Browse Catalog per aprire l'interfaccia BI Publisher.
- Crei un Data Model: faccia clic su New in alto a sinistra e selezioni Data Model. Questo è il contenitore della logica di estrazione SQL.
- Crei un SQL Data Set: nella scheda Diagram, faccia clic sull'icona New Data Set e selezioni SQL Query.
- Configuri la sorgente dati: assegni un nome al data set, ad esempio
ProcessMind_Payroll_Extract. Imposti Data Source suApplicationDB_HCMo sulla connessione specifica al database applicativo HCM. Lasci il tipo impostato su Standard SQL. - Inserisca la query: copi lo script SQL completo fornito nella sezione Query seguente e lo incolli nella casella di testo SQL Query. Si assicuri di non includere alcuna formattazione markdown.
- Definisca i parametri: la query utilizza le variabili di associazione
:p_start_datee:p_end_date. Nella scheda Parameters del Data Model, crei questi due parametri di tipo Date per filtrare l'intervallo di estrazione, ad esempio in base appa.EFFECTIVE_DATE. - Convalidi la struttura dei dati: faccia clic su OK. Passi alla scheda Data nell'editor del Data Model. Inserisca date di esempio, ad esempio
2023-01-01e2023-03-31, quindi faccia clic su View. Verifichi che l'output contenga righe conPayrollRecord,ActivityNameedEventTimestamp. - Salvi il Data Model: salvi il modello in una cartella condivisa, ad esempio
/Shared Folders/Custom/ProcessMining. - Crei il report per l'esportazione: faccia clic su Create Report e selezioni il Data Model appena salvato. Utilizzi il Report Wizard per creare un layout semplice a tabella contenente tutte le colonne. Deselezioni 'Show Grand Totals'.
- Esporti in CSV: visualizzi il report nel Report Viewer. Faccia clic sul menu Actions, sull'icona a forma di ingranaggio, quindi selezioni Export > Data > CSV.
- Trasformi il file: apra il CSV. Verifichi che i formati delle date siano ISO 8601 (
YYYY-MM-DD HH:MM:SS) qualora non siano stati formattati automaticamente. Se la query è stata incollata correttamente, non dovrebbe essere necessaria alcuna ulteriore rielaborazione. - Carichi il file: importi il CSV risultante in ProcessMind, associando le colonne come definito nei Data Requirements.
Configurazione
- Connessione alla sorgente dati: deve utilizzare
ApplicationDB_HCMo la sorgente dati JNDI equivalente, con accesso in lettura agli schemiPAY_ePER_. - Intervallo di date: l'intervallo di estrazione consigliato è di 3-6 mesi, così da acquisire cicli completi di elaborazione delle paghe. Utilizzi i parametri
:p_start_datee:p_end_dateper controllare dinamicamente il caricamento. - Legislative Data Group (LDG): la query estrae per impostazione predefinita tutti gli LDG. Se gestisce più Paesi, valuti l'aggiunta del filtro
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]per suddividere i dati. - Prestazioni: la query accede a tabelle ad alto volume, tra cui
PAY_RUN_RESULTSePAY_ASSIGNMENT_ACTIONS. Si assicuri che l'intervallo di date non sia eccessivamente ampio, ad esempio superiore a un anno, per evitare errori di timeout in BI Publisher. - Sicurezza: l'utente che esegue il report deve disporre delle autorizzazioni Data Access Set per le definizioni payroll interessate.
a Query di esempio 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 Pronto per iniziare?
Trasformi le operazioni di elaborazione delle paghe utilizzando questo Template dei dati per ottenere una visibilità completa sui Suoi cicli. Inizi oggi il percorso verso un'efficienza automatizzata e una reportistica accurata.
Ottimizzi oggi l'elaborazione delle paghe in Oracle HCM
Riduca del 30% il tempo del ciclo di elaborazione delle paghe ed elimini i colli di bottiglia.
Non è richiesta alcuna carta di credito. Configurazione in pochi minuti.