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