CICS - BMS

BMS称为基本映射支持。应用程序由格式化的屏幕组成,它们充当终端和CICS程序之间的桥梁。为了在终端和CICS程序之间进行通信,我们使用CICS终端输入/输出服务。我们使用BMS创建具有适当位置和属性的屏幕设计。以下是BMS&minus的功能;

  • BMS充当终端和CICS程序之间的接口。
  • 屏幕的设计和格式与应用逻辑分开。
  • BMS制作应用程序硬件独立。

格式化屏幕

下面显示的屏幕是菜单屏幕,可以使用BMS设计。它的关键点如下:

  • 屏幕上可能有标题,日期和其他任何信息。显示。
  • 选项1,2和3是未命名的字段,它们是屏幕的标题。
  • 在Selection字段中,我们需要提供输入。然后将此输入发送到CICS程序以进行进一步处理。
  • 在屏幕底部显示操作键。
  • 所有字段和屏幕本身都是使用BMS宏定义的。定义整个地图后,我们可以使用JCL来组装它。

CICS Screen

BMS基本条款

以下是我们将在即将推出的模块中使用的基本术语 :

地图

地图是单屏格式,可以使用BMS宏设计。它可以包含1到7个字符的名称。

Mapset

Mapset是一组地图,它们链接在一起形成一个加载模块。它应该有一个PPT条目。它可以有1到7个字符的名称。

BMS宏

BMS地图是一个用汇编语言编写来管理屏幕的程序。用于定义屏幕的三个宏是DFHMSD,DFHMDI和DFHMDF。

DFHMSD

DFHMSD宏生成Mapset定义。它是宏标识符,表明我们正在启动一个mapset。 mapset名称是加载模块名称,必须存在PPT表中的条目。下表显示了可在DFHMSD&minus中使用的参数列表;

Sr .No 参数&说明
1

TYPE

TYPE用于定义地图类型。如果TYPE =
MAP  - 物理地图已创建
DSECT  - 创建符号地图
&& SYSPARM  - 物理&符号,两者都被创建
最终 - 表示地图集编码的结束。

2

模式

MODE用于指示输入/输出操作。 IF MODE =
IN  - 仅用于输入地图
OUT  - 仅用于输出地图
INOUT对于输入和输出输出地图

3

LANG

LANG = ASM / COBOL / PL1
它决定DSECT结构的语言,用于复制进入应用程序。

4

存储

如果STORAGE =
$
AUTO  - 为每个地图集获取单独的符号地图区域
BASE  - 为多个地图集的符号地图提供相同的存储基础

5

CTRL

CRTL用于定义设备控制请求。如果CTRL =
FREEKB  - 解锁键盘
FRSET  - 将MDT重置为零状态
ALARM  - 在屏幕显示时设置闹钟时间
打印 - 表示要发送到打印机的地图集。

6

TERM

TERM = type确保设备独立性,如果使用的不是3270终端,则需要。

7

TIOAPFX

TIOAPFX = YES / NO
是 - 保留前缀空格( 12个字节)用于BMS命令正确访问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宏生成地图定义。它表明我们正在开始一张新地图。 Mapname后跟DFHMDI宏。 Mapname用于发送或接收地图。下表显示了我们在DFHMDI宏中使用的参数 :

Sr.否 参数&描述
1

SIZE

SIZE =(行,列)
此参数给出地图的大小。 BMS允许我们使用多个地图构建一个屏幕,当我们在一个地图集中使用多个地图时,此参数变得很重要。

2

它表示地图的起始行号。

3

COLUMN

它表示地图的起始列号。

4

JUSTIFY

它用于指定整个地图或地图字段左对齐或右对齐。

5

CTRL

CRTL是用于定义设备控制请求。如果CTRL =
FREEKB  - 解锁键盘
FRSET  - 将MDT重置为零状态
ALARM  - 在屏幕显示时设置闹钟时间
打印 - 表示要发送到打印机的地图

6

TIOAPFX

TIOAPFX = YES / NO

是 - 保留BMS命令的前缀空间(12个字节)以正确访问TIOA。 CICS命令级别必需。

示例

以下示例显示如何编码地图定义 :

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

DFHMDF

DFHMDF宏用于定义字段名称。提到了对DFHMDF宏进行编码的字段名称。该字段名称在程序中使用。我们不对在程序内部不想使用的常量字段写字段名称。下表显示了可以在DFHMDF宏中使用的参数列表 :

Sr.No 参数&说明
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  -  Autoskip。无法在此字段中输入数据。光标跳到下一个字段。

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)