简介
作为使用读优化数据存储从 HCM 提取数据的功能的一部分,HCM 云公开对象更改提取。
对象更改是表示系统中数据更改的一般业务视图。此类数据更改可能涉及可在 HCM 中以各种方式处理的各种业务对象,例如用户 UI 事务处理、API 调用或后端流程。
您可以定义并运行“对象更改”提取,以便根据您的要求检测您感兴趣的更改。
目标
完成本教程后,您将了解:
- 什么是对象更改提取以及它们允许检测哪些数据更改
- 如何使用对象更改提取来有效地检测数据更改
先决条件
在开始之前,请熟悉如何使用读优化数据存储从 HCM 提取数据。
用例
此功能允许您处理以下用例:
- 检测特定业务对象的数据更改
- 按操作类型筛选 - 跟踪创建、更新,特别是删除
- 跟踪业务对象及其旧值和新值的已更改属性
递增提取:
此功能不会替换增量提取,但会对其进行补充。例如,增量提取不允许跟踪删除,也不提供对已更改属性及其旧值和新值的洞察。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 类型。包括以下类型:
|
dateEffectiveMode |
仅适用于日期有效对象。 指明日期有效工序的类型。包括以下类型:
有关更多详细信息,请参阅 HCM REST API 文档中的管理日期有效对象。 |
effectiveDate |
仅适用于结束日期有效的业务对象。 指明更改的有效日期,该日期可以是过去、当前或将来日期 |
|
|
允许标识与业务对象的 SQL 表定义对应的特定对象实例的属性集。 最多支持 3 个组合键元素。 根据关键字元素的数据类型 ( 对于日期有效的业务对象,关键字信息表示逻辑对象的代理关键字。 |
purgeDate |
更改记录将持续清除。此属性是更改记录的计划清除日期。 清除策略在对象和事件之间可能会有所不同。 99% 的事件保留 90 天或更长时间。 |
timeCreated |
更改记录的创建时间戳 |
changeComponents |
对象更改记录可以具有一个或多个更改组件。 虽然更改记录表示对象的逻辑更改,但更改组件会提供其他详细信息,包括物理数据库记录级别的更改详细信息。这尤其适用于日期有效对象。 根据需要的信息,可以检查更改组件以标识单个物理记录的更改。 例如,日期有效更新通常涉及两个物理记录操作:
更改组件还将包含逻辑记录更改。 有关日期有效性的更多详细信息,请参阅 HCM REST API 文档中的管理日期有效对象。 |
|
|
仅适用于结束日期有效的业务对象。 提供基础物理和逻辑记录更改的日期有效详细信息的属性集 |
changeComponents.physicalType |
仅适用于结束日期有效的业务对象。 指示更改组件是否被视为实际记录更改 ( 为了在单个物理记录更改级别确定操作的 DML 类型,请检查是否存在旧的有效开始日期和新有效开始日期。
|
changeComponents.logicalType |
仅适用于结束日期有效的业务对象。 指示更改组件是否被视为逻辑记录更改 ( |
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>
对于可用的每个已更改属性:
捕获的属性集及其特定规则(始终存在,仅在发生更改时提供等)可能因业务对象而异。 |
任务 3:运行提取
按照从 HCM 读取优化的数据存储中提取数据教程中介绍的步骤运行定义的提取。
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。