CICS-地图
BMS接收用户输入的数据,然后将其格式化为符号地图区域。应用程序只能访问符号映射中存在的数据。应用程序处理数据并将输出发送到符号映射。BMS 将符号数据的输出与物理地图合并。
实物图
物理地图是加载库中的加载模块,其中包含有关地图应如何显示的信息。
它包含有关地图中所有字段的属性及其位置的详细信息。
它包含给定终端的地图显示格式。
它使用 BMS 宏进行编码。它被单独组装并链接编辑到 CICS 库中。
符号地图
符号地图是图书馆里的一本复印书。Copy book被CICS应用程序用来从终端发送和接收数据。
它包含复制到程序的 WORKINGSTORAGE 部分中的所有变量数据。
它具有所有命名字段。应用程序程序员使用这些字段在映射中读取和写入数据。
船长和塞子场
对于未受保护的命名字段,在映射中,如果我们指定长度为 10,这意味着名称字段可以采用长度不能超过 10 的值。但是当您使用 CICS 显示此映射并开始为此字段输入值时在屏幕上,我们可以输入10个以上的字符,即直到屏幕末尾,我们甚至可以在下一行输入。为了防止这种情况,我们使用 Skipper 场或 stopper 场。Skipper 字段通常是长度为 1 的未命名字段,在命名字段之后指定。
船长场
如果我们在指定的未受保护的字段后面放置一个跳过字段,那么在输入值时,一旦达到指定的长度,光标将自动定位到下一个未受保护的字段。以下示例显示如何添加船长字段 -
NUMBER DFHMDF POS = (01,01), X LENGTH = 5, X ATTRB = (UNPROT,IC) DFHMDF POS = (01,07), X LENGTH = 1, X ATTRB = (ASKIP)
塞子场
如果我们在命名的未保护字段后面放置一个停止字段,那么在输入值时,一旦达到指定的长度,光标将停止定位。以下示例显示如何添加停止字段 -
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 | 保护与转移 | 00 - 不受保护的字母数字 01 - 不受保护的数字 10 - 受保护的停止 11 - 受保护的跳过 |
4 & 5 | 强度 | 00 - 正常 01 - 正常 10 - 亮 11 - 无显示(暗) |
6 | 必须始终为零 | |
7 | 修改数据标签 | 0 - 字段尚未修改 1 - 字段已修改 |
修改数据标签
修改数据标签 (MDT) 是属性字节中的最后一位。
MDT 是一个保存单个位的标志。它指定是否将该值传输到系统。
当字段值更改时,其默认值为 1。
如果MDT为0,则无法传输数据;如果MDT为1,则可以传输数据。
发送地图
send 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
下表列出了发送映射命令中使用的参数及其含义。
先生编号 | 参数及说明 |
---|---|
1 | 地图名称 这是我们要发送的地图的名称。这是强制性的。 |
2 | 地图集名称 它是包含地图名称的地图集的名称。地图集名称是必需的,除非它与地图名称相同。 |
3 | 从 如果我们决定使用不同的 DSECT 名称,则使用它,我们必须将选项 FROM (dsect-name) 与 SEND MAP 命令一起使用。 |
4 | 玛波丽 这意味着程序中的任何数据都不会合并到地图中,而仅传输地图中的信息。 |
5 | 仅数据 这与 MAPONLY 的逻辑相反。我们用它来修改已创建的显示中的变量数据。只有程序中的数据才会发送到屏幕。不发送映射中的常量。 |
6 | 擦除 它会导致在显示我们发送的内容之前整个屏幕被擦除。 |
7 | 擦除 它只会导致未受保护的字段被删除。 |
8 | FRSET 标志重置会关闭屏幕上所有字段的属性字节中修改的数据标签,然后再将您发送的内容放置在那里。 |
9 | 光标 它可用于将光标定位在终端屏幕上。可以通过将-1移动到字段的L部分然后发送地图来设置光标。 |
10 | 警报 它会导致声音警报响起。 |
11 | 免费知识库。 如果我们在映射或 SEND 命令中指定 FREEKB,键盘就会解锁。 |
12 | 打印 它允许在打印机上打印 SEND 命令的输出。 |
13 | 换页 它使打印机在打印输出之前将纸张恢复到下一页的顶部。 |
接收地图
当我们想要从终端接收输入时,我们使用 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
地图集执行
开发和执行地图集需要以下步骤 -
步骤 1 - 打开 TSO 会话。
步骤 2 - 创建一个新的 PDS。
步骤 3 - 根据要求在新成员中编码地图集。
步骤 4 - 使用 CICS 管理员提供的 JCL 组装地图集。
步骤 5 - 打开 CICS 会话。
步骤 6 - 使用命令安装程序 -
CEMT SET PROG(地图集名称)新
步骤 7 - 输入以下命令将地图发送到终端 -
CECI 发送地图(地图名称) MAPSET(地图集名称) 删除 FREEKB