CICS - 接口块



任何应用程序都需要一个接口来与 CICS 交互。EIB(执行接口块)充当一个接口,允许应用程序与 CICS 通信。EIB 包含程序执行期间所需的信息。

受限的 COBOL 动词

在编写 CICS 程序时,我们不能使用直接将控制权返回给 MVS 的命令。如果我们编写这些 COBOL 动词,它不会产生任何编译错误,但我们可能会得到不可预测的结果。以下是在 CICS 程序中不应使用的 COBOL 动词:

  • 文件 I/O 语句,如 Open、Read、Write、Rewrite、Close、Delete 和 Start。CICS 中的所有文件 I/O 由文件控制模块处理,它们有自己的一套语句,如 READ、WRITE、REWRITE 和 DELETE,我们将在后续模块中讨论。

  • 不需要文件段和环境部。

  • 调用操作系统功能的 COBOL 语句,如 Accept、Date/Time,不能使用。

  • 不要使用 DISPLAY、MERGE、STOP RUN 和 GO BACK。

执行接口块

执行接口块 (EIB) 是一个控制块,由 CICS 为每个程序自动加载。

  • EIB 对任务是唯一的,并且在任务持续期间存在。它包含一组与任务相关的系统信息。

  • 它包含有关事务标识符、时间、日期等的信息,这些信息在 CICS 执行应用程序程序期间使用。

  • 作为任务的一部分执行的每个程序都可以访问相同的 EIB。

  • 可以在 CEDF 模式下执行程序以查看运行时 EIB 中的数据。

EIB 字段

下表提供了 EIB 中存在的字段列表:

EIB 字段 PIC 子句 描述
EIBAID X(1) 按下的辅助键
EIBCALEN S9(4) COMP 它包含 DFHCOMMAREA 的长度
EIBDATE S9(7) COMP-3 它包含当前系统日期
EIBRCODE X(6) 它包含上次事务的返回码
EIBTASKN S9(7) COMP-3 它包含任务编号
EIBTIME S9(7) COMP-3 它包含当前系统时间
EIBTRMID X(4) 终端标识符
EIBTRNID X(4) 事务标识符

CICS 程序分类

CICS 程序分为以下三类,我们将逐一讨论:

  • 非对话式程序
  • 对话式程序
  • 伪对话式程序 - 我们将在下一个模块中讨论

非对话式程序

执行非对话式程序时,不需要人工干预。所有必要的输入都在程序启动时提供。

  • 它们类似于以批处理模式运行的批处理程序。因此,在 CICS 中,它们很少被开发。

  • 我们可以说它们仅用于定期显示一系列屏幕。

示例

以下示例显示了一个非对话式程序,它将简单地在 CICS 终端上显示“HELLO WORLD”作为输出:

IDENTIFICATION DIVISION.                                
PROGRAM-ID. HELLO.                                      
DATA DIVISION.                                          
WORKING-STORAGE SECTION.                                
01 WS-MESSAGE          PIC X(30).                       
PROCEDURE DIVISION.                                     
********************************************************
* SENDING DATA TO SCREEN                               * 
********************************************************
   MOVE 'HELLO WORLD' TO WS-MESSAGE                
   EXEC CICS SEND TEXT                             
      FROM (WS-MESSAGE)                          
   END-EXEC                                        
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER* 
********************************************************
   EXEC CICS RETURN                                
END-EXEC.

对话式程序

向终端发送消息并接收用户的响应称为对话。联机应用程序通过一对 SEND 和 RECEIVE 命令实现用户与应用程序程序之间的对话。对话式程序的关键点如下:

  • 系统将消息发送到屏幕并等待用户的响应。

  • 用户响应所需的时间称为思考时间。此时间相当长,这是转换程序的主要缺点。

  • 用户提供必要的输入并按下辅助键。

  • 应用程序处理用户的输入并发送输出。

  • 程序在开始时加载到主存储器中,并在任务结束前保留。

CICS Conversion Program

示例

以下示例显示了一个转换程序,它从用户那里获取输入,然后简单地在 CICS 终端上显示相同的输入作为输出:

IDENTIFICATION DIVISION.                               
PROGRAM-ID. HELLO.                                     
DATA DIVISION.                                         
WORKING-STORAGE SECTION.                               
01 WS-MESSAGE          PIC X(30) VALUE SPACES.         
PROCEDURE DIVISION.                                    
   MOVE 'ENTER MESSAGE' TO WS-MESSAGE           
********************************************************
* SENDING DATA FROM PROGRAM TO SCREEN                  * 
********************************************************
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* GETTING INPUT FROM USER                              * 
********************************************************
   EXEC CICS RECEIVE                              
      INTO(WS-MESSAGE)                          
   END-EXEC                                       
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* COMMAND TO TERMINATE THE TRANSACTION                 * 
********************************************************
   EXEC CICS RETURN                               
END-EXEC.                                       
广告