Prism-CS JCLTRANS - The JCL Translator


The Prism-CS™ JCL Translator (JCLTRANS) translates VSE job streams into their MVS equivalent. JCLTRANS automatically translates the JCL, as well as utility steps and control statements, and in-line source programs in a variety of non-IBM supported languages. Because it is very sophisticated and highly customisable, JCLTRANS is able to generate MVS JCL streams that are 100% functionally-equivalent to their VSE counterpart and ready for testing.

JCLTRANS is an automated translator designed to support the mass-conversion method. JCLTRANS executes on any MVS/ESA, OS/390 or z/OS system and can automatically translate a single job, a series of jobs, or the entire contents of a VSE JCL library in a single run. JCLTRANS is extremely fast and typically needs only a minute or two to translate 1000 VSE jobs which include a total of 6000 VSE steps ! As part of the conversion process, the new MVS JCL is compared with the JCL generated in the previous run to identify differences and help prevent regressions caused by improper customisation.

JCLTRANS is a versatile tool, designed to handle many situations that arise from the use of IBM and non-IBM software products in VSE. Currently, JCLTRANS is ready to support:

  • Dynam/D/T/FI, EPAT, EPIC, System/Manager, DiskMaster/VSE, TapeMaster/VSE, ADAS, MSAM
  • DL/I, DB2, Datacom/DB, IDMS, Adabas, Total/Supra, Model 204
  • APPC, MQSeries, PSF/VSE
  • Easytrieve, Easytrieve-Plus, Dylakor (DYL260, or Vision:Sixty and DYL280, or Vision:Results), QuikJob (Vision:Report), Natural, CA-Earl, Mantis, Ideal, SAS
  • FCOPY, MaxBack, DrD, Faver, Faver2, TSIDOFL, DATABACK, WDU, DUSP, SelCopy, KwikKey, KwikLod
  • KeyFast, KeyMaster and ODE
  • VSE Conditional JCL, EPIC JMCL, CA-Driver, FAQS/PCS PCL/ECL, Software Pursuits PLF
  • FAQS/PCS, CA-Scheduler, Zeke

The versatility of JCLTRANS as a state-of-the-art JCL conversion tool is best demonstrated in a set of real-world sample job streams which include the VSE JCL with in-line programs and utility steps, and the resulting MVS JCL which is automatically generated by JCLTRANS.


JCLTRANS can generate MVS JCL that complies with any standard in use at an installation. By default, JCLTRANS generate MVS JCL which is "flat", i.e. JCL in which all of the elements are in-line, without any procedures, INCLUDE members or stored control cards. This format is often used today because of its simplicity, and also because it allows the use of an automated job scheduler to substitute symbolic parameters in control cards.

However, JCLTRANS imposes no particular structure to the MVS JCL, the format of which can be customised to comply with the standards and naming conventions chosen at the site. For example, the MVS JCL can be configured to use procedures, include members, control cards stored in PDS members, symbolic parameters, etc.

MVS standards can be defined and tuned throughout the application conversion project. Because JCLTRANS translates a complete inventory of JCL streams in minutes (even in seconds on small inventories), making changes to the site's MVS standards that affect hundreds or thousands of job streams can occur at any time.

Utility Steps

JCLTRANS converts most utility steps that are present in the VSE job streams. This includes widely-used VSE utility programs such as IDCAMS, SORT, FTP, DITTO, DL/I and DB2 utilities, as well as non-IBM products such as EasyTrieve, Dylakor, DrD, MAXBACK, FAVER, MTPBATCH, CA-DYNAM, EPIC, and many others.

Backup/Restore utility steps such as IDCAMS BACKUP, FCOPY, DrD, MAXBACK, FAVER and DYNUTIL DUMP are automatically replaced with the equivalent function of IBM's DF/DSS, DFHSM, or Innovation's FDR products.


When used in conjunction with other Prism-CS components, such as Language Conversion Programs, JCLTRANS automatically retrieves most of the information it needs to translate VSE job streams and generate MVS JCL that is correct, both syntactically and semantically. In some cases, however, JCLTRANS is not able to correctly identify or address a particular situation and needs some external "guidance". In other cases, the format of the generated MVS JCL may not fit the site's standards and must be corrected appropriately.

To address these situations, JCLTRANS provides extensive customisation capabilities, which are organized in five different categories:

  1. Options
  2. Commands
  3. Tables
  4. Exit routines
  5. Plug-in modules
  6. Amends


Options give JCLTRANS information about the VSE and MVS environments. For example, "the address of the default VSE/POWER printer is 01E", or "the SORT utility is CA-SORT in VSE and SYNCSORT in MVS", or "use the JCLTSORT plug-in module to process SORT steps". Options are generally set once, at the beginning of a conversion project, and seldomly changed. Some options are mandatory.


Commands are step-related, e.g. "delete the 2nd IDCAMS step in job XYZ", or file-related, e.g. "the MASTER file used by program PROG1 in job XYZ is an output file". Commands are all optional, but may sometimes be needed to correct conversion exceptions. Commands can be created manually or generated automatically by the FXCLASS utility.


The three main tables used by JCLTRANS are program, file and VSAM definitions.

  • Program definitions (PROGDEF) are automatically produced by Language Conversion Programs (e.g. COBOL, Assembler, or Easytrieve) as a by-product of source code conversion. In some cases, additional program definitions have to be created manually, for example for unsupported utility programs or languages.
  • File definitions (FILEDEF) are initially generated by the FXCLASS utility program, but may need to be adjusted manually when the need arises to force specific attributes for certain files in order to handle exceptions. File Definitions contain file attributes, such as the class or the MVS data set name.
  • VSAM definitions (VSAMDEF) are VSAM DEFINE commands in MVS format. They are generated by JCLTRANS based on DEFINE commands found in IDCAMS steps or VSE/VSAM catalog entries. VSAM definitions are primarily used to create VSAM clusters, alternate-indexes and paths before they are loaded with data coming from VSE.

JCLTRANS utilizes other optional tables, such as the JOB table to control the generation of job headers, and the SPOOL table which gives a one-to-one correspondence between VSE and MVS JECL attributes, such as print classes, FCB names, Form number, etc.

JCL Exit Routine

JCLTRANS includes a single, multi-function, exit routine which gives users extensive control over the translation process and the generation of the MVS JCL streams. The source code for the default JCL exit is provided in the Prism-CS SAMPLIB and can be modified to accommodate local requirements. The JCL exit routine can be written in Assembler or COBOL.

Plug-in Modules

The structure of JCLTRANS is extensible via the addition of function-related plug-in modules. A plug-in module is a program invoked by JCLTRANS to process job steps that execute certain VSE application or utility programs. Prism-CS includes a set of standard plug-in modules to process utility steps such as IDCAMS and SORT and many other IBM or non-IBM utilities and languages, such as FTP and Easytrieve. Additional plug-in modules can be written by the user to handle any utility or application step, for example for programs whose control cards need to be analysed or converted. Plug-in modules can be written in Assembler, COBOL or PL/I.

The FXCLASS utility program includes its own set of plug-in modules, which provide file-related functions such as the calculation of MVS file attributes (data set name, number of generations, etc), and the creation of JCLTRANS commands or tables to transfer application data.


Amends are a generic facility of the Prism-CS product which can be used to apply sets of arbitrary changes to JCL, programs, control statements, or other elements subject to translation.


JCLTRANS supports a wide variety of IBM and non-IBM software products and features. Its open-ended structure allows its capabilities to be easily extended to accommodate additional utility programs, languages, or DBMSes. The main limitations currently known are related to the presence of complex conditional JCL, such as the symbolic parameters and conditional JCL-generation logic supported by CA-Driver, FAQS/PCS PCL, or Software Pursuits' PLF. Most VSE installations use at least some VSE/SP JCL conditional logic and symbolic parameters in their VSE JCL streams with which JCLTRANS is generally able to cope. Use of more complex conditional logic and symbolic parameters, however, makes identification of job steps, programs and files an elusive proposition and trying to deal with these situations in an automated fashion has sometimes proven an unachievable goal.

In general, Prism-CS only partially supports VSE features which do not have a close equivalent in MVS, or are unlikely to appear in application job streams. For example, the JCL Translator ignores certain key-words of the LST card (such as JNM, which has no MVS equivalent), but makes their value available to the JCL exit routine which may be modified to carry it to MVS JCL streams. Similarly, the JCLTRANS plug-in module which processes IDCAMS steps does not support certain commands such as DEFINE SPACE, IMPORT CONNECT or DEFINE USERCATALOG which are reserved to the VSE storage administrator or no longer supported in recent versions of OS/390 and z/OS.


Search key-words: IBM MVS OS/390 OS390 z/OS zOS DOS/VSE z/VSE zVSE JECL convert VSE JCL manual documentation batch conversion converter convertor migrate migration translate translation translator tool tools program programs utility utilities control cards standard-label-area partition-standard-labels input output