Define translation tables

This topic describes the Transfer CFT translation table concept and how to use the corresponding CFTXLATE object to manage machine language translation. You can create and use a translation table between 2 computers each using a different alphabet. Each table is built using a file containing a unique 256-character record, where through its position and value each character defines the correspondence between two alphabets.

You can use a new translation table when sending or receiving a file, and ONLINE to the data sent as the transmission proceeds, or OFF LINE to any file using the COPYFILE command.

Default translation tables

By default, Transfer CFT provides 4 internal ASCII/EBCDIC translation tables, two for each transfer direction. These tables are bijective. These correspond loosely to translation between code pages EBCDIC 1047 and ASCII 437, with some small differences.

Create a new translation table

Begin by creating a translation table file, and modify as needed. You can use the OS specific delivered tool to help with this task. Or use the following procedure:

  1. Create a file as shown in the following example, containing hexadecimal characters from 00 to FF.

00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F

10 11 12 13 14 15 16 17 - 18 19 1A 1B 1C 1D 1E 1F

20 21 22 23 24 25 26 27 - 28 29 2A 2B 2C 2D 2E 2F

30 31 32 33 34 35 36 37 - 38 39 3A 3B 3C 3D 3E 3F

40 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F

50 51 52 53 54 55 56 57 - 58 59 5A 5B 5C 5D 5E 5F

60 61 62 63 64 65 66 67 - 68 69 6A 6B 6C 6D 6E 6F

70 71 72 73 74 75 76 77 - 78 79 7A 7B 7C 7D 7E 7F

80 81 82 83 84 85 86 87 - 88 89 8A 8B 8C 8D 8E 8F

90 91 92 93 94 95 96 97 - 98 99 9A 9B 9C 9D 9E 9F

A0 A1 A2 A3 A4 A5 A6 A7 - A8 A9 AA AB AC AD AE AF

B0 B1 B2 B3 B4 B5 B6 B7 - B8 B9 BA BB BC BD BE BF

C0 C1 C2 C3 C4 C5 C6 C7 - C8 C9 CA CB CC CD CE CF

D0 D1 D2 D3 D4 D5 D6 D7 - D8 D9 DA DB DC DD DE DF

E0 E1 E2 E3 E4 E5 E6 E7 - E8 E9 EA EB EC ED EE EF

F0 F1 F2 F3 F4 F5 F6 F7 - F8 F9 FA FB FC FD FE FF

You can use the following Python script, for example, to generate the table.

fd=open("myfile","wb")

for i in range (0,256) :

  fd.write (chr(i))

fd.close()

  1. Use the iconv tool to generate the appropriate translation table. Use only single-byte character sets (SBCS) because the CFTXLATE object supports only single-byte translation tables.

Example

iconv -f cp1047 -t cp437 myfile >cp1047tocp437
Note If you do not have an iconv tool available on your platform, download the OS appropriate tool from the Internet.

Delivered tools

Transfer CFT is delivered with a platform specific tool to help you create an XLATE table.

  • Mainframes - A JCL is provided to help with creating both local and remote tables. Refer to the CFTXLATE member in the installation library.
  • UNIX/Windows - Use the Axway delivered xvi utility Use this utility to update a conversion table. located in the home/bin folder.

The correct base table means that a table behaves exactly the same as the current default mapping from EBCDIC to ASCII.

Reduced alphabet

You can also manually create a translation table for a reduced alphabet. The invalid characters are associated with the character <DEL> of the target alphabet.

Define a translation and execute a transfer

Use the CFTXLATE object to define translation tables between 2 alphabets. A definition includes:

  • Transfer direction (DIRECT: SEND, RECV, or BOTH)
  • File data code type (FCODE: ASCII or EBCDIC)
  • Data network code type (NCODE: ASCII or EBCDIC)
  • Translation table file name (FNAME)

If DIRECT = SEND (or = BOTH), the file (FNAME) contains the description of the send translation table (FCODE to NCODE) and if DIRECT = RECV (or = BOTH), it contains the description of the receive table (NCODE to FCODE).

Note If FCODE or NCODE are BINARY no translation takes place.

Create a new CFTXLATE

Create the following new object, which you can use instead of the default in file transfers. In this example, for a given partner you want to use explicitly this translation table.

cftxlate id=new, fcode=ebcdic, ncode=ascii, direct=both, mode=create, fname=cp1047tocp437

If you created a translation table that maps ASCII to ASCII, for example, remember to set both the ncode and fcode to ASCII.

cftxlate id=new, fcode=ascii, ncode=ascii, direct=both, mode=create, fname=cp850tocp437

Override default CFTXLATE

  • Create the following objects one for each translation direction. These new objects override the default translation table.
  • cftxlate id=bin, fcode=ebcdic, ncode=ascii, direct=both, mode=create, fname=cp1047tocp437

    cftxlate id=bin, fcode=ascii, ncode=ebcidic, direct=both, mode=create, fname=cp437tocp1047

    Execute the transfer command

    Translation tables are used if FCODE and NCODE are not set to BINARY. When sending a file, Transfer CFT translates FCODE to NCODE. When receiving a file, Transfer CFT translates from NCODE to FCODE.

    In the following example, the translation table that is specified by the xlate parameter is used instead of the default translation table.

    Related Links