BMS接收用户输入的数据,然后将其格式化为符号地图区域。应用程序只能访问符号映射中的数据。应用程序处理数据,输出发送到符号映射。 BMS会将符号数据的输出与物理地图合并。
物理地图
物理地图是加载库中的加载模块,其中包含有关如何显示地图的信息。
符号地图
符号地图是图书馆中的复制书。 CICS应用程序使用copy book来从终端发送和接收数据。
- 它包含所有变量复制到程序的WORKINGSTORAGE部分的数据。
- 它包含所有已命名的字段。应用程序员使用这些字段在地图中读取和写入数据。
船长和停止者字段
对于未受保护的命名字段,在地图中,如果我们指定了长度10,这意味着名称字段可以采用长度不能超过10的值。但是当您使用CICS显示此地图并开始输入值时在屏幕上的这个字段,我们可以输入10个以上的字符,即直到屏幕结束,我们甚至可以输入下一行。为了防止这种情况,我们使用Skipper字段或stop字段。船长字段通常是长度为1的未命名字段,在指定字段后指定。
Skipper Field
如果我们在命名的不受保护的字段后面放置一个skipper字段,那么在输入值时,一旦达到指定的长度,光标将自动定位到下一个不受保护的字段。以下示例显示如何添加船长字段 :
NUMBER DFHMDF POS =(01,01),X LENGTH = 5,X ATTRB =(UNPROT,IC) DFHMDF POS =(01,07),X LENGTH = 1,X ATTRB =(ASKIP)
Stopper Field
如果我们在命名的不受保护的字段后面放置一个停止字段,那么在输入值时,一旦指定的长度为到达后,光标将停止其定位。以下示例显示如何添加限制字段 :
NUMBER DFHMDF POS =(01,01),X LENGTH = 5,X ATTRB =(UNPROT,IC) DFHMDF POS =(01,07),X LENGTH = 1,X ATTRB =(PROT)
属性字节
任何字段的属性字节都存储有关字段物理属性的信息。下图和表格解释了每个位的重要性。
位位置 | 描述 | 位设置 |
---|---|---|
0& 1 | 由第2位到第7位的内容决定 | |
2& 3 | 保护& Shift | 00 - 无保护的字母数字 01 - 无保护的数字 10 - 受保护的停止 11 - 受保护的跳过 |
4& 5 | 强度 | 00 - 正常 01 - 正常 10 - Bright 11 - 无显示(暗) |
6 | 必须为零 | |
7 | 修改后的数据标记 | 0 - 字段未被修改 1 - 字段已被修改 |
修改后的数据标记
发送地图
发送map命令将格式化输出写入终端。它用于从应用程序将地图发送到终端。以下代码段显示如何将地图发送到终端 :
EXEC CICS SEND MAP('map-name' ) MAPSET('mapset-name') [FROM(data-area)] [LENGTH(data_value)] [DATAONLY] [MAPONLY] [CURSOR] [ERASE / ERASEAUP] [FREEKB] [FRSET] END-EXEC
下表列出了发送映射命令中使用的参数及其重要性。
Sr.No | 参数&说明 |
---|---|
1 |
地图名称 这是我们要发送的地图的名称。这是强制性的。 |
2 |
Mapset-name |
3 |
FROM 如果我们决定使用不同的DSECT名称,则使用它,我们必须使用选项FROM( dsect-name)以及SEND MAP命令。 |
4 |
MAPONLY 这意味着您的程序中的数据不会合并到地图中,只会传输地图中的信息。 |
5 |
DATAONLY 这与MAPONLY完全相反。我们使用它来修改已经创建的显示中的变量数据。只有程序中的数据才会发送到屏幕。地图中的常量不会被发送。 |
6 | |
7 |
ERASEUP 它只会删除不受保护的字段。 |
8 |
FRSET |
9 |
CURSOR 可用于将光标定位在终端屏幕上。可以通过将-1移动到字段的L部分然后发送地图来设置光标。 |
10 |
警报 它会导致声音警报响起。 |
11 |
FREEKB。 如果我们在地图或SEND命令中指定FREEKB,键盘将被解锁。 |
12 |
它允许输出SEND命令打印在打印机上。 |
13 |
FORMFeed |
接收地图
当我们想要从终端接收输入时,我们使用RECEIVE MAP命令。 MAP和MAPSET参数与SEND MAP命令的含义完全相同。以下代码段显示了如何接收地图 :
EXEC CICS RECEIVE MAP('map-name') MAPSET('mapset-name') [INTO(data-area)] [FROM(data-area)] [LENGTH(data_value)] END- EXEC
Mapset执行
以下步骤是开发和执行mapset :