Introducción

Como parte de la capacidad de extraer datos de HCM mediante un almacén de datos optimizado para lectura, HCM Cloud expone la extracción de cambio de objeto.

Object Change es una vista de negocio genérica que representa un cambio de datos en el sistema. Este cambio de datos puede pertenecer a varios objetos de negocio que se pueden manipular en HCM de varias formas, como transacciones de interfaz de usuario de usuario, llamadas de API o procesos de backend.

Puede definir y ejecutar extracciones de cambio de objeto para detectar los cambios que le interesan, según sus necesidades.

Objetivos

Al finalizar este tutorial, comprenderá lo siguiente:

  • Qué son las extracciones de cambio de objeto y qué cambios de datos permiten detectar
  • Cómo utilizar las extracciones de cambio de objeto para detectar eficazmente los cambios de datos

Requisitos

Antes de empezar, familiarícese con la extracción de datos de HCM mediante un almacén de datos optimizado para lectura.

Casos de uso

Esta funcionalidad permite abordar casos de uso como:

  1. Detección de cambios de datos de objetos de negocio específicos
  2. Filtrado por tipo de operación - seguimiento de creaciones, actualizaciones y, en particular, eliminaciones
  3. Seguimiento de los atributos modificados de los objetos de negocio y sus valores antiguos y nuevos

Extractos incrementales:

Esta función no sustituye a las extracciones incrementales, pero sí las complementa. Por ejemplo, las extracciones incrementales no permiten realizar un seguimiento de las supresiones, ni proporcionan información sobre los atributos modificados y sus valores antiguos y nuevos.

Fuentes Atom:

Esta característica es una alternativa más genérica a las fuentes Atom.

Tarea 1: Seleccionar objetos de negocio

A continuación se muestra la lista de nombres completos de objetos de negocio soportados.

Nombre del objeto de origen
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

Los objetos que terminan con DEO son objetos con fecha de vigencia; de lo contrario, son objetos sin fecha de vigencia.

Tarea 2: Definición de un Extract

Defina una consulta de extracción mediante la vista de negocio objectChangeExtracts.

Revise la Tarea 2: preparación y prueba de una consulta de extracción del tutorial Extracción de datos del almacén de datos optimizado para lectura de HCM.

Los siguientes atributos pueden ser útiles para definir filtros de la extracción de cambio de objeto:

Atributo Descripción
sourceObjectName Nombre de objeto de negocio totalmente cualificado. Consulte la lista del paso 1 para ver los valores aplicables
groupSequence Si está presente, indica el número de secuencia del cambio dentro de la transacción de negocio
operationType

Aplicable solo a objetos vigentes sin fecha.

Indica el tipo DML de la operación. Puede ser uno de los siguientes:

  • DELETE
  • INSERT
  • UPDATE
dateEffectiveMode

Solo objetos de fecha de vigencia aplicables.

Indica el tipo de operación de fecha de vigencia. Puede ser uno de los siguientes:

  • 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

Consulte Gestión de objetos con fecha de vigencia en la documentación de la API de REST de HCM para obtener más información.

effectiveDate

Solo objetos de negocio de fecha de vigencia aplicable.

Indica la fecha efectiva del cambio, que puede ser una fecha pasada, presente o futura.

keyAttribute1Name

keyAttribute1DataType

keyAttribute1StringValue

keyAttribute1NumberValue

keyAttribute1DateValue


keyAttribute2Name

keyAttribute2DataType

keyAttribute2StringValue

keyAttribute2NumberValue

keyAttribute2DateValue


keyAttribute3Name

keyAttribute3DataType

keyAttribute3StringValue

keyAttribute3NumberValue

keyAttribute3DateValue

Juego de atributos que permite identificar la instancia de objeto específica, correspondiente a la definición de tabla SQL del objeto de negocio.

Se admiten hasta 3 elementos clave compuestos.

Según el tipo de datos del elemento clave (VARCHAR2 / NUMBER / DATE), se rellenará el atributo de número, cadena o fecha para el elemento clave respectivo.

En el caso de los objetos de negocio con fecha de vigencia, la información clave representa la clave de sustitución del objeto lógico.

purgeDate

Los registros de cambios se depuran continuamente. Este atributo es la fecha de depuración planificada para el registro de cambio.

La política de depuración puede variar entre objetos y eventos. El 99 % de los eventos se retienen durante 90 días o más.

timeCreated Registro de hora de creación del registro de cambio
changeComponents

Un registro de cambio de objeto puede tener uno o más componentes de cambio.

Mientras que un registro de cambios representa un cambio lógico de un objeto, los componentes de cambio proporcionan detalles adicionales, incluidos los de los cambios en el nivel de registros de la base de datos física. Esto es relevante, especialmente para los objetos con fecha efectiva.

Dependiendo de la información que necesite, puede examinar los componentes de cambio para identificar los cambios de los registros físicos individuales.

Por ejemplo, una actualización con fecha efectiva normalmente implica dos operaciones de registros físicos:

  • Actualización de un registro existente (definición de fecha de fin de vigencia)
  • Inserción de un nuevo registro con el nuevo valor

Los componentes de cambio también contendrán cambios en los registros lógicos.

Consulte Gestión de objetos con fecha de vigencia en la documentación de la API de REST de HCM para obtener más información sobre la vigencia de la fecha.

changeComponents.oldEffectiveStartDate

changeComponents.newEffectiveStartDate

changeComponents.oldEffectiveEndDate

changeComponents.newEffectiveEndDate

changeComponents.oldEffectiveSequence

changeComponents.newEffectiveSequence

Solo objetos de negocio de fecha de vigencia aplicable.

Juego de atributos que proporciona detalles de fecha de vigencia de los cambios de registros físicos y lógicos subyacentes

changeComponents.physicalType

Solo objetos de negocio de fecha de vigencia aplicable.

Indica si el componente de cambio se considera un cambio de registro físico (Y / N).

Para determinar el tipo de DML de la operación en el nivel de cambio de registro físico individual, compruebe la existencia de las fechas de inicio de vigencia antiguas y nuevas.

  • Insertar: oldEffectiveStartDate es nulo, newEffectiveStartDate no es nulo
  • Actualización: oldEffectiveStartDate no es nulo, newEffectiveStartDate no es nulo
  • Suprimir: oldEffectiveStartDate no es nulo, newEffectiveStartDate es nulo
changeComponents.logicalType

Solo objetos de negocio de fecha de vigencia aplicable.

Indica si el componente de cambio se considera un cambio de registro lógico (Y / N).

changeComponents.changedAttributes.changedAttributesXml

Detalles de los atributos modificados, incluidos sus valores nuevos y antiguos.

A continuación se muestra el ejemplo de carga útil XML de atributos modificados.

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

Para cada atributo cambiado disponible:

  • Hay un elemento XML con el nombre de atributo
  • El tipo de atributo está presente, uno de los siguientes:
    • V: para valores de texto
    • N: para valores numéricos
    • D: para valores de fecha y registro de hora
  • El elemento oldVal está presente con el valor anterior
  • El elemento newVal está presente con el nuevo valor

El juego de atributos capturados y sus reglas específicas (siempre presentes, presentes solo si se cambian, etc.) pueden variar entre objetos de negocio.

Tarea 3: Ejecutar el Extract

Siga los pasos descritos en el tutorial Extracción de datos del almacén de datos optimizado para lectura de HCM para ejecutar la extracción definida.

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.