Understanding Triggers

This topic discusses:

  • Trigger uses.

  • Trigger table data.

  • Trigger generation.

  • Managing used or obsolete triggers.

  • Defining triggers manually.

In Absence Management, the mechanism used to detect online data changes that should result in iterative, retroactive, or segmentation processing is called a trigger. To set up triggers, you select the database records and fields that you want to make sensitive to data changes such as job location changes and terminations; then, when the change occurs, the system writes a line of data to a table called a trigger table to tell the system how to process the change.

There are three types of triggers:

  • Iterative

    An iterative trigger tells the system to process (or reprocess) a payee in the current open calendar, possibly because payee data has changed or the payee was placed in suspended mode during batch processing. The system generates only one iterative trigger per payee per open calendar group, regardless of the number of calendars in the calendar group. When data changes for the payee, the system (using online code) generates iterative triggers that enable the batch process to recalculate the payee, add the payee to the calendar run, or remove the payee from the calendar run.

  • Retroactive

    A retroactive (or retro)trigger tells the system to reprocess previously calculated (closed) calendars. For example, this can occur when a payee's absence type for days reported changes and the change goes back to a prior calendar. The absence data must be reprocessed to ensure that the payee receives the right amount of absence days for the correct type of absence.

    See Understanding Retroactive Processing.

  • Segmentation

    A segmentation trigger tells the system to segment all or a subset of absence elements in an absence run in response to a change in payee data.

    See Understanding Segmentation Setup.

You can generate triggers in two ways:

  • Manually: Doesn't require you to set up trigger definitions. You create triggers manually for a given payee.

    See Managing Automatically Generated Triggers and Defining Triggers Manually.

    Note: You can generate triggers manually only for retroactive and segmentation triggers.

  • Automatically: Requires you to set up trigger definitions. These trigger definitions tell the system how and when to generate "automatic" triggers when a database change occurs.

Once triggers are generated (manually or automatically), the batch process uses the trigger to perform the proper action.

When a trigger is generated by a change to a record or record and field combination, the system writes the data needed to process the change to a trigger table. Each type of trigger has a separate table for storing this data.

Iterative Trigger Table

The information generated by an iterative trigger is stored in the iterative trigger table (GP_ITER_TRGR). This table contains the following data:

Field

Purpose

EMPLID

Iterative triggers are payee-level triggers generated from records that have Employee ID as part of their key structure. The EMPLID identifies the payee affected by the change that generates the trigger.

Mass triggers function differently and are not restricted to records that have Employee ID as part of their key structure.

See Understanding Mass Triggers.

CAL_RUN_ID

Identifies the calendar run in which the iterative trigger is processed.

TRGR_CREATE_TS

The system date and time when a trigger is generated (for information only). If you change data so that the same iterative trigger is generated repeatedly, a timestamp is needed to keep the instances unique.

ITER_TRGR_STATUS

Identifies whether the system is processing a trigger. Options are:

Canceled: You can cancel a trigger whose status is Unprocessed on the Payee Triggers - Iterative page.

In-Process: For triggers that are being considered by the batch process.

Processed: For triggers that were processed by the system and can't be reconsidered.

Unprocessed: For triggers that haven't been processed by the system.

ITER_TRGR_SRC

Identifies how the iterative trigger is generated. Options are:

Batch: For triggers that are generated during batch processing.

Online: For triggers that are generated by the online code.

COUNTRY

The country code associated with the iterative trigger.

RECNAME

Identifies the source record from which the iterative trigger is generated.

FIELDNAME

Identifies the field that generates the iterative trigger in response to a data change.

TRGR_FLD_VAL_CHAR

Identifies the character value change that causes the iterative trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_DT

Identifies the date value change that causes the iterative trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_NUM

Identifies the numeric value change that causes the iterative trigger to be generated. This field is not populated if the trigger is defined at the record level only.

When an iterative trigger is generated by a data change, the system writes the employee ID, the country, and the calendar run ID along with other information to the trigger table to facilitate iterative processing by the batch code.

Among other things, this data tells the system:

  • Which payees to process or reprocess.

  • Which open calendars to process.

In addition, the system uses the RECNAME, FIELDNAME, TRGR_FLD_VAL_CHAR, TRGR_FLD_VAL_DT, and TRGR_FLD_VAL_NUM fields to identify the source of an iterative trigger (the record, field, and/or field value changes that generate a trigger). This information enables a clearer understanding of what causes iterative processing of a payee's absences, and can be used to facilitate debugging or answer queries.

Note: You can view the trigger source data stored in this table on the Iterative page.

See Iterative Page.

Retroactive Trigger Table

The information generated by a retroactive trigger is stored in the retroactive trigger table (GP_RTO_TRGR). This table contains the following data:

Field

Purpose

EMPLID

Retroactive (or retro) triggers are payee-level triggers generated from records that have Employee ID as part of their key structure. The EMPLID identifies the payee affected by the change that generates the trigger.

Mass triggers function differently and are not restricted to records that have Employee ID as part of their key structure.

See Understanding Mass Triggers.

COUNTRY

The country code associated with a retroactive trigger.

TRGR_EVENT_ID

The trigger event ID associated with record, field, or value changes as defined in the trigger setup.

TRGR_EFFDT

The effective date tells the system which periods to process retroactively (for example, a retro trigger with an effective date of January 1, 2006 tells the system to reprocess all calendars beginning with the January 2006 absence run).

TRGR_CREATE_TS

The system date and time when a trigger is generated (for information only). If you change data so that the same retroactive trigger is generated repeatedly, a timestamp is needed to keep the instances unique.

RTO_TRGR_SRC

Identifies how the retro trigger is generated. Options are:

Automatic: Identifies triggers that are generated by the online code.

Manual: Denotes manually generated triggers.

Utility-Generated: Not available.

TRGR_STATUS

Identifies whether the system is processing a trigger. Options are:

Canceled: You can cancel a trigger whose status is Unprocessed on the Payee Triggers page.

In-Process: Denotes triggers that are being considered by the batch process.

Processed: Identifies triggers that were processed by the system and can't be reconsidered.

Unprocessed: Identifies triggers that haven't been processed by the system.

TRGR_DESCR

This field serves as the trigger tag or description of a trigger. For use with the Utility-Generated source value.

CAL_RUN_ID

Identifies the calendar run in which the retroactive trigger is processed.

RECNAME

Identifies the source record from which the retro trigger is generated.

FIELDNAME

Identifies the field that generates the retro trigger in response to a data change.

TRGR_FLD_VAL_CHAR

Identifies the character value change that causes the retro trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_DT

Identifies the date value change that causes the retro trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_NUM

Identifies the numeric value change that causes the retro trigger to be generated. This field is not populated if the trigger is defined at the record level only.

When a retroactive trigger is generated by a data change, the system writes the employee ID, the effective date of the change (also called the trigger effective date), the country, and the associated event ID along with other information to the trigger table to facilitate retroactive processing by the batch code.

Among other things, this data tells the system:

  • Which payees to process.

  • Which periods to process retroactively, based on the trigger effective date.

  • Which process definition to use to recalculate prior periods.

In addition, the system uses the RECNAME, FIELDNAME, TRGR_FLD_VAL_CHAR, TRGR_FLD_VAL_DT, and TRGR_FLD_VAL_NUM fields to identify the source of a retro trigger (the record, field, and/or field value changes that generate a trigger). This information enables a clearer understanding of what causes retroactive processing of a payee's absences, and can be used to facilitate debugging or answer queries.

Note: You can view the trigger source data stored in this table on the Retro page.

See Retro Page.

Note: You can generate multiple rows of trigger data for one event by making multiple record and field combinations sensitive to retroactive data changes. For example, a retroactive change in hire date and a retroactive change in pay group might both generate retro triggers for the same event. In the case of multiple retro triggers, the earliest trigger effective date is used to drive limit calculations, which, in turn, direct retroactive calculations.

Segmentation Trigger Table

The information generated by a segmentation trigger is stored in the segmentation trigger table (GP_SEG_TRGR). This table contains the following data:

Field

Purpose

EMPLID

Segmentation triggers are payee-level triggers generated from records that have Employee ID as part of their key structure. The EMPLID identifies the payee affected by the change that generates the trigger.

Mass triggers function differently and are not restricted to records that have Employee ID as part of their key structure.

See Understanding Mass Triggers.

EMPL_RCD

Identifies the job affected by a segmentation event.

COUNTRY

The country code associated with the segmentation trigger.

TRGR_EVENT_ID

The trigger event ID associated with a triggering condition, as defined in your setup. It tells the system what type of segmentation to apply and the elements to segment (in the case of element segmentation).

TRGR_EFFDT

The effective date tells the system how to segment a period (for example, a segmentation trigger with an effective date of June 15 tells the system to divide the June period into two segments, one with the dates June 1 to June 15, and another with the dates June 16 to June 30).

TRGR_CREATE_TS

The system date and time when a trigger is generated (for information only). If you change data so that the same segmentation trigger is generated repeatedly, a timestamp is needed to keep the instances unique.

SEG_TRGR_SRC

Identifies how the segmentation trigger is generated. Options are:

Automatic: Identifies triggers generated by the online code.

Manual: Denotes manually generated triggers.

SEG_TRGR_STATUS

Identifies whether the system is processing a trigger. Options are:

Active: Indicates that the trigger has been written out and will remain active until canceled by a user.

Canceled: You can cancel a trigger whose status is Active on the Payee Triggers page.

SEG_TRGR_LVL

Specifies whether a trigger is payee-level or at the payee-job (EMPL_RCD) level trigger. Instructs the system to process for one job only or for all jobs.

CAL_RUN_ID

Identifies the first calendar group ID that uses a segmentation trigger. If the segmentation trigger is reused because of retroactivity, the calendar group ID isn't updated.

RECNAME

Identifies the source record from which the segmentation trigger is generated.

FIELDNAME

Identifies the field that generates the segmentation trigger in response to a data change.

TRGR_FLD_VAL_CHAR

Identifies the character value change that causes the segmentation trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_DT

Identifies the date value change that causes the segmentation trigger to be generated. This field is not populated if the trigger is defined at the record level only.

TRGR_FLD_VAL_NUM

Identifies the numeric value change that causes the segmentation trigger to be generated. This field is not populated if the trigger is defined at the record level only.

When a segmentation trigger is generated by a data change, the system writes the employee ID, the effective date of the change (also called the trigger effective date), the country, and the associated event ID along with other information to the trigger table to facilitate retroactive processing by the batch code.

Among other things, this data tells the system:

  • Which payees to process.

  • The dates to use for the period segments or slices.

  • What type of segmentation to use and the elements to segment (in the case of element segmentation).

In addition, the system uses the RECNAME, FIELDNAME, TRGR_FLD_VAL_CHAR, TRGR_FLD_VAL_DT, and TRGR_FLD_VAL_NUM fields to identify the source of a segmentation trigger (the record, field, and/or field value changes that generate a trigger). This information enables a clearer understanding of what causes segmentation of a payee's absences, and can be used to facilitate debugging or answer queries.

Note: You can view the trigger source data stored in this table on the Segmentation page.

See Segmentation Page.

This topic discusses the concept of trigger effective date types (Trigger Effdt Type) and trigger levels, and describes how and when the system generates triggers based on effective date types and trigger levels.

Effective Dates and Effective Date Types

All triggers except iterative triggers are stored in the trigger tables with their trigger effective dates (TRGR_EFFDT). These dates are based on—but are not necessarily identical to—the dates of the database changes that cause the triggers to be generated. In the PeopleSoft system, these database change dates are recorded in the following fields: Effective Date, Begin and End Date, and Fixed Date fields. Because of the central role played by these fields, retro and segmentation triggers can only be generated from dated records: retroactive triggers can only be defined for records with Effective or Begin and End Date fields, or records with Fixed Date fields; and segmentation triggers can only be defined for records with Effective Date fields.

Based on which date field is the source of the trigger effective date, every retro and segmentation trigger falls into one of the following effective date types:

  • Effective Date: Trigger date is based on an Effective Date field.

  • Begin/End Date: Trigger date is based on a Begin or End Date field.

  • Fixed Date: Trigger date is based on a fixed date that has been passed as a parameter to the generic PeopleCode function Generate_Triggers.

    See Implementing Triggers.

When the system processes retro and segmentation triggers, it uses the effective date type to determine what date to use as the trigger effective date.

Note: Iterative triggers do not use the concept of trigger effective dates, since the change date is irrelevant to their function, which is to trigger the calculation or recalculation of the current absence run for a specific payee. They can be defined for non-effective-dated records as well as effective-dated and begin and end dated records.

Trigger Levels

When you set up triggers in Absence Management, you must specify the level at which the system responds to database changes. You can set up the system to generate triggers in response to effective or begin and end date changes to any field in a record (trigger level = Record), to all changes to a specific field in the record (trigger level = Field, Non Value Based), or only when a specific value is entered in the field (trigger level = Field, Value Based). The trigger level determines when and under what conditions the system generates triggers.

Rules for Iterative Triggers: Generating Triggers

Iterative triggers are generated only when an open calendar group exists; the calendar group must be "Identified."

When the trigger level is Record, the system generates an iterative trigger if a row is added, changed, or deleted.

When the trigger level is Field, Non-Value-based, the system generates an iterative trigger if:

  • A row and the field are changed.

  • A row is added or deleted.

    Note: For Field, Non-Value-based triggers, adding a row causes a trigger to be generated only if the field value changes.

When the trigger level is Field, Value-based, besides observing the rules for non-value-based triggers, the system generates an iterative trigger only if the value of the added, changed, or deleted row matches a value you specified earlier, or you have chosen to generate triggers even if no values match.

Rules for Retroactive Triggers: Setting Trigger Effective Dates and Generating Triggers

When Trigger Effdt Type is Effective Date:

  • By default, if a row is added, the system uses the effective date as the trigger effective date.

    Note: Although the default is to use the change date (the effective date of the added row) as the trigger effective date, you can modify effective dating of retro triggers on the Trigger Definitions – Field Values page so that the trigger date falls before or after the actual change date.

    See Trigger Definitions - Field Values Page.

  • If a row is deleted, the system uses the initial effective date as the trigger effective date.

  • If a row is changed, the system uses the earlier of the initial effective date and the changed effective date as the trigger effective date.

The initial effective date is the effective date with which the row was loaded. The changed effective date is the effective date of the row at save time. If you haven't changed the effective date, it's the same as the initial effective date. If you've changed the effective date, it is different from the initial effective date.

When Trigger Effdt Type is Begin/End Date:

  • By default, if a row is added, the system uses the begin date as the trigger effective date.

    Note: Although the default is to use the change date (the begin date of the added row) as the trigger effective date, you can modify effective dating of retro triggers on the Trigger Definitions – Field Values page so that the trigger date falls before or after the actual change date.

    See Trigger Definitions - Field Values Page.

  • If a row is deleted, the system uses the initial begin date as the trigger effective date.

  • If a row is changed and the end date is the only changed field, the system uses the earlier of the initial end date and changed end date as the trigger effective date; otherwise, the system uses the earlier of the initial begin date and the changed begin date as the trigger effective date.

The initial begin date is the begin date with which the row was loaded. The changed begin date is the begin date of the row at save time. If you haven't changed the begin date, it's the same as the initial begin date. If you've changed the begin date, it is different from the initial begin date.

The initial end date is the end date with which the row was loaded. The changed end date is the end date on the row at save time. If you haven't changed the end date, it's the same as the initial end date. If you've changed the end date, it's different from the initial end date.

Note: With absences, the system uses the begin date as the trigger effective date even if you change the end date. If an existing row is voided, and a new row is created, the system uses the begin date as the trigger effective date.

When Trigger Effdt Type is Fixed Date, the trigger date is the date that you specify as a parameter in the PeopleCode function Generate_Triggers.

When Trigger Level is Record:

  • The system generates a retro trigger if a row is added, changed, or deleted.

  • If you change multiple rows, the earliest trigger date from all the changed rows is used as the trigger effective date.

When Trigger Level is Field, Non-Value-based:

  • If a row is added or deleted, the system finds the maximum effective-dated row that's earlier than the trigger date for the row.

    If the field value differs between the prior row and the added or deleted row, the system generates a retroactive trigger.

  • If a row and the field value are changed, the system generates a retroactive trigger regardless of whether the effective date for that row is changed.

  • If a row and the effective date for that row are changed (assume the effective date before the change is the "old date" and the effective date after the change is the "new date"):

    • If the field is changed, the system generates a retroactive trigger.

    • The system finds the row whose maximum effective date is less than the new date.

      If the field value differs between the prior row and the changed row, a retroactive trigger is generated.

    • The system finds the row whose maximum effective date is less than the old date.

      If the field value differs between the prior row and the changed row, a retroactive trigger is generated.

  • If a prior row isn't found, the added, changed, or deleted row is the first row in the buffer.

    In this case, a retroactive trigger is generated with the primary event ID specified in the trigger definition.

When Trigger Level is Field, Value-based, besides observing the rules for non-value-based triggers, the system generates a retroactive trigger only if the value of the added, changed, or deleted row matches a value you specified earlier or you've chosen to generate a trigger even if no values match.

Rules for Segmentation Triggers: Setting Trigger Effective Dates and Generating Triggers

For Absence Management, you can generate segmentation triggers only from records whose Trigger Effdt Type is Effective Date.

See Segmentation Page.

Segmentation triggers aren't generated for deleted rows.

When Trigger Effdt Type is Effective Date:

  • If a row is added, the system uses the effective date of the added row as the trigger effective date.

  • If a row is changed, the system uses the effective date of the change as the trigger effective date (not the initial effective date).

Note: The initial effective date is the effective date with which the row was loaded. The changed effective date is the effective date of the row at save time.

  • If a row is added, the system uses the begin date as the effective date of the initial trigger, and the end date + 1 as the effective date of the terminal trigger.

  • If a row is changed and the end date is the only changed field, the system uses the changed end date + 1 as the new terminal trigger effective date. If a row is changed and the begin date is the only changed field, the system uses the changed begin date as the new initial trigger effective date.

The initial begin date is the begin date with which the row was loaded. The changed begin date is the begin date of the row at save time. If you haven't changed the begin date, it's the same as the initial begin date. If you've changed the begin date, it is different from the initial begin date.

The initial end date is the end date with which the row was loaded. The changed end date is the end date on the row at save time. If you haven't changed the end date, it's the same as the initial end date. If you've changed the end date, it's different from the initial end date.

When Trigger Level is Record, the system generates a segmentation trigger if a row is added or changed.

When Trigger Level is Field, Non-Value-based:

  • If a row is added or changed, the system finds the row whose maximum effective date is less than the added or changed row.

    If the field value differs between the prior and current row, the system generates a segmentation trigger.

  • If a prior row cannot be found:

    • If the field value is changed, the system generates a segmentation trigger.

    • If it is a new row, the system generates a segmentation trigger for all specified fields.

When Trigger Level is Field, Value-based, besides observing the rules for non-value-based triggers, the system generates a segmentation trigger only if the value of the added or changed row matches a value you specified earlier or you have chosen to generate triggers even if no values match.

The Absence Management system automatically marks retro and iterative triggers as used once they initiate the required processing so that they do not affect future calculations. In addition, you can manually cancel both iterative and retro triggers that have been created in error or that you do not want to impact absence processing. By contrast, segmentation triggers are designed to remain active in the system, since if a segmentation event occurs during a calculation period, it should trigger segmentation every time the period is processed. However, there are times when segmentation events need to be modified or removed after they are entered in the system, either because they should not have been entered at all, the dates of the event were entered incorrectly, or other data was recorded incorrectly. The Absence Management system addresses the problem of unnecessary segmentation triggers by automatically deleting them in response to the following data changes at each of the three trigger levels (Record, Field-Non Value Based, Field-Value Based ):

Data Change

Record Trigger Level

Field – Non Value Based Trigger Level

Field – Value Based Trigger Level

Effective, Begin, or End Date Correction

Yes

Yes

Yes

Field Value Correction

No

Yes

Yes

Row Deletion

Yes

Yes

Yes

Important! The system only deletes automatically generated triggers, not manually generated triggers or mass triggers.

Note: Although the system automatically removes segmentation triggers in the situations described here, you can also manually cancel segmentation triggers just as you can iterative and retro triggers. To manage and cancel triggers, use the pages in the Review Triggers (GP_TRIGGER) and Review Iterative Triggers (GP_TRGRITER_CALRUN) components.

Example: Removing a Segmentation Trigger In Response to a Change In the Effective Date of a Row

Assume that there is a Field, Value Based trigger on the JOB record.

The field and field values defined to generate triggers are Action and DTA (data change) or TER (termination).

Assume that you change the effective date of a termination action (TER) from November 15 to November 20.

When the effective date associated with this action changes, the system should:

  • Delete the old trigger associated with the changed source row.

  • Insert a new trigger with a new trigger effective date.

User Action

Field Change

Effdt/Effseq

Trigger Action

Trigger Effdt

Source Field Value

Trigger Event ID

Existing Row

DTA

10/20/05

Insert

10/20/05

DTA

Event 1

Existing Row

TER

11/15/05

Insert

11/15/05

TER

Event 1

Correction

TER

11/20/05

Delete

11/15/05

TER

Event 1

Insert

11/20/05

TER

Event 1

In this example, the effective date of the November 15 termination row changes to November 20. As a result, the system deletes the November 15 trigger and creates a new trigger with an effective date of November 20.

Example: Removing a Segmentation Trigger In Response to a Change In a Field Value

Assume that there is a Field, Value Based trigger on the JOB record.

The field and field values defined to generate triggers are Action and PAY (pay rate change) or TER (termination).

Assume that you change the Action value of an October 20 effective-dated row from TER (termination) to DTA (data change).

When the effective date associated with this action changes, the system should delete the old trigger without creating a new one:

User Action

Field Change

Effdt/Effseq

Trigger Action

Trigger Effdt

Source Field Value

Trigger Event ID

Existing Row

PAY

01/01/05

Insert

01/01/05

PAY

Event 1

Existing Row

TER

10/20/05

Insert

10/20/05

TER

Event 1

Existing Row

DTA

11/15/05

None

TER

Event 1

Correction

DTA

10/20/05

Delete

10/20/05

TER

Event 1

No Trigger

In this example, the value of the October 20 effective-dated row changes from TER to DTA. Because DTA is not a recognized value for trigger generation (only TER and PAY are set up to generate triggers), the system deletes the trigger with the October 20 effective date without generating a new one.

Example: Removing a Segmentation Trigger In Response to a Change In a Field Value

Assume that there is a Field, Value Based trigger on the JOB record.

The field and field values defined to generate triggers are Action and DTA (data change) or TER (termination).

Assume that you change the Action value of a July 1, 2005 effective-dated row from PAY (pay rate change) to DTA (data change), and that there is a second, preexisting row with a value of DTA and an effective date of January 1, 2006. This example shows that the latter row is affected by the change to the earlier row:

User Action

Field Change

Effdt/Effseq

Trigger Action

Trigger Effdt

Source Field Value

Trigger Event ID

Existing Row

PAY

01/01/05

None

DTA

Event 1

Existing Row

PAY

07/01/05

None

TER

Event 1

Existing Row

DTA

01/01/06

Insert

01/01/06

TER

Event 1

Correction

DTA

07/01/05

Delete

No trigger to delete.

TER

Event 1

Insert

07/01/05

Delete

01/01/06

No Trigger

In this example, the value of the July 1, 2005 effective-dated row changes from PAY to DTA. Because trigger generation is based on field value changes, and there is no change between the July 1, 2005 and January 1, 2006 rows (both have a field value of DTA), the system deletes the trigger originally created for the latter row, and inserts a new trigger with a July 1, 2005 effective date. Note that there are no triggers for the PAY rows, as PAY is not a value that has been defined for trigger generation.

Special Rules for Field-Based Segmentation Triggers for Records Containing EFFSEQ (Effective Sequence) Field

There are special rules for managing field-based segmentation triggers if the record contains the field EFFSEQ (for example, the JOB record):

  • When the trigger definition is Field – Non Value Based, the trigger generation PeopleCode inserts a trigger for a given effective date using only the highest effective sequence row. That is, only the highest effective sequence row per effective date matters when the trigger definition is Field – Non Value based. This prevents unnecessary trigger generation when you enter first one effective sequence row and then another with the same effective date to correct errors in the first row.

  • When the trigger definition is Field – Value Based, the trigger generation PeopleCode inserts a separate trigger for each effective sequence row with a given effective date. In other words, all effective sequence rows are processed when the trigger definition is value based. This is to accommodate situations in which it is necessary or desirable to have multiple effective sequence rows. For example, there are some fields such as JOB.ACTION in which you might enter a transfer and a promotion one after another on the same day. This field would most likely have a value-based trigger definition.

In addition to setting up the system to generate triggers automatically, you can enter triggers manually on the Review Triggers component (GP_TRIGGER) by selecting the trigger type, the trigger effective date, the process definition, and other data needed by the system to initiate retroactive or segmentation processing.

Note: Iterative triggers can not be added manually.

See Managing Automatically Generated Triggers and Defining Triggers Manually.