特定于 UEPCLPS 出口的参数
UEPCLPS 出口特定参数是命令级别参数结构的地址,包含在出口 XFCREQ 和 XFCREQC 中。
命令级参数结构包含 12 个地址,即 FC_ADDR0 到 FC_ADDRB。 它是在 DSECT FC_ADDR_LIST 中定义的,您应该通过包含语句 COPY DFHFCEDS 将其复制到出口程序中。
命令级别参数列表组成如下:
- FC_ADDR0
- 是称为 EID 的 9 字节区域的地址,其组成如下:
- FC_GROUP
- FC_FUNCT
- FC_BITS1
- FC_BITS2
- FC_EIDOPT5
- FC_EIDOPT6
- FC_EIDOPT7
- FC_EIDOPT8
EID 映射的 DSECT 名称为 FC_EID。- FC_GROUP
- 始终为 X'06 ',指示这是文件控制请求。
- FC_FUNCT
- 定义请求类型的一个字节:
- X'02'
- READ
- X'04'
- WRITE
- X'06'
- REWRITE
- X'08'
- DELETE
- X'0A'
- UNLOCK
- X'0C'
- STARTBR
- X'0E'
- READNEXT
- X'10'
- READPREV
- X'12'
- ENDBR
- X'14'
- RESETBR
- FC_BITS1
- 用于定义指定了哪些包含值的关键字的存在位。 要获取与关键字关联的值,需要使用来自命令级别参数结构的相应地址。 在使用此地址之前,必须检查关联的存在位。 如果设置了存在位,那么未在请求中指定关键字,并且不应使用地址。
- X'80 '
- 在请求包含关键字 FILE 时设置。 如果设置了此属性,那么 FC_ADDR1 很有意义。
- X'40 '
- 设置请求是否包含任何关键字 INTO , SET 或 FROM。 如果设置了此属性,那么 FC_ADDR2 是有意义的。
- X'20 '
- 如果请求指定 LENGTH 或 NUMREC ,或者如果 STARTBR , RESETBR 或 ENDBR 请求指定 REQID ,请进行设置。 如果设置了此属性,那么 FC_ADDR3 很有意义。
- X'10'
- 在请求指定 RIDFLD 时设置。 如果设置,那么 FC_ADDR4 有意义。
- X'08'
- 如果请求指定 KEYLENGTH ,那么设置此值。 如果设置,那么 FC_ADDR5 有意义。
- X'04'
- 如果请求是 READNEXT 或 READPREV 并指定 REQID ,请进行设置。 如果设置,那么 FC_ADDR6 有意义。
- X'02'
- 在请求指定 SYSID 时设置。 如果设置了此属性,那么 FC_ADDR7 很有意义。
- X'01'
- 未由文件控制使用。
- FC_BITS2
- 第二组存在位。
- X'20 '
- 在请求指定 TOKEN 时设置。 如果设置,那么 FC_ADDRB 有意义。
- FC_EIDOPT5
- 指示是否在请求中指定了某些不采用值的关键字。
- X'04'
- 指定了 MASSINSERT。
- X'02'
- 指定了 RRN。
- X'01'
- 指定了 SET (而不是 INTO)。
注: 您的程序必须在位级别测试关键字,因为可能存在多个这些关键字。 - FC_EIDOPT6
- 指示是否在请求中指定了某些不采用值的关键字。
- X'80 '
- 已指定 RBA。
- X'40 '
- 已指定 GENERIC。
- X'20 '
- 指定了 GTEQ。
- X'10'
- 指定了 UNCOMMITTED。
- X'08'
- 指定了 CONSISTENT。
- X'04'
- 指定了可重复项。
- X'01'
- 指定了 NOSUSPEND (在 READ , READNEXT , READPREV , WRITE , DELETE 或 REWRITE 上)。
注:- 如果命令上的读完整性位 (对于 UNCOMMITTED , CONSISTENT 和REPE可用) 为 OFF (ZERO) ,那么将使用文件资源定义上指定的读完整性选项。 如果您需要知道这些是什么,那么可以发出 EXEC CICS® INQUIRE FILE 命令。
- 您的程序必须在位级别测试关键字,因为可能存在多个这些关键字。
- FC_EIDOPT7
- 指示是否在请求中指定了某些不采用值的关键字。
- X'04'
- 已指定 UPDATE。 此设置仅对 READ 请求有意义。 对于其他请求,可以设置也可以不设置 X'04 ' 。
- X'01'
- 指定了 DEBREC 或 DEBKEY (请参阅 FC_EIDOPT8)。 此设置仅对 READ 请求有意义。 对于其他请求,可以设置也可以不设置 X'01 ' 。
注: 您的程序必须在位级别测试关键字,因为可能存在多个这些关键字。 - FC_EIDOPT8
- 指示是否在请求中指定了某些不采用值的关键字。
- X'80 '
- 指定了 DEBKEY。
- X'40 '
- 指定了 DEBREC。
- X'20 '
- 指定了 TOKEN。
- X'08'
- 指定了 XRBA。 如果 XRBA 位处于开启状态,那么 FC_RIDFLD (在 DSECT DFHFCEDS 中描述) 指向 8 字节的扩展相对字节地址 (XRBA)。
- FC_ADDR1
- 是包含 FILE 关键字上指定的名称的 8 字节区域的地址。
- FC_ADDR2
- 是下列其中一项的地址:
- 针对 SET 返回的 4 字节地址 (如果请求为 READ , READNEXT 或 READPREV ,并且 FC_EIDOPT5 指示这是 SET)。
- 针对 INTO 返回的数据 (如果请求为 READ , READNEXT 或 READPREV ,并且 FC_EIDOPT5 指示这不是 SET)。
- 来自 FROM 的数据 (如果请求是 WRITE 或 REWRITE)。
- FC_ADDR3
- 是下列其中一项的地址:
- LENGTH 的半字值 (如果请求为 READ , WRITE , REWRITE , READNEXT 或 READPREV)。
警告: 对于指定 INTO 的请求,请勿将 LENGTH 的值更改为大于应用程序指定的值。 这样做会导致应用程序中的存储器覆盖。
- 返回的 NUMREC 半字值 (如果请求为 DELETE)。
- REQID 的半字值 (如果请求为 STARTBR , RESETBR 或 ENDBR)。
- LENGTH 的半字值 (如果请求为 READ , WRITE , REWRITE , READNEXT 或 READPREV)。
- FC_ADDR4
- 是包含 RIDFLD 关键字值的区域的地址。
- FC_ADDR5
- 是 KEYLENGTH 的半字值的地址。
- FC_ADDR6
- 是 REQID 的半字值的地址 (如果请求是 READNEXT 或 READPREV)。
- FC_ADDR7
- 是包含 SYSID 值的区域的地址。
- FC_ADDR8
- 是仅供 CICS 内部使用的值的地址。 不得使用此参数。
- FC_ADDR9
- 是仅供 CICS 内部使用的值的地址。 不得使用此参数。
- FC_ADDRA
- 是仅供 CICS 内部使用的值的地址。 不得使用此参数。
- FC_ADDRB
- 是 TOKEN 的全字值的地址 (如果请求为 READ , READNEXT , READPREV , REWRITE , DELETE 或 UNLOCK)。