Manage Date Effective Objects

Date effectivity is a temporal data management pattern that adds the dimension of time to an application entity. The pattern keeps track of data changes over time (past, present, future), and the time period includes both the start and end dates. An individual change is identified by date which is commonly referred to as the effective date. The value of a date effective record depends on the date from which you're viewing the data. For example, querying an employee's assignment with an effective date of 12-JUL-2006 might return a different value than querying with an effective date of 01-DEC-2008.

Date effective objects include one or more physical or change records, each of which has an effective start date and may have an effective end date. One physical record is current and available for transactions. Other records are past or take effect in the future. Together, these physical records constitute the logical record or object instance. You can specify the period for which a correction or an update should apply. Data rows that fall within the period you specify get corrected or updated.

Here's an illustration to help you understand the difference between logical records and physical rows. This logical record spans from January 2004 to January 2009 and has three physical rows. The first physical row has an effective start date of January 2004 and an effective end date of January 2005. The second row has an effective start date of January 2005 and an effective end date of January 2007. The third row has an effective start date of January 2007 and an effective end date of January 2009.

Image showing the Logical Records and Physical Rows

For more information about date effective objects, see the guide Using Global Human Resources on the Oracle Help Center.

Effective-Of Header Range Attribute

To create, update, and delete resources, set the Effective-Of HTTP header attribute as follows:

Effective-Of: <RangeAttributeName=Value>;<RangeAttributeName=Value>.

This table shows the supported range attributes.

Range Attribute Description

RangeMode

Specifies a date-effective range mode for update and delete (create is implicit). The range mode defines the required operation to be performed. Here are the supported range modes:

  • PATCH: CORRECTION, UPDATE, END_DATE
  • DELETE: DELETE_CHANGES, ZAP

RangeStartDate

Specifies the start date for the range operation.

RangeEndDate

Specifies the end date for the range operation.

RangeSpan

Specifies the default behavior for a physical row (default value) or a logical row in the range span.

RangeStartSequence

Specifies the starting sequence number for the range operation [Multiple Changes Per Day (MCPD) objects only].

RangeEndSequence

Specifies the ending sequence number for the range operation [Multiple Changes Per Day (MCPD) objects only].

Rules for Range Attributes

Follow these rules when using range attributes.

  • Define the range attributes and date effective attributes EffectiveStartDate (ESD), EffectiveEndDate (EED), EffectiveSequence, and EffectiveLatestChange (ELC) as header attributes where applicable. Don't provide them in the payload for any method, because they are maintained in the application.
  • Record in context is the physical record retrieved using GET with the context date. Context date is the date specified to retrieve data using the effectiveDate parameter in the GET URL. If not provided, it defaults to the sysdate.
  • If header attributes are not applicable for an operation, then they are ignored if provided by the user.

For more details about the header attributes for date effective objects and their behavior for each REST operation, see these sections.

Section Description

GET

Provides details about the date effective header parameters for the GET method with related examples.

POST

Provides details about the date effective header parameters for the POST method with related examples.

PATCH

Provides details about the date effective header parameters for the PATCH method with related examples for Correction, Update, and End Date operations.

DELETE

Provides details about the date effective header parameters for the DELETE method with related examples for DELETE_CHANGES and ZAP operations.