
- CICS 教程
- CICS - 首页
- CICS - 概述
- CICS - 环境
- CICS - 基本术语
- CICS - 内核
- CICS - 事务
- CICS - COBOL 基础
- CICS - BMS
- CICS - MAP
- CICS - 接口块
- CICS - 伪代码编程
- CICS - 辅助键
- CICS - 文件处理
- CICS - 错误处理
- CICS - 控制操作
- CICS - 临时存储
- CICS - 互连通信
- CICS - 状态码
- CICS - 面试问题
- CICS 有用资源
- CICS - 快速指南
- CICS - 有用资源
- CICS - 讨论
CICS - BMS
BMS 称为基本映射支持。应用程序由格式化的屏幕组成,充当终端和 CICS 程序之间的桥梁。为了在终端和 CICS 程序之间进行通信,我们使用 CICS 终端输入/输出服务。我们使用 BMS 创建具有适当位置和属性的屏幕设计。以下是 BMS 的功能:
BMS 充当终端和 CICS 程序之间的接口。
屏幕的设计和格式与应用程序的逻辑分开。
BMS 使应用程序与硬件无关。
格式化屏幕
下面显示的屏幕是菜单屏幕,可以使用 BMS 设计。其要点如下:
屏幕可以包含标题、日期以及要显示的任何其他信息。
选项 1、2 和 3 是未命名的字段,它们是屏幕的标题。
在“选择”字段中,我们需要提供输入。然后将此输入发送到 CICS 程序以进行进一步处理。
在屏幕底部显示操作键。
所有字段和屏幕本身都是使用 BMS 宏定义的。当定义整个映射后,我们可以使用 JCL 来组装它。

BMS 基本术语
以下是我们将在后续模块中使用的基本术语:
映射
映射是单个屏幕格式,可以使用 BMS 宏进行设计。它可以包含 1 到 7 个字符的名称。
映射集
映射集是映射的集合,它们链接在一起形成加载模块。它应该有一个 PPT 条目。它可以包含 1 到 7 个字符的名称。
BMS 宏
BMS 映射是用汇编语言编写的程序,用于管理屏幕。用于定义屏幕的三个宏是 DFHMSD、DFHMDI 和 DFHMDF。
DFHMSD
DFHMSD 宏生成映射集定义。它是宏标识符,表示我们正在开始一个映射集。映射集名称是加载模块名称,并且必须存在 PPT 表中的条目。下表显示了可以在 DFHMSD 中使用的参数列表:
序号 | 参数及说明 |
---|---|
1 |
TYPE TYPE 用于定义映射类型。如果 TYPE = |
2 |
MODE MODE 用于指示输入/输出操作。如果 MODE = |
3 |
LANG LANG = ASM/COBOL/PL1 |
4 |
STORAGE 如果 STORAGE = |
5 |
CTRL CRTL 用于定义设备控制请求。如果 CTRL = |
6 |
TERM TERM = 类型确保设备独立性,如果使用除 3270 终端之外的终端,则需要。 |
7 |
TIOAPFX TIOAPFX = YES/NO |
示例
以下示例显示了如何编码映射集定义:
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 = (行,列) |
2 |
LINE 它指示映射的起始行号。 |
3 |
COLUMN 它指示映射的起始列号。 |
4 |
JUSTIFY 它用于指定整个映射或映射字段是左对齐还是右对齐。 |
5 |
CTRL CRTL 用于定义设备控制请求。如果 CTRL = |
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)