EXEC CICS 命令参数值
与命令选项关联的数据称为其 自变量。 每种类型的自变量可以包含不同的数据类型; 某些自变量将信息从 CICS® 返回到程序,而其他自变量由程序设置。
EXEC CICS 命令中的选项可以使用以下参数值:- data-value
- data-area
- cvda (CICS值数据区)
- ptr-value
- ptr-ref
- 名称
- filename
- 系统名称
- 标签
- hhmmss
EXEC CICS 命令中的选项还可以使用以下参数值:- data-area64
- ptr-value64
- ptr-ref64
数据区和数据值
数据区和数据值是基本参数类型。 它们之间的差异是任务执行命令时信息流动的方向。 data-value 始终是 (只能是) 发送方; 它将数据传送到 CICS , CICS 使用这些数据来处理该命令。 数据区 是接收方; CICS 使用它向调用者返回信息。 数据区 也可以是发送方,例如,当要传输到 CICS 的数据为可变长度 (如 FROM) 时,或者当字段同时用于输入和输出时。
COBOL 参数值
- data-value 可以用任何 COBOL 数据类型正确的数据名代替,或者用可以转换为参数正确类型的常量代替。 下表显示了如何定义正确的数据类型:
数据类型 COBOL 范围 半字二进制 PIC S9(4 ) COMP 全字二进制 PIC S9(8 ) COMP 双字 unsigned 二进制 PIC 9 (18) COMP 字符串 PIC X (n) ,其中 n 是字节数 UTF-8 字符串 PIC X (n) ,其中 n 是字节数 - data-area 可以用参数的任何 COBOL 数据类型正确的数据名称代替。 下表显示了如何定义正确的数据类型:
数据类型 COBOL 范围 半字二进制 PIC S9(4 ) COMP 全字二进制 PIC S9(8 ) COMP 双字 unsigned 二进制 PIC 9 (18) COMP 字符串 PIC X (n) ,其中 n 是字节数 UTF-8 字符串 PIC X (n) ,其中 n 是字节数 如果未指定数据类型,那么 data-area 可以引用基本项或组项。
- CICS-value 数据区 (CVDA)中描述了 cvda 。
- ptr-value 可以替换为指针变量或 ADDRESS 专用寄存器。
- ptr-ref 可以替换为指针变量或 ADDRESS 专用寄存器。
- 可以将 name 替换为以下任一值:
- 指定为字母数字文字的字符串。 如果此字符串短于所需长度,那么将用空格填充此字符串。
- COBOL 数据区,其长度等于名称所需的长度。 data-area 中的值是要由自变量使用的名称。 如果 data-area 比所需长度短,那么将未定义多余的字符,这可能会导致不可预测的结果。
在 FILE (filename) 中使用的 filename指定文件的名称。 该名称必须包含范围为 A-Z , 0-9 , $, @ 和 # 的 1-8 字符。
在 SYSID (systemname) 中使用的 systemname指定将请求定向到的系统的名称。 该名称必须包含范围为 A-Z , 0-9 , $, @ 和 # 的 1-4 字符。
- 标签可以用 COBOL 段落名或章节名代替。
- hhmmss 可以替换为十进制常量或格式为 PIC S9(7) COMP-3的数据名称。 该值的格式必须为 0HHMMSS+ ,其中:
- 小时
- 表示从 00 到 99 的小时数。
- MM
- 表示 00 到 59 之间的分钟数。
- 秒
- 表示从 00 到 59 的秒数。
在 COBOL 中,除非希望程序读取或写入的数据长度与引用变量的长度不同,否则不需要对 LENGTH 选项进行编码。
C 参数值
- data-value 可以用任何可以转换为参数的正确数据类型的 C® 表达式代替。 下表显示了如何定义正确的数据类型:
数据类型 C 定义 半字二进制 短整型 全字二进制 长整型 双字二进制 char [8] 字符串 char [n] ,其中 n 是字节数 UTF-8 字符串 char [n] ,其中 n 是字节数 data-value 包含 data-area 作为子集。
- 可以将 data-area 替换为具有自变量的正确数据类型的任何 C 数据引用。 下表显示了如何定义正确的数据类型:
数据类型 C 定义 半字二进制 短整型 全字二进制 长整型 双字二进制 char [8] 字符串 char [n] ,其中 n 是字节数 UTF-8 字符串 char [n] ,其中 n 是字节数 如果未指定数据类型,那么 data-area 可以引用标量数据类型,数组或结构。 该引用必须是连续存储器。
- CICS-value 数据区 (CVDA)中描述了 cvda 。
- ptr-value (包含 ptr-ref 作为子集) 可以替换为可转换为地址的任何 C 表达式。
- ptr-ref 可以替换为任何 C 指针类型引用。
- 可以将 name 替换为以下任一值:
- 双引号中的字符串 (即文字常量)。
- 可将其值转换为长度等于名称允许的最大长度的字符数组的 C 表达式或引用。 字符数组的值是参数要使用的名称。
在 FILE (filename) 中使用的 filename指定文件的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-8 个字符。
在 SYSID (systemname) 中使用的 systemname指定将请求定向到的系统的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-4 个字符。
- 在 C 语言中不支持 label 。
- hhmmss 可以替换为整数常量; 否则,应用程序负责确保传递给 CICS 的值采用压缩十进制格式。 语言未提供压缩十进制类型。
- 小时
- 表示从 00 到 99 的小时数。
- MM
- 表示 00 到 59 之间的分钟数。
- 秒
- 表示从 00 到 59 的秒数。
许多命令涉及应用程序与 CICS之间的数据传输。 在大多数情况下,如果使用 SET ,那么必须指定 LENGTH 选项; 每个命令的语法及其关联选项显示此规则是否适用。
PL/I 参数值
- data-value 可以用任何 PL/I 表达式代替,该表达式可以转换为参数的正确数据类型。 下表显示了如何定义正确的数据类型:
数据类型 PL/I 范围 半字二进制 固定货柜 (15) 全字二进制 固定货柜 (31) 双字二进制 弧形 (8) 字符串 CHAR (n) ,其中 n 是字节数 UTF-8 字符串 CHAR (n) ,其中 n 是字节数 data-value 包含 data-area 作为子集。
- data-area 可以由任何 PL/I 数据引用代替,这些引用的数据类型与参数相符。 下表显示了如何定义正确的数据类型:
数据类型 PL/I 范围 半字二进制 固定货柜 (15) 全字二进制 固定货柜 (31) 双字二进制 弧形 (8) 字符串 CHAR (n) ,其中 n 是字节数 UTF-8 字符串 CHAR (n) ,其中 n 是字节数 如果未指定数据类型,那么 data-area 可以引用元素,数组或结构; 例如, FROM (P-> STRUCTURE) LENGTH (LNG)。 必须引用已连接的存储器。
数据区还必须具有正确的 PL/I 对齐属性:二进制项为 ALIGNED,字符串为 UNALIGNED。
如果使用不带显式长度的可变数据字符串,那么传递的数据以双字节长度字段开头,其长度是对字符串声明的最大长度。 如果在命令中显式指定长度,那么传递的数据具有此长度; 即,后跟数据的双字节长度字段的长度达到您指定的长度。
- CICS-value 数据区 (CVDA)中描述了 cvda 。
- ptr-value (包括 ptr-refas 子集)可以用任何可以转换为 POINTER 的 PL/I 表达式代替。
- ptr-ref 可以被任何 PL/I POINTER ALIGNED 类型的引用替换。
- 可以将 name 替换为以下任一值:
- 单引号中的字符串 (即文字常量)。
- PL/I 表达式或引用,其值可转换为长度等于名称最大允许长度的字符串。 字符串的值是参数要使用的名称。
在 FILE (filename) 中使用的 filename指定文件的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-8 个字符。
在 SYSID (systemname) 中使用的 systemname指定将请求定向到的系统的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-4 个字符。
- label 可以用任何 PL/I 表达式代替,其值就是一个标签。
- hhmmss 可以替换为十进制常量或可转换为 FIXED DECIMAL (7, 0) 的表达式。 该值的格式必须为 0HHMMSS+ ,其中:
- 小时
- 表示从 00 到 99 的小时数。
- MM
- 表示 00 到 59 之间的分钟数。
- 秒
- 表示从 00 到 59 的秒数。
如果将UN比对属性添加到 $TAG1 CICS $TAG2 转换程序通过 DEFAULT DESCRIPTORS 语句生成的 ENTRY 声明中,那么 CICS 命令的数据区或指针引用自变量也必须为UN比对。 类似地,对于比对属性, DATA-AREA 或 POINTER-REFERENCE 参数必须为比对。
许多命令涉及应用程序与 CICS之间的数据传输。 在大多数情况下,要传输的数据长度必须由应用程序提供。 但是,如果将数据区指定为源或目标,那么不需要显式提供长度,因为命令语言转换程序会生成缺省长度值 STG (数据区) 或 CSTG (数据区) (视情况而定)。
AMODE (24) 和 AMODE (31) 程序的汇编语言参数值
通常,自变量可以是数据的地址,也可以是数据本身 (在汇编语言术语中,可以是可重定位的表达式,也可以是绝对表达式)。
可重定位的表达式不得包含不匹配的方括号 (引号外) 或不匹配的引号 (除 length-attribute 引用外)。 如果遵循此规则,那么可以使用任何表达式,包括文字常量 (例如 =AL2(100)) ,格式 (例如 20 (0,R11)) 以及使用宏替换工具的格式。
绝对表达式必须是长度属性引用或自定义常量的单个术语。
请谨慎使用等同符号,仅当引用寄存器 (指针引用) 时才应使用这些符号。 例如,如果将等号用于长度,那么会将其视为长度的地址,并发生不可预测的错误。
- 可以将 data-value 替换为可重定位的表达式,该表达式是对自变量的正确类型的数据的汇编语言引用,也可以替换为自变量的正确类型的常量。
- data-area 可替换为可重定位的表达式,该表达式是对自变量的正确类型的数据的汇编语言引用。
- CICS-value 数据区 (CVDA)中描述了 cvda 。
- ptr-value 可以替换为绝对表达式,该表达式是对寄存器的汇编语言引用。
- ptr-ref 可以替换为绝对表达式,该表达式是对寄存器的汇编语言引用。
- 可以将 name 替换为单引号中的字符串,也可以替换为对字符串的汇编语言语言可重定位的表达式引用。 长度等于名称允许的最大长度。 字符串的值是参数要使用的名称。
在 FILE (filename)中使用的 filename指定文件的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-8 个字符。
在 SYSID (systemname) 中使用的 systemname指定将请求定向到的系统的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-4 个字符。
- label 是指将控制权转移到的目标地址。 它可以替换为目标指令的标签或目标的地址常量的标签。 此常量不得指定长度。
您还可以使用表达式 = A (dest) ,其中 dest 是表示目标的可重定位表达式。
例如,以下命令等效:HANDLE CONDITION ERROR(DEST) HANDLE CONDITION ERROR(ADCON) HANDLE CONDITION ERROR(=A(DEST)) ⋮ DEST BR 14 ADCON DC A(DEST) - hhmmss 可替换为自定义十进制常量,或对定义为 PL4的字段的汇编语言引用。 该值的格式必须为 0HHMMSS+ ,其中:
- 小时
- 表示从 00 到 99 的小时数
- MM
- 表示从 00 到 59 的分钟数
- 秒
- 表示从 00 到 59 的秒数
xxx DC CL8
.
.
EXEC CICS ... LENGTH(L'xxx)
AMODE (64) 程序的汇编语言参数值
通常,自变量可以是数据的地址,也可以是数据本身 (在汇编语言术语中,可以是可重定位的表达式,也可以是绝对表达式)。
可重定位的表达式不得包含不匹配的方括号 (引号外) 或不匹配的引号 (除 length-attribute 引用外)。 如果遵循此规则,那么可以使用任何表达式,包括文字常量 (例如 =AL2(100)) ,格式 (例如 20 (0,R11)) 以及使用宏替换工具的格式。
绝对表达式必须是长度属性引用或自定义常量的单个术语。
请谨慎使用等同符号,仅当引用寄存器 (指针引用) 时才应使用这些符号。 例如,如果将等号用于长度,那么会将其视为长度的地址,并发生不可预测的错误。
- 可以将 data-value 替换为可重定位的表达式,该表达式是对自变量的正确类型的数据的汇编语言引用,也可以替换为自变量的正确类型的常量。
- data-area 可替换为可重定位的表达式,该表达式是对自变量的正确类型的数据的汇编语言引用。
- data-area64 可以替换为可重定位的表达式,该表达式是对自变量的正确类型的数据的汇编语言 64 位引用。
- CICS-value 数据区 (CVDA)中描述了 cvda 。
- ptr-value 可以替换为绝对表达式,该表达式是对寄存器的汇编语言引用。
- ptr-value64 可以替换为绝对表达式,该表达式是对寄存器的汇编语言 64 位引用。
- ptr-ref 可以替换为绝对表达式,该表达式是对寄存器的汇编语言引用。
- ptr-ref64 可以替换为绝对表达式,该表达式是对寄存器的汇编语言 64 位引用。
- 可以将 name 替换为单引号中的字符串,也可以替换为对字符串的汇编语言语言可重定位的表达式引用。 长度等于名称允许的最大长度。 字符串的值是参数要使用的名称。
在 FILE (filename)中使用的 filename指定文件的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-8 个字符。
在 SYSID (systemname) 中使用的 systemname指定将请求定向到的系统的名称。 该名称必须具有范围为 A-Z , 0-9 , $, @ 和 # 的 1-4 个字符。
- hhmmss 可替换为自定义十进制常量,或对定义为 PL4的字段的汇编语言引用。 该值的格式必须为 0HHMMSS+ ,其中:
- 小时
- 表示从 00 到 99 的小时数
- MM
- 表示从 00 到 59 的分钟数
- 秒
- 表示从 00 到 59 的秒数
AAMODE (64) 程序不支持 label 。
xxx DC CL8
.
.
EXEC CICS ... LENGTH(L'xxx)