我有一个简短的程序COBOL,它是一个基本的CRUD。在这个程序中,我有一个选项,当我按下F12,我想退出,关闭我的事务。
我想按F12并关闭事务。
我可以在我的COBOL程序中编写任何命令来完成这个任务吗?
谢谢
发布于 2019-01-24 16:17:19
假设您有一个伪会话程序,每次调用它时,按下的键将在EIBAID中。
您所描述的场景在这里的知识中心( 5.5.0/applications/designing/dfhp31i.html )中有文档记录。
希望这有帮助
发布于 2019-01-24 14:23:02
EXEC返回将结束您的程序,但您仍将拥有屏幕的内容。
如果您先执行EXEC CICS发送控制擦除命令,然后执行CICS返回,这将完成您的程序并清除屏幕。
发布于 2019-01-24 15:07:37
在一个伪会话3270cICS事务中,您的代码通常首先检查这是否是“第一次进入”,检查如果使用容器而不是逗号区域,检查是否为EIBCALEN = 0或在EXEC CICS GET CONTAINER之后是否为EIBRESP = DFHRESP( CHANNELERR )。
如果这是“第一次在”您的代码通常做一些内务管理,然后一个EXEC CICS SEND MAP把您的BMS地图上的3270设备。然后,您的代码执行一个EXEC CICS RETURN TRANSID(EIBTRNID),并引用您的逗号区域或通道。
如果这不是“第一次”您的代码通常检查逗区或其通道中的一个或多个容器和EIBAID以确定下一步要做什么,通常这是一个EXEC CICS RECEIVE MAP,用于检索映射中字段的字段内容。然后,您的代码执行它需要的任何业务功能,可能修改映射中的字段并执行EXEC CICS SEND MAP DATAONLY,对容器和EXEC CICS PUT CONTAINER中的逗区字段或字段进行适当的修改,并再次执行EXEC CICS RETURN TRANSID(EIBTRNID)和引用您的逗区或通道。
如果像在您的示例中一样,检查这些字段表明用户希望退出事务,则您的代码可能会执行一个EXEC CICS SEND TEXT ERASE FREEKB,其中FROM和LENGTH引用包含指示事务结束的适当消息的字段。这会把你的地图从屏幕上抹去。然后,您的代码将在没有TRANSID选项的情况下执行EXEC CICS RETURN,从而结束您的伪会话。
请注意,每个EXEC CICS RETURN都执行一个隐含的EXEC CICS SYNCPOINT提交资源,如DB2更新和MQ消息。
https://stackoverflow.com/questions/54348342
复制相似问题