RECEIVE MAP
接收屏幕输入并将其放入应用程序数据区。
条件: EOC , EODS , INVMPSZ , INVPARTN , INVREQ , MAPFAIL , PARTNFAIL , RDATT 和 UNEXPIN
描述
RECEIVE MAP 将输入数据从终端映射到应用程序中的数据区。
未映射来自某些逻辑单元的数据,但这些数据保持不变。 请参阅相应的 CICS® 子系统指南,以了解特定逻辑单元是否符合此要求。
遵循 RECEIVE MAP 命令,入站光标位置放在 EIBCPOSN 中,终端提示标识 (AID) 放在 EIBAID 中。
请参阅 BMS 宏 以获取映射定义。
如果要接收数据,那么必须指定 INTO 或 SET 选项。 如果发出 RECEIVE 纯粹是为了检测注意标识 (AID) ,那么可以同时省略 INTO 和 SET 选项。
选项
- ASIS
- 指定 3270 输入数据流中的小写字符不会转换为大写; 这允许当前任务接收包含大写和小写数据的消息。
此选项对事务的第一个 RECEIVE 命令没有影响,或者如果屏幕包含在事务启动之前的数据。 例如,如果事务由另一个事务启动,并且从接收该事务最初输出的数据开始,那么不能禁止对数据进行大写转换。 在准备下一个任务时将读取并转换此数据,并且该任务中的第一个 RECEIVE 命令将检索转换后的数据。
注: 如果您正在使用片假名终端,那么可能会看到一些包含混合英语和片假名字符的消息。 这是因为片假名终端无法显示混合大小写输出。 数据流中的大写字符显示为大写英语字符,但小写字符显示为片假名字符。 如果发生这种情况,请要求系统程序员在系统初始化参数中指定 MSGCASE=UPPER ,以便消息仅包含大写字符。 - FROM (数据区)
- 指定包含要由 RECEIVE MAP 命令映射的数据的数据区。 这包括由 DFHMDI 和 DFHMSD BMS 映射定义上的 TIOAPFX=YES 选项生成的 12 字节前缀 (请参阅 DFHMDI 操作数, TERM 和 在 BMS 操作数中指定 NODDS)。
- INPARTN (名称)
- 指定期望终端操作员在其中输入数据的分区的名称 (1-2 个字符)。 如果终端操作员在其他某个分区中输入数据,那么将激活 INPARTN 分区,为该分区解锁键盘,并将错误消息输出到任何错误消息分区。 如果终端不支持分区,或者未设置应用程序分区,那么将忽略此选项。
- INTO (data-area)
- 指定要将映射数据写入的数据区。 如果未指定此字段,那么名称缺省为以 I 为后缀的映射的名称。
- LENGTH (data-value)
- 指定要格式化为半字二进制值的数据的长度。 它不得超过 FROM 数据区的长度,但这应包括由 DFHMDI 和 DFHMSD BMS 映射定义上的 TIOAPFX=YES 选项生成的 12 字节前缀的长度 (请参阅 DFHMDI 操作数, TERM 和 在 BMS 操作数中指定 NODDS)。
有关安全上限的描述,请参阅 CICS 命令中的 LENGTH 选项。
- MAP (name)
- 指定要使用的映射的名称 (1-7 个字符)。
- MAPSET (名称)
- 指定要使用的映射集的非后缀名 (1-7 个字符)。 映射集必须位于 CICS 程序库中。 可以使用 RDO 来定义映射集,也可以在首次使用映射集时由程序自动安装来定义映射集。 如果未指定此选项,那么假定 MAP 选项中给定的名称是映射集的名称。
- SET (ptr-ref)
- 指定要设置为映射数据的 12 字节前缀的地址的指针。 12 字节前缀由 DFHMDI 和 DFHMSD BMS 映射定义上的 TIOAPFX=YES 选项生成 (请参阅 DFHMDI 操作数, TERM 和 在 BMS 操作数中指定 NODDS)。
在下一个接收命令或任务结束之前,指针引用有效。
如果 DATALOCATION (ANY) 与应用程序相关联,那么数据的地址可能高于或低于 16MB 行。 数据区包含 12 字节前缀。 请确保不会覆盖 12 字节前缀,因为这可能会导致存储器违例。
如果 DATALOCATION (BELOW) 与应用程序相关联,并且数据位于 $TAG1 16MB $TAG2 行上方,那么数据将复制到 $TAG3 16MB $TAG4 行下方,并返回此副本的地址。
如果为正在运行的任务指定了 TASKDATAKEY (USER) ,并且存储器保护处于活动状态,那么返回的数据在用户密钥中。 如果指定了 TASKDATAKEY (CICS) 并且存储器保护处于活动状态,那么返回的数据位于 CICS-key 中。
- TERMINAL
- 指定要从发起事务的终端读取输入数据。
条件
以下某些情况可组合出现。 如果发生多个事件,那么仅会将第一个事件传递到应用程序。
但是,设置了 EIBRCODE 以指示发生的所有条件。
- 06 平等机会委员会
- 如果接收到具有链端 (EOC) 指示符集的请求/响应单元 (RU) ,则发生。 它仅适用于逻辑单元。
缺省操作: 忽略条件。
- 05 EODS
- 如果未接收到任何数据 (仅为 FMH) ,那么将发生此错误。 它仅适用于 3770 个批处理 LU 以及 3770 和 3790 个批处理数据交换 LU。
缺省操作: 异常终止任务。
- 38 个 INVMPSZ
- 如果指定的映射对于终端而言太宽或太长,那么将发生此情况。
缺省操作: 异常终止任务。
- 65 个 INVPARTN
- 如果未在与应用程序关联的分区集中定义指定的分区,那么将发生此情况。
缺省操作: 异常终止任务。
- 16 INVREQ
- 在非终端任务中发出 RECEIVE MAP 命令时发生; 这些任务没有 TIOA 或 TCTTE。
缺省操作: 异常终止任务。
- 36 个 MAPFAIL
- 如果要映射的数据的长度为零或不包含 set-buffer-address (SBA) 序列,那么将发生此错误。 它仅适用于 3270 设备。 接收数据区包含未映射的输入数据流。 移动到用户区域的未映射数据量限制为 LENGTH 选项中指定的长度。 输入映射未设置为空。
如果程序发出 RECEIVE MAP 命令,而终端操作员通过按 CLEAR 或 PA 键或按 ENTER 或功能键而不输入数据来响应此命令,那么也会出现此情况。
缺省操作: 异常终止任务。
- 66 个 PARTNFAIL
- 如果终端操作员尝试在非 INPARTN 选项指定的分区中输入数据超过三次,那么将发生此情况。
缺省操作: 异常终止任务。
- 02 RDATT
- 如果操作员使用 ATTN 键而不是 RETURN 键终止了 RECEIVE MAP 命令,那么将发生此情况。 它仅适用于 2741 通信终端,并且仅当为 CICS生成了 2741 读请求支持时才适用。
缺省操作: 忽略条件。
- 49 UNEXPIN
- 在接收到意外或无法识别的数据时发生。 这仅适用于批处理数据交换终端。
缺省操作: 异常终止任务。
