CICS - 接口块

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

受限制的COBOL动词

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

  • 文件I / O语句,如Open,读,写,重写,关闭,删除和启动。 CICS中的所有文件I / O都由文件控制模块处理,它们有自己的一组语句,如READ,WRITE,REWRITE和DELETE,我们将在即将发布的模块中讨论这些语句。

  • 不需要文件部分和环境部门。

  • 调用操作系统函数(如Accept,Date / Time)的COBOL语句不能使用。

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

执行接口块

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

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

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

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

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

EIB字段

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

EIB字段PIC子句描述
EIBAIDX(1)援助按键
EIBCALENS9(4)COMP它包含DFHCOMMAREA的长度
EIBDATES9(7)COMP-3It conta ins当前系统日期
EIBRCODEX(6)它包含最后一笔交易的退货代码
EIBTASKNS9(7)COMP-3它包含任务编号
EIBTIMES9(7)COMP-3它包含当前系统时间
EIBTRMIDX(4)终端标识符
EIBTRNIDX(4)交易标识符

CICS程序分类

CICS程序分为以下三类,我们将讨论逐个减去;

  • 非会话程序

  • 会话程序

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

非会话程序

执行非会话程序时,不需要人为干预。程序启动时提供所有必要的输入。

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

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

示例

以下示例显示了一个非会话程序,它只会显示"HELLO WORLD" CICS终端作为输出 :

 
 IDENTIFICATION DIVISION.                                
PROGRAM-ID. HELLO.                                      
DATA DIVISION.                                          
WORKING-STORAGE SECTION.                                
01 WS-MESSAGE          PIC X(30).                       
PROCEDURE DIVISION.   
 ********************************************** ********** 
 *向屏幕发送数据* 
 ************************** ****************************** 
   MOVE 'HELLO WORLD' TO WS-MESSAGE                
   EXEC CICS SEND TEXT                             
      FROM (WS-MESSAGE)                          
   END-EXEC      
 **************************** **************************** 
 *任务终止,没有与用户的任何互动* 
 **** ************************************************** ** 
 XEC CICS RETURN                                
END-EXEC.


会话程序

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

  • 系统向屏幕发送消息并等待用户的回复。

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

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

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

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

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 
 ********************************* *********************** 
 *从节目到屏幕发送数据* 
 *********** ********************************************* 
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC 
 ************************** ****************************** 
 *从用户输入* 
 ****** ************************************************** 
   EXEC CICS RECEIVE                              
      INTO(WS-MESSAGE)                          
   END-EXEC                                       
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC  
 ********************************************* ********* 
 * COMMAND终止交易* 
 **************************************** **************** 
   EXEC CICS RETURN                               
END-EXEC.