Il Suo Template Dati per l'Elaborazione dei Pagamenti
Il Suo Template Dati per l'Elaborazione dei Pagamenti
- Campi dati ottimizzati per l'analisi dei pagamenti
- Tracciamento completo delle attività per la mappatura del ciclo di vita
- Guida dettagliata all'estrazione per Oracle HCM Cloud Payroll
Attributi di Elaborazione dei Pagamenti
| Nome | Descrizione | ||
|---|---|---|---|
| Nome attività ActivityName | La fase o l'evento specifico eseguito nel ciclo di pagamento. | ||
| Descrizione Questo attributo cattura il nome dell'evento che si verifica all'interno del processo di pagamento. Esempi includono 'Scheda Presenze Inviata', 'Calcolo Pagamenti Avviato' e 'Pagamento Eseguito'. È la dimensione primaria per la scoperta del processo e l'analisi delle varianti. In Oracle HCM Cloud, questo è spesso derivato da Action Type o Action Status all'interno delle tabelle delle azioni di pagamento. Perché è importante Questo definisce il 'cosa' del processo, permettendo la ricostruzione della mappa di processo. Dove trovare Derivato dal codice ACTION_TYPE in PAY_PAYROLL_ACTIONS o da modifiche di stato nei trail di audit. Esempi Calcolo Pagamenti AvviatoScheda Presenze ApprovataBonifico Bancario GeneratoEccezione di Audit Segnalata | |||
| Record dei Pagamenti PayrollRecord | Identificatore univoco che rappresenta un dipendente all'interno di un periodo di pagamento specifico. | ||
| Descrizione Il Record dei Pagamenti funge da identificatore centrale del case per l'analisi del Process Mining. È una concatenazione o una chiave univoca che combina l'Identificatore di Assegnazione del Dipendente e l'Identificatore del Periodo di Pagamento. Questo attributo raggruppa tutte le attività relative al pagamento di un singolo dipendente per un ciclo specifico, dall'invio iniziale della scheda presenze fino al bonifico bancario finale e alla dichiarazione fiscale. Assicura che l'analisi possa distinguere tra lo stesso dipendente pagato a gennaio e a febbraio. Perché è importante Serve come Case ID, legando tutti gli eventi disparati in una singola istanza di processo per l'analisi. Dove trovare Costruito da PAY_ASSIGNMENT_ACTIONS o una 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 data point. Per questo processo, il valore primario è 'Oracle HCM Cloud Payroll'. Tuttavia, in contesti complessi, questo potrebbe distinguere tra il motore principale di gestione paghe, il modulo di tempo e lavoro o un'interfaccia bancaria esterna. Perché è importante Fornisce contesto di lignaggio, specialmente durante l'integrazione di dati da sottosistemi di rilevazione presenze o bancari. Dove trovare Hardcoded durante l'estrazione o derivato dagli ID di interfaccia. Esempi Oracle HCM Cloud PayrollOracle Time and LaborInterfaccia Bancaria Esterna | |||
| Timestamp Evento EventTimestamp | La data e l'ora esatte in cui si è verificata l'attività. | ||
| Descrizione Registra il momento specifico in cui un'attività ha avuto luogo. Questo è fondamentale per calcolare durate, tempi di consegna e identificare i bottleneck. Per i passaggi automatizzati, questo è il tempo di esecuzione del sistema. Per i passaggi manuali come le approvazioni, è il timestamp dell'azione dell'utente registrato nel log delle transazioni. Perché è importante Essenziale per ordinare gli eventi cronologicamente e calcolare tutti i KPI basati sul tempo. Dove trovare Colonne CREATION_DATE o ACTION_DATE nelle tabelle di transazione pertinenti come PAY_ACTION_INFORMATION. Esempi 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Ultimo `Data Update` LastDataUpdate | Il timestamp dell'ultima modifica del record nel database sorgente. | ||
| Descrizione Indica la freschezza dei dati utilizzati per l'analisi. Questo è distinto dall'Event Timestamp; riflette quando la riga nel database è stata toccata l'ultima volta da un processo ETL o un aggiornamento di sistema. È utilizzato per verificare la validità dei dati e per eseguire il debug dei problemi di latenza dell'estrazione. Perché è importante Assicura che gli analisti sappiano se stanno esaminando dati in tempo reale o obsoleti. Dove trovare Colonna LAST_UPDATE_DATE comune in quasi tutte le tabelle di Oracle HCM. Esempi 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| È Correzione Manuale IsManualCorrection | Flag che indica se l'attività ha comportato un intervento manuale. | ||
| Descrizione Un flag booleano impostato su Perché è importante Differenzia tra elaborazione straight-through e rilavorazione manuale. Dove trovare Derivato dal Nome Attività o da specifici Tipi di Azione che indicano aggiustamenti (es. QuickPay, Aggiustamento del Saldo). Esempi truefalse | |||
| Giorni Durata Processo ProcessDurationDays | Tempo totale dall'inizializzazione al pagamento. | ||
| Descrizione La durata calcolata tra la prima attività e l'attività 'Pagamento Eseguito'. Utilizzato per il dashboard 'Tempo di Ciclo di Pagamento End-to-End'. Questa metrica serve come controllo di alto livello della velocità della funzione pagamenti. Perché è importante KPI di alto livello per l'efficienza del processo. Dove trovare Calcolato: Timestamp (Pagamento Eseguito) - Timestamp (Inizio). Esempi 3.55.00.5 | |||
| Gruppo Dati Legislativi LegislativeDataGroup | Partiziona i dati dei pagamenti per paese o ambiente normativo. | ||
| Descrizione In Oracle HCM Cloud, il Legislative Data Group (LDG) partiziona i dati relativi alle buste paga e altri dati correlati. Tipicamente, corrisponde a un paese o alla legislazione di un territorio specifico. Questo attributo è vitale per filtrare l'analisi del processo per paese (ad esempio, Gestione Paghe USA vs. Gestione Paghe UK) ed è spesso mappato all'attributo generico Paese. Perché è importante Le regole di conformità e i flussi di processo spesso variano significativamente in base alla giurisdizione. Dove trovare Tabella PAY_ALL_PAYROLLS_F unita alle definizioni del Gruppo Dati Legislativi. Esempi Gruppo Dati Legislativi USAUK LDGGestione Paghe Francia | |||
| Gruppo di Pagamento PayGroup | Raggruppamento logico dei dipendenti per l'elaborazione dei pagamenti. | ||
| Descrizione Rappresenta la specifica definizione di pagamento a cui appartiene il dipendente (es. 'Manifatturiero Settimanale', 'Corporate Mensile'). Questo attributo è centrale per quasi tutti i dashboard, consentendo il confronto delle performance tra diversi cicli e frequenze di pagamento. Perché è importante L'oggetto di configurazione primario che governa la pianificazione dei pagamenti. Dove trovare Tabella PAY_ALL_PAYROLLS_F (Nome Pagamento). Esempi Semimensile USAMensile UKUnione Settimanale | |||
| Importo Retribuzione Lorda GrossPayAmount | La retribuzione lorda totale calcolata per il periodo. | ||
| Descrizione Rappresenta il valore monetario della retribuzione lorda calcolata durante il ciclo. Questo viene utilizzato nell'analisi di 'Accuratezza del Calcolo di Imposte e Benefit' e 'Integrazione Incentivi'. Permette agli analisti di correlare pagamenti di alto valore con il tempo di elaborazione o i tassi di errore. Perché è importante Fornisce contesto finanziario all'analisi del Process Mining. Dove trovare Tabella PAY_RUN_RESULT_VALUES, aggregata per il saldo Retribuzione Lorda. Esempi 5000.002350.5010000.00 | |||
| Nome Periodo Pagamenti PayrollPeriodName | Il nome specifico dell'intervallo di tempo per l'esecuzione dei pagamenti. | ||
| Descrizione Identifica il ciclo specifico, come 'Gennaio 2024 Mensile' o 'Periodo Settimanale 42'. Questo è essenziale per lo 'SLA Deadline Compliance Monitor'. Aiuta a raggruppare i singoli casi dei dipendenti nei rispettivi batch di esecuzione per la reportistica aggregata. Perché è importante Fondamentale per l'analisi a livello di batch e il tracciamento degli SLA. Dove trovare Tabella PAY_TIME_PERIODS o Nome Periodo di Tempo nella Definizione dei Pagamenti. Esempi 2023 Mensile 102023 Settimanale 42Esecuzione Bonus Dicembre 2023 | |||
| Nome Reparto DepartmentName | L'unità organizzativa in cui il dipendente lavora. | ||
| Descrizione Identifica il dipartimento responsabile del dipendente associato al record di gestione paghe. Questo è cruciale per la dashboard 'Timesheet Approval Efficiency'. Segmentando i dati per dipartimento, gli analisti possono identificare quali business unit sono costantemente in ritardo nell'approvare i fogli presenze, ritardando l'esecuzione complessiva delle paghe. Perché è importante Consente l'analisi delle cause radice dei ritardi legati alle approvazioni della direzione. Dove trovare Derivato dal record di assegnazione del dipendente effettivo al momento dell'esecuzione del payroll. Esempi Vendite Nord AmericaIngegneriaRisorse UmaneLogistica | |||
| Scadenza di Elaborazione SLA SlaProcessingDeadline | La data/ora target entro cui il pagamento deve essere eseguito. | ||
| Descrizione Memorizza la scadenza contrattuale o legale per l'erogazione del pagamento. Questo attributo viene confrontato con il timestamp di 'Pagamento Eseguito'. È utilizzato per calcolare il KPI 'Aderenza alla Scadenza di Elaborazione SLA' e identificare i gruppi di pagamento a rischio. Perché è importante Il benchmark primario per il successo o il fallimento del processo in termini di puntualità. Dove trovare Solitamente un campo configurato (DFF) sulla Definizione dei Pagamenti o derivato dalla Data Assegno meno X giorni. Esempi 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Utente di Elaborazione ProcessingUser | L'ID utente o il nome della persona che esegue l'attività. | ||
| Descrizione Cattura l'identità dello specialista di payroll, del manager o dell'account di sistema che ha attivato l'attività. Questo supporta la dashboard 'Payroll Specialist Workload Distribution'. Aiuta a identificare i colli di bottiglia delle risorse e le esigenze di formazione all'interno del team payroll. Perché è importante Permette l'analisi della produttività delle risorse e il bilanciamento del carico di lavoro. Dove trovare Colonne CREATED_BY o LAST_UPDATED_BY nelle tabelle delle transazioni. Esempi sysadminj.smithpayroll_batch_userm.doe | |||
| Conteggio Iterazioni Anteprima PreviewIterationCount | Numero di volte in cui i risultati sono stati visualizzati in anteprima prima della finalizzazione. | ||
| Descrizione Un contatore che si incrementa ogni volta che un'attività 'Payroll Result Previewed' si verifica per lo stesso caso. Questa è la misura diretta per la dashboard 'Payroll Preview Iteration Tracker', indicando la quantità di rilavorazione o esitazione prima dell'approvazione. Perché è importante Quantifica l'efficienza della fase di validazione. Dove trovare Calcolato durante la trasformazione dei dati contando le occorrenze di attività specifiche per ogni ID Caso. Esempi 1350 | |||
| Flag di Modifica Retroattiva RetroactiveChangeFlag | Indica se l'esecuzione del payroll include pagamenti retroattivi. | ||
| Descrizione Un indicatore booleano che è Perché è importante Identifica i casi complessi che naturalmente richiedono più tempo di elaborazione. Dove trovare Presenza di voci di elemento 'Retropay' in PAY_ELEMENT_ENTRIES. Esempi truefalse | |||
| Giurisdizione Fiscale TaxJurisdiction | Lo stato, la provincia o la località specifica per la dichiarazione fiscale. | ||
| Descrizione Indica l'autorità fiscale principale relativa al record di gestione paghe (ad esempio, 'CA' per California, 'NY' per New York). Questo supporta la dashboard 'Tax Compliance Processing Duration'. Aiuta a identificare se specifiche regioni hanno processi di calcolo e archiviazione delle imposte più complessi o più lenti. Perché è importante Segmenta le performance per complessità normativa. Dove trovare Derivato dalla scheda fiscale del dipendente o dagli indirizzi del luogo di lavoro. Esempi CA-CaliforniaNY-New YorkTX-TexasFederale-USA | |||
| Stato SLA SlaStatus | Stato categorico di aderenza agli SLA (Rispettato/Mancato). | ||
| Descrizione Derivato confrontando il timestamp di 'Payment Executed' con la 'SLA Processing Deadline'. I valori possono includere 'In Tempo', 'A Rischio' o 'Violato'. Questo semplifica il reporting per il 'SLA Deadline Compliance Monitor' raggruppando i casi in categorie di performance. Perché è importante Semplifica complessi confronti temporali in categorie attuabili. Dove trovare Logica calcolata che confronta l'Event Timestamp con la SLA Deadline. Esempi RaggiuntoViolatoQuasi Raggiunta la Violazione | |||
| Tipo di dipendente EmployeeType | Categorizzazione del dipendente (es. Stipendiato, Orario, Appaltatore). | ||
| Descrizione Classifica il record del dipendente. Questo è vitale per la dashboard 'Digital Pay Slip Publishing Lag', poiché diversi tipi di dipendenti possono avere diverse regole di elaborazione o urgenze. Aiuta a filtrare l'analisi per confrontare le prestazioni del processo tra diversi segmenti della forza lavoro. Perché è importante Diversi tipi di dipendenti spesso seguono varianti di processo differenti. Dove trovare Categoria di assegnazione o termini di impiego in PER_ALL_ASSIGNMENTS_M. Esempi Impiegato a Tempo PienoPart-Time a Ore`Contractor`Dirigente | |||
| Tipo di Eccezione di Audit AuditExceptionType | La categoria di errore o avviso segnalata durante l'audit. | ||
| Descrizione Categorizza il problema specifico riscontrato durante l'attività 'Audit Exception Flagged' (ad esempio, 'Paga netta negativa', 'ID fiscale mancante'). Questo attributo supporta la dashboard 'Audit Exception and Correction Analysis' individuando problemi comuni di qualità dei dati. Perché è importante Critico per l'analisi delle cause radice dei cicli di rilavorazione. Dove trovare Colonne Codice Messaggio o Errore nei log di processo dei pagamenti o nei report delle eccezioni. Esempi Retribuzione Netta NegativaSSN MancanteDettagli Bancari Non ValidiLimite Straordinario Superato | |||
Attività di Elaborazione dei Pagamenti
| Activity | Descrizione | ||
|---|---|---|---|
| Bonifico Bancario Generato | La generazione del file EFT (Electronic Funds Transfer) o output di pagamento simile. Questo è il passaggio tecnico di creazione del file di istruzioni per la banca. | ||
| Perché è importante Misura il tempo di ciclo di generazione del file di pagamento. Ritardi qui possono causare il mancato rispetto delle scadenze bancarie. Dove trovare Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è M (Magnetic Tape) o E (EFT) o C (Check Writer). Acquisisci Registrato al completamento dell'azione EFT/Assegno Tipo di evento explicit | |||
| Calcolo Pagamenti Avviato | L'avvio del processo principale di esecuzione dei pagamenti per una specifica definizione e periodo di pagamento. Questo segna la transizione dalla raccolta dati all'elaborazione. | ||
| Perché è importante Stabilisce l'inizio della finestra di elaborazione intensiva. Utilizzato per calcolare il tempo di ciclo totale per l'esecuzione tecnica delle buste paga. Dove trovare Interrogare la tabella PAY_PAYROLL_ACTIONS dove ACTION_TYPE è R (Run) o Q (QuickPay) e ACTION_STATUS è contrassegnato come avviato (o inferito dalla data di creazione). Acquisisci Registrato all'inserimento di un record in PAY_PAYROLL_ACTIONS Tipo di evento explicit | |||
| Calcolo Pagamenti Eseguito | Il completamento con successo del processo di Calcolo Pagamenti, inclusi i calcoli dal lordo al netto. Questo evento indica che guadagni, deduzioni e tasse sono stati calcolati per l'assegnazione. | ||
| Perché è importante Una tappa fondamentale che indica che i dati sono pronti per la validazione. Elevate durate in questa fase potrebbero indicare problemi di prestazioni del sistema o formule complesse. Dove trovare Interrogare PAY_PAYROLL_REL_ACTIONS unendo a PAY_PAYROLL_ACTIONS dove ACTION_TYPE è R o Q e ACTION_STATUS cambia a C (Completato). Acquisisci Registrato quando lo stato dell'azione di Esecuzione Pagamenti si aggiorna a Completato Tipo di evento explicit | |||
| Pagamento Eseguito | La conferma finale che il pagamento è stato elaborato. In Oracle, questo si correla al completamento del flow di pagamento o alla riconciliazione in Cash Management. | ||
| Perché è importante Il timestamp primario per la Conformità SLA. Utilizzato per determinare se i dipendenti sono stati pagati in tempo. Dove trovare Può essere dedotto dalla Data Effettiva dell'azione di Bonifico Bancario, o esplicitamente tramite i log di riconciliazione di Cash Management (CE_STATEMENT_LINES). Acquisisci Registrato tramite la data effettiva dell'azione di pagamento o dell'evento di riconciliazione Tipo di evento explicit | |||
| Prepagamenti Calcolati | L'esecuzione del processo Prepagamenti che distribuisce la retribuzione netta ai metodi di pagamento scelti dal dipendente (Assegno, EFT, ecc.). Questo convalida che gli importi calcolati possano effettivamente essere pagati. | ||
| Perché è importante Il ponte tra calcolo ed erogazione. Fallimenti qui indicano solitamente dettagli bancari mancanti o metodi di pagamento non validi. Dove trovare Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è P (Prepagamenti) e lo stato è Completato. Acquisisci Registrato al completamento dell'azione Prepagamenti Tipo di evento explicit | |||
| Busta Paga Pubblicata | Il punto in cui il documento della busta paga diventa visibile al dipendente in Self Service. Questo segue l'Archiver e potenzialmente un processo specifico di 'Generazione Busta Paga'. | ||
| Perché è importante Ha un impatto sulla soddisfazione dei dipendenti. Lunghi ritardi tra il pagamento e la disponibilità delle buste paga generano ticket di supporto. Dove trovare Interrogare la tabella Documents of Record (HR_DOCUMENTS_OF_RECORD) o il completamento del processo di Generazione Busta Paga in PAY_PAYROLL_ACTIONS. Acquisisci Registrato al completamento del processo di generazione PDF della busta paga Tipo di evento explicit | |||
| Costo Trasferito | Il trasferimento dei risultati di costo dei pagamenti al Conto Economico. Questo rappresenta la chiusura contabile finanziaria del ciclo di pagamento. | ||
| Perché è importante Garantisce la conformità finanziaria e l'accurata registrazione dei costi del lavoro. I ritardi impediscono alla Finanza di chiudere i libri contabili. Dove trovare Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è T (Trasferimento a GL) e lo stato è Completato. Acquisisci Registrato al completamento del processo di Trasferimento a GL Tipo di evento explicit | |||
| Dati Incentivo Importati | La creazione di voci di elemento per retribuzioni variabili come bonus o commissioni tramite batch loader o importazione HDL. Questo rappresenta l'integrazione di dati di compensazione esterni nell'esecuzione dei pagamenti. | ||
| Perché è importante Monitora la velocità di integrazione della retribuzione variabile. Importazioni tardive spesso forzano esecuzioni supplementari dei pagamenti o correzioni manuali. Dove trovare Interrogare PAY_BATCH_HEADERS per il completamento dell'importazione o tracciare la creazione di PAY_ELEMENT_ENTRIES_F con un riferimento specifico al sistema sorgente. Acquisisci Registrato al completamento con successo del processo di inserimento batch degli elementi Tipo di evento explicit | |||
| Dichiarazione Fiscale Completata | La generazione dei file fiscali obbligatori (es. File Fiscale Trimestrale di Terzi). Questo assicura la conformità normativa per il periodo di pagamento. | ||
| Perché è importante Critico per il KPI 'Tax Compliance Processing Duration'. Un fallimento qui comporta sanzioni. Dove trovare Interrogare PAY_PAYROLL_ACTIONS per azioni specifiche del gruppo di dati legislativi relative alla reportistica fiscale (es. Dichiarazione Fiscale di Terzi USA). Acquisisci Registrato al completamento di un flow specifico di reportistica fiscale Tipo di evento explicit | |||
| Eccezione di Audit Segnalata | La registrazione di un messaggio di errore o avviso durante la fase di calcolo o validazione dei pagamenti. Questo cattura specifici fallimenti di validazione che richiedono intervento umano. | ||
| Perché è importante Essenziale per identificare i problemi di qualità dei dati. Un alto volume di eccezioni aumenta lo sforzo manuale e il rischio di violazione degli SLA. Dove trovare Interrogare la tabella PAY_MESSAGE_LINES collegata allo specifico PAY_PAYROLL_REL_ACTION_ID. Questa tabella memorizza errori e avvisi generati durante le esecuzioni. Acquisisci Registrato all'inserimento di un record in PAY_MESSAGE_LINES Tipo di evento explicit | |||
| Esecuzione Pagamenti Approvata | L'approvazione formale del registro pagamenti o del flow all'interno del Dashboard Pagamenti. Ciò avviene tipicamente dopo la revisione dei report di validazione e prima della generazione dei file bancari. | ||
| Perché è importante Rappresenta l'approvazione manageriale. Il tempo tra calcolo e approvazione rappresenta la finestra di verifica. Dove trovare Interrogare PAY_REQ_FLOW_INSTANCES per cambiamenti di stato o completamento di attività specifiche all'interno di un Payroll Flow Pattern definito. Acquisisci Registrato quando lo stato dell'istanza del Flow cambia in Completato/Approvato Tipo di evento explicit | |||
| QuickPay Eseguito | L'esecuzione di un'esecuzione pagamenti per singola persona (QuickPay) generalmente utilizzata per verificare le correzioni. Questo funge da proxy per l'attività di Anteprima Risultato Pagamenti. | ||
| Perché è importante Frequenti QuickPays per persona indicano un approccio per tentativi ed errori alla gestione delle buste paga piuttosto che un Dove trovare Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è Q (QuickPay). Contare le istanze per periodo di pagamento per dipendente. Acquisisci Registrato quando un'azione QuickPay viene registrata in PAY_PAYROLL_ACTIONS Tipo di evento explicit | |||
| Record dei Pagamenti Corretto | Aggiornamenti manuali applicati alle voci di elemento o ai dati di assegnazione dopo un'esecuzione iniziale dei pagamenti ma prima della finalizzazione. Questa attività rappresenta la rilavorazione necessaria per correggere errori o eccezioni. | ||
| Perché è importante Indica inefficienze di processo e problemi di qualità dei dati. Ridurre questa attività è fondamentale per migliorare il 'First-Pass Payroll Accuracy Rate'. Dove trovare Infermibile identificando gli aggiornamenti a PAY_ELEMENT_ENTRIES_F dove la Last Update Date è tra la data iniziale di esecuzione del Payroll e la data dei Prepagamenti. Acquisisci Confronta i timestamp di aggiornamento delle voci elemento con i timestamp di esecuzione del payroll Tipo di evento inferred | |||
| Risultati dell'Archiviazione Generati | Il completamento del processo di Archivio Risultati Pagamenti Periodici. Questa istantanea blocca efficacemente i dati per la reportistica e la generazione delle buste paga. | ||
| Perché è importante Un prerequisito tecnico per la generazione di buste paga e report normativi. Conferma che i dati sono stati finalizzati. Dove trovare Interrogare PAY_PAYROLL_ACTIONS dove ACTION_TYPE è X (Archiviazione) e lo stato è Completato. Acquisisci Registrato al completamento dell'azione di Archiviazione Tipo di evento explicit | |||
| Scheda Presenze Approvata | La conferma che i dati di presenze inviati sono stati revisionati e autorizzati da un manager. Questo cambiamento di stato attiva il trasferimento dei dati alle voci di elemento dei pagamenti. | ||
| Perché è importante Critico per misurare il Lead Time di Approvazione del Manager. Ritardi qui sono una causa primaria di aggiustamenti retroattivi nelle paghe in periodi successivi. Dove trovare Interrogare la tabella HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS dove lo stato cambia in APPROVATO. Confrontare il timestamp di approvazione con il timestamp di invio. Acquisisci Registrato quando lo stato cambia in APPROVATO in Time and Labor Tipo di evento explicit | |||
| Scheda Presenze Inviata | L'evento iniziale in cui un dipendente o un manager invia i dati di Time and Labor per l'elaborazione. In Oracle HCM, questo viene catturato quando lo stato della scheda presenze cambia in Inviato nel modulo Time and Labor. | ||
| Perché è importante Segna l'ingresso dei dati grezzi nella potenziale pipeline dei pagamenti. Ritardi qui si ripercuotono a valle, riducendo il tempo a disposizione degli specialisti paghe per convalidare i calcoli. Dove trovare Interrogare la tabella HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS dove lo stato cambia in INVIATO. Utilizzare il timestamp di invio. Acquisisci Registrato quando lo stato cambia in INVIATO in Time and Labor Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
Accesso a Data Exchange: Acceda a Oracle HCM Cloud con un utente che abbia il ruolo 'Human Capital Management Integration Specialist'. Navighi a My Client Groups > Data Exchange > Extract Definitions.
Crea Nuova Estrazione: Clicchi sull'icona '+' per creare una nuova estrazione. La nomini 'ProcessMind_Payroll_Extract'. Selezioni 'Payroll' come consumer e 'HR Archive' come categoria per assicurare l'accesso ai dati storici delle azioni di payroll.
Definisci Gruppi di Dati: Crei un Root Data Group basato sull'User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). Questo ancora l'estrazione alla relazione di payroll del dipendente. Crei gruppi di dati figli perPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEeHWM_MEASURE_DAY_V_UE(per il tempo e il lavoro).Configura Record di Estrazione: All'interno dei gruppi di dati, definisca i record per appiattire i dati gerarchici. Deve creare record specifici per ogni tipo di attività (ad esempio, un record che filtra per eventi 'Time Card', un altro per 'Run Results').
Implementa Logica SQL tramite FastFormula o BIP: A causa della complessità di trasformare dati di payroll gerarchici in un event log lineare, l'approccio più robusto è utilizzare l'opzione 'Extract Delivery Option' per richiamare un report di BI Publisher. Ciò Le consente di utilizzare il SQL fornito nella sezione 'Query' sottostante come Data Model. Questo è superiore al filtro GUI nativo per la creazione di un event log unificato.
Crea Data Model di BI Publisher: Navighi a 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.Collega Estrazione a BIP: Nella scheda 'Delivery' della definizione di estrazione, crei un'opzione di delivery. Selezioni 'PDF' o 'XML' come tipo di output (ProcessMind preferisce CSV, ma dovrà convertire l'output di BIP). Selezioni il report di BI Publisher che ha creato nel passaggio precedente.
Definisci Parametri: Nell'Extract Execution Tree, aggiunga i parametri per la data di inizio e la data di fine da passare dinamicamente alla query di BI Publisher.
Convalida e Invia: Convalidi la definizione di estrazione per verificare la presenza di errori. Clicchi su 'Submit Extract'. Inserisca i parametri (ad esempio, gli ultimi 90 giorni).
Monitora Processo: Vada su 'View Extract Results'. Attenda che lo stato cambi in 'Succeeded'.
Scarica Output: Scarichi il file XML/CSV generato. Lo apra per verificare che la struttura contenga le colonne richieste: PayrollRecord, ActivityName, EventTimestamp, ecc.
Formatta per ProcessMind: Se l'output è XML, lo converta in un file CSV flat assicurandosi che le intestazioni corrispondano ai requisiti di 'Attributes to include'. Carichi il file risultante su ProcessMind.
Configurazione
- Modalità di Estrazione: Solo modifiche vs. Estrazione completa. Per il caricamento iniziale, utilizzi l'Estrazione completa. Per gli aggiornamenti giornalieri, configuri 'Solo modifiche' basandosi sulla data dell'ultimo aggiornamento.
- Legislative Data Group (LDG): È altamente raccomandato filtrare per LDG se la Sua istanza supporta più paesi, poiché le definizioni di payroll variano in base alla legislazione.
- Intervallo di Date: Imposti
bind_start_dateebind_end_dateper coprire almeno 3-6 mesi affinché il Process Mining possa catturare i tempi di ciclo completi. - Dimensione del Chunk: Per elaborazioni paghe ad alto volume (più di 10k dipendenti), imposti la dimensione del chunk nella definizione di estrazione a 2000 per prevenire errori di timeout.
- Effective Dating: Le tabelle di payroll sono sensibili alla data. La logica della query gestisce esplicitamente
effective_start_dateeeffective_end_dateper assicurare che venga recuperata la versione storica corretta del record. - Sicurezza: L'utente esecutore deve avere profili di sicurezza dei dati che consentano la visualizzazione di tutti i payroll e i dipartimenti destinati all'analisi.
a Query di Esempio 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 Fasi
- Accedere a Oracle BI Publisher: Acceda all'ambiente Oracle Cloud e navighi su Tools > Reports and Analytics. Clicchi su Browse Catalog per aprire l'interfaccia di BI Publisher.
- Creare un Data Model: Clicchi su New (in alto a sinistra) e selezioni Data Model. Questo è il contenitore per la Sua logica di estrazione SQL.
- Creare un SQL Data Set: Sotto la scheda Diagram, clicchi sull'icona New Data Set e selezioni SQL Query.
- Configurare la Data Source: Nomini il data set (ad esempio,
ProcessMind_Payroll_Extract). Imposti la Data Source suApplicationDB_HCM(o la Sua specifica connessione al Database Applicativo HCM). Lasci il tipo come Standard SQL. - Inserire la Query: Copi lo script SQL completo fornito nella sezione Query sottostante e lo incolli nella casella di testo SQL Query. Si assicuri di non includere alcuna formattazione markdown.
- Definire i Parametri: La query utilizza variabili di bind
:p_start_datee:p_end_date. Nella scheda Parameters del Data Model, crei questi due parametri (tipo Date) per filtrare l'intervallo di estrazione (ad esempio, basato suppa.EFFECTIVE_DATE). - Validare la Struttura dei Dati: Clicchi su OK. Passi alla scheda Data all'interno dell'editor del Data Model. Inserisca date di esempio (ad esempio,
2023-01-01a2023-03-31) e clicchi su View. Si assicuri che l'output contenga righe conPayrollRecord,ActivityNameeEventTimestamp. - Salvare il Data Model: Salvi il modello in una cartella condivisa (ad esempio,
/Shared Folders/Custom/ProcessMining). - Creare un Report per l'Esportazione: Clicchi su Create Report, selezioni il Data Model appena salvato. Utilizzi il Report Wizard per creare un layout di tabella semplice contenente tutte le colonne. Deselezioni 'Show Grand Totals'.
- Esportare in CSV: Visualizzi il report nel Report Viewer. Clicchi sul menu Actions (icona a ingranaggio) > Export > Data > CSV.
- Trasformare: Apra il file CSV. Si assicuri che i formati delle date siano ISO 8601 (
YYYY-MM-DD HH:MM:SS) se non formattati automaticamente. Non dovrebbe essere necessaria alcuna ulteriore riformattazione se il SQL è stato incollato correttamente. - Caricare: Importi il file CSV risultante in ProcessMind, mappando le colonne come definito nei Requisiti dei Dati.
Configurazione
- Data Source Connection: Deve utilizzare
ApplicationDB_HCMo il data source JNDI equivalente che abbia accesso in lettura agli schemiPAY_ePER_. - Intervallo di Date: La finestra di estrazione raccomandata è di 3-6 mesi per catturare cicli completi di elaborazione paghe. Utilizzi i parametri
:p_start_datee:p_end_dateper controllare questo caricamento dinamico. - Legislative Data Group (LDG): La query estrae tutti gli LDG per impostazione predefinita. Se esegue processi per più paesi, consideri di aggiungere un filtro
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]per partizionare i dati. - Prestazioni: La query interroga tabelle ad alto volume (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Si assicuri che l'intervallo di date non sia troppo ampio (ad esempio, >1 anno) per prevenire errori di timeout in BI Publisher. - Sicurezza: L'utente che esegue il report necessita delle autorizzazioni Data Access Set per le definizioni di Payroll di destinazione.
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