Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JCL将SYSUID和作业ID作为参数传递给COBOL程序_Cobol_Jcl - Fatal编程技术网

通过JCL将SYSUID和作业ID作为参数传递给COBOL程序

通过JCL将SYSUID和作业ID作为参数传递给COBOL程序,cobol,jcl,Cobol,Jcl,我需要将SYSUID和JOBID传递给cobol程序以进行日志记录,这怎么可能呢 可以将其作为JCL中查询的输入传递 提前感谢。SYSUID很简单,只需将其添加到语句的参数中即可 //ASTEP EXEC PGM=A#PGM,PARM='&SYSUID' JOBID不能作为参数使用。如果需要,您必须编写COBOL代码通过z/OS链接(请参阅该链接中的数据区域书籍)。这是可以做到的,但我不推荐 如果您确实想要获得作业编号,您可以编写代码以转到PSA控制块,该控制块位于相对内存位置0处。从

我需要将SYSUID和JOBID传递给cobol程序以进行日志记录,这怎么可能呢

可以将其作为JCL中查询的输入传递


提前感谢。

SYSUID很简单,只需将其添加到语句的参数中即可

//ASTEP EXEC PGM=A#PGM,PARM='&SYSUID'
JOBID不能作为参数使用。如果需要,您必须编写COBOL代码通过z/OS链接(请参阅该链接中的数据区域书籍)。这是可以做到的,但我不推荐

如果您确实想要获得作业编号,您可以编写代码以转到PSA控制块,该控制块位于相对内存位置0处。从那里你可以得到一个指向当前TCB的指针,它位于PSA的PSAtell字段中,从TCB你可以得到TCBJSCBB字段,它是指向JSCB的指针,从JSCB中的TCBJSCBB字段你可以得到一个指向SSIB的指针,它包含SSIBBID字段,它是作业编号。所有这些控制块、PSA、TCB、JSCB和SSIB都记录在上面的链接中(对于z/OS 2.4)。我重申我不建议这样做


在Longpela中有一个关于通过z/OS控制块进行链接的教程。

我同意@cschneid的观点,即您不想为了获得作业编号而进行所有指针链接。当然,我们是在创建“横幅页面打印”程序时做的。我们的代码基于。

如果您对在链接部分中使用项的设置地址感到满意,请重新定义指针和COMP-5项,并从汇编程序DSECTs中创建01级结构,然后尽一切努力。作为一个轻量级COBOL子例程,它的开销并不比汇编器例程大多少(但汇编器更好)。如果您对REXX存储功能感到满意,可以查看Dave Alcock的IPLINFO程序

但是,如果您不知道我提到的COBOL语言构造,那么就编写一个汇编程序子例程,或者让别人编写它