During processing, PERCON takes into account the statement CCS, the input CCS and the output CCS. If all the CCSs have the same name, there are no special rules to follow. If different names are assigned, the following rules apply:
Input CCS not same as output CCS
If the input CCS is not the same as the output CCS, the following points must be borne in mind:
The prerequisite for a conversion is that the input CCS and the output CCS are compatible.
If no SET-RECORD-MAPPING statement is specified, the characters of the input record are converted from the input CCS to characters of the output CCS during transfer to the output area, as long as the input file has a CCS which is not EDF03IRV.
If FILLER=*INPUT is specified in the SET-RECORD-MAPPING statement, the output record is prefilled with the input record, irrespective of its CCS.
The transfer of input record fields with INPUT-FORMAT=*CHARACTER is dependent on the OUTPUT-FORMAT:
OUTPUT-FORMAT=*CHARACTER / *HEXADECIMAL / *BINARY
The input field is converted to the output CCS and edited as necessary.OUTPUT-FORMAT=*TRANSLATION
The bytes of the input fields are recoded in accordance with a conversion table and transferred to the output field. Input and output CCSNs are not taken into consideration. The table can take the form of a file or pairs of values. If the bytes are specified as c-strings via INPUT-CHARACTER / OUTPUT-CHARACTER, they are interpreted as characters of the statement CCS and entered accordingly into the conversion table.OUTPUT-FORMAT=*NO-TRANSLATION
This format is used when the input field is not to be converted to the output CCS (e.g. with packed numbers).OUTPUT-FORMAT=*UNICODE-TRANSLATION
The bytes of the input field are converted either from a non-Unicode format to a Unicode format or from a Unicode format to a non-Unicode format and transferred to the output field. When the Unicode variant UTF-16 is used, normalization can take place in addition to conversion.
Statement CCS not same as input CCS
If the statement CCS is not the same as the input CCS, the following points must be borne in mind:
If c-strings are used in the SELECT-INPUT-RECORDS statement, the statement CCS and input CCS must belong to the same code family and all the characters of the c-strings must be available in the input CCS.
Statement CCS not same as output CCS
If the statement CCS is not the same as the output CCS, the following points must be borne in mind:
If c-strings are used in the SET-GROUP-ATTRIBUTES, SET-RECORD-MAPPING or SET-PAGE-LAYOUT statement, the statement CCS and output CCS must belong to the same code family and all the characters of the c-strings must be available in the output CCS.
Input CCS(n) not same as input CCS(n+1)
If the CCS of the current input file is not the same as that of the previous input file of the conversion step, the following point must be borne in mind:
The group break is defined by comparing fields of consecutive input records, irrespective of the CCS.
When comparing with respect to ASCENDING or DESCENDING using the SELECT-INPUT-RECORDS statement, the input CCS is not taken into account.