簡介

作為使用讀取最佳化資料存放區從 HCM 擷取資料的功能的一部分,HCM Cloud 會公開物件變更擷取。

「物件變更」是代表系統中資料變更的一般業務視圖。這類資料變更可與各種可在 HCM 中操作的業務物件相關,例如使用者 UI 交易、API 呼叫或後端處理。

您可以定義並執行「物件變更」擷取,以根據您的需求偵測您感興趣的變更。

目標

完成本教學課程後,您將瞭解:

  • 什麼是物件變更擷取及其允許偵測的資料變更
  • 如何使用物件變更擷取有效地偵測資料變更

必要條件

開始之前,請先熟悉使用讀取最佳化資料儲存從 HCM 擷取資料。

使用案例

此功能可讓您處理使用案例,例如:

  1. 偵測特定業務物件的資料變更
  2. 依作業類型篩選 - 追蹤建立、更新,特別是刪除
  3. 追蹤業務物件的已變更屬性及其舊值與新值

增量摘錄:

此功能不會取代增量擷取,但會加以補充。例如,增量擷取不允許追蹤刪除,既不提供已變更屬性及其舊值與新值的洞察分析。

原子饋送:

此功能是 Atom 饋送更為一般的替代方案。

作業 1:選擇業務物件

以下是支援之業務物件的完整名稱清單。

來源物件名稱為
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

結尾為 DEO 的物件是日期有效物件,否則它們是非日期有效物件。

任務 2:定義摘錄

使用 objectChangeExtracts 業務視圖定義擷取查詢。

請參閱任務 2:準備與測試擷取查詢從 HCM 讀取最佳化資料存放區擷取資料教學課程。

下列屬性可能有助於定義「物件變更」擷取的篩選:

屬性 描述
sourceObjectName 完整業務物件名稱。請參閱步驟 #1 的清單以取得適用值
groupSequence 如果存在,則表示業務交易中的變更序號
operationType

僅適用於非日期有效物件。

表示作業的 DML 類型。頁面類型可為下列任一種:

  • DELETE
  • INSERT
  • UPDATE
dateEffectiveMode

僅適用於生效日期物件。

表示生效日期作業的類型。頁面類型可為下列任一種:

  • 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

如需詳細資訊,請參考 HCM REST API 文件中的管理生效日期物件

effectiveDate

僅適用於生效日期業務物件。

表示變更的生效日期,可以是過去、現在或未來日期

keyAttribute1Name

keyAttribute1DataType

keyAttribute1StringValue

keyAttribute1NumberValue

keyAttribute1DateValue


keyAttribute2Name

keyAttribute2DataType

keyAttribute2StringValue

keyAttribute2NumberValue

keyAttribute2DateValue


keyAttribute3Name

keyAttribute3DataType

keyAttribute3StringValue

keyAttribute3NumberValue

keyAttribute3DateValue

允許識別與業務物件之 SQL 表格定義對應之特定物件實例的屬性集。

最多支援 3 個複合索引鍵元素。

根據索引鍵元素的資料類型 (VARCHAR2 / NUMBER / DATE),將會為個別索引鍵元素填入數字、字串或日期屬性。

如果是生效日期業務物件,則索引鍵資訊代表邏輯物件的替代索引鍵。

purgeDate

正在持續清除變更記錄。此屬性是變更記錄的計畫永久刪除日期。

物件與事件之間的永久清除原則可能會不同。 99% 的事件會保留 90 天或更長的時間。

timeCreated 變更記錄的建立時戳
changeComponents

物件變更記錄可以有一或多個變更元件。

當變更記錄代表物件的邏輯變更時,變更元件會提供其他詳細資訊,包括實體資料庫記錄層級的變更。這特別適用於日期生效物件。

視您需要的資訊而定,您可以檢查變更元件,以識別個別實體記錄的變更。

例如,生效日期更新通常涉及兩個實體記錄作業:

  • 更新現有記錄 (設定有效期限)
  • 插入具有新值的新記錄

變更元件也會包含邏輯記錄變更。

請參考 HCM REST API 文件中的管理生效日期物件,以取得生效日期的更多明細。

changeComponents.oldEffectiveStartDate

changeComponents.newEffectiveStartDate

changeComponents.oldEffectiveEndDate

changeComponents.newEffectiveEndDate

changeComponents.oldEffectiveSequence

changeComponents.newEffectiveSequence

僅適用於生效日期業務物件。

提供基礎實體與邏輯記錄變更之生效日期明細的屬性集

changeComponents.physicalType

僅適用於生效日期業務物件。

指示變更元件是否被視為實體記錄變更 (Y / N)。

為了決定個別實體記錄變更層級的作業 DML 類型,請檢查新舊生效日期是否存在。

  • 插入 - oldEffectiveStartDate 為空值,newEffectiveStartDate 不是空值
  • 更新 - oldEffectiveStartDate 不是空值,newEffectiveStartDate 不是空值
  • 刪除 - oldEffectiveStartDate 不是空值,newEffectiveStartDate 為空值
changeComponents.logicalType

僅適用於生效日期業務物件。

指示變更元件是否被視為邏輯記錄變更 (Y / N)。

changeComponents.changedAttributes.changedAttributesXml

已變更屬性的明細,包含新的與舊值。

以下是範例變更的屬性 XML 有效負載。

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

針對每個已變更的可用屬性:

  • 屬性名稱有 XML 元素
  • 屬性的類型為:
    • V - 用於文字值
    • N - 用於數值
    • D - 用於日期和時戳值
  • oldVal 元素含有舊值
  • newVal 元素有新值

擷取的屬性集與其特定規則 (一律存在,只有在變更時才會出現) 在業務物件之間可能會有所不同。

任務 3:執行擷取

請依照從 HCM 讀取最佳化資料存放區擷取資料教學課程中所述的步驟執行定義的擷取。

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center