📜  CICS-接口块

📅  最后修改于: 2020-11-22 16:34:24             🧑  作者: Mango


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

受限制的COBOL动词

在编写CICS程序时,我们不能使用将控件直接返回到MVS的命令。如果我们对这些COBOL动词进行编码,则不会产生任何编译错误,但可能会导致不可预测的结果。以下是不应在CICS程序中使用的COBOL动词-

  • 文件I / O语句,例如打开,读取,写入,重写,关闭,删除和启动。 CICS中的所有文件I / O都由文件控制模块处理,它们具有自己的一组语句,如READ,WRITE,REWRITE和DELETE,我们将在后续模块中对其进行讨论。

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

  • 不能使用调用操作系统功能(例如,接受,日期/时间)的COBOL语句。

  • 不要使用“显示”,“合并”,“停止运行”和“返回”。

执行接口块

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

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

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

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

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

EIB字段

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

EIB Field PIC Clause Description
EIBAID X(1) Aid key Pressed
EIBCALEN S9(4) COMP It contains length of DFHCOMMAREA
EIBDATE S9(7) COMP-3 It contains Current System Date
EIBRCODE X(6) It contains Return code of the last transaction
EIBTASKN S9(7) COMP-3 It contains Task number
EIBTIME S9(7) COMP-3 It contains Current System Time
EIBTRMID X(4) Terminal Identifier
EIBTRNID X(4) Transaction Identifier

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转换程序

以下示例显示了一个转换程序,该程序从用户处获取输入,然后在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.