Porting MVS JCL SORT steps to UNIX/Linux/Windows with XSM
Challenges
- You need to rehost legacy z/OS SORT/MERGE batch workloads on Open systems.
- You need to determine how MVS JCL sort steps will run in a UNIX shell or Windows command-line environment.
- You require functional equivalence, equal or better sorting performance, and lower operating costs.
Solution
XSM uses IBM-style syntax and keywords, making it suitable for MVS-to-Open batch migrations.
When the original JCL is converted with our MVS to UNIX batch converter, sort steps work without any syntax conversion.
The following example shows an equivalent SORT FIELDS statement using the original DFSORT SYSIN unchanged.
Typical MVS JCL Sort/Merge step
//********************************************************************** //* STEP : SORT MERGE INF712 INF713 * //********************************************************************** //INP1234 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //* Two input files, MVS Catalog will find out RECFM and LRECL: //SORTIN DD DSN=PRD123.CLIENT.INF712,DISP=SHR // DD DSN=PRD123.CLIENT.INF713,DISP=SHR //* One output file, we specify RECFM,LRECL: //SORTOUT DD DSN=PRD123.CLIENT.INF714,DISP=(,CATLG,DELETE), // UNIT=SYSDV,SPACE=(CYL,(3,3),RLSE),VOL=SER=B80WKC, // DCB=(RECFM=FB,LRECL=205,BLKSIZE=0) //* Sort keys: //SYSIN DD * SORT FIELDS=(15,1,CH,A, 5,5,CH,A, 10,5,CH,A, 201,4,PD,A) EXCLUDE COND=(30,2,CH,EQ,C'L1',AND, 32,1,CH,EQ,C'1', OR, 30,2,CH,EQ,C'L2',AND, 32,1,CH,EQ,C'2') /*
Equivalent XSM parameter file for UNIX/Linux/Windows
* Two input files: INPFIL PRD123.CLIENT.INF712 INPFIL PRD123.CLIENT.INF713 * One output file: OUTFIL PRD123.CLIENT.INF714 * There is no Catalog on UNIX/Windows, so input RECFM and LRECL must be specified: RECORD RECFM=F,LRECL=205 * Sort keys, using the SYSIN unchanged: SORT FIELDS=(15,1,CH,A, 5,5,CH,A, 10,5,CH,A, 201,4,PD,A) EXCLUDE COND=(30,2,CH,EQ,C'L1',AND, 32,1,CH,EQ,C'1', OR, 30,2,CH,EQ,C'L2',AND, 32,1,CH,EQ,C'2')
Et voilà!
XSM handles binary and Packed Decimal data in fixed- or variable-length records (see Features).
See the complete XSM syntax.
Then download XSM and evaluate it.

//**********************************************************************
//* STEP : SORT MERGE INF712 INF713 *
//**********************************************************************
//INP1234 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//* Two input files, MVS Catalog will find out RECFM and LRECL:
//SORTIN DD DSN=
* Two input files:
INPFIL