Introduction

Dans le cadre de la fonctionnalité d'extraction de données à partir de HCM à l'aide d'une banque de données optimisée pour la lecture, HCM Cloud présente l'extraction des modifications d'objet.

La modification d'objet est une vue métier générique qui représente une modification de données dans le système. Une telle modification de données peut concerner divers objets fonctionnels qui peuvent être manipulés dans HCM de différentes manières, telles que les transactions d'interface utilisateur, les appels d'API ou les processus back-end.

Vous pouvez définir et exécuter des extractions de modification d'objet afin de détecter les modifications qui vous intéressent, en fonction de vos besoins.

Objectifs

A la fin de ce tutoriel, vous comprendrez :

  • Définition des extractions de modification d'objet et des modifications de données qu'elles permettent de détecter
  • Comment utiliser les extractions de modification d'objet pour détecter efficacement les modifications de données

Prérequis

Avant de commencer, familiarisez-vous avec l'extraction de données à partir de HCM à l'aide d'une banque de données optimisée pour la lecture.

Cas d'emploi

Cette fonctionnalité vous permet de traiter des cas d'utilisation tels que :

  1. Détecter les modifications de données d'objets fonctionnels spécifiques
  2. Filtrage par type d'opération - suivi des créations, des mises à jour et, en particulier, des suppressions
  3. Suivi des attributs modifiés des objets fonctionnels et de leurs anciennes et nouvelles valeurs

Extractions incrémentielles :

Cette fonctionnalité ne remplace pas les extractions incrémentielles, mais les complète. Par exemple, les extractions incrémentielles ne permettent pas de suivre les suppressions, ni de fournir des informations sur les attributs modifiés et leurs anciennes et nouvelles valeurs.

Flux Atom :

Cette fonctionnalité est une alternative plus générique aux flux Atom.

Tâche 1 : Choisir des objets métier

Vous trouverez ci-dessous la liste des noms complets des objets fonctionnels pris en charge.

Nom d'objet source
oracle.apps.hcm.addresses.publicModel.entity.AddressDEO
oracle.apps.hcm.compensation.salary.core.protectedModel.entity.SalaryEO
oracle.apps.hcm.documentsOfRecord.core.protectedModel.entity.DocumentDeliveryPreferenceEO
oracle.apps.hcm.employment.core.publicModel.entity.AssignmentExtraInfoEFFDEO
oracle.apps.hcm.employment.core.publicModel.entity.AssignmentSupervisorDEO
oracle.apps.hcm.employment.core.publicModel.entity.AssignmentWorkMeasureDEO
oracle.apps.hcm.employment.core.publicModel.entity.CWKAssignmentDEO
oracle.apps.hcm.employment.core.publicModel.entity.ContractDEO
oracle.apps.hcm.employment.core.publicModel.entity.EmployeeAssignmentDEO
oracle.apps.hcm.employment.core.publicModel.entity.PWAssignmentDEO
oracle.apps.hcm.employment.core.publicModel.entity.PeriodOfServiceEO
oracle.apps.hcm.locations.model.entity.LocationDetailDEO
oracle.apps.hcm.locations.model.entity.LocationDetailTranslationDEO
oracle.apps.hcm.locations.model.entity.LocationEO
oracle.apps.hcm.locations.model.entity.LocationExtraInfoEFFDEO
oracle.apps.hcm.locations.model.entity.LocationLegislativeEFFDEO
oracle.apps.hcm.organizations.protectedModel.entity.OrgInformationEFFDEO
oracle.apps.hcm.organizations.protectedModel.entity.OrganizationUnitDEO
oracle.apps.hcm.organizations.protectedModel.entity.OrganizationUnitTranslationDEO
oracle.apps.hcm.people.core.protectedModel.entity.CitizenshipEO
oracle.apps.hcm.people.core.protectedModel.entity.DriversLicenceEO
oracle.apps.hcm.people.core.protectedModel.entity.EmailAddressEO
oracle.apps.hcm.people.core.protectedModel.entity.EthnicityEO
oracle.apps.hcm.people.core.protectedModel.entity.NationalIdentifierEO
oracle.apps.hcm.people.core.protectedModel.entity.PassportEO
oracle.apps.hcm.people.core.protectedModel.entity.PersonDEO
oracle.apps.hcm.people.core.protectedModel.entity.PersonEO
oracle.apps.hcm.people.core.protectedModel.entity.PersonExtraInfoDEO
oracle.apps.hcm.people.core.protectedModel.entity.PersonLegislativeInfoDEO
oracle.apps.hcm.people.core.protectedModel.entity.PersonNameDEO
oracle.apps.hcm.people.core.protectedModel.entity.PhoneEO
oracle.apps.hcm.people.core.protectedModel.entity.ReligionEO
oracle.apps.hcm.people.core.protectedModel.entity.VisaPermitDEO
oracle.apps.hcm.people.healthAndSafety.protectedModel.entity.PersonDisabilityDEO
oracle.apps.hcm.users.publicModel.entity.UserEO
oracle.apps.hcm.workStructures.grades.model.entity.GradeDEO
oracle.apps.hcm.workStructures.grades.model.entity.GradeLegislativeEFFDEO
oracle.apps.hcm.workStructures.grades.model.entity.GradeTranslationEO
oracle.apps.hcm.workStructures.jobs.model.entity.JobDEO
oracle.apps.hcm.workStructures.jobs.model.entity.JobExtraInfoDEO
oracle.apps.hcm.workStructures.jobs.model.entity.JobLegislativeDEO
oracle.apps.hcm.workStructures.jobs.model.entity.JobTranslationEO
oracle.apps.hcm.workStructures.positions.model.entity.PositionDEO
oracle.apps.hcm.workStructures.positions.model.entity.PositionExtraInformationDEO
oracle.apps.hcm.workStructures.positions.model.entity.PositionLegislativeDEO
oracle.apps.hcm.workStructures.positions.model.entity.PositionTranslationEO

Les objets se terminant par DEO sont des objets à date d'effet, sinon ils ne sont pas des objets à date d'effet.

Tâche 2 : définir une extraction

Définissez une requête d'extraction à l'aide de la vue métier objectChangeExtracts.

Consultez la section Tâche 2 : préparer et tester une requête d'extraction du tutoriel Extraire des données de la banque de données optimisée pour la lecture HCM.

Les attributs suivants peuvent être utiles pour définir les filtres de votre extraction de modification d'objet :

Attribut Description
sourceObjectName Nom de l'objet fonctionnel qualifié complet. Voir la liste de l'étape 1 pour les valeurs applicables
groupSequence Le cas échéant, indique le numéro de séquence de la modification dans la transaction commerciale
operationType

Applicable uniquement aux objets à date d'effet différente.

Indique le type LMD de l'opération. Un des suivants :

  • DELETE
  • INSERT
  • UPDATE
dateEffectiveMode

Applicable aux objets à date d'effet uniquement.

Indique le type de l'opération à date d'effet. Un des suivants :

  • CORRECTION
  • DELETE THIS CHANGE
  • END DATE
  • END DATE FUTURE CHANGES REMOVED
  • INSERT
  • LOGICAL EED CHANGE
  • LOGICAL ESD CHANGE
  • PHYSICAL ESD CHANGE
  • UPDATE
  • UPDATE CHANGE INSERT
  • ZAP

Pour plus de détails, voir Gérer les objets à date d'effet dans la documentation de l'API REST HCM.

effectiveDate

Applicable aux objets fonctionnels à date d'effet uniquement.

Indique la date d'effet de la modification, qui peut être une date passée, présente ou future

keyAttribute1Name

keyAttribute1DataType

keyAttribute1StringValue

keyAttribute1NumberValue

keyAttribute1DateValue


keyAttribute2Name

keyAttribute2DataType

keyAttribute2StringValue

keyAttribute2NumberValue

keyAttribute2DateValue


keyAttribute3Name

keyAttribute3DataType

keyAttribute3StringValue

keyAttribute3NumberValue

keyAttribute3DateValue

Ensemble d'attributs permettant d'identifier l'instance d'objet spécifique, correspondant à la définition de table SQL de l'objet fonctionnel.

Jusqu'à 3 éléments de clé composite sont pris en charge.

Selon le type de données de l'élément clé (VARCHAR2 / NUMBER / DATE), l'attribut de nombre, de chaîne ou de date sera renseigné pour l'élément clé respectif.

Dans le cas d'objets fonctionnels à date d'effet, les informations clés représentent la clé de substitution de l'objet logique.

purgeDate

Les enregistrements de modification sont purgés en permanence. Cet attribut correspond à la date de purge planifiée pour l'enregistrement de modification.

La stratégie de purge peut varier d'un objet à l'autre. 99 % des événements sont conservés pendant 90 jours ou plus.

timeCreated Horodatage de création de l'enregistrement de modification
changeComponents

Un enregistrement de modification d'objet peut comporter un ou plusieurs composants de modification.

Bien qu'un enregistrement de modification représente une modification logique d'un objet, les composants de modification fournissent des détails supplémentaires, notamment ceux des modifications au niveau des enregistrements de la base de données physique. Cela est particulièrement pertinent pour les objets à date d'effet.

Selon les informations dont vous avez besoin, vous pouvez examiner les composants de modification pour identifier les modifications apportées aux enregistrements physiques individuels.

Par exemple, une mise à jour à date d'effet implique généralement deux opérations d'enregistrement physique :

  • Mise à jour d'un enregistrement existant (définition de la date de fin d'effet)
  • Insertion d'un nouvel enregistrement avec la nouvelle valeur

Les composants de modification contiennent également des modifications d'enregistrement logique.

Pour plus d'informations sur la validité des dates, voir Gérer les objets à date d'effet dans la documentation de l'API REST HCM.

changeComponents.oldEffectiveStartDate

changeComponents.newEffectiveStartDate

changeComponents.oldEffectiveEndDate

changeComponents.newEffectiveEndDate

changeComponents.oldEffectiveSequence

changeComponents.newEffectiveSequence

Applicable aux objets fonctionnels à date d'effet uniquement.

Ensemble d'attributs fournissant les détails de la date d'effet des modifications des enregistrements physiques et logiques sous-jacents

changeComponents.physicalType

Applicable aux objets fonctionnels à date d'effet uniquement.

Indique si le composant de modification est considéré comme une modification d'enregistrement physique (Y / N).

Pour déterminer le type LMD de l'opération au niveau de la modification de l'enregistrement physique individuel, vérifiez l'existence des anciennes et nouvelles dates de début d'effet.

  • Insert - oldEffectiveStartDate est NULL, newEffectiveStartDate n'est pas NULL
  • Mise à jour - oldEffectiveStartDate n'est pas NULL, newEffectiveStartDate n'est pas NULL
  • Supprimer : oldEffectiveStartDate n'est pas NULL, newEffectiveStartDate est NULL
changeComponents.logicalType

Applicable aux objets fonctionnels à date d'effet uniquement.

Indique si le composant de modification est considéré comme une modification d'enregistrement logique (Y / N).

changeComponents.changedAttributes.changedAttributesXml

Détails des attributs modifiés, y compris leurs nouvelles et anciennes valeurs.

Voici l'exemple de charge utile XML des attributs modifiés.

<ChgAttrs>
    <EmailType type="V">
        <attrName>EmailType</attrName>
        <oldVal>
            <![CDATA[W1]]>
        </oldVal>
        <newVal>
            <![CDATA[W1]]>
        </newVal>
    </EmailType>
    <PersonId type="N">
        <attrName>PersonId</attrName>
        <oldVal>300100210126395</oldVal>
        <newVal>300100210126395</newVal>
    </PersonId>
    <DateFrom type="D">
        <attrName>DateFrom</attrName>
        <oldVal>2012-01-01</oldVal>
        <newVal>2012-01-01</newVal>
    </DateFrom>
    <EmailAddress type="V">
        <attrName>EmailAddress</attrName>
        <oldVal>
            <![CDATA[jdoe@example.com]]>
        </oldVal>
        <newVal>
            <![CDATA[john.doe@example.com]]>
        </newVal>
    </EmailAddress>
    <EmailAddressId type="N">
        <attrName>EmailAddressId</attrName>
        <oldVal>300100210126404</oldVal>
        <newVal>300100210126404</newVal>
    </EmailAddressId>
</ChgAttrs>

Pour chaque attribut modifié disponible :

  • Un élément XML est présent avec le nom d'attribut
  • Le type de l'attribut est présent :
    • V : pour les valeurs de texte
    • N : pour les valeurs numériques
    • D pour les valeurs de date et d'horodatage
  • L'élément oldVal contient l'ancienne valeur
  • L'élément newVal contient la nouvelle valeur

L'ensemble des attributs capturés et leurs règles spécifiques (toujours présents, présents uniquement en cas de modification, etc.) peuvent varier d'un objet métier à l'autre.

Tâche 3 : exécuter l'extraction

Suivez les étapes décrites dans le tutoriel Extraire les données de la banque de données optimisée pour la lecture HCM pour exécuter l'extraction définie.

Ressources de formation supplémentaires

Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.