开发手册 欢迎您!
软件开发者资料库

CICS - MAP

CICS MAP - 从CICS概述,环境,基本术语,Nucleus,事务,COBOL基础知识,BMS,MAP,接口块,伪编程,辅助密钥,文件处理,错误处理,控制操作,临时开始,简单易学地学习CICS存储,互通,状态代码。

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

CICS MAPS

物理地图

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

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

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

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

符号地图

符号地图是图书馆中的复制书。 CICS应用程序使用Copy book来从终端发送和接收数据。

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

  • 它包含所有已命名的字段。应用程序员使用这些字段在地图中读取和写入数据。

船长和停止者字段

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

CICS Skipper & Stopper Field

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)


属性字节

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

CICS Attribute Byte

位位置描述位设置
0& 1 由第2位到第7位的内容决定
2& 3保护& Shift00  - 无保护的字母数字
01  - 无保护的数字
10  - 受保护的停止
11  - 受保护的跳过
4& 5强度00  - 正常
01  - 正常
10  -  Bright
11  - 无显示(暗)
6 必须为零
7修改后的数据标记0  - 字段未被修改
1  - 字段已被修改

修改后的数据标记

修改后的数据标记(MDT)是属性字节中的最后一位。

  • MDT是一个保持一位的标志。它指定是否将值传输到系统。

  • 当字段值更改时,其默认值为1。

  • 如果MDT为0,则无法传输数据;如果MDT为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

这是包含mapname的地图集的名称。除非与地图名称相同,否则需要地图集名称。

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

PRINT

它允许输出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 :

  • 第1步 : 打开TSO会议。

  • 第2步 : 创建一个新的PDS。

  • 第3步 : 根据要求在新成员中对地图集进行编码。

  • 步骤4 : 使用CICS管理员提供的JCL组装映射集。

  • 步骤5 : 打开CICS会话。

  • 第6步 : 使用以下命令安装程序 :

    CEMT SET PROG(mapset-name)NEW

  • 步骤7 : 输入以下命令将Map发送到终端 :

    CECI SEND MAP(map-name)MAPSET(mapset-name)ERASE FREEKB