GET CONTAINER (BTS)

从指定的 BTS 数据容器检索数据。

语法

获取容器

读取语法图跳过可视语法图GETCONTAINER( data-value)ACTIVITY( data-value)ACQACTIVITYPROCESS ACQPROCESSINTO( data-area)SET( ptr-引用)NODATAFLENGTH( data-area)

条件: ACTIVITYERR , CONTAINERERR , INVREQ , IOERR , ENGERR , LOCKED 和 PROCESSBUSY

NOHANDLERESPRESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.

描述

GET CONTAINER 将与指定 BTS 活动或进程关联的数据读取到工作存储器中。

保存数据的容器由名称以及作为其容器的流程或活动 (拥有该数据的流程或活动) 标识。 可以标识拥有容器的活动:
  • 通过指定其中一个与 PROCESS 或 ACTIVITY 相关的选项显式地执行此操作。
  • 通过省略与 PROCESS 和 ACTIVITY 相关的选项来隐式执行此操作。 如果省略这些活动,那么将隐含当前活动。

另请参阅 PUT CONTAINER (BTS)移动容器 (BTS)

选项

ACQACTIVITY
指定以下任一项:
  • 如果发出该命令的程序已获取进程,那么该容器由该进程的根活动拥有。
  • 否则,该容器由程序通过获取 ACTIVITYID 命令获取的活动所拥有。
ACQPROCESS
指定容器由发出命令的程序在当前工作单元中获取的进程拥有。
ACTIVITY (数据值)
指定拥有容器的活动的名称 (1-16 个字符)。 这必须是当前活动的子代。
CONTAINER (数据值)
指定保存要检索的数据的容器的名称 (1-16 个字符)。
FLENGTH (数据区)
作为输入字段, FLENGTH 以全字二进制值的形式指定要读取的数据的长度。 作为输出字段, FLENGTH 返回容器中数据的长度。 FLENGTH 是输入还是输出字段取决于您指定的 INTO , SET 或 NODATA 选项。
指定了 INTO 选项
FLENGTH 既是输入字段又是输出字段。

在输入时, FLENGTH 指定程序接受的数据的最大长度。 如果指定的值小于零,那么假定为零。 如果数据的长度超过指定的值,那么会将数据截断为该值,并且会出现 LENGERR 条件。 如果数据的长度小于指定的值,那么将在不进行填充的情况下复制数据,并且会发生 LENGERR 条件。

如果编译器可以从 INTO 变量生成长度,那么不需要指定 FLENGTH。 如果同时指定 INTO 和 FLENGTH ,那么 FLENGTH 指定程序接受的数据的最大长度。

输出 (即,完成检索操作时) 上, CICS® 会将数据区 (如果指定) 设置为容器中数据的实际长度。

指定了 SET 或 NODATA 选项
FLENGTH 是仅输出字段。 必须将其指定并指定为数据区。

完成检索操作后,会将数据区设置为容器中数据的实际长度。

INTO (数据区)
指定要将检索到的数据放置到其中的工作存储器区域。
NODATA
指定不检索任何数据。 使用此选项可发现容器中数据的长度 (以 FLENGTH 格式返回)。
PROCESS
指定要检索的容器由当前进程 (即,发出命令的程序代表执行的进程) 拥有。
SET (ptr-ref)
指定返回所检索数据的地址的数据区。 数据区由 CICS 维护,直到任务发出带有 SET 选项的后续 GET CONTAINER 命令为止,或者直到任务结束为止。

如果应用程序需要保留数据,那么应将其移动到自己的存储器中。

条件

109 个 ACTIVITYERR
RESP2 值:
8
找不到 ACTIVITY 选项上指定的活动。
110 集装箱错误
RESP2 值:
10
找不到 CONTAINER 选项上指定的容器。
16 INVREQ
RESP2 值:
2
指定了 INTOCCSID 选项,但未指定 CHANNEL 选项,并且没有当前通道 (因为发出该命令的程序未传递一个)。 INTOCCSID 仅在显式或隐式指定通道的 GET CONTAINER 命令上有效。 它在 GET CONTAINER (BTS) 命令上无效。
4
该命令是在当前活动活动的作用域之外发出的。
15
使用了 ACQPROCESS 选项,但发出请求的工作单元尚未获取进程。
24
使用了 ACQACTIVITY 选项,但发出请求的工作单元尚未获取活动。
25
使用了 PROCESS 选项,但在当前活动进程的作用域之外发出了该命令。
17 IOERR
RESP2 值:
30
在存储库文件上发生输入/输出错误。
31 日
存储库文件上的记录正在使用中。
22 LENGERR
RESP2 值:
11
程序区域的长度与容器中数据的长度不同。 如果该区域较小,那么将截断数据以将其放入其中。 如果区域较大,那么会将数据复制到程序区域,但不会添加任何填充。
100 个已锁定
无法执行请求,因为针对存储库文件上的相关记录存在保留锁定。
106 进程忙
RESP2 值:
13
无法满足请求,因为进程记录已被另一个任务锁定。