CICS - BMS



BMS 稱為基本對映支援。應用程式由格式化的螢幕組成,充當終端和 CICS 程式之間的橋樑。為了在終端和 CICS 程式之間進行通訊,我們使用 CICS 終端輸入/輸出服務。我們使用 BMS 建立具有適當位置和屬性的螢幕設計。以下是 BMS 的功能:

  • BMS 充當終端和 CICS 程式之間的介面。

  • 螢幕的設計和格式與應用程式的邏輯分開。

  • BMS 使應用程式與硬體無關。

格式化螢幕

下面顯示的螢幕是選單螢幕,可以使用 BMS 設計。其要點如下:

  • 螢幕可以包含標題、日期以及要顯示的任何其他資訊。

  • 選項 1、2 和 3 是未命名的欄位,它們是螢幕的標題。

  • 在“選擇”欄位中,我們需要提供輸入。然後將此輸入傳送到 CICS 程式以進行進一步處理。

  • 在螢幕底部顯示操作鍵。

  • 所有欄位和螢幕本身都是使用 BMS 宏定義的。當定義整個對映後,我們可以使用 JCL 來組裝它。

CICS Screen

BMS 基本術語

以下是我們將在後續模組中使用的基本術語:

對映

對映是單個螢幕格式,可以使用 BMS 宏進行設計。它可以包含 1 到 7 個字元的名稱。

對映集

對映集是對映的集合,它們連結在一起形成載入模組。它應該有一個 PPT 條目。它可以包含 1 到 7 個字元的名稱。

BMS 宏

BMS 對映是用匯編語言編寫的程式,用於管理螢幕。用於定義螢幕的三個宏是 DFHMSD、DFHMDI 和 DFHMDF。

DFHMSD

DFHMSD 宏生成對映集定義。它是宏識別符號,表示我們正在開始一個對映集。對映集名稱是載入模組名稱,並且必須存在 PPT 表中的條目。下表顯示了可以在 DFHMSD 中使用的引數列表:

序號 引數及說明
1

TYPE

TYPE 用於定義對映型別。如果 TYPE =
MAP - 建立物理對映
DSECT - 建立符號對映
&&SYSPARM - 建立物理和符號對映
FINAL - 指示對映集編碼的結束。

2

MODE

MODE 用於指示輸入/輸出操作。如果 MODE =
IN - 僅用於輸入對映
OUT - 僅用於輸出對映
INOUT - 用於輸入和輸出對映

3

LANG

LANG = ASM/COBOL/PL1
它決定了 DSECT 結構的語言,用於複製到應用程式程式中。

4

STORAGE

如果 STORAGE =
AUTO - 為每個對映集獲取一個單獨的符號對映區域
BASE - 使來自多個對映集的符號對映具有相同的儲存基址

5

CTRL

CRTL 用於定義裝置控制請求。如果 CTRL =
FREEKB - 解鎖鍵盤
FRSET - 將 MDT 重置為零狀態
ALARM - 在螢幕顯示時設定警報
PRINT - 指示將對映集傳送到印表機。

6

TERM

TERM = 型別確保裝置獨立性,如果使用除 3270 終端之外的終端,則需要。

7

TIOAPFX

TIOAPFX = YES/NO
YES - 為 BMS 命令預留字首空間(12 位元組)以正確訪問 TIOA。CICS 命令級別需要。

示例

以下示例顯示瞭如何編碼對映集定義:

MPST01  DFHMSD TYPE = &SYSPARM, X
   CTRL = (FREEKB,FRSET), X
   LANG = COBOL, X 
   STORAGE = AUTO, X
   TIOAPFX = YES, X
   MODE = INOUT, X
   TERM = 3270
   DFHMSD TYPE = FINAL 
END

DFHMDI

DFHMDI 宏生成對映定義。它表示我們正在開始一個新的對映。對映名稱後跟 DFHMDI 宏。對映名稱用於傳送或接收對映。下表顯示了我們在 DFHMDI 宏內部使用的引數:

序號 引數及說明
1

SIZE

SIZE = (行,列)
此引數給出對映的大小。BMS 允許我們使用多個對映構建螢幕,當我們在單個對映集中使用多個對映時,此引數變得很重要。

2

LINE

它指示對映的起始行號。

3

COLUMN

它指示對映的起始列號。

4

JUSTIFY

它用於指定整個對映或對映欄位是左對齊還是右對齊。

5

CTRL

CRTL 用於定義裝置控制請求。如果 CTRL =
FREEKB - 解鎖鍵盤
FRSET - 將 MDT 重置為零狀態
ALARM - 在螢幕顯示時設定警報
PRINT - 指示將對映傳送到印表機

6

TIOAPFX

TIOAPFX = YES/NO

YES - 為 BMS 命令預留字首空間(12 位元組)以正確訪問 TIOA。CICS 命令級別需要。

示例

以下示例顯示瞭如何編碼對映定義:

MAPSTD DFHMDI SIZE = (20,80), X
   LINE = 01, X
   COLUMN = 01, X
   CTRL = (FREEKB,FRSET)

DFHMDF

DFHMDF 宏用於定義欄位名稱。欄位名稱在編碼 DFHMDF 宏的對面進行提及。此欄位名稱在程式內部使用。我們不會在不想在程式內部使用的常量欄位上編寫欄位名稱。下表顯示了可以在 DFHMDF 宏內部使用的引數列表:

序號 引數及說明
1

POS

這是欄位應出現在螢幕上的位置。欄位以其屬性位元組開頭,因此如果您編碼 POS = (1,1),則該欄位的屬性位元組位於第 1 行第 1 列,實際資料從第 2 列開始。

2

LENGTH

這是欄位的長度,不包括屬性位元組。

3

INITIAL

這是輸出欄位的字元資料。我們使用它來指定螢幕的標籤和標題,並使它們獨立於程式。例如,對於選單螢幕中的第一個欄位,我們將編碼:INITIAL = 'MENU'。

4

JUSTIFY

它用於指定整個對映或對映欄位是左對齊還是右對齊。

5

ATTRB

ATTRB = (ASKIP/PROT/UNPROT, NUM, BRT/NORM/DRK, IC, FSET) 它描述了欄位的屬性。

ASKIP - 自動跳過。無法在此欄位中輸入資料。游標跳到下一個欄位。

PROT - 受保護欄位。無法在此欄位中輸入資料。如果輸入資料,將導致輸入禁止狀態。

UNPROT - 未受保護欄位。可以輸入資料,這用於所有輸入欄位。

NUM - 數字欄位。僅允許數字(0 到 9)和特殊字元('.' 和 '-')。

BRT - 欄位的亮顯示(突出顯示)。

NORM - 正常顯示。

DRK - 深色顯示。

IC - 插入游標。游標將放置在此欄位中。如果多次指定 IC,則游標將放置在最後一個欄位中。

FSET - 欄位集。MDT 設定為開,以便無論使用者是否實際修改了欄位,都將欄位資料從終端傳送到主機計算機。

6

PICIN

PICIN 應用於用作輸入的資料欄位,例如 PICIN = 9(8)。

7

PICOUT

PICIN 應用於用作輸出的資料欄位,例如 PICOUT = Z(8)。

示例

以下示例顯示瞭如何編碼欄位定義:

DFHMDF POS = (01,01), X
   LENGTH = 7, X
   INITIAL = ‘SCREEN1’, X
      ATTRB = (PROT,NORM)
      STDID DFHMDF POS = (01,70), X
      LENGTH = 08, X
      ATTRB = (PROT,NORM)
廣告

© . All rights reserved.