dee*_*ner 1 cobol mainframe jcl
例:
01 VAR1 PIC 9(05).
88 WS-VAR1 VALUE 1000 1001 1002 1003
1004 1009 2000 2002 3000 4000 4009
5000 5001 6000 7000 8000 2332 8484.
Run Code Online (Sandbox Code Playgroud)
我们如何将值从JCL作为instream传递给Cobol程序变量88.因此,在不更改程序的情况下修改值会更容易.
我找到了两个解决方案:
1.使用内部索引表.这样二进制搜索就能快速完成任务.
2.使用VSAM文件而不是传递数据.(不太可能)
我认为二进制搜索肯定比88条件检查慢.我试图在88条件检查中找到相同效率的东西.
听起来你想从JCL PARM =或SYSIN传递一个值,使COBOL程序独立于硬编码值.
这篇网络文章很好地解释了如何实现这一目标.
JCL看起来像这样:
//* *******************************************************************
//* Step 2 of 4, Execute the COBOL program with a parameter. //*
//PARJ1S02 EXEC PGM=CBLPARC1,
// PARM='This is a Parameter from the EXEC and PARM= ...'
Run Code Online (Sandbox Code Playgroud)
在COBOL程序链接部分:
*****************************************************************
LINKAGE SECTION.
01 PARM-BUFFER.
05 PARM-LENGTH pic S9(4) comp.
05 PARM-DATA pic X(256).
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您可以根据您的条件验证链接部分中传递的数据.因此,一旦经过验证,您可以在将其转换为测试的数值后从链接部分移动该值.