屏幕图像 SEND 和 START
此样本程序可演示如何使用 FEPI 以将格式化数据发送到后端事务,并在收到数据回复时请求启动事务。
| 模块名 | DFH0VZTS |
| 事务名称 | CZTS |
| 映射名称 | DFH0MZ2 |
此程序是 SEND-RECEIVE 对程序的 SEND 部分, RECEIVE 部分为 DFH0VZTR。
在第一次调用此发送事务时,会将映射发送到前端终端。
当有来自前端终端的输入时, CICS® 会再次调用此发送事务。 从输入中抽取客户编号。 使用 FEPI ALLOCATE 可启动与后端系统的对话。 然后使用带有屏幕图像数据的 FEPI SEND 来启动后端事务。 发出 FEPI START 以指定在后端系统应答时启动接收事务。
在适当时候,将启动接收事务并将 XCTL 发送到此发送事务。 现在,可以使用带有屏幕图像数据的 FEPI SEND 将客户编号发送到后端。 再次发出 FEPI START。
接收事务从后端事务获取结果并将其发送到前端终端。
当前端终端有更多输入时, CICS 会再次调用此事务。 发出 FEPI ALLOCATE WITH PASSCONVID 以获取对话的所有权,并像以前一样将客户编号发送到后端。 循环继续,直到接收到 PF3 或 CLEAR。 这些将传递到接收事务 (使用 FEPI START 用户数据) 和后端事务以指示它要结束。
CZTS Customer Name and Balance Inquiry
Please type a customer number in the range 1 through 9999, then Enter.
Customer number . . . . .
Name . . . . . :
Balance. . . . :
F3=EXIT to CICS
程序逻辑
MAIN procedure:
Test COMMAREA
If transaction not previously invoked
Call SEND-MAP
If first customer number to process
Call CONTINUE-CONVERSATION
Set up exception condition handling:
Map error - SEND-MAP
PF3/CLEAR - CONTINUE-CONVERSATION
RECEIVE MAP from front-end terminal
If conversation not started
Call INITIATE-CONVERSATION
Else
Call CONTINUE-CONVERSATION
SEND-MAP routine:
SEND new map to front-end terminal
RETURN TRANSID(CZTS) with COMMAREA
INITIATE-CONVERSATION routine:
FEPI ALLOCATE conversation with back-end
Build screen image to invoke back-end transaction
FEPI SEND screen image to back-end
FEPI START the receive transaction
RETURN
CONTINUE-CONVERSATION routine:
Unless first customer number
Reaccess conversation with FEPI ALLOCATE PASSCONVID
Build screen image to send customer number
FEPI SEND screen image to back-end
FEPI START the receive transaction
RETURN