我需要将SYSUID和JOBID传递给cobol程序以进行日志记录,这怎么可能?
可以将相同的内容作为JCL中查询的输入传递.
提前致谢.
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的两个 部分的教程.