Connect:Direct IBM z/OS 大型机上的语法
Connect:Direct syntax on IBM z/OS Mainframe
我正在编写一个 C# 程序来解析 Connect:Direct 文件并从中提取源和目标信息。
我对大型机代码不是很流利。特别是,我试图了解目标 Windows 路径的语法。以下是我的解释,但我想填补一些漏洞,以便编写一个能够处理我可能遇到的任何有效语法变化的解析器。
反斜杠字符必须是转义符,两个反斜杠代表一个。但是拼接操作,|| , 似乎在那扔了一把活动扳手。我假设斜杠字符是行继续字符。引用的路径也在每一侧用反斜杠括起来。我不确定这表明什么。我猜这可能意味着封闭的字符串包含转义字符,建议两个反斜杠应该等于一个。
NDMHGM30 PROCESS SNODE=MYSNODE PACCT='G,HG1' -
&SUBS=SUBSYS(ESP2) -
&DMNDH=ESPM2D.DEMANDH -
&APPL=APPL(STHG102M.0)
STEP1 COPY FROM (PNODE DSN=GIO.HG1.CDB.ACCTEXT.T1(0) -
DISP=SHR) -
COMPRESS EXT -
TO (SNODE -
DSN=\'\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\ || -
\\CDB\ACCOUNT.TXT'\ -
SYSOPTS="STRIP.BLANKS(NO)" -
DISP=RPL)
IF ( STEP1=0 ) THEN
STEP1A RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;AJ USERREQ.GHG30GOD &APPL COMPLETE;END"))
ELSE
STEP1B RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;TR &DMNDH USER1('GHG30BAD');END"))
EIF
到目前为止有没有错误的假设?
鉴于此,我希望上述路径无效,因为它会被解释为
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
换句话说,其中一个级别会有一个额外的反斜杠。但我知道 Connect Direct 可以正常工作并将路径正确解释为
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
串联运算符 and/or 续行如何影响此处需要的斜线数量?哪些其他语法变量也可能有效,会导致相同的有效 Windows 路径?
来自文档(IBM Sterling Connect:Direct for z/OS 用户指南):
Special Purpose Bracketing
You must often maintain special characters as part of a string. To
maintain special characters, enclose the string in bracketing
characters. Bracketing characters are backslashes (\), single
quotation marks ('), and double quotation marks (").
Bracketing backslashes are indicators of special processing of a
character string.
Sterling Connect:Direct does not maintain them as part of the string
at its final resolution. Use bracketing backslashes to:
1 Continue a string containing special characters across multiple
lines
2 Ensure that quotation marks within the string are maintained
The following is an example of using bracketing backslashes in a
command: PACCT=\’DEPT\MIS\ || -
2’\
Sterling Connect:Direct resolves the command as follows:
PACCT=’DEPT\MIS602’
将其与此参考文献结合(Sterling Connect:Direct for Microsoft Windows System Guide - 中的其他地方可能也有详细说明Windows Connect:Direct)
的文档
Microsoft Windows Services treats a backslash (\) as an escape
character, so type two backslashes for each backslash in the file
path.
你要理解的行是这样的:
DSN=\'\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\ || -
\\CDB\ACCOUNT.TXT'\
在这两行中,第一个和最后一个反斜杠 (\) 是出于这个原因:
Continue a string containing special characters across multiple lines
和
Sterling Connect:Direct does not maintain them as part of the string at its final resolution
英镑 Connect:Direct 将解析为:
DSN='\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT'
Windows 将显示为
\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT'
然后 Windows 将执行它的 escape-processing,给你这个:
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
反斜杠 (\) 的这种特殊用法是由于存在续行符(- 作为行中的最后一个字符)和特殊字符(文档中列出了这些字符) ,不是因为使用了串联 (||)(为了提供信息,您使用的 character-set 中的任何符号都是 X'4F',不一定是 | 符号)。
所有适用于所有平台的 Sterling Connect:Direct 文档均可从 IBM 的信息中心免费获得,可直接在线使用或下载为 PDF。你的选择。只需选择您最喜欢的 search-engine,然后找到您的产品版本的文档。
我正在编写一个 C# 程序来解析 Connect:Direct 文件并从中提取源和目标信息。
我对大型机代码不是很流利。特别是,我试图了解目标 Windows 路径的语法。以下是我的解释,但我想填补一些漏洞,以便编写一个能够处理我可能遇到的任何有效语法变化的解析器。
反斜杠字符必须是转义符,两个反斜杠代表一个。但是拼接操作,|| , 似乎在那扔了一把活动扳手。我假设斜杠字符是行继续字符。引用的路径也在每一侧用反斜杠括起来。我不确定这表明什么。我猜这可能意味着封闭的字符串包含转义字符,建议两个反斜杠应该等于一个。
NDMHGM30 PROCESS SNODE=MYSNODE PACCT='G,HG1' -
&SUBS=SUBSYS(ESP2) -
&DMNDH=ESPM2D.DEMANDH -
&APPL=APPL(STHG102M.0)
STEP1 COPY FROM (PNODE DSN=GIO.HG1.CDB.ACCTEXT.T1(0) -
DISP=SHR) -
COMPRESS EXT -
TO (SNODE -
DSN=\'\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\ || -
\\CDB\ACCOUNT.TXT'\ -
SYSOPTS="STRIP.BLANKS(NO)" -
DISP=RPL)
IF ( STEP1=0 ) THEN
STEP1A RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;AJ USERREQ.GHG30GOD &APPL COMPLETE;END"))
ELSE
STEP1B RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;TR &DMNDH USER1('GHG30BAD');END"))
EIF
到目前为止有没有错误的假设?
鉴于此,我希望上述路径无效,因为它会被解释为
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
换句话说,其中一个级别会有一个额外的反斜杠。但我知道 Connect Direct 可以正常工作并将路径正确解释为
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
串联运算符 and/or 续行如何影响此处需要的斜线数量?哪些其他语法变量也可能有效,会导致相同的有效 Windows 路径?
来自文档(IBM Sterling Connect:Direct for z/OS 用户指南):
Special Purpose Bracketing
You must often maintain special characters as part of a string. To maintain special characters, enclose the string in bracketing characters. Bracketing characters are backslashes (\), single quotation marks ('), and double quotation marks (").
Bracketing backslashes are indicators of special processing of a character string.
Sterling Connect:Direct does not maintain them as part of the string at its final resolution. Use bracketing backslashes to:
1 Continue a string containing special characters across multiple lines
2 Ensure that quotation marks within the string are maintained
The following is an example of using bracketing backslashes in a command: PACCT=\’DEPT\MIS\ || -
2’\Sterling Connect:Direct resolves the command as follows:
PACCT=’DEPT\MIS602’
将其与此参考文献结合(Sterling Connect:Direct for Microsoft Windows System Guide - 中的其他地方可能也有详细说明Windows Connect:Direct)
的文档Microsoft Windows Services treats a backslash (\) as an escape character, so type two backslashes for each backslash in the file path.
你要理解的行是这样的:
DSN=\'\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\ || -
\\CDB\ACCOUNT.TXT'\
在这两行中,第一个和最后一个反斜杠 (\) 是出于这个原因:
Continue a string containing special characters across multiple lines
和
Sterling Connect:Direct does not maintain them as part of the string at its final resolution
英镑 Connect:Direct 将解析为:
DSN='\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT'
Windows 将显示为
\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT'
然后 Windows 将执行它的 escape-processing,给你这个:
\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
反斜杠 (\) 的这种特殊用法是由于存在续行符(- 作为行中的最后一个字符)和特殊字符(文档中列出了这些字符) ,不是因为使用了串联 (||)(为了提供信息,您使用的 character-set 中的任何符号都是 X'4F',不一定是 | 符号)。
所有适用于所有平台的 Sterling Connect:Direct 文档均可从 IBM 的信息中心免费获得,可直接在线使用或下载为 PDF。你的选择。只需选择您最喜欢的 search-engine,然后找到您的产品版本的文档。