!!!CREATE PAY HISTORY INTERFACE
The system allows you to generate an interface file from pay history information for the pay headers and the associated information such as Pay Lines, Pay Line Details, Pay Amounts or the Journal Entries depending on the interface level. The employee's basic information such as Personals, Employments, prime Assignments, Entities, Locations, Jobs, Positions, Departments, Units, Groups can also be used for the interface file. You define the interface file layout on IDIF screen.

!!Required Set Up

!Step 1 - Define Lexicons in [IMLN]
The following lexicons are provided by P2K and used for UPPHF Pay History Interface.
*[X_INTERFACE_TYPE]
*[X_INTERFACE_UPPHF]
*[X_INF_VARIABLE_NAME]

!Step 2 - Define Interface Format in [IDIF]
The system provides starter_IDIF_HL$_UPPHF_ADMIN.sql script to load in [HL$UPPHF-ADMIN] as an example of a fixed format interface file. You should use [Copy Definition] to copy the script into a different Interface code and then enter their own company data.

!IDIF - Update Record Set Up
During the UPPHF run, you have the ability to update certain User Defined Fields (UDF) to indicate that the Interface file has been generated and mark the records as being processed.

You may reference these UDFs in [IDIF] to prevent the same information from being processed again.

On IDIF screen, Record Type '92-Update Record' should be defined at the end of the [IDIF] definition 
* the Variable Name should contain the UDF (xxx) that is to be updated or inserted,e.g. '320629 - UDF (PRN) (32)'

The Constant Value field should contain the name of the UDF, e.g UPPHF_CALPERS_PRN. If this UDF name does not exist on the [IMUF] screen, UPPHF will create the UDF with this name on [IMUF] screen for the Data Base Table to be updated.

The Derivation Expression field should contain the expression that is evaluated to the value to be updated for the UDF

The following derivation expression features can be used to derive the value to be updated:
* multiple fields processing, DECODE, BYPASS, string manipulation, concatenation, function calls, etc.

When UPPHF is run in non-Trial mode, Record Type '92-Update Record' will be processed at the appropriate levels to check if the UDF should be updated for the associated Data Base tables.

From above example:
*Rec#500 Field#10 indicates to update 'UDF (PRN)', this will be processed at the end of each qualified pay run
*Rec#500 Field#20 indicates to update 'UDF (PPH)', this will be processed at the end of each qualified pay header
*Rec#500 Field#30 indicates to update 'UDF (PPL)', this will be processed at the end of each qualified pay line
*Rec#500 Field#40 indicates to update 'UDF (EEM)', this will be processed at the end of each qualified pay header
*Rec#500 Field#50 indicates to update 'UDF (EASD)', this will be processed at the end of each qualified pay line

If the UDF is for a variable name that can be varied at the Pay Line level, then the UDF will be updated at each Pay Line level, e.g. 'UDF (DDD)', each pay line may point to a different department, therefore the UDF may be updated at the Pay Line level for that department

Using the Returned Value of the derivation expression, UPPHF finds if the UDF already exists; if the UDF exists and the new value is different than the existed UDF value, it will be updated;  if the UDF does not exist, it will be inserted

List of UDF supported in UPPHF from [X_INF_VARIABLE_NAME] are:
*320606 - UDF (EID) (32)
*320607 - UDF (EEM) (32)
*320608 - UDF (EPS) (32)
*320610 - UDF (EASD) (32)
*320621 - UDF (DED) (32)
*320623 - UDF (DDD) (32)
*320624 - UDF (DLN) (32)
*320626 - UDF (DUD) (32)
*320628 - UDF (DGD) (32)
*320629 - UDF (PRN) (32)
*320630 - UDF (PPH) (32)
*320631 - UDF (PPL) (32)

After UDFs are updated or inserted in UPPHF, the number of records updated for each Data Base table will be displayed on the UPPHF  report

The number of UDFs updated represents the number of times the tables are being touched. These may not necessarily be the exact number of UDF for that table. e.g. UDF (EEM) may be touched two times if an employee has two pay headers to update the same EEM, but with a different value.

----
!!Report Parameters
||Report Parameters||
|From Pay Period |This is an optional field. You may select a From Pay period for the Payroll code specified.
|To Pay Period |This is an optional field. You may select a To Pay period for the Payroll code specified.
|From Pay Issue Date| This is an optional field. You may select a From Pay Issue date for the pay headers.
|To Pay Issue Date |This is an optional field. You may select a To Pay Issue date for the pay headers. If the From-To Pay Issue dates are entered, each pay header's Pay Issue date must be within this date range in order to be processed.
|As Of| This date is used to retrieve pay runs that are with the Pay Period end date or Pay Issue Date that is on or prior to this As Of date.
|Interface Format Code| Select Interface Format Code that is with the Interface Type of '32-Pay History Interface'
|Interface Level| This is a mandatory field. Specify the level of Interface file to be produced.
|Directory Name| Enter a valid directory name for interface file.
|File Name |Enter the file name of the interface file. If the word 'mex' is specified in the file name, then it will be replaced with the current execution id of UPPHF run. For a fixed format file, you may specify a file with extension .txt. For a comma delimited format file, you may specify a file with extension .csv For the XML file, you may specify a file with extension .XML
|Exception Level| If the exception level is '0', only exception messages will be printed. If the exception level is '1', one line will be printed per pay header with performance time. If the exception level is '2', one line will be printed per pay header with performance time and one line per Detail Level 1 record. If the exception level is '8' or '9', full utility trace is available only if the user selects by Person code. Otherwise UPPHF will internally reset to exception level '1' due to the volume of trace messages.


||Report Filters||
|Entity |This is a mandatory field. You must enter one 'Entity Code' to be processed.
|Person Code| You may enter a list of 'Person Code' filters.
|Department| This is an optional field. Multiple 'Department Code' filters are allowed to be entered.
|Authorization| This is an optional field. You may enter either one or multiple 'Authorization area' filters. The authorization area is retrieved from either the pay header or pay line's assignment if authorization exists at assignment level. Otherwise it is retrieved from the position of the assignment if it exists, otherwise retrieve from the department of the assignment.
|Org Level Type| This is an optional field. You may enter either one or multiple 'Org Level Type' filters. You may enter 'Org Type 02', 'Org Type 03', etc to process applicable level types or you may enter 'Org Type 02' to process only this level.
|Org Level| This is an optional field. You may enter either one or multiple 'Org Level' filters. If multiple Org Level Types are entered, then you may process across multiple levels.
|Unit| This is an optional field. Multiple 'Unit Code' filters are allowed to be entered.
|Group |This is an optional field. Multiple 'Group Code' filters are allowed to be entered.
|Payroll| This is a mandatory field. You must enter one 'Payroll Code' to be processed. The pay headers must belong to this payroll code in order to be processed.
|Cost Center| This is an optional field. Multiple 'Cost Center Code' filters are allowed to be entered. The cost centers are retrieved from the pay lines and therefore are not applicable at the Pay Header level.
|Pay Run Number| This is an optional field. You may select a list of Pay Run numbers for the Payroll code specified.