Votre modèle de données de traitement de la paie
Votre modèle de données de traitement de la paie
- Champs de données optimisés pour l'analyse de la paie
- Suivi complet des activités pour la cartographie du cycle de vie
- Guide d'extraction détaillé pour Oracle HCM Cloud Payroll
Attributs du traitement de la paie
| Nom | Descriptionn | ||
|---|---|---|---|
| Dernière mise à jour des données LastDataUpdate | L'horodatage de la dernière modificationication de l'enregistrement dans la base de données source. | ||
| Descriptionn Indique la la réactualisation des données utilisées pour l'analyse. Ceci est distinct de l'horodatage de l'événement ; il reflète le moment où la ligne de la base de données a été touchée pour la dernière fois par un processus ETL ou une mise à jour système. Il est utilisé pour vérifier la réactualisation des données et déboguer les problèmes de latence d'extraction. Pourquoi est-ce important ? : Garantit que les analystes savent s'ils consultent des données en temps réel ou obsolètes. Source des données : Colonne LAST_UPDATE_DATE courante dans presque toutes les tables Oracle HCM. Exemples 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Enregistrement de paie PayrollRecord | Identifiant unique représentant un employé au cours d'une période de paie spécifique. | ||
| Descriptionn L'enregistrement de paie agit comme l'identifiant de cas central pour l'analyse Process Mining. C'est une concaténation ou une clé unique qui combine l'identifiant d'affectation de l'employé et l'identifiant de la période de paie. Cet attribut regroupe toutes les activités liées au paiement d'un seul employé pour un cycle spécifique, de la soumission initiale de la feuille de temps au transfert bancaire final et à la déclaration fiscale. Il garantit que l'analyse peut distinguer entre le même employé payé en janvier et en février. Pourquoi est-ce important ? : Il sert d'identifiant de cas, liant tous les événements disparates en une seule instance de processus pour l'analyse. Source des données : Construit à partir de PAY_ASSIGNMENT_ACTIONS ou d'une combinaison du numéro de personne et du nom de la période de paie dans Oracle HCM. Exemples EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Horodatage de l'événement EventTimestamp | La date et l'heure exactes de l'activité. | ||
| Descriptionn Enregistre le moment précis où une activité a eu lieu. Ceci est impératif pour calculer les durées, les délais et identifier les points de blocage. Pour les étapes automatisées, il s'agit du temps d'exécution du système. Pour les étapes manuelles comme les approbations, il s'agit de l'horodatage de l'action de l'utilisateur enregistrée dans le journal des transactions. Pourquoi est-ce important ? : Primordial pour ordonner les événements chronologiquement et calculer tous les KPI basés sur le temps. Source des données : Colonnes CREATION_DATE ou ACTION_DATE dans les tables de transactions pertinentes comme PAY_ACTION_INFORMATION. Exemples 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Nom de l'activité ActivityName | L'étape ou l'événement spécifique effectué dans le cycle de paie. | ||
| Descriptionn Cet attribut capture le nom de l'événement se produisant dans le processus de paie. Par exemple : « Feuille de temps soumise », « Calcul de paie démarré » et « Paiement exécuté ». C'est la dimension principale pour la découverte de processus et l'analyse de variantes. Dans Oracle HCM Cloud, cela est souvent dérivé du Type d'Action ou du Statut d'Action dans les tables d'actions de paie. Pourquoi est-ce important ? : Cela définit le « quoi » du processus, permettant de reconstruire la cartographie du processus. Source des données : Dérivé du code ACTION_TYPE dans PAY_PAYROLL_ACTIONS ou des changements de statut dans les pistes d'audit. Exemples Calcul de la paie démarréCarte de Temps ApprouvéeVirement bancaire généréException d'audit signalée | |||
| Système source SourceSystem | Le nom du système où l'événement est survenu. | ||
| Descriptionn Identifie le logiciel ou le module qui a généré le point de données. Pour ce processus, la valeur principale est 'Oracle HCM Cloud Payroll'. Cependant, dans des environnements complexes, cela pourrait distinguer le moteur de paie principal, le module de temps et de travail, ou une interface bancaire externe. Pourquoi est-ce important ? : Fournit un contexte de traçabilité, surtout lors de l'intégration des données de sous-systèmes de suivi du temps ou bancaires. Source des données : Codé en dur lors de l'extraction ou dérivé des ID d'interface. Exemples Oracle HCM Cloud PayrollOracle Time and LaborInterface bancaire externe | |||
| Correction manuelle IsManualCorrection | Indicateur signalant si l'activité a impliqué une intervention manuelle. | ||
| Descriptionn Un indicateur booléen défini sur vrai pour les activités telles que 'Correction de données effectuée' ou 'Enregistrement de paie corrigé'. Il est utilisé pour calculer les KPI 'Taux de correction manuelle des données' et 'Taux de prélèvement.cision de la paie au premier passage'. Pourquoi est-ce important ? : Distingue le traitement direct du reprises manuel. Source des données : Dérivé du nom de l'activité ou de types d'action spécifiques indiquant des ajustements (par exemple, QuickPay, Ajustement de solde). Exemples truefaux | |||
| Date limite de traitement SLA SlaProcessingDeadline | La date/heure cible à laquelle le paiement doit être exécuté. | ||
| Descriptionn Stocke la date limite contractuelle ou légale pour le décaissement de la paie. Cet attribut est comparé à l'horodatage « Paiement exécuté ». Il est utilisé pour calculer le KPI « Respect des délais de traitement des SLA » et identifier les groupes de paie à risque. Pourquoi est-ce important ? : Le principal point de référence pour le succès ou l'échec du processus concernant la ponctualité. Source des données : Généralement un champ configuré (DFF) sur la définition de la paie ou dérivé de la date du chèque moins X jours. Exemples 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Groupe de données législatives LegislativeDataGroup | Partitionne les données de paie par pays ou environnement réglementaire. | ||
| Descriptionn Dans Oracle HCM Cloud, le Groupe de Données Législatives (GDL) partitionne la paie et les données associées. Il correspond généralement à la législation d'un pays ou d'un territoire spécifique. Cet attribut est indispensable à filtrer l'analyse des processus par pays (par exemple, paie américaine vs paie britannique) et est souvent associé à l'attribut générique Pays. Pourquoi est-ce important ? : Les règles de conformité et les flux de processus varient souvent considérablement selon la juridiction. Source des données : Table PAY_ALL_PAYROLLS_F jointe aux définitions des groupes de données législatives. Exemples Groupe de données législatives (États-Unis)UK LDGPaie France | |||
| Groupe de paie PayGroup | Regroupement logique des employés pour le traitement de la paie. | ||
| Descriptionn Représente la définition de paie spécifique à laquelle l'employé appartient (par exemple, « Fabrication hebdomadaire », « Entreprise mensuelle »). Cet attribut est central à presque tous les dashboards, permettant la comparaison des performances entre différents cycles et fréquences de paie. Pourquoi est-ce important ? : L'objet de configuration principal qui gère la planification de la paie. Source des données : Table PAY_ALL_PAYROLLS_F (Nom de la paie). Exemples US Semi-MonthlyMensuel au Royaume-UniWeekly Union | |||
| Montant du salaire brut GrossPayAmount | Le salaire brut total calculé pour la période. | ||
| Descriptionn Représente la valeur monétaire du salaire brut calculé pendant le cycle. Ceci est utilisé dans l'analyse « Précision des calculs fiscaux et des avantages sociaux » et « Intégration des incitations ». Cela permet aux analystes de corréler les paiements de grande valeur avec le temps de traitement ou les taux d'erreur. Pourquoi est-ce important ? : Fournit un contexte financier à l'analyse Process Mining. Source des données : Table PAY_RUN_RESULT_VALUES, agrégée pour le solde du salaire brut. Exemples 5000.002350.5010000.00 | |||
| Nom de la période de paie PayrollPeriodName | Le nom spécifique de l'intervalle de temps pour l'exécution de la paie. | ||
| Descriptionn Identifie le cycle spécifique, tel que 'Janvier mensuel 2024' ou 'Période hebdomadaire 42'. Ceci est indispensable pour le 'Moniteur de conformité aux délais SLA'. Il aide à regrouper les cas d'employés individuels dans leurs exécutions par lots respectives pour le reporting agrégé. Pourquoi est-ce important ? : Fondamental pour l'analyse au niveau des lots et le suivi des SLA. Source des données : Table PAY_TIME_PERIODS ou Nom de la période de temps sur la Définition de la paie. Exemples Mensuel 10 2023Hebdomadaire 42 2023Exécution du bonus de décembre 2023 | |||
| Nom du service DepartmentName | L'unité organisationnelle où l'employé travaille. | ||
| Descriptionn Identifie le département responsable de l'employé associé à l'enregistrement de paie. Ceci est impératif pour le tableau de bord 'Efficacité de l'approbation des feuilles de temps'. En segmentant les données par département, les analystes peuvent identifier quelles unités commerciales sont systématiquement en retard dans l'approbation des feuilles de temps, retardant ainsi l'exécution globale de la paie. Pourquoi est-ce important ? : Permet une analyse des causes profondes des retards liés aux approbations de la direction. Source des données : Dérivé de l'enregistrement d'affectation de l'employé effectif au moment de l'exécution de la paie. Exemples Sales North AmericaIngénierieRessources HumainesLogistics | |||
| Utilisateur de traitement ProcessingUser | L'ID utilisateur ou le nom de la personne effectuant l'activité. | ||
| Descriptionn Capture l'identité du spécialiste de paie, du gestionnaire ou du compte système qui a déclenché l'activité. Cela prend en charge le tableau de bord 'Répartition de la charge de travail des spécialistes de paie'. Cela aide à identifier les points de blocage des ressources et les besoins en formation dans l'équipe de paie. Pourquoi est-ce important ? : Permet l'analyse de la productivité des ressources et l'équilibrage de la charge de travail. Source des données : Colonnes CREATED_BY ou LAST_UPDATED_BY dans les tables de transactions. Exemples sysadminj.smithpayroll_batch_userm.doe | |||
| Compte d'itérations d'aperçu PreviewIterationCount | Nombre de fois où les résultats ont été prévisualisés avant la finalisation. | ||
| Descriptionn Un compteur qui s'incrémente chaque fois qu'une activité 'Aperçu du résultat de la paie' se produit pour le même cas. C'est la mesure directe pour le tableau de bord 'Suivi des itérations de prélèvement.visualisation de la paie', indiquant la quantité de retouches ou d'hésitations avant l'approbation. Pourquoi est-ce important ? : Quantifie l'efficacité de la phase de validation. Source des données : Calculé lors de la transformation des données en comptant les occurrences d'activités spécifiques par ID de cas. Exemples 1350 | |||
| Indicateur de changement rétroactif RetroactiveChangeFlag | Indique si l'exécution de la paie inclut des paiements rétroactifs. | ||
| Descriptionn Un indicateur booléen qui est vrai si des éléments de 'Rétroactivité' sont traités dans cet enregistrement. Cela aide à expliquer des temps de traitement plus longs ou des exceptions d'audit dans la 'Comparaison des variantes de chemin de processus'. Les modifications rétroactives déclenchent souvent des recalculs complexes s'étendant sur les périodes précédentes. Pourquoi est-ce important ? : Identifie les cas complexes qui nécessitent naturellement plus de temps de traitement. Source des données : Présence d'éléments 'Retropay' dans PAY_ELEMENT_ENTRIES. Exemples truefaux | |||
| Juridiction fiscale TaxJurisdiction | L'état, la province ou la localité spécifique pour la déclaration fiscale. | ||
| Descriptionn Indique l'autorité fiscale principale liée à l'enregistrement de paie (par exemple, 'CA' pour la Californie, 'NY' pour New York). Ceci prend en charge le tableau de bord 'Durée de traitement de la conformité fiscale'. Cela aide à identifier si des régions spécifiques ont des processus de calcul et de dépôt fiscal plus complexes ou plus lents. Pourquoi est-ce important ? : Segmente la performance par complexité réglementaire. Source des données : Dérivé de la fiche fiscale de l'employé ou des adresses de lieu de travail. Exemples CA-CalifornieNY-New YorkTX-TexasFédéral-US | |||
| Statut SLA SlaStatus | Statut catégoriel du respect du SLA (Respecté/Non respecté). | ||
| Descriptionn Dérivé en comparant l'horodatage 'Paiement exécuté' avec le 'Délai de traitement SLA'. Les valeurs peuvent inclure 'Dans les temps', 'À risque' ou 'Violé'. Cela simplifie le reporting pour le 'Moniteur de conformité aux délais SLA' en regroupant les cas par catégories de performance. Pourquoi est-ce important ? : Simplifie les comparaisons de temps complexes en catégories exploitables. Source des données : Logique calculée comparant l'horodatage de l'événement et le délai SLA. Exemples AtteintDépasséRisque de non-conformité | |||
| Type d'employé EmployeeType | Catégorisation de l'employé (par exemple, Salarié, Horaire, Contractuel). | ||
| Descriptionn Classe l'enregistrement de l'employé. Ceci est indispensable à le tableau de bord 'Retard de publication des fiches de paie numériques', car différents types d'employés peuvent avoir des règles de traitement ou des urgences différentes. Cela aide à filtrer l'analyse pour comparer les performances des processus entre différents segments de la main-d'œuvre. Pourquoi est-ce important ? : Différents types d'employés suivent souvent différentes variantes de processus. Source des données : Catégorie d'affectation ou conditions d'emploi dans PER_ALL_ASSIGNMENTS_M. Exemples Salarié à temps pleinHoraire à temps partielContractuelExécutif | |||
| Type d'exception d'audit AuditExceptionType | La catégorie d'erreur ou d'avertissement signalé lors de l'audit. | ||
| Descriptionn Catégorise le problème spécifique trouvé lors de l'activité 'Exception d'audit signalée' (par exemple, 'Salaire net négatif', 'ID fiscal manquant'). Cet attribut prend en charge le tableau de bord 'Analyse des exceptions d'audit et des corrections' en identifiant les problèmes courants de qualité des données. Pourquoi est-ce important ? : Critique pour l'analyse des causes profondes des boucles de repriseler. Source des données : Colonnes de messages ou de codes d'erreur dans les journaux de processus de paie ou les rapports d'exceptions. Exemples Salaire net négatifNuméro de sécurité sociale manquantCoordonnées bancaires invalidesLimite d'heures supplémentaires dépassée | |||
Activités de traitement de la paie
| Activité | Descriptionn | ||
|---|---|---|---|
| Calcul de la paie démarré | L'initiation du processus principal d'exécution de la paie pour une définition et une période de paie spécifiques. Cela marque la transition de la collecte des données au traitement. | ||
| Pourquoi est-ce important ? : Établit le début de la fenêtre de traitement intense. Utilisé pour calculer le temps de cycle total de l'exécution technique de la paie. Source des données : Interrogez la table PAY_PAYROLL_ACTIONS où ACTION_TYPE est R (Exécution) ou Q (QuickPay) et ACTION_STATUS est marqué comme démarré (ou inféré de la date de création). Capture Comptabilisé lorsqu'un enregistrement PAY_PAYROLL_ACTIONS est inséré Type d'événement explicit | |||
| Calcul de paie exécuté | L'achèvement réussi du processus de calcul de la paie, y compris les calculs brut-net. Cet événement indique que les revenus, les déductions et les impôts ont été calculés pour l'affectation. | ||
| Pourquoi est-ce important ? : Une étape majeure indiquant que les données sont prêtes pour la validation. Des durées élevées ici peuvent indiquer des problèmes de performance du système ou des formules rapides complexes. Source des données : Interrogez PAY_PAYROLL_REL_ACTIONS en joignant à PAY_PAYROLL_ACTIONS où ACTION_TYPE est R ou Q et ACTION_STATUS passe à C (Complet). Capture Comptabilisé lorsque le statut de l'action d'exécution de paie passe à Terminé Type d'événement explicit | |||
| Paiement effectué | La confirmation finale que le paiement a été traité. Dans Oracle, cela correspond à l'achèvement du flux de paiement ou à la réconciliation dans Cash Management. | ||
| Pourquoi est-ce important ? : L'horodatage principal pour la conformité aux SLA. Utilisé pour déterminer si les employés ont été payés à temps. Source des données : Peut être déduit de la date d'effet de l'action de virement bancaire, ou explicitement via les journaux de rapprochement de la gestion de trésorerie (CE_STATEMENT_LINES). Capture Comptabilisé via la date d'effet de l'action de paiement ou de l'événement de rapprochement Type d'événement explicit | |||
| Pré-paiements calculés | L'exécution du processus de prélèvement.-paiements qui distribue le salaire net aux méthodes de paiement choisies par l'employé (chèque, EFT, etc.). Cela valide que les montants calculés peuvent effectivement être payés. | ||
| Pourquoi est-ce important ? : Le pont entre le calcul et le décaissement. Les échecs ici indiquent généralement des détails bancaires manquants ou des méthodes de paiement invalides. Source des données : Interrogez PAY_PAYROLL_ACTIONS où ACTION_TYPE est P (Pré-paiements) et le statut est Complet. Capture Comptabilisé lorsque l'action de prélèvement.-paiements est terminée Type d'événement explicit | |||
| Virement bancaire généré | La génération du fichier EFT (Electronic Funds Transfer) ou d'une sortie de paiement similaire. Il s'agit de l'étape technique de création du fichier d'instructions pour la banque. | ||
| Pourquoi est-ce important ? : Mesure le temps de cycle de génération des fichiers de paiement. Les retards à ce niveau peuvent entraîner le non-respect des heures limites bancaires. Source des données : Interrogez PAY_PAYROLL_ACTIONS où ACTION_TYPE est M (Bande Magnétique) ou E (EFT) ou C (Émetteur de chèques). Capture Comptabilisé lorsque l'action EFT/chèque est terminée Type d'événement explicit | |||
| Carte de Temps Approuvée | La confirmation que les données de temps soumises ont été examinées et autorisées par un responsable. Ce changement de statut déclenche le transfert des données vers les éléments d'entrée de paie. | ||
| Pourquoi est-ce important ? : Critique pour mesurer le délai d'approbation du gestionnaire. Les retards ici sont une cause principale des ajustements de paie rétroactifs dans les périodes suivantes. Source des données : Interrogez la table HWM_TM_REC_GRP_DTLS ou la vue HXT_TIMECARDS où le statut passe à APPROUVÉ. Comparez l'horodatage d'approbation à l'horodatage de soumission. Capture Comptabilisé lorsque le statut passe à APPROUVÉ dans Time and Labor Type d'événement explicit | |||
| Carte de Temps Soumise | L'événement initial où un employé ou un gestionnaire soumet les données de temps et de travail pour traitement. Dans Oracle HCM, cela est capturé lorsque le statut de la feuille de temps passe à Soumis dans le module Time and Labor. | ||
| Pourquoi est-ce important ? : Marque l'entrée des données brutes dans le circuit potentiel de la paie. Les retards à ce stade se propagent en aval, réduisant la fenêtre de temps dont disposent les spécialistes de paie pour valider les calculs. Source des données : Interrogez la table HWM_TM_REC_GRP_DTLS ou la vue HXT_TIMECARDS où le statut passe à SOUMIS. Utilisez l'horodatage de soumission. Capture Comptabilisé lorsque le statut passe à SOUMIS dans Time and Labor Type d'événement explicit | |||
| Cycle de paie approuvé | L'approbation formelle du registre de paie ou du flux dans le Tableau de bord de paie. Cela se produit généralement après l'examen des rapports de validation et avant la génération des fichiers bancaires. | ||
| Pourquoi est-ce important ? : Représente la validation managériale. Le temps entre le calcul et l'approbation représente la fenêtre de vérification. Source des données : Interrogez PAY_REQ_FLOW_INSTANCES pour les changements de statut ou l'achèvement de tâches spécifiques dans un modèle de flux de paie défini. Capture Comptabilisé lorsque le statut de l'instance de flux passe à Terminée/Approuvée Type d'événement explicit | |||
| Déclaration fiscale terminée | La génération de fichiers fiscaux légaux (par exemple, Third Party Quarterly Tax File). Cela assure la conformité réglementaire pour la période de paie. | ||
| Pourquoi est-ce important ? : Critique pour le KPI Durée de traitement de la conformité fiscale. Un échec ici entraîne des pénalités. Source des données : Interrogez PAY_PAYROLL_ACTIONS pour les actions spécifiques des groupes de données législatives liées à la déclaration fiscale (par exemple, US Third Party Tax Filing). Capture Comptabilisé lorsque le flux de déclaration fiscale spécifique est terminé Type d'événement explicit | |||
| Données d'incitation importées | La création d'éléments d'entrée pour la rémunération variable tels que les bonus ou les commissions via le chargeur de lots ou l'importation HDL. Cela représente l'intégration des données de compensation externes dans l'exécution de la paie. | ||
| Pourquoi est-ce important ? : Surveille la vitesse d'intégration de la paie variable. Les importations tardives forcent souvent des exécutions de paie supplémentaires ou des corrections manuelles. Source des données : Interrogez PAY_BATCH_HEADERS pour l'achèvement de l'importation ou suivez la création de PAY_ELEMENT_ENTRIES_F avec une référence de système source spécifique. Capture Comptabilisé lorsque le processus de saisie des éléments par lot se termine avec succès Type d'événement explicit | |||
| Dossier de paie corrigé | Mises à jour manuelles appliquées aux éléments d'entrée ou aux données d'affectation après une première exécution de paie mais avant la finalisation. Cette activité représente le travail de reprise nécessaire pour corriger les erreurs ou les exceptions. | ||
| Pourquoi est-ce important ? : Indique l'inefficacité du processus et les problèmes de qualité des données. La réduction de cette activité est indispensablele pour améliorer le taux de prélèvement.cision de la paie au premier passage. Source des données : Inférentiel en identifiant les mises à jour de PAY_ELEMENT_ENTRIES_F où la dernière date de mise à jour se situe entre la date initiale de l'exécution de la paie et la date des prépaiements. Capture Comparer les horodatages de mise à jour des entrées d'éléments aux horodatages d'exécution de la paie Type d'événement inferred | |||
| Exception d'audit signalée | L'enregistrement d'un message d'erreur ou d'avertissement pendant la phase de calcul ou de validation de la paie. Cela capture les échecs de validation spécifiques qui nécessitent une intervention humaine. | ||
| Pourquoi est-ce important ? : Primordial pour identifier les problèmes de qualité des données. Un volume élevé d'exceptions augmente l'effort manuel et le risque de non-respect des SLA. Source des données : Interrogez la table PAY_MESSAGE_LINES liée à l'ID d'action spécifique PAY_PAYROLL_REL_ACTION_ID. Cette table stocke les erreurs et avertissements générés lors des exécutions. Capture Comptabilisé lorsqu'un enregistrement est inséré dans PAY_MESSAGE_LINES Type d'événement explicit | |||
| Fiche de paie publiée | Le point où le document de fiche de paie devient visible pour l'employé dans Self Service. Cela suit l'Archiver et potentiellement un processus spécifique de 'Génération de fiche de paie'. | ||
| Pourquoi est-ce important ? : Impacte la satisfaction des employés. Des délais importants entre le paiement et la disponibilité de la fiche de paie génèrent des tickets de support. Source des données : Interrogez la table Documents of Record (HR_DOCUMENTS_OF_RECORD) ou l'achèvement du processus de génération de fiche de paie dans PAY_PAYROLL_ACTIONS. Capture Comptabilisé lorsque le processus de génération de PDF de fiche de paie est terminé Type d'événement explicit | |||
| Imputation des coûts transférée | Le transfert des résultats de la comptabilisation de la paie vers le Grand Livre. Cela représente la clôture comptable financière du cycle de paie. | ||
| Pourquoi est-ce important ? : Assure la conformité financière et une comptabilisation précise des coûts de main-d'œuvre. Les retards empêchent la Finance de clôturer les comptes. Source des données : Interrogez PAY_PAYROLL_ACTIONS où ACTION_TYPE est T (Transfert au GL) et le statut est Complet. Capture Comptabilisé lorsque le processus de transfert au GL est terminé Type d'événement explicit | |||
| QuickPay exécuté | L'exécution d'une paie pour une seule personne (QuickPay) généralement utilisée pour vérifier les corrections. Cela sert de substitut à l'activité de prélèvement.visualisation des résultats de paie. | ||
| Pourquoi est-ce important ? : De fréquents QuickPays par personne indiquent une approche de traitement de la paie par tâtonnements plutôt qu'une Source des données : Interrogez PAY_PAYROLL_ACTIONS où ACTION_TYPE est Q (QuickPay). Comptez les instances par période de paie par employé. Capture Comptabilisé lorsqu'une action QuickPay est enregistrée dans PAY_PAYROLL_ACTIONS Type d'événement explicit | |||
| Résultats d'archivage générés | L'achèvement du processus d'archivage périodique des résultats de paie. Cet instantané verrouille efficacement les données pour le reporting et la génération des fiches de paie. | ||
| Pourquoi est-ce important ? : Un prérequis technique pour la génération des fiches de paie et des rapports légaux. Il confirme que les données sont finalisées. Source des données : Interrogez PAY_PAYROLL_ACTIONS où ACTION_TYPE est X (Archive) et le statut est Complet. Capture Comptabilisé lorsque l'action d'archivage est terminée Type d'événement explicit | |||
Guides d'extraction
Étapes
Accéder à l'échange de données : Connectez-vous à Oracle HCM Cloud avec un utilisateur disposant du rôle 'Spécialiste de l'intégration de la gestion du capital humain'. Naviguez vers Mes groupes de clients > Échange de données > Définitions d'extraction.
Créer une nouvelle extraction : Cliquez sur l'icône '+' pour créer une nouvelle extraction. Nommez-la 'ProcessMind_Payroll_Extract'. Sélectionnez 'Paie' comme consommateur et 'Archive RH' comme catégorie pour garantir l'accès aux données historiques d'action de paie.
Définir les groupes de données : Créez un groupe de données racine basé sur l'entité utilisateur
PAY_PAYROLL_REL_UE(Relation de paie). Cela ancre l'extraction à la relation de paie de l'employé. Créez des groupes de données enfants pourPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEetHWM_MEASURE_DAY_V_UE(pour le temps et le travail).Configurer les enregistrements d'extraction : Au sein des groupes de données, définissez des enregistrements pour aplatir les données hiérarchiques. Vous devez créer des enregistrements spécifiques pour chaque type d'activité (par exemple, un enregistrement filtrant les événements 'Feuille de temps', un autre pour les 'Résultats d'exécution').
Implémenter la logique SQL via FastFormula ou BIP : En raison de la complexité de la transformation des données de paie hiérarchiques en un journal d'événements linéaire, l'approche la plus robuste consiste à utiliser l''Option de livraison d'extraction' pour appeler un rapport BI Publisher. Cela vous permet d'utiliser le SQL fourni dans la section 'Requête' ci-dessous comme modèle de données. Cette méthode est supérieure au filtrage GUI natif pour la création d'un journal d'événements unifié.
Créer un modèle de données BI Publisher : Naviguez vers Outils > Rapports et analyses > Parcourir le catalogue. Créez un nouveau modèle de données. Collez la requête SQL fournie ci-dessous. Définissez un paramètre pour
bind_start_dateetbind_end_date.Lier l'extraction à BIP : Dans l'onglet 'Livraison' de la Définition d'extraction, créez une option de livraison. Sélectionnez 'PDF' ou 'XML' comme type de sortie (ProcessMind préfère le CSV, mais vous convertirez la sortie BIP). Sélectionnez le rapport BI Publisher que vous avez créé à l'étape précédente.
Définir les paramètres : Dans l'arbre d'exécution de l'extraction, ajoutez des paramètres pour la date de début et la date de fin à transmettre dynamiquement à la requête BI Publisher.
Valider et soumettre : Validez la définition d'extraction pour vérifier les erreurs. Cliquez sur 'S'inscrire l'extraction'. Entrez les paramètres (par exemple, les 90 derniers jours).
Surveiller le processus : Allez dans 'Afficher les résultats de l'extraction'. Attendez que le statut passe à 'Réussi'.
Télécharger la sortie : Téléchargez le fichier XML/CSV généré. Ouvrez-le pour vérifier que la structure contient les colonnes requises : PayrollRecord, (ActivityName), EventHorodatage, etc.
Formater pour ProcessMind : Si la sortie est XML, convertissez-la en un fichier CSV plat en vous assurant que les en-têtes correspondent aux exigences des 'Attributs à inclure'. Téléchargez le fichier résultant vers ProcessMind.
Configuration
- Mode d'extraction : Modifications uniquement ou Extraction complète. Pour le chargement initial, utilisez l'Extraction complète. Pour les mises à jour quotidiennes, configurez 'Modifications uniquement' en fonction de la dernière date de mise à jour.
- Groupe de données législatives (GDL) : Il est fortement recommandé de filtrer par GDL si votre instance prend en charge plusieurs pays, car les définitions de paie varient selon la législation.
- Plage de dates : Définissez
bind_start_dateetbind_end_datepour couvrir au moins 3 à 6 mois afin que le process mining capture les temps de cycle complets. - Taille de bloc : Pour les paies à fort volume (plus de 10 000 employés), définissez la taille de bloc dans la Définition d'extraction à 2000 pour éviter les erreurs de dépassement de délai.
- Datation d'effet : Les tables de paie sont datées d'effet. La logique de la requête gère explicitement
effective_start_dateeteffective_end_datepour s'assurer que la version historique correcte de l'enregistrement est récupérée. - Sécurité : L'utilisateur exécutant doit disposer de profils de sécurité des données permettant de visualiser toutes les paies et les départements destinés à l'analyse.
a Exemple de requête 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 Étapes
- Se connecter à Oracle BI Publisher : Accédez à l'environnement Oracle Cloud et naviguez vers Outils > Rapports et analyses. Cliquez sur Parcourir le catalogue pour ouvrir l'interface BI Publisher.
- Créer un modèle de données : Cliquez sur Nouveau (en haut à gauche) et sélectionnez Template de données. C'est le conteneur de votre logique d'extraction SQL.
- Créer un jeu de données SQL : Sous l'onglet Diagramme, cliquez sur l'icône Nouveau jeu de données et sélectionnez Requête SQL.
- Configurer la source de données : Nommez le jeu de données (par exemple,
ProcessMind_Payroll_Extract). Définissez la Source de données surApplicationDB_HCM(ou votre connexion spécifique à la base de données d'application HCM). Laissez le type comme SQL standard. - Saisir la requête : Copiez le script SQL complet fourni dans la section Requête ci-dessous et collez-le dans la zone de texte Requête SQL. Assurez-vous de n'inclure aucun formatage Markdown.
- Définir les paramètres : La requête utilise les variables de liaison
:p_start_dateet:p_end_date. Dans l'onglet Paramètres du modèle de données, créez ces deux paramètres (type Date) pour filtrer la plage d'extraction (par exemple, basée surppa.EFFECTIVE_DATE). - Valider la structure des données : Cliquez sur OK. Passez à l'onglet Données dans l'éditeur de modèle de données. Saisissez des dates d'exemple (par exemple,
2023-01-01à2023-03-31) et cliquez sur Afficher. Assurez-vous que la sortie contient des lignes avecPayrollRecord,(ActivityName)etEventHorodatage. - Enregistrer le modèle de données : Enregistrez le modèle dans un dossier partagé (par exemple,
/Shared Folders/Custom/ProcessMining). - Créer un rapport pour l'exportation : Cliquez sur Créer un rapport, sélectionnez le modèle de données que vous venez d'enregistrer. Utilisez l'Assistant de rapport pour créer une mise en page de tableau simple contenant toutes les colonnes. Décochez 'Afficher les totaux généraux'.
- Exporter en CSV : Affichez le rapport dans l'Afficheur de rapports. Cliquez sur le menu Actions (icône d'engrenage) > Exporter > Données > CSV.
- Transformer : Ouvrez le CSV. Assurez-vous que les formats de date sont ISO 8601 (
AAAA-MM-JJ HH:MM:SS) s'ils ne sont pas automatiquement formatés. Aucune autre transformation ne devrait être nécessaire si le SQL a été correctement copié. - Télécharger : Importez le fichier CSV résultant dans ProcessMind, en mappant les colonnes comme défini dans les Exigences de données.
Configuration
- Connexion à la source de données : Doit utiliser
ApplicationDB_HCMou la source de données JNDI équivalente ayant un accès en lecture aux schémasPAY_etPER_. - Plage de dates : La fenêtre d'extraction recommandée est de 3 à 6 mois pour capturer des cycles de paie complets. Utilisez les paramètres
:p_start_dateet:p_end_datepour contrôler ce chargement dynamique. - Groupe de données législatives (GDL) : La requête extrait tous les GDL par défaut. Si vous opérez dans plusieurs pays, envisagez d'ajouter un filtre
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]pour partitionner les données. - Performance : La requête interroge des tables à fort volume (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Assurez-vous que la plage de dates n'est pas trop large (par exemple, > 1 an) afin d'éviter les erreurs de dépassement de délai dans BI Publisher. - Sécurité : L'utilisateur exécutant le rapport doit disposer des autorisations d'accès aux données pour les définitions de paie cibles.
a Exemple de requête 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