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

use*_*296 2 cobol jcl

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

可以将相同的内容作为JCL中查询的输入传递.

提前致谢.

csc*_*eid 6

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

//ASTEP EXEC PGM=A#PGM,PARM='&SYSUID'
Run Code Online (Sandbox Code Playgroud)

JOBID不可用作参数.如果需要,您必须编写COBOL代码以链接到z/OS 控制块(请参阅该链接的数据区域书籍).这可以做到,但我不推荐它.

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

Micro Focus有一个通过z/OS控制块进行链接的示例,还有来自Longpela的两个 部分的教程.