[{TableOfContents }]

!!!DEFINE INTERFACE FORMATS
The Define Interface Formats (IDIF) screen allows you to define the interface formats. The header section of the form identifies the interface being defined. The detail section outlines each record and field, and transformations to be performed.

The definition data for the Define Interface Formats screen is stored in the [P2K_CM_INTERFACE_FORMATS] and [P2K_CM_INTERFACE_FIELDS] tables.

!!Define Interface Formats’ Usage and Examples
;[Code|INTERFACE_CODE]:This field identifies the name of the interface. 
;[Interface Type|INTERFACE_TYPE]:This field identifies the program to be executed and restricts the variables that are available. 
;[File Format|FIELD_DELIMITER]:This field identifies how the data is going to be created. e.g.fixed position, comma or tab delimited, XML. 
;[Form Type|FORM_TYPE]:This field is typically used for legislation type interfaces such as [UPROEF]. 
;[Description|DESCRIPTION]:This field provides a brief description of the purpose of the interface. 
;[File Name|FILE_NAME]:This field specifies the default file name; otherwise the file name is entered on a parameter in the function. 
;[File Creation Number|FILE_CREATION_NUMBER]:Some programs (mostly banking ones) use this number to uniquely identify the execution. 
;[Taxation Level|TAXATION_LEVEL]:This field is used for year end and quarterly reporting by functions such as [RPYEC] and [RPYEU]. 
\\
The details section of the form includes a grid where the fields are mapped to positions within the file. Not all of the detail fields are used by all of the programs using interfaces.
\\
\\
;[Record Number|RECORD_NUMBER]:This is a user assigned record number. Each record number generates a new line in the interface file. The following are suggested record numbers. You can set up your own numbers.
|__Record Number__ |__Interface File Records Generated__
|0 |Qualify Records
|1 - 29| Header Records
|30 - 69| Detail Records
|70 - 99 |Trailer Records

;[Field Number|FIELD_NUMBER]:This is a user assigned number.
;[Name|FIELD_NAME]:This is a user assigned field name.
;[Beginning Position|FIELD_START_BYTE]:This field will be the starting value for the fixed position in the file. If the File Format = 'Fixed Format', you must specify the Beginning and Ending positions. These positions must be continuous without gap, otherwise an error situation will occur. Beginning/Ending positions are not needed for XML and other file formats - the value -1 should be used.
;[Ending Position|FIELD_END_BYTE]:This field will be the ending position for the for the fixed position in the file. If the File Format = 'Fixed Format', you must specify the Beginning and Ending positions. These positions must be continuous without gap, otherwise an error situation will occur. Beginning/Ending positions are not needed for XML and other file formats - the value -1 should be used. 
;[Field Type|FIELD_TYPE]:Field Type can be defined as 'Char', 'Number' or 'Date'.
;[Variable Name|X_INF_VARIABLE_NAME]:Variable Name is used for outbound interfaces only. 
;[Sort Sequence|SORT_SEQUENCE]:This field specifies the sort sequence for this Record #, Field # and is used for Record # with Record Type = 'Detail Record' only \\For Record # with Record Type = 'Detail Level 1' to 'Detail Level 5', it uses the same Sort from Record Type = 'Detail Record' so that the Detail Level n records are followed after the 'Detail Record'
;:e.g. Interface File need to sort by: Department, Employee First Name, Last Name
* For the Fld# entry that specify 'Department', enter sort sequence: 100
* For the Fld# that specify 'Employee First Name', enter sort sequence: 150
* For the Fld# that specify 'Employee Last Name', enter sort sequence: 200
;:All Sort sequences must be entered on entries with the same Record Number.
;:Sort Sequence is not supported for XML file format because XML file may specify many different Record # to generate XML begin and end tags and the XML tags are not able to sort along with the data.
;[Format Mask|FORMAT_MASK]:The format mask is applicable to Numeric and Date field.
;[Record Type|RECORD_TYPE]:Record Type is typically only used for outbound interfaces. 
;[Record Identifier|RECORD_IDENTIFIER]:This field is not currently used.
;[XML Tag|XML_TAG]:This optional field is used for XML File Format only. If XML Tag is not specified for XML File, then the Name field is used as XML Tag.
;[Reference Id|REFERENCE_ID]: This field is used in the [UEINH] program. This will contain the ID of the column to be loaded.
;[Constant Value|CONSTANT_VALUE]:If the Variable Name = 'Constant Value', this field specifies the Constant Value to be used. 
;:If the Variable Name = 'User Calc', this field specifies the User Calc Name
;:If the Variable Name = 'Statistics Amt', this field specifies the Statistics Code
;:If the Variable Name = 'Element', this field specifies the Element Code
;:If the Variable Name = 'Total Value', this field specifies the Rec# and Field # of the Detail Records to be totaled
;:e.g. Record # 50 Field 70 is to be totaled and Total option = 'Calculate Total', then the Trailer record can report the 'Total Value', Constant value should be 5070
;[Add to UK Set|ADD_TO_UK]:Used to manually add columns to the destination tables' UK column set by toggling the 'Add to UK set' check box. This will only add the column as a UK column to the existing UK set for the destination table. It will not act as a UK set override.
;[Print Zero Rule|PRINT_ZERO_RULE]:This field is applicable to the Numeric field only and is used for Record Type = 'Detail Record'.
;:If the amount is zero, this field indicates to include this amount in the interface file or not.
;:e.g. if the field is from 'Statistics Amount' and the amount is zero, the user may not want to report this amount
;:If all the numeric amounts are zero within one Record# and the Print Zero Rule are set to 'Do not Print zeros' for each field, then this entry will not be reported on interface file.
;[XML Tag Option|XML_TAG_OPTION]:This is applicable to the XML file, if the Variable Name = 'XML begin Tag' or 'XML end Tag'. This field option indicates if the XML Tag should be written. 
;[Accum Option|ACCUM_OPTION]: This field is applicable to the Numeric field only and is used for Record Type = 'Detail Record'. This field indicates if this Record #, Field # amount should be accumulated or not. e.g. if the field is a 'Pay Number' or 'Check Number', then do not accumulate \\If the field is 'Element Value' or 'PC Amount', then you may want to accumulate to avoid writing too much detail per element or per pay component. 
;[Total Option|TOTAL_OPTION]: This field is applicable to the Numeric field only and is used for Record Type = Detail Record, Detail Level n. This field indicates if this Record #, Field # amount should be totaled for Header or Trailer record. e.g. if the field is a 'FTE' or 'Rate of Pay', then do not totaled \\If the field is 'Statistics Amount' or 'User Calc Amount', then you may want to calculate the total for Trailer record.  
;[Domain|DOMAIN]: This is used by certain pre-loaded programs to further define characteristics and behaviours of a field. This field is not used in [UPPHF], [UEEF], [UPGLF], [LMTD], [LBEN] or [LPTS].
;[Derivation Expression|DERIVATION_EXPRESSION]:This field specifies the derivation expression for the Variable name. Derivation expressions provide the ability to translate values or to retrieve information otherwise not accessible in an interface format in IDIF. Data from within the Personality database may need to be translated to match the requirements from a receiving third party system. Also, data within a source file may need to be translated to match the Personality specifications.
;:For additional information on what may be used within the Derivation Expression field see the page titled [CALLABLE FUNCTION]. 
;[Comments|COMMENTS]: This field can be used to add notes to the actions taking place in the interface. This is an ideal location to add notes on derivation expression set up or vendor notes.


!!Qualification Records

A qualification record can be added to assist in determining if the record should be loaded or can be bypassed. 

For the field that will be used as the qualifier, its Record Type needs to be set to "Qualifier Record".  Next, the  a Constant value of 'TRUE' is added and a Derivation Expression is also added to the record. 

Sample Derivation Expression: 
CASE 
    when (:PLPL.TIME_OR_AMOUNT) <>0 
        then 'TRUE'
        else 'FALSE'
    end

[IDIF_Qualifier.JPG] 	

!!!NULLVALUE in a GL File

For GL file that is not with Fixed File Format, if a field value is NULL, user may want to use NULL for this field or use a space for this field on the file 

On IDIF screen with the specified Interface Code, user can click the Header section that is with the Code and Interface Type, then click the User Defined Field icon to pop into the User Field Values screen

[{Image src='NULL_VALUE_OPTION.jpg' width='100%' height='100%' align='leftt'}]

!!GL NULL VALUE OPTION
This option specifies when an IDIF field value is NULL, how UPGLF returns the field value for the Entire GL File. The value options are listed in the lexicon as shown below.

|__Lexicon__ |__Lexicon Value__
|X_GL_NULLVALUE|00 - Use IDIF Derivation Expression
|X_GL_NULLVALUE|01 - Use NULL for all NULL values
|X_GL_NULLVALUE|02 - Use 1 Space for all NULL values

!!Usages
Each option has specific usages associated with them.  The chart below outlines each lexicon value and their specific usage within IDIF.

|__Lexicon Value__|__Usage__
|00 - Use IDIF Derivation Expression|__A:__ When no Derivation Expression is configured the system uses a space\\__B:__ When Derivation Expression is configured using decode(~,'','NULLVALUE',~) no space is populated.
|01 - Use NULL for all NULL values|All spaces (e.g ' ') are changed to Null values (e.g '') for entire GL unless specified otherwise by using a Derivation Expression, decode(~,'','NULLSPACE',~).
|02 - Use 1 space for all null value is|All fields that have a null value are populated with 1 space. (e.g. ' ' are changed to '') unless specified otherwise by using a Derivation Expression, decode(~,'','NULLVALUE',~).

!!Tips
If this User Defined Field ‘GL NULLVALUE Option’ does not exist, please exit this screen and then run UPGLF for any File Format in Trial mode, UPGLF will automatically generate this UDF when this UDF does not exist, then user can pop into this IDIF UDF screen to specify the GL NULLVALUE Option

----
![Notes|Edit:Internal.IDIF] 	
[{InsertPage page='Internal.IDIF' default='Click to create a new notes page'}]