我有一个简短的程序COBOL CICS,它是一个基本的CRUD。在此程序中,我有一个选项,当我按F12键时要退出,请关闭我的交易。
我想按F12键,然后交易结束。
我可以在COBOL程序中编写任何命令来执行此操作吗?
谢谢
答案 0 :(得分:5)
假设您有一个伪对话程序,则每次调用它时,按下的键都将在EIBAID中
您描述的方案记录在此处的知识中心 https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/applications/designing/dfhp31i.html
希望有帮助
答案 1 :(得分:2)
EXEC CICS RETURN将结束您的程序,但是您仍然会看到屏幕上的内容。
如果先执行EXEC CICS SEND CONTROL ERASE命令,然后再执行EXEC CICS RETURN,则将完成程序并清除屏幕。
答案 2 :(得分:2)
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.
答案 3 :(得分:1)
在伪对话3270 CICS事务中,您的代码通常开始于检查{{1}之后是EIBCALEN = 0
还是EIBRESP = DFHRESP( CHANNELERR )
,以检查这是否是“第一次”。 }}(如果您使用的是容器而不是逗号)。
如果这是“第一次”,您的代码通常会做一些内务处理,然后执行EXEC CICS GET CONTAINER
将BMS映射放在3270设备上。然后,您的代码执行EXEC CICS SEND MAP
并引用您的逗号或您的频道。
如果这不是“第一次”,那么您的代码通常会检查其通道和EIBAID中的逗号或一个或多个容器以确定下一步该做什么,通常这是一个EXEC CICS RETURN TRANSID(EIBTRNID)
来检索字段内容地图中的字段。然后,您的代码将执行所需的任何业务功能,可能会修改映射中的字段并执行EXEC CICS RECEIVE MAP
,并对逗号字段或容器中的字段以及EXEC CICS SEND MAP DATAONLY
进行适当的修改,然后再次执行EXEC CICS PUT CONTAINER
并引用您的逗号或您的频道。
如果像您一样检查这些字段指示用户希望退出交易,则您的代码可能会执行EXEC CICS RETURN TRANSID(EIBTRNID)
,其中FROM和LENGTH引用包含指示交易结束的适当消息的字段。这将从屏幕上删除您的地图。然后,您的代码将执行EXEC CICS SEND TEXT ERASE FREEKB
而没有 TRANSID选项,从而结束伪对话。
请注意,每个 EXEC CICS RETURN
会隐式EXEC CICS RETURN
提交诸如DB2更新和MQ消息之类的资源。
答案 4 :(得分:1)
您需要使用本抄本DFHAID来吸引注意力。您可以做的是,在获取地图后,检查EIBAID = DFHPF12,然后通过EXEC CICS RETURN返回到终端