该方式实际上就是将同一个交易中的关联程序既作为参数的发送者,又作为参数的接受者。假设某一交易为ROLL,其关联的程序为ROLLPGM。根据这一条件,图反映了伪会话程序中先后任务对应同一个程序的情况。

需要注意的是,在该方式下,参数的传递将形成一个闭环。同时,在第一次启动任务时,是没有参数传递进来的,因此此时COMMAREA中的内容将为空。当COMMAREA中的内容为空时,该任务的EIB信息之一EIBCALEN将为0。在实际应用中,需要根据判断EIBCALEN的数值将任务的第一次启动和后续启动区分开来。
例如,以下程序采用了RETURN到相同程序(即自身)的方式。通过该程序所对应的交易,将可实现任意次输出系统时间的功能。用户每次输入“TIME”时,便显示出当前时间。该操作可循环进行,直到用户输入“EXIT”退出该项事务。相应代码如下:
IDENTIFICATION DIVISION.
PROGRAM-ID. ROLLPGM.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COMSTART.

本文详细介绍了如何在COBOL程序中使用RETURN指令回到同一个程序,形成一个闭环的参数传递。文章通过一个示例程序解释了在交易ROLL中,如何在用户请求显示系统时间和退出之间循环进行,直到用户输入'EXIT'结束事务。程序利用EIBCALEN字段区分任务的首次启动和后续启动,并展示了相应的代码实现。
最低0.47元/天 解锁文章
1962

被折叠的 条评论
为什么被折叠?



