Page 1 of 1

Passing Multiple PARM in JCL

PostPosted: Wed Feb 08, 2012 3:51 pm
by Sushmita V
Hi,

Please let me know how to declare multiple PARM in JCL.
I have my declaration in COBOL as below:

LINKAGE SECTION.
01 MLR-PARM-WORK-AREA1.
05 MLR-PARM-LENGTH1 PIC S9(4) COMP.
05 MLR-PARM-DATA-AREA1.
07 MLR-PARM-DATA1 PIC X(20).
07 MLR-PARM-DATA2 PIC X(15).
07 MLR-PARM-DATA3 PIC X(1).
07 MLR-PARM-DATA4 PIC X(15).
01 MLR-PARM-WORK-AREA2.
05 MLR-PARM-LENGTH2 PIC S9(4) COMP.
05 MLR-PARM-DATA-AREA2.
07 MLR-PARM-DATE1 PIC 9(08).

PROCEDURE DIVISION USING MLR-PARM-WORK-AREA1 MLR-PARM-WORK-AREA2.

Please let me know if am going wrong anywhere.

Thanks & REgards,
SV

Re: Passing Multiple PARM in JCL

PostPosted: Wed Feb 08, 2012 4:25 pm
by BillyBoyo
Sorry, it doesn't work like that.

PARM="A                   B              CD              "


comes into you Cobol program as length 7 in two-byte binary, then

01 MLR-PARM-WORK-AREA1.
    05 MLR-PARM-LENGTH1 PIC S9(4) COMP.
    05 MLR-PARM-DATA-AREA1.
        07 MLR-PARM-DATA1 PIC X(20).
        07 MLR-PARM-DATA2 PIC X(15).
        07 MLR-PARM-DATA3 PIC X(1).
        07 MLR-PARM-DATA4 PIC X(15).


That is a poor way to do the parm, as it relies on the thing being typed entirely correctly. Use a seperator, like

A,B,C,D


and process it in your program. It'll save a lot of hassle.