DFHJS2LS:针对可链接接口的 JSON 模式到高级语言转换
DFHJS2LS 编目过程从 JSON 模式中生成高级语言数据结构和 JSON 绑定。 如果要创建可解析或创建 JSON 的 CICS® 程序,请使用 DFHJS2LS 。 本主题列出 DFHJS2LS的作业控制语句,符号参数,输入参数及其描述。
DFHJS2LS JCL 过程安装在数据集 HLQ .XDFHINST 中,其中 HLQ 是安装了 CICS 的高级限定符。
DFHJS2LS 的作业控制语句
- JOB
- 启动作业。
- EXEC
- 指定过程名称 (DFHJS2LS)。
- INPUT.SYSUT1 DD
- 指定输入。 输入参数在输入流中指定。 您还可以在数据集中或分区数据集的成员中定义这些值。
符号参数
以下符号参数在 DFHJS2LS:
- JAVADIR = 路径
- 指定 DFHJS2LS使用的 Java™ 目录的名称。 此参数的值将追加到
/usr/lpp/,提供完整路径名/usr/lpp/ path。 - PATHPREF = 前缀
- 指定用于扩展其他参数上使用的 z/OS® UNIX 目录路径的可选前缀。 缺省值为空字符串。
- SERVICE = 值
- 仅当 IBM® 支持人员指示时才使用此参数。
- TMPDIR = tmpdir
- 指定 z/OS UNIX 中 DFHJS2LS 用作临时工作空间的目录的位置。 作业运行所使用的用户标识必须具有对此目录的读和写许可权。
- TMPFILE = tmpprefix
- 指定 DFHJS2LS 用于构造临时工作空间文件的名称的前缀。
- USSDIR = 路径
- 指定 UNIX 系统服务文件系统中 CICS TS 目录的名称。 此参数的值将追加到 /usr/lpp/cicsts/ 以生成完整路径名 /usr/lpp/cicsts/ path
。 如果使用缺省值,那么必须将此值指定为
'.'(句点)。
临时工作空间
tmpdir / tmpprefix .intmpdir / tmpprefix .outtmpdir / tmpprefix .err
tmpdir是 TMPDIR 参数中指定的值。tmpprefix是 TMPFILE 参数中指定的值。
/tmp/JS2LS.in/tmp/JS2LS.out/tmp/JS2LS.err
因此,建议您设计避免此情况的命名约定和操作过程; 例如,可以使用系统符号参数 SYSUID 来生成对单个用户唯一的工作空间文件名。
在作业结束之前,将删除这些临时文件。
DFHJS2LS 的输入参数
参数使用
- 您可以按任何顺序指定输入参数。
- 每个参数必须在新行开始。
- 参数 (及其连续字符,如果使用) 不得超出第 72 列; 第 73-80 列必须包含空格。
- 如果参数太长,无法适合单行,请在行尾使用星号 (*) 字符来指示该参数在下一行继续。 星号之前的所有内容 (包括空格) 都被视为参数的一部分。
- 行的第一个字符位置中的 # 字符是注释字符。 将忽略该行。
- 行的最后一个字符位置中的逗号是可选的行分隔符,将被忽略。
参数描述
- ADDITIONAL-PROPERTIES-DEFAULT = { true | false }
- 指示是否将未显式声明支持 其他属性 的 JSON 模式对象解释为支持这些对象。 其他 JSON 属性是 JSON 对象中未在 JSON 模式中预定义的任何属性。 这些属性通常作为意外的额外数据被数据转换机制拒绝。 如果 ADDITIONAL-PROPERTIES-DEFAULT 设置为 TRUE,或者如果 JSON 模式显式地为对象设置
additionalProperties:true,那么将在生成的副本中分配空间以保存此类值。 应用程序可以使用副本中的关联字段与这些值进行交互。可以在 4.2 或更高的映射级别使用此参数。
- ADDITIONAL-PROPERTIES-MAX = { 0-20 | 无界 }
- 指示支持这些属性的 JSON 对象支持的 其他属性 数。 请参阅 ADDITIONAL-PROPERTIES-DEFAULT。 生成的副本将包含适用于寻址任何其他属性的结构。 缺省情况下,不会对受支持的属性数施加最大约束。 副本以与没有约束的数组相似的方式生成,并使用容器。 此参数可用于应用可与 INLINE-MAXOCCURS-LIMIT 参数组合使用的最大约束,以导致为最大属性数分配固定长度数组,从而避免需要容器。
可以在 4.2 或更高的映射级别使用此参数。
- ADDITIONAL-PROPERTIES-SIZE = { 16-32767 | 255 }
- 指示每个 JSON 附加属性的最大大小。 如果 JSON 对象支持 ADDITIONAL-PROPERTIES-DEFAULT定义的其他属性,那么生成的副本将具有绑定以支持最多由 ADDITIONAL-PROPERTIES-MAX指定的数目的属性。 缺省情况下,每个附加属性支持的最大值为 255 个字符。 将在生成的副本中生成该大小的字段。 可以通过设置 ADDITIONAL-PROPERTIES-SIZE 参数来定制此大小。 例如,将处理发现包含以下属性的 JSON 对象:
"example": { "notes": "this extra property was not defined in the JSON Schema" }
如果已生成副本以支持其他属性,那么该完整值将传递到应用程序以进行处理。 该值以属性键前的前导引号开头,并以属性值中的尾部右花括号结尾。 在此示例中,大约有 100 个字符。 用于 ADDITIONAL-PROPERTIES-SIZE 的值必须足够大,以容纳可能出现的最大此类值。 如果分配的缓冲区对于处理的值太小,那么将生成错误响应。
可以在 4.2 或更高的映射级别使用此参数。
- BUNDLE = 值
- 指定 z/OS UNIX 上捆绑软件目录的路径和名称。 如果指定此值,那么 JSON 助手会在捆绑软件目录中生成 JSON 绑定,并为您创建捆绑软件清单。 此参数的路径信息将覆盖 JSONTRANSFRM 参数的任何路径信息。
- CCSID = 值
- 指定在运行时用于对应用程序数据结构中的字符数据进行编码的 CCSID。 此参数的值将覆盖 LOCALCCSID 系统初始化参数的值。 value 必须是 Java 和 z/OS 转换服务支持的 EBCDIC CCSID。 如果未指定此参数,那么将使用系统初始化参数中指定的 CCSID 对应用程序数据结构进行编码。
可以将此参数与任何映射级别配合使用。
- CHAR-MULTIPLIER = { 1 | value }
- 指定当映射级别为 1.2 或更高时允许每个字符使用的字节数。 该参数的值可以是范围 1 - 2147483647 中的一个正整数。 所有基于非数字字符的映射均受到该倍数的限制。 二进制字段、数字字段、区位及压缩十进制字段不受该倍数的限制。
该参数可能很有用,例如,如果您打算使用 DBCS 字符,其中您可能选择使用乘数 3,以在运行时允许每个双字节字符周围的潜在移入和移出字符中包含空格。
设置 CCSID=1200 (指示 UTF-16) 时, CHAR-MULTIPLIER 的有效值只有 2 或 4 。 使用 UTF-16时,缺省值为 2 。 当您期望应用程序数据包含需要 1 UTF-16 编码单元的字符时,请使用 CHAR-MULTIPLIER=2 。 如果希望应用程序数据包含需要 2 UTF-16 编码单元的字符,请使用 CHAR-MULTIPLIER=4。注: 将 CHAR-MULTIPLIER 设置为 1 并不排除使用 DBCS 字符,将其设置为 2 也不排除使用 UTF-16 代理对。 但是,如果经常使用宽字符,那么某些有效值将无法符合已分配字段。 如果使用更大的 CHAR-MULTIPLIER 值,那么已分配字段中可能存储比 XML 中有效字符数更多的字符。 请务必注意符合相应的范围限制。 - CHAR-VARYING = { NO | NULL | YES }
- 指定当映射级别为 1.2 或更高时如何映射可变长度字符数据。 可变长度二进制数据类型始终与容器或可变结构建立映射。 如果不指定此参数,那么缺省映射取决于指定的语言。 您可以选择以下选项:
- 否
- 可变长度字符数据映射为定长字符串。
- NULL
- 可变长度字符数据映射为以 null 结束的字符串。
- YES
- 可变长度字符数据映射到 PL/I 中的 CHAR VARYING 数据类型。 在 COBOL , C 和 C++ 语言中,可变长度字符数据映射到由两个相关元素组成的等效表示: 数据长度和数据。
- CHAR-VARYING-LIMIT = { 32767 | value }
- 指定当映射级别为 1.2 或更高时映射到语言结构的二进制数据和可变长度字符数据的最大大小。 如果字符或二进制数据大于在该参数中指定的值,那么它将与容器建立映射,且该容器的名称将被用在生成的语言结构中。 value 的范围从 0 到缺省值 32 767 字节。
- CHAR-WHITESPACE = 折叠 | REPLACE | PRESERVE
指定 CICS将如何处理类型为字符串的值中的空格。
- COLLAPSE
- 将移除前导、尾部和嵌入的空格,并且所有制表符、换行符和连续空格都将替换为单个空格字符。
- REPLACE
- 任何制表符或换行符都将替换为相应数量的空格。
- 保留
- 在数据值中保留任何空格。
如果未设置 CHAR-WHITESPACE 参数,那么将折叠空格。注: 此参数不适用于格式为 date-time , uri , base64Binary 或 hexBinary (其中始终折叠空格) 的字段。- DATA-SCREENING = { ENABLED | DISABLED }
- 指定是否筛选应用程序提供的数据以查找错误。
- ENABLED
- 将应用程序提供的与语言结构不一致的任何运行时数据视为错误,并发出消息 DFHPI1010 。 系统会向应用程序返回错误响应。
- DISABLED
- 应用程序提供的运行时数据中与语言结构不一致的数据值将替换为缺省值。 例如,零替换数字字段中的错误值。 未发出消息 DFHPI1010 ,并且将向应用程序返回正常响应。 此功能可用于避免从未初始化的输出字段中生成的 INVALID_PACKED_DEC 和 INVALID_ZONED_DEC 错误响应。
- DATA-TRUNCATION = { DISABLED | ENABLED }
- 指定可变长度数据是否可采用固定长度字段结构:
- DISABLED
- 如果数据小于 CICS 期望的固定长度,那么 CICS 将拒绝截断的数据并发出错误消息。
- ENABLED
- 如果数据小于 CICS 期望的固定长度,那么 CICS 会容许截断的数据,并将缺失的数据作为空值处理。
- DATETIME = { PACKED15 | STRING }
- 指定将 JSON 日期时间属性映射到 CICS ABSTIME 数据格式或文本:
- PACKED15
- JSON 日期时间属性字段映射到 CICS ABSTIME 格式。
- 字符串
- JSON 日期时间属性映射到文本。 此映射与所有先前映射级别相同。
可以在映射级别 3.0使用此参数。
- DEFAULT-ARRAY-MAXITEMS = 值
- 指定要应用的最大数组边界,其中 JSON 模式中不包含最大出现次数信息 (
maxItems)。 如果未设置此参数,那么不会应用最大限制。 此参数的值可以是 1-2147483647 范围内的正整数。 此参数可与 INLINE-MAXOCCURS-LIMIT 参数结合使用,以影响将 JSON 数组映射到语言结构中的方式。 - DEFAULT-CHAR-MAXLENGTH = { 255 | value }
- 指定当映射级别为 1.2 或更高版本时,在 JSON 模式文档中不包含任何长度的映射的字符数据的缺省数组长度 (以字符计)。 此参数的 值 可以是 1 到 2 147 483 647 范围内的正整数。
- DEFAULT-FRACTION-DIGITS = { 3 | value }
- 指定要在 JSON 十进制模式类型上使用的缺省小数位数。 缺省值为 3。 对于 COBOL ,有效范围为 0-17 ,如果正在使用参数 WIDE-COMP3 ,那么有效范围为 0-30。 对于 C 或 PLI ,有效范围为 0-30。
- INLINE-MAXOCCURS-LIMIT = { 1 | value }
- 指定是否根据 JSON 模式关键字的
maxItems属性使用内联变量重复内容。INLINE-MAXOCCURS-LIMIT 参数仅在映射级别 2.1 起可用。 INLINE-MAXOCCURS-LIMIT 的 value 可以是 0 到 32 767 范围内的正整数。 值为 0 表示未使用内联映射。 值为 1 确保可选元素已进行内联映射。 如果
maxItems属性的 value 大于 INLINE-MAXOCCURS-LIMIT 的 value ,那么将使用基于容器的映射; 否则,将使用内联映射。如果您决定要始终以内联方式映射重复列表,请考虑重复数据的单个项的长度。 如果您有几个长长度的实例,那么首选基于容器的映射; 如果您有许多短长度的实例,那么可能首选内联映射。
有关可变重复内容的更多信息,请参阅 DFHJS2LS中元素的变量数组。
- JSONTRANSFRM = 值
- 此参数对于 LINKable 方式是必需的,但对于请求/响应方式和 RESTful 方式无效。 它指示用于 CICS中的 JSONTRANSFRM 束资源的名称 (1-16 个字符)。 可以在名称中使用字符 A-Z a-z 0-9 和 _。
- JSON-SCHEMA = 值
- 从中读取 JSON 模式的文件的标准 z/OS UNIX 名称。 如果该文件尚不存在,那么 DFHJS2LS 会创建该文件,但不会创建目录结构。
- LANG = COBOL
- 指定高级语言结构的编程语言为 COBOL。
- LANG = PLI-ENTERPRISE
- 指定高级语言结构的编程语言为 Enterprise PL/I。
- LANG = PLI-OTHER
- 指定高级语言结构的编程语言为 Enterprise PL/I 以外的 PL/I 级别。
- LANG = C
- 指定高级语言结构的编程语言为 C。
- LANG = CPP
- 指定高级语言结构的编程语言为 C++。
- LOGFILE = 值
- DFHJS2LS 将其活动日志和跟踪信息写入的文件的标准 z/OS UNIX 名称。 如果该文件尚不存在,那么 DFHJS2LS 会创建该文件,但不会创建目录结构。
通常,您不使用此文件,但如果迂到 DFHJS2LS问题,那么 IBM 服务组织可能会请求此文件。
- MAPPING-LEVEL = { 1.0 | 1.1 | 1.2 | 2.0 | 2.1 | 2.2 | 3.0 | 4.0 | 4.1 | 4.2|4.3 }
- 指定在生成 JSON 绑定和语言结构时要使用的助手的映射级别。 必须使用可用的最新映射级别; 对于 DFHJS2LS,必须使用映射级别 3.0 或更高版本。
- 3.0
- 这是可用于 DFHJS2LS的最低映射级别。
- 4.0
- 如果要使用 UTF-16,请将此映射级别与 CICS TS 5.2 或更高版本的区域配合使用。
- 4.1
- 对于可集群阵列支持,请将此映射级别与具有 APAR PI67641或更高版本的 CICS V5.2 区域配合使用。
- 4.2
- 对于其他属性,请将此映射级别与具有 APAR PI86039或更高版本的 CICS TS 5.4 区域配合使用。
- 4.3
- 对于多维阵列支持,请将此映射级别与具有 APAR PI88519或更高版本的 CICS TS 5.4 区域配合使用。
- MAPPING-OVERRIDES = { SAME-AS-MAPPING-LEVEL |HYPHENS-AS-UNDERSCORES | INTEGER-AS-PIC9 | LESS-DUP-NAMES | UNDERSCORES-AS-HYPHENS | NO-ARRAY-NAME-INDEXING }
- 指定在生成语言结构时是否覆盖指定映射级别的缺省行为。
- 与映射级别相同
- 此参数生成与映射级别相同的样式的语言结构。 这是缺省值。
- 连字符即下划线
- 仅适用于 PL/I。 此参数将 JSON 模式中的任何连字符转换为下划线而不是字符 X ,以提高生成的 PL/I 语言结构的可读性。 有关更多信息,请参阅 JSON 模式到 PL/I 映射。
- INTEGER-AS-PIC9
- 仅适用于 COBOL 和 DFHJS2LS 。 此参数生成包含来自 JSON 模式的整数值的语言结构,作为数字而不是字母数字字符。
- LESS-DUP-NAMES
- 该参数将生成非结构化结构字段名称,名称末尾带
_value以支持对字段的直接引用。 例如,在以下 PLI 语言结构中,当指定 MAPPING-OVERRIDES = LESS-DUP-NAMES 时,级别 12 字段 streetName 以_value作为后缀:09 streetName, 12 streetName CHAR(255) VARYING UNALIGNED, 12 filler BIT (7), 12 attr_nil_streetName_value BIT (1),生成的结构如下:
09 streetName, 12 streetName_value CHAR(255) VARYING UNALIGNED, 12 filler BIT (7), 12 attr_nil_streetName_value BIT (1), - UNDERSCORES-AS-HYPHENS
- 此选项在映射级别 4.0自动启用。
- NO-ARRAY-NAME-建立索引
- 仅适用于 COBOL 和 Enterprise PL/I。 确保数组中的字段名称仅在较高级别结构的作用域内唯一。
- MINIMUM-RUNTIME-LEVEL = { MINIMUM | 3.0 | 4.0 | 4.1|4.2| 4.3|CURRENT }
- 指定可以将 JSON 绑定部署到的最低 CICS 运行时环境。 如果选择的级别与指定的其他参数不匹配,那么将接收到错误消息。 您可以选择的选项如下所示:
- 最小值
- 将根据您选择的参数自动分配 CICS 的最低可能运行时级别。
- 3.0
- 如果要使用 CICS JSON 助手并利用高级数据映射,请指定运行时级别 3.0 或更高版本。
- 4.0
- 生成的 Web Service 绑定文件成功部署到位于 CICS TS 5.2 或更高版本的区域中。 通过此运行时级别,可以将映射级别 4.0 或更低版本用于 MAPPING-LEVEL 参数。 可以在此级别使用任何可选参数。
- 4.1
- 生成的 Web Service 绑定文件成功部署到具有 APAR PI67641或更高版本的 CICS TS 5.2 上的区域中。 通过此运行时级别,可以将映射级别 4.1 或更低版本用于 MAPPING-LEVEL 参数。
- 4.2
- 生成的 Web Service 绑定文件成功部署到具有 APAR PI86039或更高版本的 CICS TS V5.4 区域中。 通过此运行时级别,可以将映射级别 4.2 或更低版本用于 MAPPING-LEVEL 参数。
- 4.3
- 生成的 Web Service 绑定文件成功部署到具有 APAR PI88519或更高版本的 CICS TS 5.4 区域中。 通过此运行时级别,可以将映射级别 4.3 或更低版本用于 MAPPING-LEVEL 参数。
- CURRENT
- 使用此运行时级别将生成的绑定文件部署到将运行时环境设置为用于生成绑定文件的 CICS 区域中。
- OVERWRITE-OUTPUT = { NO | YES }
- 控制是否可以覆盖文件系统上的现有 CICS BUNDLE。
- PDSCP = 值
- 指定分区数据集成员中使用的代码页,其中 value 是 CCSID 编号或 Java 代码页编号。 如果未指定此参数,那么将使用 z/OS UNIX System Services 代码页。 例如,可以指定
PDSCP=037。 - PDSLIB = 值
- 指定包含生成的高级语言的分区数据集的名称。
- PDSMEM = 值
- 指定 DFHJS2LS 用于生成将包含高级语言结构的分区数据集成员的名称的 1-6 字符前缀。
- STRUCTURE = { PDSMEM_value | data }
- C 和 C++ 中顶级数据结构的名称。 缺省值是 PDSMEM 参数的值。
- WIDE-COMP3 = { FULL | NO | YES }
- 控制所生成的 COBOL 或 PL/I 语言结构中压缩十进制可变长度的最大大小。
- full
- 对于 COBOL 和 PL/I。 DFHJS2LS 生成一个足以容纳所有有效值的压缩十进制字段。 最大大小为 31 位。 这是缺省值。
- 否
- 仅适用于 COBOL。 DFHJS2LS 在生成 COBOL 语言结构类型 COMP-3时,将压缩十进制变量长度限制为 18。 如果压缩十进制大小超过 18,那么将发出 DFHPI9022W 消息以指示所指定的类型被限制在总共 18 个数字。
- YES
- 仅适用于 COBOL。 DFHJS2LS 在生成 COBOL 语言结构类型 COMP-3时支持最大大小 31。
注: NO 和 YES 选项生成无法表示所有有效值的字段; FULL 选项可避免此问题。 但是, FULL 选项允许在压缩十进制字段中表示一些无效值。 例如,如果模式指示最多有 5 位数字,最多有 2 位小数,那么 FULL 选项将生成允许 7 位数字的压缩十进制字段,这将允许为有效值 (例如 25000 和 999.99) 提供空间,但也为某些无效值 (例如 9999.99) 提供空间。 使用 FULL 选项时,请注意不要在应用程序数据中生成无效值。
示例
//JS2LS JOB '
accounting information
',
name,MSGCLASS=A
// SET QT=''''
//JAVAPROG EXEC DFHJS2LS,
// TMPFILE=&QT.&SYSUID.&QT
/INPUT.SYSUT1 DD *
PDSLIB=//CICSHLQ.SDFHSAMP
PDSMEM=CPYBK2
JSON-SCHEMA=example.json
LANG=COBOL
LOGFILE=/u/exampleapp/example.log
MAPPING-LEVEL=4.0
CHAR-VARYING=NULL
JSONTRANSFRM=EXAMPLE
BUNDLE=/u/exampleapp/bundles/exampleBundle
/*
