基本映射支持

基本映射支持 (BMS) 是 CICS® 与其应用程序之间的接口。 它允许 CICS 应用程序员有权访问输入和输出数据流,而无需在 CICS 应用程序中包含依赖于设备的代码。 BMS 格式化输入和输出显示数据以响应程序中的 BMS 命令。 为此,它使用 CICS 系统表中的设备信息,以及您为程序准备的 映射 中的格式化信息。

BMS 提供以下服务:
  • 消息路由 允许应用程序将输出消息发送到不直接控制事务的一个或多个终端。
  • 终端页面调度 允许用户准备多页输出消息,而不考虑输出终端的物理大小; 然后可以按任何顺序按页码检索输出。
  • 设备独立 允许用户在不考虑终端所需的控制字符的情况下准备输出; CICS 会自动插入控制字符并消除每行中的尾部空格。

BMS 系统初始化参数可以选择基本映射支持的三个版本 (MINIMUM , STANDARD 或 FULL) 之一。

大多数 BMS 程序都驻留在 CICS 核心中。

设计概述

BMS 使应用程序能够读取与设备相关的数据并将其转换为与设备无关的标准格式,或从此与设备无关的标准格式生成与设备相关的输出数据。 在这两种情况下,独立于设备的标准格式的结构以及数据在显示终端上的布局都由用户定义的映射确定。 相关映射 (例如,同一应用程序中使用的映射) 被分组到 映射集中。 请参阅 基本映射支持 ,以获取有关映射和映射集的定义和使用的更多信息。

在某些终端 (例如 IBM® 8775 显示终端和 IBM 3290 信息面板) 上,可以将可用显示区域划分为一组称为 分区的相关 "逻辑" 屏幕。 可在终端上同时显示的分区集的布局和属性由 BMS 用户在 分区集中定义。 请参阅 基本映射支持 ,以获取有关分区集的定义和使用的更多详细信息。

使用 CICS 宏以脱机方式组装映射,映射集和分区集。 用户定义并命名可写入 BMS 支持的设备和从中读取的字段和字段组。 组装的映射包含正确处理数据流所需的所有与设备相关的控制字符。

与每个映射关联的是一个字段名称表,该表将复制到使用该映射的每个应用程序中。 在这些字段名称下向应用程序传递数据和从应用程序传递数据。 编写应用程序以处理各种字段名称下的数据,这样更改映射格式并不一定导致程序逻辑的更改。 可以将新字段添加到映射格式,而不必对现有应用程序进行重新编程。

通过将数据放在表中相应的字段名称下,可以从应用程序提供输出数据。 作为替代方法,输出映射可以包含在应用程序未提供数据时发送的字段缺省数据。 此工具允许指定输出映射的标题,标题等。

(可选) 应用程序可以禁止显示任何输出映射的所有缺省数据。 每次使用映射时,应用程序都可以临时修改输出映射中任何指定字段的属性。 如果使用 DSATTS 操作数定义了映射,那么还可以修改扩展属性。

没有字段名称的输出映射字段可以包含缺省数据,但应用程序无法替换缺省数据或修改未命名字段的属性。

对于输入,用户将组合一个映射,该映射定义可以写入特定设备和从特定设备接收的字段。 针对特定字段接收的任何数据都将使用映射的符号存储定义中的字段名称进行移动。 如果在 IBM 3270 信息显示系统输入流中存在,那么会将输入映射中定义的光笔可检测字段标记为已检测。 特定案例的输入映射可以指定可能可接收的字段的子集; 将废弃该映射中已接收且未表示的任何字段。 这允许映射中可以输入或选择更改的字段数,而不必重新编程当前从映射接收数据的应用程序。

映射存储在 CICS 程序装入库中。 当 BMS 需要映射时, CICS 会自动从程序装入库中检索副本,而不执行应用程序操作。 程序装入库中包含的映射的多个用户共享主存储器中的单个副本。

BMS 允许用户在生成映射时指定字段属性的任何有效组合。 在 CICS 中包含 BMS 是一个系统生成选项,不会阻止应用程序以本机方式 (不使用 BMS) 访问特定设备。 对来自同一应用程序的终端的混合 BMS 和本机模式支持可能会产生不可预测的结果。 使用混合模式支持时,由用户负责确保本机模式数据流的正确构造和解释。

BMS 允许应用程序传递已读入的本机方式数据流,并且 (如果对于 IBM 3270 信息显示系统的终端,屏幕已格式化) 根据给定的输入映射来解释此数据流。 此工具允许使用 BMS 成功映射通过事务初始读取输入的数据。

BMS 服务概述如下:
消息路由

消息路由允许应用程序将输出消息发送到不直接控制事务的一个或多个终端。 如果终端状态允许接收消息,那么自动将消息发送到终端。 如果终端没有立即接收消息的资格,那么将为该终端保留该消息,直到终端状态的更改允许发送该消息为止。 消息路由功能由 CICS 消息切换事务使用。

指定扩展属性的 BMS 映射可用于不支持扩展属性的终端。 当向各种终端发送数据时,某些终端可能支持扩展属性,而其他终端可能不支持扩展属性。 处理 BMS ROUTE 请求时, BMS 会查看所有指定终端的 TCTTE ,并构造一组所有受支持的属性。

BMS 使用此属性集生成数据流,并将每个页面的数据流和属性集写入临时存储器记录。 稍后从临时存储器读取页面时,将修改每个终端的数据流 (如果需要) 以删除该终端不支持的属性。

终端页面调度 (terminal paging)

终端寻呼允许用户准备比在接收终端可以方便地或物理地显示更多的输出。 然后,可以按任何顺序按页面检索输出; 即,按它们的准备顺序或通过在输出页面中向前或向后跳过。

终端寻呼功能还可以将多个区域合并为一个区域,然后发送到终端。 这样,用户就可以在输出时不必考虑输出终端所要求的记录大小。

CICS 为终端操作员提供了可用于检索和处置页面的通用页面检索工具。

设备无关性 (device independence)

设备独立性允许用户在不考虑消息标题和行分隔等所需的控制字符的情况下准备输出。 设备独立性的输入由带有可选换行符的数据字符串组成。

设备独立性将数据字符串划分为不超过为特定终端定义的行。 如果换行符偶尔出现在数据字符串中以进一步定义行长度,那么不会将其忽略。 CICS 插入相应的前导字符,回车符和空闲字符,并消除每行中的尾部空格。 如果设备不支持扩展属性,那么将忽略扩展属性。

CICS 允许用户在支持设施的设备 (例如, IBM 3767 通信终端和 IBM 3770 数据通信系统) 上设置水平和垂直选项卡。 对于此类设备, CICS 根据相应映射控制下的数据流中的选项卡特征,支持数据压缩入站和数据压缩出站。

控制块

图 1 显示了与 BMS 关联的控制块。 表 1 提供了控制块的概述。 请参阅 BMS 控制块参考 以获取详细信息。

图 1。 与基本映射支持 (BMS) 关联的控制块
显示与基本映射支持 (BMS) 关联的控制块及其之间的关系的图。
  1. 直接TTP中不使用路线列表区域(RLA)。
  2. 每个路由TTP的格式与直接TTP相同。
表 1. BMS 控制块
DSECT 函数
DFHMAPDS 定义物理映射。
DFHMCAD 定义映射控制区 (MCA)。
DFHMCBDS 定义消息控制块 (MCB)。
DFHMCRDS 定义消息控制记录 (MCR)。
DFHOSPWA 定义输出服务处理器工作区 (OSPWA)。
DFHPGADS 定义页面控制区域 (PGA)。
DFHPSDDS 定义物理分区集。 分区集存储在 CICS 程序库中,当 BMS 装入主存储器时,需要资源定义。
DFHTTPDS 定义终端类型参数 (TTP)。 这包含终端类型的信息。
TCTTETTE DFHTCTZE 宏中的 TCTTETTE DSECT 定义了 TCTTE BMS 扩展。 它与 TCTTE (TCTTETEA 字段) 连接。
DFHTPE 定义 BMS 分区扩展。 如果终端支持分区,那么这将与 TCTTE BMS 扩展链接。

模块

BMS 是通过多个模块提供的,每个模块都与其他 BMS 模块, CICS 控制组件和应用程序进行交互。 由BMS处理的地图可能是新地图,为使用BMS的地图绘制功能而创建。

表 2。 BMS 模块
模块 描述
DFHBMSX 在发出 BMS RECEIVE MAP 命令时检测到 3270 数据流验证错误时调用了 URM。
DFHDSB 寻址由页和文本构建程序 (DFHPBP) 组成的页缓冲区。
DFHEMS BMS 命令的 EXEC 接口处理器。
DFHIIP 针对涉及除 IBM 3270 信息显示系统以外的终端的 BMS 服务请求而调用。
DFHMCP 应用程序与执行映射,消息切换,页面和文本构建,与设备相关的输出准备以及到终端,临时存储区或应用程序的消息处置的模块之间的接口。
DFHMCX 用于标准和全功能 BMS 的 BMS 快速路径模块,以及用于最小 BMS 支持的程序。 如果请求满足下列其中一个条件,那么 DFHMCP 将调用此命令:
  • 它是由命令级程序发出的非累积直接终端发送映射或接收映射。
  • 它用于 3270 屏幕或不支持外部格式化的 LU3 打印机。 如果终端支持分区,那么它处于基本状态。
  • CSPQ 事务已启动。
  • 消息处置未更改。
DFHM32 响应涉及 3270 信息显示系统终端的 BMS 服务请求而调用。
DFHPBP 处理所有 BMS 输出请求 (SEND MAP , SEND PAGE 和 SEND TEXT)。 它执行以下功能:
  • Positions the data in the page, either by placing it in a buffer, or by copying it and adjusting the map for an IBM 3270 Information Display System (SEND MAP ACCUM).
  • Places the data into the page buffer (SEND TEXT ACCUM).
  • 为非 3270 信息显示系统设备插入与设备相关的控制字符,除去扩展属性。
DFHPHP 处理涉及分区的终端操作。
DFHRLR 构建终端类型参数 (TTP) ,这是在 BMS 中构建和写出数据的主要块。
DFHTPP 将已完成的页面定向到 BMS 输出请求中指定的目标: SEND TEXT 发送到发端终端; SEND MAP PAGE 或 SEND TEXT PAGE 定向到临时存储器; SEND MAP SET 或 SEND TEXT SET 定向到返回到应用程序的已完成页面的列表)。
DFHTPQ 检查自动启动描述符 (AID) 链,以检测和删除该链上的 AID ,如果该 AID 具有非零值,那么该时间间隔超过 PRGDLAY 系统初始化参数指定的清除延迟时间间隔。
DFHTPR 处理由 BMS 构建并放置在临时存储器中的消息。
DFHTPS 针对要将使用 SEND MAP 调页或 SEND TEXT 调页构建的 BMS 逻辑消息发送到的每个终端类型调用。 对于由发端应用程序指定的每个终端, DFHTPR 被调度为显示逻辑消息的第一页 (如果终端处于页面调度状态) 或完整消息 (如果它处于自动驾驶状态)。
图 2概述了请求映射服务的 CICS 程序的相互关系。
图 2。 与基本映射支持 (BMS) 关联的模块
此图显示与基本映射支持 (BMS) 相关联的模块以及它们之间的关系。

BMS模块参考提供了BMS中特定程序的详细信息。

副本

副本 函数
DFHBMSCA 定义字段属性值, BMS 返回的标志以及 SEND TEXT 的字符属性类型和值的常量。 通常会将其复制到 BMS 应用程序中。
DFHMCPE 包含在最小功能 BMS 映射控制程序 DFHMCPE$ 中,并且还构成标准和全功能 BMS 使用的 BMS 快速路径模块 DFHMCX。 它是一个小型,快速,自包含,功能有限的 BMS ,用于 3270 显示器和打印机。
DFHMCPIN 分别包含在 BMS 映射控制程序 DFHMCPA$ 和 DFHMCP1$ 的标准版本和全功能版本中。 它包含用于输入映射的代码。
DFHMIN 包含在 DFHM32 和 DFHMCPE 程序中。 它包含 3270 终端的输入映射代码。
DFHMSRCA 定义 MSR 控制的常量。 这通常会复制到 BMS 应用程序中。

出口

没有为此功能提供全局用户出口点。

跟踪

为基本映射支持提供了以下点标识,所有这些标识的跟踪级别都为 BM 1:
  • AP 00CD,针对临时存储器错误
  • AP 00CF,用于出口跟踪
  • AP 00FA,用于条目跟踪