简介

作为使用读优化数据存储从 HCM 提取数据的功能的一部分,HCM 云公开对象更改提取。

对象更改是表示系统中数据更改的一般业务视图。此类数据更改可能涉及可在 HCM 中以各种方式处理的各种业务对象,例如用户 UI 事务处理、API 调用或后端流程。

您可以定义并运行“对象更改”提取,以便根据您的要求检测您感兴趣的更改。

目标

完成本教程后,您将了解:

  • 什么是对象更改提取以及它们允许检测哪些数据更改
  • 如何使用对象更改提取来有效地检测数据更改

先决条件

在开始之前,请熟悉如何使用读优化数据存储从 HCM 提取数据。

用例

此功能允许您处理以下用例:

  1. 检测特定业务对象的数据更改
  2. 按操作类型筛选 - 跟踪创建、更新,特别是删除
  3. 跟踪业务对象及其旧值和新值的已更改属性

递增提取:

此功能不会替换增量提取,但会对其进行补充。例如,增量提取不允许跟踪删除,也不提供对已更改属性及其旧值和新值的洞察。

Atom 源:

此功能是 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 帮助中心