Einführung

Als Teil der Funktion zum Extrahieren von Daten aus HCM mit leseoptimiertem Datenspeicher stellt HCM Cloud den Objektänderungsextrakt bereit.

Die Objektänderung ist eine allgemeine Geschäftsansicht, die eine Datenänderung im System darstellt. Eine solche Datenänderung kann sich auf verschiedene Geschäftsobjekte beziehen, die in HCM auf verschiedene Weise bearbeitet werden können, wie Benutzeroberflächentransaktionen, API-Aufrufe oder Backend-Prozesse.

Sie können Objektänderungsextrakte definieren und ausführen, um Änderungen zu ermitteln, an denen Sie interessiert sind.

Ziele

Nach Abschluss dieses Tutorials werden Sie Folgendes verstehen:

  • Was sind Object Change-Extrakte und welche Datenänderungen können sie erkennen?
  • Verwendung von Object Change-Extrakten zur effizienten Erkennung von Datenänderungen

Voraussetzungen

Machen Sie sich zunächst mit dem Extrahieren von Daten aus HCM mithilfe des leseoptimierten Datenspeichers vertraut.

Weitere Informationen finden Sie im Tutorial Daten aus HCM Read-optimized Data Store extrahieren.

Anwendungsfälle

Mit dieser Funktion können Sie Anwendungsfälle wie:

  1. Erkennen von Datenänderungen bestimmter Geschäftsobjekte
  2. Nach Vorgangstyp filtern - Erstellung, Aktualisierung und insbesondere Löschvorgänge verfolgen
  3. Verfolgen geänderter Attribute von Geschäftsobjekten und ihrer alten und neuen Werte

Inkrementelle Extrahierungen:

Diese Funktion ersetzt keine inkrementellen Extraktionen, sie ergänzt sie jedoch. Beispiel: Bei inkrementellen Extraktionen können Löschvorgänge nicht verfolgt werden. Außerdem erhalten Sie keinen Einblick in geänderte Attribute und ihre alten und neuen Werte.

Atom Feeds:

Diese Funktion ist eine generischere Alternative zu Atom-Feeds.

Aufgabe 1: Geschäftsobjekte wählen

Im Folgenden finden Sie die Liste der vollqualifizierten Namen der unterstützten Geschäftsobjekte.

Quellobjektname
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

Objekte, die mit DEO enden, sind datumsabhängige Objekte. Andernfalls handelt es sich um nicht datumsabhängige Objekte.

Aufgabe 2: Export definieren

Definieren Sie eine Extraktabfrage mit der Geschäftsansicht objectChangeExtracts.

Lesen Sie Aufgabe 2: Extraktionsabfrage vorbereiten und testen des Tutorials Daten aus HCM Read Optimized Data Store extrahieren.

Die folgenden Attribute können nützlich sein, um Filter für den Objektänderungsextrakt zu definieren:

Attribut Beschreibung
sourceObjectName Vollständig qualifizierter Geschäftsobjektname. Die gültigen Werte finden Sie in der Liste aus Schritt 1
groupSequence Gibt die laufende Nummer der Änderung innerhalb der Geschäftstransaktion an, falls vorhanden
operationType

Gilt nur für nicht datumswirksame Objekte.

Gibt den DML-Typ des Vorgangs an. Eins von:

  • DELETE
  • INSERT
  • UPDATE
dateEffectiveMode

Gilt nur für Objekte mit Gültigkeitsdatum.

Gibt den Typ des datumsabhängigen Vorgangs an. Eins von:

  • 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

Weitere Informationen finden Sie unter Gültigkeitsobjekte für Datum verwalten in der HCM-REST-API-Dokumentation.

effectiveDate

Gilt nur für Geschäftsobjekte mit Gültigkeitsdatum.

Gibt das Gültigkeitsdatum der Änderung an. Dies kann ein vergangenes, aktuelles oder zukünftiges Datum sein

keyAttribute1Name

keyAttribute1DataType

keyAttribute1StringValue

keyAttribute1NumberValue

keyAttribute1DateValue


keyAttribute2Name

keyAttribute2DataType

keyAttribute2StringValue

keyAttribute2NumberValue

keyAttribute2DateValue


keyAttribute3Name

keyAttribute3DataType

keyAttribute3StringValue

keyAttribute3NumberValue

keyAttribute3DateValue

Gruppe von Attributen zur Identifizierung der spezifischen Objektinstanz, die der SQL-Tabellendefinition des Geschäftsobjekts entspricht.

Bis zu 3 zusammengesetzte Schlüsselelemente werden unterstützt.

Abhängig vom Datentyp des Schlüsselelements (VARCHAR2 / NUMBER / DATE) werden entweder Zahlen-, Zeichenfolgen- oder Datumsattribute für das jeweilige Schlüsselelement aufgefüllt.

Bei datumsabhängigen Geschäftsobjekten stellen die Schlüsselinformationen den Surrogatschlüssel des logischen Objekts dar.

purgeDate

Änderungsdatensätze werden kontinuierlich gelöscht. Dieses Attribut ist das geplante Löschdatum für den Änderungsdatensatz.

Die Lösch-Policy kann zwischen Objekten und Ereignissen variieren. 99% der Ereignisse werden 90 Tage oder länger aufbewahrt.

timeCreated Erstellungszeitstempel des Änderungsdatensatzes
changeComponents

Ein Objektänderungsdatensatz kann eine oder mehrere Änderungskomponenten enthalten.

Während ein Änderungsdatensatz eine logische Änderung eines Objekts darstellt, liefern Änderungskomponenten zusätzliche Details, einschließlich der Änderungen auf der Ebene der Datensätze der physischen Datenbank. Dies ist insbesondere für datumsabhängige Objekte relevant.

Je nachdem, welche Informationen Sie benötigen, können Sie Änderungskomponenten untersuchen, um Änderungen einzelner physischer Datensätze zu ermitteln.

Beispiel: Eine datumsabhängige Aktualisierung umfasst in der Regel zwei physische Datensätze:

  • Aktualisierung eines vorhandenen Datensatzes (Gültigkeitsende setzen)
  • Einfügen eines neuen Datensatzes mit dem neuen Wert

Änderungskomponenten enthalten auch logische Datensatzänderungen.

Weitere Details zur Gültigkeitsdatumsabhängigkeit finden Sie unter Gültigkeitsobjekte verwalten in der HCM-REST-API-Dokumentation.

changeComponents.oldEffectiveStartDate

changeComponents.newEffectiveStartDate

changeComponents.oldEffectiveEndDate

changeComponents.newEffectiveEndDate

changeComponents.oldEffectiveSequence

changeComponents.newEffectiveSequence

Gilt nur für Geschäftsobjekte mit Gültigkeitsdatum.

Attributgruppe mit datumsabhängigen Details der zugrunde liegenden Änderungen an physischen und logischen Datensätzen

changeComponents.physicalType

Gilt nur für Geschäftsobjekte mit Gültigkeitsdatum.

Gibt an, ob die Änderungskomponente als physische Datensatzänderung betrachtet wird (Y / N).

Um den DML-Typ des Vorgangs auf der Ebene der einzelnen physischen Datensatzänderung zu bestimmen, prüfen Sie, ob das alte und das neue Gültigkeitsstartdatum vorhanden sind.

  • Einfügen - oldEffectiveStartDate ist null, newEffectiveStartDate ist nicht null
  • Update - oldEffectiveStartDate ist nicht null, newEffectiveStartDate ist nicht null
  • Löschen - oldEffectiveStartDate ist nicht null, newEffectiveStartDate ist null
changeComponents.logicalType

Gilt nur für Geschäftsobjekte mit Gültigkeitsdatum.

Gibt an, ob die Änderungskomponente als logische Datensatzänderung betrachtet wird (Y / N).

changeComponents.changedAttributes.changedAttributesXml

Details der geänderten Attribute, einschließlich der neuen und alten Werte.

Im Folgenden finden Sie die XML-Payload mit geänderten Beispielattributen.

<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>

Für jedes verfügbare geänderte Attribut:

  • Ein XML-Element mit dem Attributnamen ist vorhanden
  • Typ des Attributs ist vorhanden, einer der folgenden:
    • V - für Textwerte
    • N - für numerische Werte
    • D - für Datums- und Zeitstempelwerte
  • oldVal-Element ist mit dem alten Wert vorhanden
  • newVal-Element ist mit dem neuen Wert vorhanden

Die Gruppe der erfassten Attribute und ihre spezifischen Regeln (immer vorhanden, nur bei Änderungen vorhanden usw.) können zwischen Geschäftsobjekten variieren.

Aufgabe 3: Extrahieren ausführen

Führen Sie die im Tutorial Daten aus HCM Read Optimized Data Store extrahieren beschriebenen Schritte aus, um den definierten Export auszuführen.

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.