0% found this document useful (0 votes)
39 views2 pages

JCLALIGN

The REXX source code aligns JCL statements by formatting JOB, DD, and EXEC names to be left-justified and padded to 10 characters. It reads the JCL into an array, uppercase all values, pads and modifies JOB, DD, EXEC names, and overwrites the formatted JCL back to the same or new dataset.

Uploaded by

Gopichand Mayara
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views2 pages

JCLALIGN

The REXX source code aligns JCL statements by formatting JOB, DD, and EXEC names to be left-justified and padded to 10 characters. It reads the JCL into an array, uppercase all values, pads and modifies JOB, DD, EXEC names, and overwrites the formatted JCL back to the same or new dataset.

Uploaded by

Gopichand Mayara
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

SOURCE CODE OF THE REXX TOOL WHICH ALIGNS JCL STATEMENTS Given below is the source code of the

e Rexx tool to align JCL statements /****REXX***/ SAY 'ENTER THE JCL IN THE FORMAT -- PDS(MEM):' /****ALLOCATING DD TO A LOGICAL NAME 'INPUTD'****************/ PULL INPUTDSN /***INPUTDSN = INPUTDD ||'(' || INPUTMM || ')' ***********************/ "ALLOC FI(INPUTD) DA("INPUTDSN") SHR REUSE" /****OPENING INPUTD AND ASSIGNING TO A ARRAY 'DATA' ********/ "EXECIO * DISKRU INPUTD (STEM DATA. FINIS" /****PROGRAMMMING********************************************/ /****FINDING NO OF RECORDS*************************************/ LEN=DATA.0 /****UPPERCASING ALL THE RECORDS***************************/ DO I = 1 TO LEN UPPER DATA.I PARSE VAR DATA.I WORD1 WORD2 WORD3 IF (WORD2 = 'JOB') | (WORD2 = 'DD') | (WORD2 = 'EXEC') THEN DO LEN1 = LENGTH(WORD1) DO IF LEN1 < 10 THEN DO LEN3 = 10 - LEN1 DO J = 1 TO LEN3 IF WORD2 = 'JOB' THEN WORD1 = WORD1||'X' ELSE WORD1 = SUBSTR(WORD1,1,10' ') END END IF LEN1 > 10 THEN IF POS('.',WORD1) = 0 THEN DO SAY 'IN CORRECT DD/JOB NAME IN ' DATA.I WORD1 = SUBSTR(WORD1,1,10) END

IF WORD2 = 'JOB' THEN WORD2 = 'JOB' IF WORD2 = 'DD' THEN WORD2 = 'DD' IF WORD2 = 'EXEC' THEN WORD2 = 'EXEC' DATA.I = WORD1 WORD2 WORD3 END END END /****OVERWRITING THE FORMATTED JCL IN THE SAME DATA SET *****/ /**"ALLOC FI(OUTPUTD) DA('"INPUTDD"') SHR REUSE" ************/ /**"ALLOC FI(OUTPUTD) DA('ISDXO96.REXX.JCL.OUTPUT') SHR REUSE"***/ "EXECIO * DISKW INPUTD (STEM DATA. FINIS" /****FRREING THE PHYSICAL DATASET******************************/ "FREE DD(INPUTD)"

You might also like