Make your own free website on

Back Issue

Symbol Substitution for batch jobs with DFSORT

With new functions added via PTF in April 2006, support has been added to DFSORT to support substitution of system symbols into output files created by SORT.

One possible use is to create JCL containing system symbols. This is an example reworked from an early Stupid JCL trick:

//S1 EXEC SORT //SYMNAMES DD * sysname,S'&SYSNAME' jobname,S'&JOBNAME' yymmdd,S'&LYYMMDD' //SORTIN DD DATA,DLM=## //ALLOCDD JOB (accting),USER,.... //S1 EXEC PGM=IEFBR14 //DD1 DD DISP=(,CATLG),UNIT=DISK,SPACE=(TRK,(5,2)), // DSN=# ## //SORTOUT DD SYSOUT=(A,INTRDR),RECFM=F,BLKSIZE=80,BUFNO=1,LRECL=80 //SYSIN DD * SORT FIELDS=COPY INREC IFTHEN=(WHEN=(4,5,CH,EQ,C'DSN=#'), OVERLAY=(8:C'&SYSUID..',jobname,C'.D',yymmdd,C'.DATA')) // The generated dataset name will contain the system name, job name of the submitting job and the current local date. Note that &SYSUID will only be substituted when job ALLOCDD executes.

Other uses

The same DFSORT feature could be used to create log file entries containing jobname, date and time for the current job. For example, //S1 EXEC SORT //SYMNAMES DD * jobname,S'&JOBNAME' yymmdd,S'&LYYMMDD' hhmmss,S'&LHHMMSS' //SORTIN DD * Log entry //SORTOUT DD DISP=MOD,DSN=log.dataset //SYSIN DD * SORT FIELDS=COPY OUTREC=(1,10,jobname,X,yymmdd,X,hhmmss) The entry appended to the log dataset will contain the job name, date and time for the executing batch job.

For more information on this and other new features introduced at the same time, see User Guide for DFSORT PTFs UK90007 and UK90006 (SORTPEUG).


Comments or suggestions can be sent to the author.

Last Month's Issue

Big Iron