Understanding Triggers

This topic discusses:

  • Trigger uses.

  • Trigger table data.

  • Trigger generation.

  • Managing used or obsolete triggers.

  • Segmentation triggers with earning and deduction assignments.

  • Defining triggers manually.

In Global Payroll, 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 pay increases, 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 rate of pay changes and the change goes back to a prior calendar. The payroll data must be reprocessed to ensure that the payee receives the correct payment amounts.

    See Understanding Retroactive Methods.

  • Segmentation

    A segmentation trigger tells the system to segment all or a subset of payroll elements in a pay 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 earnings, 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/Description

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 pay periods to process retroactively (for example, a retro trigger with an effective date of January 1, 2000 tells the system to reprocess all calendars beginning with the January 2000 payroll 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 triggered 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 triggered 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 triggered 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 earnings, 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 pay period (for example, a segmentation trigger with an effective date of June 15 tells the system to divide the June pay 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 a payee-level or a payee-job (EMPL_RCD) level trigger. Instructs the system to process for one job only or for all jobs.

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 triggered 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 triggered 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 triggered is defined at the record level only.

TRGR_FLD_VAL_PIN

Contains the PIN number of the element (earning or deduction) that causes the segmentation trigger to be generated. This applies only to triggers that result from an element assignment in the earning/deduction assignment record GP_PYE_OVRD.

See Understanding Overrides.

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, TRGR_FLD_VAL_NUM, and TRGR_FLD_VAL_PIN 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 earnings, 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 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, with one exception: the system can also generate segmentation triggers from the begin and end dated earning/deduction assignment record GP_PYE_OVRD.

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 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 pay 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 PeopleSoft Global Payroll, 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 dated 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 have been "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 Effective Date 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 Effective Date 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 Effective Date 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 that 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

With the exception of the begin and end dated earning and deduction assignment record GP_PYE_OVRD, you can generate segmentation triggers only from records whose Trigger Effective Date Type is Effective Date.

See Segmentation Triggers with Earning and Deduction Assignments.

Segmentation triggers aren't generated for deleted rows.

When Trigger Effective Date Type is Effective Date:

  • If a row is added, the system use 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.

When Trigger Effective Date Type is Begin/End Date:

Note: The only begin and end dated record for which you can define segmentation triggers is the earning and deduction assignment record GP_PYE_OVRD

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

    Note: When a segmentation trigger is generated from the begin and end dated record GP_PYE_OVRD, the system creates two triggers, each with a different trigger effective date—one based on the begin date, and another based on the end date. For example, assume that you assign a deduction to a payee with begin and end dates of June 10 and June 20, and that you process payrolls on a monthly calendar. The system creates a trigger with an effective date of June 10 (the initial trigger), and a second trigger with an effective date of June 21 (the terminal trigger with an effective date of end date + 1). Based on these trigger dates, the system divides the period into three segments: 1–10 June, 11–20 June, and 21–30 June.

  • 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 Global Payroll 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 payroll 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 Global Payroll system addresses the problem of unnecessary triggers left by segmentation events 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 PAY (pay rate 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

PAY

10/20/05

Insert

10/20/05

PAY

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 PAY (pay rate change) or TER (termination).

Assume that you change the Action value of a July 1, 2005 effective dated row from DTA (data change) to PAY (pay rate change), and that there is a second, preexisting row with a value of PAY 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

DTA

01/01/05

None

PAY

Event 1

Existing Row

DTA

07/01/05

None

TER

Event 1

Existing Row

PAY

01/01/06

Insert

01/01/06

TER

Event 1

Correction

PAY

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 DTA to PAY. 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 PAY), 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 DTA rows, as DTA 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 Global Payroll you can define segmentation triggers only for effective dated records, with one exception: you can define segmentation triggers for the begin and end dated earning and deduction assignment record GP_PYE_OVRD. This exception enables you to assign an earning or deduction to a payee on the Element Assignment by Payee (GP_ED_PYE) or Payee Assignment by Element (GP_ED_ELEM) components, and segment (and prorate) the element when the assignment begin date comes after the pay period begin date, and/or the assignment end date comes before the period end date.

For example, assume that an earning element E1 for 300 USD is assigned to a payee with begin and end dates of 10 and 20 June respectively (assume a monthly pay period), and that the system is set up to trigger segmentation from the earning and deduction assignment record for this element. Based on the assignment begin and end dates, the system will slice the pay period into three segments and process–and prorate–the element in the second slice:

Element

Slice 1

June 1–10

Slice 2

June 11–20

Slice 3

June 21–30

Earning = E1

Calculation Rule = Amount

Amount = 300

Element not resolved in slice 1.

Resolved amount = 100 (proration factor = .333333333)

Element not resolved in slice 3.

Note: The only type of segmentation that can be defined for the GP_PYE_OVRD record is element segmentation.

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.

See Managing Automatically Generated Triggers and Defining Triggers Manually.