Understanding User Code

This section provides overviews of:

  • User code usage

  • User code executables

  • User code module names

Pension Administration provides a flexible and comprehensive set of calculation options. However, you might need to configure calculation components to exactly conform to your plan rules.

Although configurations enable you to control the system, they can complicate system maintenance, particularly upgrades. Any time that you receive new code from PeopleSoft, you must ensure that the new code does not overlay the configurations that you have instituted.

Because of the potential maintenance issues, the best way to manage your configuration is to isolate your custom code. You must still analyze the effect of PeopleSoft code changes on your configured code, but keeping the PeopleSoft code and your custom code separate makes it easier to reapply configurations after an upgrade.

To help you isolate your modifications, PeopleSoft provides clearly marked user code exit points on many of the system's parameter pages. Each of these represents a specifically defined portion of one of the system's delivered functions. When you select the user code option, the calculation runs the configured COBOL module that derives the expected value.

Note: This section discusses user code modules that are associated with the system's core functions. You can also create user code modules that are not associated with core functions. To incorporate these independent user code modules into the calculation, enter them directly on the Plan Implementation page.

Each component that offers user code options is associated with a single user code executable—with one exception: All service and break components share a single executable. The system predefines the executable name for a component. All custom processing for a function belongs in the module associated with that function.

To set up multiple definitions with separate modifications, ensure that your code includes logic that checks the definition name to determine the appropriate processing.

If a function has multiple user code points, the delivered user code module already has subsections for the different points. When Pension Administration calls the user code module, the main section performs the appropriate user code subsection, based on the point from which the user code was called.

In all cases, your module must pass back the appropriate values, based on the user code options that are selected.

A calculation calls the following modules when it recognizes that a user code option has been selected. Each of these modules is delivered as an empty shell that you can modify. User code modules names begin with PAPX, followed by characters to identify the individual function.

None of the aliases (the components on the Variables menu) employ user code options.

Function

User Code Module Name

Consolidated earnings

PAPXCERN

Consolidated hours

PAPXCHRS

Service

PAPXSVC

Vesting

PAPXVEST

Final average earnings

PAPXAERN

Cash balance accounts

PAPXABAL

Early and late retirement factors

PAPXAGE

Death coverage factors

PAPXDTH

Optional forms of payment

PAPXOPTF

415 limits

PAPX415

Rules

User Code Module Name

Date conversion options, date round options, and duration options

PAPXDTGN

Actuarial assumptions

PAPXCMFN

401(a)(17) parameters

PAPXELMT

The following functions and rules do not include user code options:

  • Plan eligibility.

  • Participation.

  • Retirement eligibility.

  • Employee accounts.

  • Social security primary insurance amount (PIA).

  • Covered compensation.

  • Benefit formula.

  • Employee-paid benefit.

  • Consolidated contributions.

  • Interest methods.

  • Projections.

  • Human Resources (HR) action and reason categories.