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,我们将在接下来的模块中讨论这些语句。
不需要文件部分和环境划分。
不能使用调用操作系统函数(如 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 | 包含当前系统日期 |
| 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 命令实现用户与应用程序之间的对话。对话式程序的关键点如下 −
系统向屏幕发送消息并等待用户的响应。
用户响应所花费的时间称为思考时间。这个时间相当长,这是转换程序的一个主要缺点。
用户提供必要的输入并按下 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
********************************************************
* 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.

