Working with COBOL Processes
This topic discusses how to:
Review delivered COBOL processes.
Review delivered COBOL processes for special events.
Create COBOL routines.
Use the Process Table component - Interface Process Table page, Process Description field to review descriptions of the COBOL processes that are delivered with Payroll Interface.
The delivered COBOL processes are either field or record processes (you can associate a process with either a field or a record) that perform processing tasks outside the normal scope of Payroll Interface.
See Setting Up the Process Table.
Example: Process ID 000015
This COBOL process performs a validation against some data values and sets the value of the field to which the process is attached to one of the values listed in the Interface Process Table page, Returned Value field. Because the timing is Before Field Translation, you can then use these values in the Field Translation list. The list of values in theReturned Value field documents the process so that you know which values can be used in the Field Translation list and what they represent. This technique enables you to leverage one COBOL routine for two fields.
This process is useful because the PeopleSoft system stores certain tax values in two separate fields: one field for percents and another field for flat amounts. For this type of field, some payroll systems have one field with a Type code to specify whether it is a percent or an amount. The COBOL process determines which PeopleSoft field contains the value and returns those fields that are equal to the one identified in the Returned Value field. The Payroll Interface process then converts or translates the value in theReturned Value field to another value based on the Field Translation list.
Delivered Processes
This table lists and describes the COBOL processes that are delivered with PeopleSoft Payroll Interface:
Process ID |
Process Phase |
Description |
Type |
User Defined Process |
User Exit Program |
Description |
---|---|---|---|---|---|---|
000001 |
Record Processing |
Ded End Dt |
Record |
No |
None |
When the primary PeopleSoft source for the transaction is additional earnings, matches the earnings end date against the pay end date to determine whether the additional earnings should be stopped. |
000002 |
Before Field Translation |
Area Code |
Field |
No |
None |
Extracts the U.S. area code from the phone number field if the field contains 10 characters. If the field contains fewer than 10 characters, spaces are returned. |
000003 |
Before Field Translation |
City Code1 |
Field |
Yes |
PIPSPADP |
Returns the locality code for the City 1 field. If the employee has more than one locality code defined, the code returned is where he or she works. |
000004 |
Before Field Translation |
City Code2 |
Field |
Yes |
PIPSPADP |
Uses the City2 Code value only if resident state and work state are different. Uses the translate entries when needed. |
000005 |
Before Field Translation |
Cnt Deduct |
Field |
Yes |
PIPSPADP |
Adds 1 to a counter for deductions using fields that are mapped to the ON1 field. Issues a warning message when the employee has more than 24 deductions. |
000005 |
Export File Creation |
Tilde Chr |
Field |
No |
None |
For delimited data file structures only. Inserts a Delete character as defined in the working storage of the COBOL program PIPXPRCS.CBL A tilde (~) follows the value of the field to be deleted. Only works when invoked from a Process Control record definition. |
000006 |
Record Processing |
Co change |
Record |
No |
None |
Recognizes that the PeopleSoft company ID for this employee has changed. When using this process, the PeopleSoft company ID must be mapped to a field within the record. If the converted value for the PeopleSoft company ID changes, the record containing this process ID is formatted. |
000008 |
After Field Translation |
Excess |
Field |
Yes |
PIPSPADP |
Returns the translated deduction code for the direct deposit bank account identified to contain the "excess" within PeopleSoft. |
000008 |
Export File Creation |
Skip Blank |
Field |
Yes |
PIPXPADP |
Bypasses this field in the output file if the Export Full option is selected and the field is blank. |
000009 |
Before Field Translation |
Lcl recip |
Field |
Yes |
PIPSPADP |
Creates values to apply to the translate table. If Local 2 exists, then Field 1 will be resident local and Field 02 will be work local. |
000010 |
Before Field Translation |
First Name |
Field |
No |
None |
Extracts the first name from the PeopleSoft Name field on the Personal Data Table. |
000011 |
Before Field Translation |
Last Name |
Field |
No |
None |
Extracts the last name from the PeopleSoft Name field on the Personal Data Table. |
000012 |
After Field Translation |
New Hire |
Field |
Yes |
PIPSPADP |
Sets the new hire action to a lowercase N. This is set when no history records exist for the employee. |
000013 |
Before Field Translation |
Old PI ID |
Field |
No |
None |
Uses the employee's previous PI_EMPLID. |
000014 |
Before Field Translation |
Before Field Translation |
Field |
No |
None |
Maps the previous export value for this field into the current record. |
000015 |
Before Field Translation |
Pct or Amt |
Field |
No |
None |
Derives a type code from data in two related numeric fields. The first is the amount; the second is the percent. Both fields must be on the same table and row. The return values reflect non-zero entries in the fields. Examples include Federal Tax Data, Additional Amount, and Additional Percent. |
000016 |
Export File Creation |
Bypass Rec |
Record |
No |
None |
Bypasses the entire record on the output file. |
000016 |
Import Processing |
Bypass Rec |
Record |
Yes |
PIPMPADP |
Validates and bypasses the record during the import process. |
000017 |
Before Field Translation |
Phone No |
Field |
No |
None |
Extracts the 7-digit phone number from the free-form Phone field. |
000018 |
Record Processing |
Pygrp chg |
Record |
No |
None |
Recognizes that the PeopleSoft pay group for this employee has changed. When using this process, the PeopleSoft pay group must be mapped to a field within the record. If the translated value for the PeopleSoft pay group changes, the record containing this process ID is formatted. |
000019 |
After Field Translation |
Rehire Cd |
Field |
Yes |
PIPSPADP |
If the employee's status code was terminated the last time this employee's data was exported, but the current status code is Active, sets the Rehire code. |
000020 |
Before Field Translation |
RmSlsh/Dsh |
Field |
No |
None |
Returns the data value from the PeopleSoft database minus any embedded slashes or dashes. Use to return the U.S. ZIP code value without the separating dash and to return a phone number without dashes. |
000021 |
Before Field Translation |
State 2 Cd |
Field |
Yes |
PIPSPADP |
Uses the Resident State Code if resident state and work state are different. Uses the translate entries when needed. |
000022 |
Before Field Translation |
Std Hours |
Field |
No |
None |
Calculates standard hours per pay period from standard weekly hours and pay frequency of the pay group. |
000023 |
Record Processing |
Stop DirDp |
Record |
No |
None |
Recognizes that the Direct Deposit code no longer applies for this employee. The record containing this process ID is formatted. |
000024 |
Record Processing |
Stop AdPay |
Record |
No |
None |
Recognizes that Additional Payment no longer applies for this employee. The record containing this process ID is formatted. |
000025 |
Before Field Translation |
Stop Code |
Field |
No |
None |
Returns a Yes indicator (a returned value of "Y") when one of the following events occurs: Stop Deduction, Stop Direct Deposit, Stop Additional Pay, PI Employee ID change, Company change or Pay Group change. |
000026 |
Record Processing |
Stop Ded |
Record |
No |
None |
Recognizes that the deduction code no longer applies for this employee. The record containing this process ID is formatted. |
000027 |
Record Processing |
Stop Goals |
Record |
No |
None |
Recognizes that deduction goals no longer apply for this employee. The record containing this process ID is formatted. |
000028 |
Before Field Translation |
Stop Date |
Field |
No |
None |
Returns a stop date when any of the following events occur: Stop Deduction, Stop Direct Deposit, Stop Additional Pay, PI Employee ID change, Company change and Pay Group change. The date supplied is the pay begin date minus one day. If the event does not occur, spaces are supplied for the stop data. |
000029 |
Record Processing |
Stop Save |
Record |
No |
None |
Recognizes that the savings plan deduction no longer applies for this employee. The record containing this process ID is formatted. |
000030 |
Before Field Translation |
ST Recip |
Field |
Yes |
PIPSPADP |
Creates values to apply to the translate table. If State 2 exists, then Field 1 is the resident state and Field 2 is the work state. |
000031 |
Record Processing |
Transfer |
Record |
Yes |
PIPSPADP |
Detects when the transfer transaction should be formatted. |
000031 |
Export File Creation |
Transfer |
Record |
Yes |
PIPXPADP |
Recognizes when the PI_EMPID for an employee has changed. The transfer transaction is generated to include the appropriate change indicators for the fields that have changed. |
000032 |
Before Field Translation |
MD Local % |
Field |
No |
None |
Calculates the Maryland locality percentage. Translate values apply only when State 1 is Maryland. |
000033 |
After Field Translation |
SUI/SDI |
Field |
Yes |
PIPSPADP |
Generates an error message and does not export the employee's data to ADP if a change is detected in this field and the employee has not been assigned a new PI_EMPLID. Use to validate a change to the SUI/SDI state tax code. |
000034 |
Before Field Translation |
> 3 DirDep |
Field |
Yes |
PIPSPADP |
Edits the employee data for more than three direct deposit accounts. |
000035 |
After Field Translation |
New PI ID |
Field |
No |
None |
Uses the current or "new" PI-EMPLID when the old PI_EMPLID is not the same as the current PI_EMPLID assigned to the PeopleSoft employee ID. |
000036 |
Import Processing |
DPA09 |
Field |
Yes |
PIPMPADP |
Saves pay date 1 from the Direct Pay header record for access by process 000040. |
000037 |
Import Processing |
DPA10 |
Field |
Yes |
PIPMPADP |
Saves the pay period end date 1 from the Direct Pay header record for access by process 000040. |
000038 |
Import Processing |
DPA11 |
Field |
Yes |
PIPMPADP |
Saves the pay date 2 from the Direct Pay header record for access by process 000040. |
000039 |
Import Processing |
DPA12 |
Field |
Yes |
PIPMPADP |
Saves pay period end date 2 from the Direct Pay header record for access by process 000040. |
000040 |
Import Processing |
DPB11 |
Field |
Yes |
PIPMPADP |
Selects pay dates 1 or 2 from the Direct Pay header record. PI_CHECK key fields are based upon the value of this field. |
000041 |
Import Processing |
PCX 3E8 |
Field |
Yes |
PIPMPADP |
Updates PI-BALANCE_YEAR, PI_BALANCE_PERIOD and PI_BALANCE_QTR based upon the as of date. |
000042 |
Import Processing |
PCX 3E9 |
Field |
Yes |
PIPMPADP |
Updates all of the current employee's balance entries before they are inserted in the database. |
000043 |
After Field Translation |
Goal Amts |
Field |
Yes |
PIPSPADP |
Paired with special process 000044. Does not send the goal limit amount if it is zero on setup. Formats the reset of a goal limit amount to zero when needed. |
000044 |
After Field Translation |
Goal Code |
Field |
Yes |
PIPSPADP |
Pairs the Goal Limit codes with the Goal Limit Amount. |
000045 |
Before Field Translation |
Middle Int |
Field |
No |
None |
Retrieves the person's middle initial from the Name field. Names are entered last name, first name, and middle name. This routine takes the first character following the space after the first name. |
000046 |
Before Field Translation |
Middle Nme |
Field |
No |
None |
Retrieves the person's middle name from the Name field. |
000047 |
Export File Creation |
Skip Field |
Field |
Yes |
PIPXPADP |
Causes the export process to bypass the field on the output file when the Export Full option is used and the field is blank. |
000048 |
Export File Creation |
Bypass Fld |
Field |
No |
None |
Bypasses the field in the output transaction file. |
000049 |
Record Processing |
Eff Status |
Record |
No |
None |
Checks the effective status field. If it is not active, the data will not be formatted for export. |
000050 |
Record Processing |
CSV |
Record |
Yes |
PIPSPRCS |
Marks records with a stop deduction as having a stop on the PI Partic Export. |
000200 |
Before Field Translation |
GVT Remark |
Field |
No |
None |
(USF only) Creates an array of remarks codes from the SF50 remarks for inclusion in EPIC Record. |
000201 |
Before Field Translation |
Tang Amt |
Field |
No |
None |
(USF only) If Tangible Benefits > 0 sets to "Y" else blank. |
000202 |
Before Field Translation |
Intang Amt |
Field |
No |
None |
(USF only) If Intangible Benefits > 0 sets to "Y" else blank. |
000203 |
Export File Creation |
Geo Code |
Field |
No |
None |
(USF only) Process GVT_GEOLOC_CD Code. |
000204 |
Before Field Translation |
Hire Date |
Field |
No |
None |
(USF only) Hire Date evaluation. |
000205 |
Before Field Translation |
Posn Title |
Field |
No |
None |
(USF only) Position Title Code/Description. |
The Definition Table component - Interface Definition Record page, Process ID field enables you to access COBOL processes that signal special events (transactions) such as a Stop Deduction. These events set an indicator that can be used later by another special process indicator. The following table lists the processes that PeopleSoft Payroll Interface delivers for special events.
See Setting Up the Definition Table.
Note: The processes listed in this topic are a subset of the COBOL processes that are delivered with Payroll Interface.
See Reviewing Delivered COBOL Processes.
See Working with Transactions.
Process ID |
Description |
Record Type |
Special Event |
---|---|---|---|
00001 |
0N1 Change |
Data |
Used for logical file types. Assigned to data records for DED_CALC and savings. |
000023 |
Stop DirDP |
Process |
Stops direct deposit. |
000024 |
Stop AdPay |
Process |
Stops additional payment. Assigned the stop record. |
000026 |
Stop Ded |
Process |
Stop deduction. Assigned the stop record. |
000027 |
Stop Goals |
Process |
Stop deduction goal. Assigned the stop record. |
000029 |
Stop Save |
Process |
Stop savings plan deduction. Assigned the stop record. |
000050 |
Savings, Additional Pay |
Data |
Assigned to the data records for non-logical file formats (such as CSV) for additional pay and savings plan before and after tax. These record IDs must be named: "SAVE" for before-tax savings "SPAT" for after-tax savings "APAY" for additional pay |
You can create your own COBOL routines for use with Payroll Interface. The system isolates your COBOL routines from the delivered Payroll Interface COBOL processes and calls them by retrieving the name specified on the Process Table component - Interface Process Table page, User Exit Program field.
Shell programs for three user exit invocation points are provided with Payroll Interface. You can use these programs as templates for your COBOL routines:
PIPMPOTH: For routines performed during the Import process.
PIPSPOTH: For routines performed during the Export process select/compare phases.
PIPXPOTH: For routines performed during the Export process create export file phase.
To define your own COBOL routine:
Make a copy of the shell program that is associated with the Payroll Interface process phase in which your special process routine will be performed.
Do not modify the shell programs. These programs are set up with all the necessary working storage and linkage section data elements already defined and should be preserved as modules for future development.
Change all references to the shell program name to the name of your new routine.
Follow the PeopleSoft naming convention to make it easier to identify the timing of your own routines. You should change the last three characters of the program name to the system ID for which the routine is written. For example, the ADP system ID has three routines: PIPMPADP, PIPSPADP, and PIPXPADP.
Select a process ID for your new routine.
Review copy member PICPRCSW.CBL and select an unassigned number between 80000 and 899999. These numbers will not be used by PeopleSoft development. Add an 88 level description for your new routine in the copy member. Code your program logic and compile your program.
Define your new routine to Payroll Interface by setting up a process ID using the Process Table component.
Note: For AS400 and Oracle/VMS platforms, you must specify the calls to your user exit programs in copy member PICUEXIT.CBL. Edit this copy member to add your new program in the appropriate place.