Options for Updating Date-Effective Objects with Future-Dated Records

When you update a date-effective object, your changes may affect more than one of its existing date-effective records. Also, some of the affected records may have effective start dates that are later than the effective start date of the update.

Such records are known as future-dated records. This topic describes how updates to future-dated records are processed in each of the maintenance modes. It also shows how to set the maintenance mode.

This table shows the date-effective history of a Job object.

Effective Start Date

Effective End Date

Job Code

Job Name

Regular Temporary

Full Part Time

Active Status

2010/06/08

2012/01/09

ACC1

Accounts Clerk

T

PART_TIME

A

2012/01/10

2012/03/03

ACC1

Accounts Clerk

T

FULL_TIME

A

2012/03/04

4712/12/31

ACC1

Accounts Administrator

T

FULL_TIME

A

If you update the object specifying an effective start date of 2011/01/01, then a new date-effective record is generated for 2011/01/01. This update changes the effective end date of the 2010/06/08 record. It also affects both the 2012/01/10 and 2012/03/04 records. The exact effect on these existing future-dated records depends on:

  • The maintenance mode, which can be either Retain or Replace

  • The effective end date value, if any, that you supply

Retain Mode or Replace Mode

This table summarizes the combined effects of the maintenance mode and effective end date on existing future-dated records.

Mode

Effective End Date Value

Description

Retain

#RETAIN

Existing attribute values in future-dated records are retained. Your updates don't affect these values. All existing records are retained.

Retain

#ALL

Changed attribute values are carried forward to all future-dated records until the end of time. All existing records are retained.

Tip: Leaving the effective end date blank or setting it to 4712/12/31 has the same effect as specifying the #ALL token. However, you must use the #ALL token to carry forward changes for objects that have a specific end date.

Retain

Specific date other than 4712/12/31

Changed attribute values are carried forward to future-dated records until the specified end date. All existing records are retained.

Replace

Specific date or blank

A single record replaces existing date-effective records for the date range specified on the update.

Retain mode is recommended when you're applying an incremental update to an existing record. Replace mode, which is the default mode, is useful during data migration, when you're uploading the complete data for a record.

Note: Replace mode may have unexpected consequences if you upload less than the complete data for a record.

In both modes:

  • A new date-effective record is generated for the object if you specify an effective start or end date for which no date-effective record currently exists.

  • Only the attributes for which you supply values are updated.

Setting the Maintenance Mode

Use the SET command to set the maintenance mode for a date-effective object. This table shows the set command to include in the data file.

Mode

SET Command

Retain

SET PURGE_FUTURE_CHANGES N

Replace

SET PURGE_FUTURE_CHANGES Y

If you include neither of these SET commands in a data file, then the default mode is Replace. The default mode can be overridden for the enterprise using the Date-Effective Update Mode configuration parameter.