该方式实际上就是将同一个交易中的关联程序既作为参数的发送者,又作为参数的接受者。假设某一交易为ROLL,其关联的程序为ROLLPGM。根据这一条件,图反映了伪会话程序中先后任务对应同一个程序的情况。
需要注意的是,在该方式下,参数的传递将形成一个闭环。同时,在第一次启动任务时,是没有参数传递进来的,因此此时COMMAREA中的内容将为空。当COMMAREA中的内容为空时,该任务的EIB信息之一EIBCALEN将为0。在实际应用中,需要根据判断EIBCALEN的数值将任务的第一次启动和后续启动区分开来。
例如,以下程序采用了RETURN到相同程序(即自身)的方式。通过该程序所对应的交易,将可实现任意次输出系统时间的功能。用户每次输入“TIME”时,便显示出当前时间。该操作可循环进行,直到用户输入“EXIT”退出该项事务。相应代码如下:
IDENTIFICATION DIVISION.
PROGRAM-ID. ROLLPGM.
*