Transactions 关闭事务
我有一个短程序COBOLCIS,它是一个基本的CRUD。在这个程序中,我有一个选项,当我按下F12我想退出,关闭我的交易 我想按F12键,交易结束 我可以在COBOL程序中编写任何命令来实现这一点吗Transactions 关闭事务,transactions,db2,cobol,mainframe,cics,Transactions,Db2,Cobol,Mainframe,Cics,我有一个短程序COBOLCIS,它是一个基本的CRUD。在这个程序中,我有一个选项,当我按下F12我想退出,关闭我的交易 我想按F12键,交易结束 我可以在COBOL程序中编写任何命令来实现这一点吗 谢谢EXEC CICS RETURN将结束您的程序,但您仍然可以看到屏幕上的内容 如果您先执行CICS发送控制擦除命令,然后执行CICS返回,这将完成您的程序并清除屏幕。在伪对话3270 CICS事务中,您的代码通常首先通过检查EIBCALEN=0或EIBRESP=DFHRESP来检查这是否是“首次
谢谢EXEC CICS RETURN将结束您的程序,但您仍然可以看到屏幕上的内容
如果您先执行CICS发送控制擦除命令,然后执行CICS返回,这将完成您的程序并清除屏幕。在伪对话3270 CICS事务中,您的代码通常首先通过检查EIBCALEN=0或EIBRESP=DFHRESP来检查这是否是“首次进入”(CHANNELERR)如果您使用的是容器而不是commarea,则在执行CICS GET容器之后 如果这是“首次进入”,您的代码通常会进行一些整理,然后执行
EXEC CICS SEND MAP
将BMS映射放到3270设备上。然后您的代码执行EXEC CICS RETURN TRANSID(EIBTRNID)
并引用您的commarea或您的频道
如果这不是“第一次”您的代码通常检查commarea或其通道和EIBAID中的一个或多个容器以确定下一步要做什么,通常这是一个EXEC CICS RECEIVE MAP
,以检索映射中字段的字段内容。然后,您的代码执行它需要的任何业务功能,可能修改映射和doi中的字段ng一个EXEC CICS SEND MAP data only
,对您的容器和EXEC CICS PUT容器中的commarea字段或字段进行适当修改,然后再次执行EXEC CICS RETURN TRANSID(EIBTRNID)
,并引用您的commarea或通道
如果像您的情况一样,检查这些字段表明用户希望退出事务,则您的代码可能会执行EXEC CICS SEND TEXT ERASE FREEKB
,其中FROM和LENGTH指包含指示事务结束的适当消息的字段。这将从屏幕上删除您的映射。然后,您的代码将执行>EXEC CICS RETURN
不带TRANSID选项,结束伪对话
请注意,每个EXEC CICS RETURN
都会执行一个隐含的EXEC CICS SYNCPOINT
提交资源,例如DB2更新和MQ消息。假设您有一个伪会话程序,每次调用它时,按下的键都会在EIBAID中
您描述的场景记录在此处的知识中心中
希望这对您有所帮助。您需要使用复印机DFHAID来捕获注意力。您可以做的是,在收到地图后,检查EIBAID=DFHPF12,然后通过EXEC CICS return返回终端。IMO,使用复印机DFHAID来捕获“按键”或注意力。
收到地图后,检查是否存在EIBAID=DFHPF12
,然后返回return
请参阅下面的段落以了解更多信息-
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
RETURN
END-EXEC
END-IF.
然而,在返回之前释放键盘和所有文件是一个好主意。
所以,代码变成这样-
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
SEND CONTROL FREEKB ERASE
END-EXEC
EXEC CICS
RETURN
END-EXEC
END-IF.