上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.8 从JCL向PROGRAM传递参数
从JCL向程序传递参数有两种方式。
● 第1种方式:通过EXEC语句的PARM参数,如:
//STEP1 EXEC PGM=ABC,PARM=(‘F1’)
针对这种方式,程序ABC需要于COBOL的LINKAGE SECTION做如下定义(具体说明参见COBOL部分)。
01 LINK-AREA. 05 LINK-LEN PIC S9(04) BINARY. 05 LINK-FCN PIC X(02).
则在STEP1将程序运行起来后,变量LINK-FCN的值即为F1。需要注意的是,LINK-AREA必须是LINKAGE SECTION下第1个01层定义的变量。
● 第2种方式:通过SYSIN语句指定输入数据流,如:
//STEP1 EXEC PGM=ABC //SYSIN DD * F1001 //*
在这种方式下,程序ABC需要于WORKING-STORAGE节定义接受变量。
01 WK-ACCEPT-AREA. 05 WK-ACCEPT-FCN PIC X(02). 05 WK-ACCEPT-SEQ PIC 9(03).
并在过程部中执行操作:ACCEPT WK-ACCEPT-AREA。这样,FCN和SEQ中的值就分别等于‘F1’和1。
请留意这两种方式中,输入数据值的表达方式的不同,在第1种方式中,LINK-LEN定义参数的长度,占2个额外的字节,实际的参数紧跟着长度之后;对于第2种方式,直接提供参数的值,没有额外的长度字段。