CICS-地图


BMS接收用户输入的数据,然后将其格式化为符号地图区域。应用程序只能访问符号映射中存在的数据。应用程序处理数据并将输出发送到符号映射。BMS 将符号数据的输出与物理地图合并。

CICS 地图

实物图

物理地图是加载库中的加载模块,其中包含有关地图应如何显示的信息。

  • 它包含有关地图中所有字段的属性及其位置的详细信息。

  • 它包含给定终端的地图显示格式。

  • 它使用 BMS 宏进行编码。它被单独组装并链接编辑到 CICS 库中。

符号地图

符号地图是图书馆里的一本复印书。Copy book被CICS应用程序用来从终端发送和接收数据。

  • 它包含复制到程序的 WORKINGSTORAGE 部分中的所有变量数据。

  • 它具有所有命名字段。应用程序程序员使用这些字段在映射中读取和写入数据。

船长和塞子场

对于未受保护的命名字段,在映射中,如果我们指定长度为 10,这意味着名称字段可以采用长度不能超过 10 的值。但是当您使用 CICS 显示此映射并开始为此字段输入值时在屏幕上,我们可以输入10个以上的字符,即直到屏幕末尾,我们甚至可以在下一行输入。为了防止这种情况,我们使用 Skipper 场或 stopper 场。Skipper 字段通常是长度为 1 的未命名字段,在命名字段之后指定。

CICS 船长和塞子领域

船长场

如果我们在指定的未受保护的字段后面放置一个跳过字段,那么在输入值时,一旦达到指定的长度,光标将自动定位到下一个未受保护的字段。以下示例显示如何添加船长字段 -

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)

属性字节

任何字段的属性字节都存储有关该字段的物理属性的信息。下图和表格解释了每一位的意义。

CICS 属性字节
位位置 描述 位设置
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