Here is an example of an interface that was defined for a specific customer to load a source file into IPSN.
The file format is a fixed format. There is one header record and one trailer record in the file, and there is only one detail record per employee. The detail record may hold four different deductions (different positions within the record in the file and different PCs).
When the employee opts out of the sundry deduction, the record in the file is filled with zeros. As a result of file format, the same file will need to be loaded using eight different interfaces. The LMTD would be run twice, once for four of the interfaces to insert new sundries and update existing ones with new amounts. The same file would be run a second time using LMTD with four different interfaces, required in case an employee opted out of a sundry.
Each interface will have a qualifier record to make sure that only the value in the specified beg/end pos is read, the other amounts will be disqualified.
Each interface will have different beg/end positions defined for the PSL.TIME_ENTERED field. Also the PSL.PPC_ID.PC_CODE field in each interface will specify a different PC Code.
Interface for Inserting New and/or Updating Existing Records with New Amounts#
Two of the four insert/update interfaces are displayed below.
Rec # | Field # | Name | Beg Pos | End Pos | Field Type | Constant Value | Derivation Expression | Notes |
---|---|---|---|---|---|---|---|---|
0 | 0 | HEADER RECORD* | -1 | -1 | Record Type must be Header Record. | |||
1 | 1 | PSL.EAS_ID.ASSIGNMENT_CODE | -1 | -1 | Char | PRIMARY | This will hard code the Assignment Code with PRIMARY | |
1 | 2 | PSL.EEM_ID.EID_ID.PERSON_CODE | 1 | 9 | Char | LTRIM(~,'0') | This will trim any leading zeros | |
1 | 3 | PSL.START_DATE | 57 | 66 | Char | TO_CHAR(TO_DATE(RTRIM(~), 'MM/DD/YYYY'),'DDMon-YYYY') | This will format the incoming date to the Personality standard. | |
1 | 4 | PSL.END_DATE | -1 | -1 | Char | 31-Dec-3999 | This will hard code the End Date with 31-Dec-3999 | |
1 | 5 | PSL.PPC_ID.PC_CODE** | -1 | -1 | Char | 5490 | This will hard code the PC Code field with 5490 | |
1 | 6 | PSL.TIME_ENTERED | 67 | 74 | Char | TO_NUMBER(~)/100 | This will take the provided value and divide it by 100 since the amt provided does not include any decimal places. | |
1 | 7 | PSLD.PPC_ID.PC_CODE** | -1 | -1 | Char | |||
1 | 8 | PSLD.AMOUNT | -1 | -1 | Char | |||
1 | 9 | PSL.PFQ_ID.FREQUENCY_CODE | -1 | -1 | Char | ALL-PAYS-1ST | This will hard code the Frequency field with ALLPAYS-1st. If the Frequency ever changes, the IDIF Constant field must be updated with the new Frequency. | |
1 | 10 | PSL.TIME_BASIS | -1 | -1 | Char | $ | This will hard code the Basis field with $. | |
1 | 11 | PSL.F_QUALIFIER*** | -1 | -1 | Char | TRUE | CASE when (:PSL.TIME_ENTERED <> '00000000') then 'TRUE' else 'FALSE' end | This is used as a qualifier to ensure the LMTD only inserts/updates IPSN for PC 5490. This will ensure the other amounts are ignored for this particular interface. |
1 | 12 | PSL.EEM_ID.EID_ID.PERSON_CODE** | 1 | 9 | Char | LTRIM(~,'0') | This will trim any leading zeros | |
1 | 13 | PSL.SUNDRY_LINE_TYPE | -1 | -1 | Char | 01 | This will update the Sundry Type with Sundry | |
1 | 14 | PSLD.PC_ACTION | -1 | -1 | Char | A | This has been hard coded to A for Accumulate. | |
1 | 15 | PSLD.PC_DETAIL_TYPE | -1 | -1 | Char | 30 | This has been hard coded to 30 for 'Computed Value'. | |
1 | 16 | PSLD.PC_RATE_SOURCE | -1 | -1 | Char | 01 | Hard coded to be 'Primary Assignment' | |
1 | 17 | PSLD.PC_CALC_METHOD | -1 | -1 | Char | 00 | Hard Coded to be 'EV:Entered Value' | |
1 | 18 | PSL.PAY_POINT_TASK | -1 | -1 | Char | 01 | Hard Coded to be 'Pay Detail' | |
2 | 0 | TRAILER RECORD**** | -1 | -1 | Char | Record Type must be Trailer Record |
- * Record 0, Field 0 must have a Record Type of HEADER TRAILER
- **Fields 5, 7 and 12 must have the Add to UK toggle checked ON
- *** Field 11 must have a Record Type of QUALIFY RECORD
- **** Record 2, Field 0 must have a Record Type of TRAILER RECORD
This is the 2nd interface for the same file. This will load another deduction found within the same record as above, but in a different position (PSL.TIME_ENTERED field).
Rec # | Field # | Name | Beg Pos | End Pos | Field Type | Constant Value | Derivation Expression | Notes |
---|---|---|---|---|---|---|---|---|
0 | 0 | HEADER RECORD* | -1 | -1 | Record Type must be Header Record. | |||
1 | 1 | PSL.EAS_ID.ASSIGNMENT_CODE | -1 | -1 | Char | PRIMARY | This will hard code the Assignment with PRIMARY | |
1 | 2 | PSL.EEM_ID.EID_ID.PERSON_CODE | 1 | 9 | Char | LTRIM(~,'0') | This will trim any leading zeros | |
1 | 3 | PSL.START_DATE | 57 | 66 | Char | TO_CHAR(TO_DATE(RTRIM(~), 'MM/DD/YYYY'),'DDMon-YYYY') | This will format the incoming date to the Personality standard. | |
1 | 4 | PSL.END_DATE | -1 | -1 | Char | 31-Dec-3999 | This will hard code the End Date with 31-Dec-3999 | |
1 | 5 | PSL.PPC_ID.PC_CODE** | -1 | -1 | Char | 5491 | This will hard code the PC Code field with 5491 | |
1 | 6 | PSL.TIME_ENTERED | 75 | 82 | Char | TO_NUMBER(~)/100 | This will take the provided value and divide it by 100 since the amt provided does not include any decimal places. | |
1 | 7 | PSLD.PPC_ID.PC_CODE** | -1 | -1 | Char | 5491 | ||
1 | 8 | PSLD.AMOUNT | -1 | -1 | Char | |||
1 | 9 | PSL.PFQ_ID.FREQUENCY_CODE | -1 | -1 | Char | ALL-PAYS-1ST | This will hard code the Frequency field with ALLPAYS-1st. If the Frequency ever changes, the IDIF Constant field must be updated with the new Frequency. | |
1 | 10 | PSL.TIME_BASIS | -1 | -1 | Char | $ | This will hard code the Basis field with $. | |
1 | 11 | PSL.F_QUALIFIER*** | -1 | -1 | Char | TRUE | CASE when (:PSL.TIME_ENTERED <>'00000000') then 'TRUE' else 'FALSE' end | This is used as a qualifier to ensure the LMTD only inserts/ updates IPSN for PC 5491. This will ensure the other amounts are ignored for this particular interface. |
1 | 12 | PSL.EEM_ID.EID_ID.PERSON_CODE** | 1 | 9 | Char | LTRIM(~,'0') | This will trim any leading zeros | |
1 | 13 | PSL.SUNDRY_LINE_TYPE | -1 | -1 | Char | 01 | This will update the Sundry Type with Sundry | |
1 | 14 | PSLD.PC_ACTION | -1 | -1 | Char | A | This has been hard coded to A for Accumulate. | |
1 | 15 | PSLD.PC_DETAIL_TYPE | -1 | -1 | Char | 30 | This has been hard coded to 30 for 'Computed Value'. | |
1 | 16 | PSLD.PC_RATE_SOURCE | -1 | -1 | Char | 01 | Hard coded to be 'Primary Assignment | |
1 | 17 | PSLD.PC_CALC_METHOD | -1 | -1 | Char | 00 | Hard Coded to be 'EV:Entered Value' | |
1 | 18 | PSL.PAY_POINT_TASK | -1 | -1 | Char | 01 | Hard Coded to be 'Pay Detail' | |
2 | 0 | TRAILER RECORD**** | -1 | -1 | Char | Record Type must be Trailer Record |
- * Record 0, Field 0 must have a Record Type of HEADER RECORD
- ** Fields 5, 7 and 12 must have the Add to UK toggle checked ON
- *** Field 11 must have a Record Type of QUALIFY RECORD
- **** Record 2, Field 0 must have a Record Type of TRAILER RECORD
Interface for Updating Existing Records with Zero Amounts#
Below is a sample interface for the scenario described in the previous section which would be used to update the existing deductions in IPSN to a 0.00 amount when an employee opted out of the deduction. This interface has fewer records since it is only updating the current record.
The other three interfaces would be similarly defined but with different PC Codes and with different Beg and End positions defined for the time entered and amount fields.
Rec # | Field # | Name | Beg Pos | End Pos | Field Type | Constant Value | Derivation Expression | Notes |
---|---|---|---|---|---|---|---|---|
0 | 0 | HEADER RECORD* | -1 | -1 | Char | Record Type must be Header Record. | ||
1 | 1 | PSL.EAS_ID.ASSIGNMENT_CODE | -1 | -1 | Char | PRIMARY | This will hard code the Assignment Code with PRIMARY | |
1 | 2 | PSL.EEM_ID.EID_ID.PERSON_CODE | 1 | 9 | Char | LTRIM(~,'0') | This will trim any leading zeros | |
1 | 3 | PSL.START_DATE** | 57 | 66 | Char | TO_CHAR(TO_DATE(RTRIM(~), 'MM/DD/YYYY'),'DDMon-YYYY') | This will format the incoming date to the Personality standard. | |
1 | 4 | PSL.END_DATE | -1 | -1 | Char | 31-Dec-3999 | This will hard code the End Date with 31-Dec-3999 | |
1 | 5 | PSL.PPC_ID.PC_CODE** | -1 | -1 | Char | 5490 | This will hard code the PC Code field with 5490 | |
1 | 6 | PSL.TIME_ENTERED | 67 | 74 | Char | 0.00 | This will take the provided value and divide it by 100 since the amt provided does not include any decimal places. | |
1 | 7 | PSLD.PPC_ID.PC_CODE** | -1 | -1 | Char | 5490 | ||
1 | 8 | PSLD.AMOUNT | -1 | -1 | Char | 0.00 | ||
1 | 9 | PSL.F_QUALIFIER*** | -1 | -1 | Char | TRUE | CASE when (:PSL.F_SUNDRY_END) = '00000000000000000000000000000000' then 'TRUE' else 'FALSE' end | This is used as a qualifier to ensure the LMTD only inserts/ updates IPSN for PC 5490. This will ensure the other amounts are ignored for this particular interface. |
1 | 10 | PSL.EEM_ID.EID_ID.PERSON_CODE** | 1 | 9 | Char | LTRIM(~,'0') | ||
1 | 11 | PSL.F_SUNDRY_END | 67 | 98 | Char | |||
2 | 0 | TRAILER RECORD**** | -1 | -1 | Char | Record Type is Trailer Record. |
- * Record 1, Field 0 must have a Record Type of HEADER RECORD
- ** Fields 3, 5, 7 and 10 must have the Add to UK toggle checked ON
- *** Field 9 must have a Record Type of QUALIFY RECORD
- **** Record 2, Field must have a Record Type of TRAILER RECORD