sysVar.callConversionTable
The system variable sysVar.callConversionTable contains the name of the conversion table that is used to convert data when your program does the following at run time:
- Passes arguments in a call to a program on a remote system
- Passes arguments when invoking a remote program by way of the system function sysLib.startTransaction
- Accesses a file at a remote location
The conversion occurs when the data is being moved between EBCDIC-based and ASCII-based systems or between systems that use different code pages. Conversion is possible only if the linkage options part used at generation time specifies PROGRAMCONTROLLED as the value of property conversionTable in the callLink or asynchLink element. Conversion does not occur, however, if PROGRAMCONTROLLED is specified but sysVar.callConversionTable is blank.
Characteristics
The characteristics of sysVar.callConversionTable are as follows:
- Primitive type
- CHAR
- Data length
- 8
- Value saved across segments?
- Yes
Definition considerations
You should use sysVar.callConversionTable to switch conversion tables in a program or to turn data conversion on or off in a program.
sysVar.callConversionTable is initialized to blanks. To cause conversion to occur, make sure that the linkage options part includes the value PROGRAMCONTROLLED, as described earlier, and move the name of a conversion table to the system variable. You can set sysVar.callConversionTable to an asterisk (*) to use the default conversion table for the default national language code. This setting references the default locale on the target system provided the locale is mapped to one of the languages that can be specified for the targetNLS build descriptor option.
Conversion is performed on the system that originates the call, invocation, or file access. When you define multiple levels of a record structure, conversion is performed on the lowest level items (the items with no substructure).
You can use sysVar.callConversionTable in these ways:
- As the source or target operand in an assignment or move statement
- As a variable in a logical expression
- As an argument in a return or exit statement
A comparison of sysVar.callConversionTable with another value tests true only if the match is exact. If you initialize sysVar.callConversionTable with a lowercase value, for example, the lowercase value matches only a lowercase value.
The value that you place in sysVar.callConversionTable remains unchanged for purposes of comparison.
Example
sysVar.callConversionTable = "ELACNENU"; // conversion table for US English COBOL generation
Related reference
Data conversion
Data conversion (system words)
sysLib.startTransaction
targetNLS