任何应用程序都需要一个接口来与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子句 | 描述 |
---|---|---|
EIBAID | X(1) | 援助按键 |
EIBCALEN | S9(4)COMP | 它包含DFHCOMMAREA的长度 |
EIBDATE | S9(7)COMP-3 | It conta ins当前系统日期 |
EIBRCODE | X(6) | 它包含最后一笔交易的退货代码 |
EIBTASKN | S9(7)COMP-3 | 它包含任务编号 |
EIBTIME | S9(7)COMP-3 | 它包含当前系统时间 |
EIBTRMID | X(4) | 终端标识符 |
EIBTRNID | X(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终端上显示相同的输入作为输出 :
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.