关闭事务 CICS
Close a Transaction CICS
我有一个短程序 COBOL CICS,它是一个基本的 CRUD。在这个程序中我有一个选项,当我按 F12 我想退出时,关闭我的交易。
我想按 F12 关闭交易。
我可以在我的 COBOL 程序中编写任何命令来执行此操作吗?
谢谢
EXEC CICS RETURN 将结束您的程序,但屏幕上的内容仍然存在。
如果您先执行 EXEC CICS SEND CONTROL ERASE 命令,然后执行 EXEC CICS RETURN,这将完成您的程序并清除屏幕。
在伪会话 3270 CICS 事务中,您的代码通常首先检查这是否是 "first time in",方法是检查 EIBCALEN = 0
或 EIBRESP = DFHRESP( CHANNELERR )
在 EXEC CICS GET CONTAINER
如果您使用的是容器而不是逗号。
如果这是 "first time in",您的代码通常会做一些内务处理,然后 EXEC CICS SEND MAP
将您的 BMS 映射放到 3270 设备上。然后您的代码执行 EXEC CICS RETURN TRANSID(EIBTRNID)
并引用您的逗号或频道。
如果这不是 "first time in" 您的代码通常会检查逗号或其通道中的一个或多个容器和 EIBAID 以确定下一步要做什么,通常这是一个 EXEC CICS RECEIVE MAP
来检索地图中字段的字段内容。然后,您的代码执行它需要的任何业务功能,可能会修改地图中的字段并执行 EXEC CICS SEND MAP DATAONLY
,对容器中的逗号字段或字段以及 EXEC CICS PUT CONTAINER
和 EXEC CICS PUT CONTAINER
进行适当修改再次执行 EXEC CICS RETURN TRANSID(EIBTRNID)
并引用您的 commarea 或您的频道。
如果像您的情况一样,检查这些字段表明用户希望退出交易,您的代码可能会执行 EXEC CICS SEND TEXT ERASE FREEKB
,其中 FROM 和 LENGTH 引用包含指示交易结束的适当消息的字段.这将从屏幕上删除您的地图。然后你的代码会执行 EXEC CICS RETURN
没有 TRANSID 选项,结束你的伪对话。
请注意,each EXEC CICS RETURN
执行隐含的 EXEC CICS SYNCPOINT
提交资源,例如 DB2 更新和 MQ 消息。
假设你有一个伪会话程序,每次调用它时按下的键都在 EIBAID
您所描述的场景记录在此处的知识中心中
https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/applications/designing/dfhp31i.html
希望对您有所帮助
你需要用文案DFHAID来吸引眼球。您可以做的是,在收到地图后,检查 EIBAID=DFHPF12 然后 return 通过 EXEC CICS RETURN
到终端
IMO,使用字帖 DFHAID
来吸引 "Key-Press" 或注意力。
收到地图后,检查 EIBAID = DFHPF12
然后 return RETURN
请参阅下面的段落以获得更好的理解 -
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
RETURN
END-EXEC
END-IF.
但是,最好在 returning 之前释放键盘和所有内容。
所以,代码变成了这样的 -
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
SEND CONTROL FREEKB ERASE
END-EXEC
EXEC CICS
RETURN
END-EXEC
END-IF.
我有一个短程序 COBOL CICS,它是一个基本的 CRUD。在这个程序中我有一个选项,当我按 F12 我想退出时,关闭我的交易。
我想按 F12 关闭交易。
我可以在我的 COBOL 程序中编写任何命令来执行此操作吗?
谢谢
EXEC CICS RETURN 将结束您的程序,但屏幕上的内容仍然存在。
如果您先执行 EXEC CICS SEND CONTROL ERASE 命令,然后执行 EXEC CICS RETURN,这将完成您的程序并清除屏幕。
在伪会话 3270 CICS 事务中,您的代码通常首先检查这是否是 "first time in",方法是检查 EIBCALEN = 0
或 EIBRESP = DFHRESP( CHANNELERR )
在 EXEC CICS GET CONTAINER
如果您使用的是容器而不是逗号。
如果这是 "first time in",您的代码通常会做一些内务处理,然后 EXEC CICS SEND MAP
将您的 BMS 映射放到 3270 设备上。然后您的代码执行 EXEC CICS RETURN TRANSID(EIBTRNID)
并引用您的逗号或频道。
如果这不是 "first time in" 您的代码通常会检查逗号或其通道中的一个或多个容器和 EIBAID 以确定下一步要做什么,通常这是一个 EXEC CICS RECEIVE MAP
来检索地图中字段的字段内容。然后,您的代码执行它需要的任何业务功能,可能会修改地图中的字段并执行 EXEC CICS SEND MAP DATAONLY
,对容器中的逗号字段或字段以及 EXEC CICS PUT CONTAINER
和 EXEC CICS PUT CONTAINER
进行适当修改再次执行 EXEC CICS RETURN TRANSID(EIBTRNID)
并引用您的 commarea 或您的频道。
如果像您的情况一样,检查这些字段表明用户希望退出交易,您的代码可能会执行 EXEC CICS SEND TEXT ERASE FREEKB
,其中 FROM 和 LENGTH 引用包含指示交易结束的适当消息的字段.这将从屏幕上删除您的地图。然后你的代码会执行 EXEC CICS RETURN
没有 TRANSID 选项,结束你的伪对话。
请注意,each EXEC CICS RETURN
执行隐含的 EXEC CICS SYNCPOINT
提交资源,例如 DB2 更新和 MQ 消息。
假设你有一个伪会话程序,每次调用它时按下的键都在 EIBAID
您所描述的场景记录在此处的知识中心中 https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/applications/designing/dfhp31i.html
希望对您有所帮助
你需要用文案DFHAID来吸引眼球。您可以做的是,在收到地图后,检查 EIBAID=DFHPF12 然后 return 通过 EXEC CICS RETURN
到终端IMO,使用字帖 DFHAID
来吸引 "Key-Press" 或注意力。
收到地图后,检查 EIBAID = DFHPF12
然后 return RETURN
请参阅下面的段落以获得更好的理解 -
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
RETURN
END-EXEC
END-IF.
但是,最好在 returning 之前释放键盘和所有内容。 所以,代码变成了这样的 -
P9000-RETURN-TERM.
IF EIBAID = DFHPF12
EXEC CICS
SEND CONTROL FREEKB ERASE
END-EXEC
EXEC CICS
RETURN
END-EXEC
END-IF.