Effective Dates

Effective dates enable you to keep historical, current, and future information in tables. You can use the information to review the past and plan for the future. Three types of effective dates are available:

Term Definition

Future

Data rows that have effective dates that are after the system date, which is usually today’s date.

Current

Data row with the most recent effective date that is closest to today’s (system) date, but not a future date. Only one row is the current row.

History

Data rows that have effective dates before the current data row.

The EFFDT (Effective Date) field has special properties related to the processing of effective dates on rows and should be used only when needed.

Unlike regular date fields, which you can use anywhere in the system, use the EFFDT field only in record definitions for which you want to maintain data history—future, current, and past—to store rows of data in sequence. Using EFFDT fields only for this circumstance enables you to store multiple occurrences of data based on when it goes into effect.

For effective-dated rows, you can have multiple occurrences of future and history but only one current row of data.

EFFDT is almost always a key and almost never a list item. Activate the Descending Key attribute so that the row with the most recent effective date appears first on pages. You might enter %DATE (current system date) as the default constant for this field.

Note:

Alternatively, you can use %CLIENTDATE as the default constant for the date field. %CLIENTDATE adjusts the date as appropriate to the time zone of the browser.

To enable you to track an accurate history of your effective-dated information, the system invokes special logic when you access a record definition that contains EFFDT. The action that you select dictates whether you can access the row type and what you can do with each type of row:

Action Type View Change Insert New Rows

Update/Display

Current, Future

Future Only

Effective Date Greater Than the Current Row

Update/Display All

History, Current, Future

Future Only

Effective Date Greater Than the Current Row

Correction

History, Current, Future

All Existing Rows

Add New Rows with No Effective Date Restrictions

Note:

For records that do not contain EFFDT, all actions (Update/Display, Update/Display All, and Correction) operate the same way: they retrieve all existing rows for the specified keys.

When you run a page with effective-dated records and you insert a row, the system copies the contents of the previous row into the new row to save you keying time. In a large effective-dated table, you do not want to reenter all of the data when only a single field changes. Also, anytime you insert an effective-dated row using PeopleCode, the system copies the contents of the previous row.

Term Definition

Effective Status

In prompt tables, EFF_STATUS (Effective Status) usually accompanies EFFDT. When used with EFFDT, it is part of the mechanism that enables the system to select the appropriate effective-dated rows.

You can also use EFF_STATUS by itself as a simple status field, but do not change the translate values. They must be A (active) and I (inactive) for EFFDT to work properly. If you need a status field with different values, use or define a different field.

Effective Sequence

The EFFSEQ (Effective Sequence) field serves different purposes, depending on whether it is paired with EFFDT. If EFFSEQ is not paired with EFFDT, then EFFSEQ has no special function and can be used as a simple sequencing field wherever you need one.

If EFFSEQ is paired with EFFDT, it enables you to enter more than one row with the same effective date. You assign a unique sequence number to each row that has the same effective date. Do not make EFFSEQ a required field; a value of unrequired allows the first EFFSEQ to be zero. Select Display Zero in the page definition to have zeros appear on the page.

For example, suppose that you want to enter both a transfer and a pay rate change for an employee, and both actions are effective on the same day. Enter the transfer on the job data pages as usual, and leave the Effective Sequence Number field as 0 (zero). Then, insert a row to enter the change in pay rate. This time, the effective date is identical to the previous row, but enter 1 in the Effective Sequence Number field.