How to do character conversion with CA XCOM Data Transport for z/OS when receiving files from remote partners

Document ID : KB000009351
Last Modified Date : 07/01/2019
Show Technical Document Details

This document explains how to do character conversion on the mainframe while receiving from remote partner.


When transferring a file consisting of ASCII or EBCDIC characters you can do the conversion to the other code on the windows or Unix side. 

When you transfer from any platform to XCOM on the Mainframe you have the alternative to convert the file on the mainframe side also. And you can decide if and how ASCII, BINARY and EBCDIC-files are to be processed. Here is the step-by-step explanation of how this can be done:

    1. In the dataset XCOMCNTL you need to create a member containing a Translation Table. The name of that member is free but has to be the same as that specified in the NAME-Parameter in that Translation Table.

      For this document I chose the name FROMWIN to have a hint that this Translation table is for transfers from Windows.

      As an example here is a table for transfers converting from ASCII to EBCDIC. All characters and numbers are transferred but you should check the national & special characters, so translation fits your needs:
      -------------------Member FROMWIN-----------------------------------  TYPE=CONVERTNAME=FROMWIN*************************************************************** SINGLE BYTE CHARACTER SET TRANSLATION TABLE* THIS IS A SAMPLE CONVERSION TABLE TO TRANSLATE ASCII-* CHARACTERS INTO EBCDIC-CHARACTERS AND IS PROVIDED ON AN* AS-IS BASIS WITHOUT ANY WARRANTY FOR CORRECT PROCESSING.**************************************************************CNVVAL00=00,01,02,03,37,2D,2E,2F,16,05,25,0B,0C,0D,0E,0FCNVVAL10=10,11,12,13,3C,3D,32,26,18,19,3F,27,1C,1D,1E,1FCNVVAL20=40,5A,7F,7B,5B,6C,50,7D,4D,5D,5C,4E,6B,60,4B,61CNVVAL30=F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,7A,5E,4C,7E,6E,6FCNVVAL40=7C,C1,C2,C3,C4,C5,C6,C7,C8,C9,D1,D2,D3,D4,D5,D6CNVVAL50=D7,D8,D9,E2,E3,E4,E5,E6,E7,E8,E9,AD,E0,BD,5F,6DCNVVAL60=79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96CNVVAL70=97,98,99,A2,A3,A4,A5,A6,A7,A8,A9,C0,6A,D0,A1,07CNVVAL80=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVAL90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVAL90=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVALA0=00,00,00,00,00,00,A1,00,00,00,00,00,00,00,00,00CNVVALB0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVALC0=00,1E,1C,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVALD0=00,7B,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVALE0=00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00CNVVALF0=00,4F,00,00,00,00,00,00,00,00,00,00,00,00,00,00--------------------------------------------------------------------- 
      See Conversion Table Parameters in our online doc and you will find an example for a table which translates upper case EBCDIC characters into lower ones leaving all other characters unchanged.
    2. You need a Destination member to specify the Conversion table you want to use. These Destination members are stored in the XCOMCNTL, too. So your second step is to create such a member. The name of that member is free to choose. Remember it as you will need exactly that name in parameter GROUP of the Transfer Job (see Step 4).

      Destination members contain information about the partner XCOM on the other side. Here it says that transfers from XCOM on Windows, which resides on Host, of type ASCII should be translated using the table specified in CVASCII:
      -------------------Member WINDEST------------------------------------TYPE=DEST                                                            *************************************************************        * DESTINATION MEMBER FOR TRANSFERS FROM WINDOWS ON *        *************************************************************        IPPORT=8044IPNAME=


  1. To activate these two members immediately do the following Modify commands (<xom_serv> is the name of the XCOM-Server Started task):
    F <xcom_serv>,DISABLE,WINDESTF <xcom_serv>,DISABLE,FROMWINF <xcom_serv>,ENABLE,FROMWINF <xcom_serv>,ENABLE,WINDEST
    The output of these commands is written into the Joblog of the XCOM-Server. For any change getting active which was in these members you need to redo these four commands.
    To let these members get active at every Start of the XCOM-Server, add the member names into member XCOMSTRT of XCOMCNTL. Member XCOMSTRT contains all members that are to be automatically enabled at server startup.

  2. Do a RECEIVE-Job like this:
    ---------------------------------------------------------------------     //XCOM     JOB  jobparm                  //RECEIVE EXEC  PGM=XCOMJOB,REGION=xM,...//STEPLIB   DD  DISP=SHR,DSN=...         //XCOMCNTL  DD  DISP=SHR,DSN=xxx.yyy.zzz.XCOMCNTL//XCOMPRNT  DD  SYSOUT=*//SYSPRINT  DD  SYSOUT=*//SYSUDUMP  DD  SYSOUT=*//SYSIN01   DD  *        GROUP=WINDEST TYPE=RECEIVE FILETYPE=FILE ...        CODE=ASCII ...        ---------------------------------------------------------------------

    Don't forget to specify the XCOMCNTL in a DD-card named XCOMCNTL.

    This job will receive a file from the host specified in Destination member WINDEST (as specified in SYSIN-Parameter GROUP). As CODE is ASCII the entry CVASCII in that Destination member is reviewed. It contains FROMWIN and therefore the Conversion table FROMWIN will be used. 
Additional Information:

For BINARY or EBCDIC transfer no Conversion is done as parameters CVBINARY and CVEBCDIC are not used.