屏幕图像 SEND 和 START

此样本程序可演示如何使用 FEPI 以将格式化数据发送到后端事务,并在收到数据回复时请求启动事务。

此程序是 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 用户数据) 和后端事务以指示它要结束。

图 1。 CZTS 交易: 客户名称和余额查询
 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