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.                                       
廣告