查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
苏尼莎1612
新的用户
已加入:2008年1月3日 帖子:7 地点:班加罗尔
|
|
|
|
嗨,大家好,
在我的工作中
第一步-我正在生成FTP命令并写入文件&TEMP1.
CD \ PATH1 \ PATH2 \
目录
删除FILENAME.txt
目录
退出
步骤2-我正在执行FTP命令&如果仅STEP1成功,则使用FTPWEB PROC进行TEMP1。
当我运行此作业时,它失败并显示错误696。
-------------------------------------------------- --------------
STEP1 STEP2-执行了步骤-COND CODE 0696
EZA1789I密码:
EZA1701I>>> PASS
230用户登录。
EZA1460I命令:
EZA1735I Std返回码= 99000,错误码= 00012
EZA1701I>>> 退出
221再见
-------------------------------------------------- --------------
我曾经通过PUT和GET命令运行类似的作业。他们成功了。但是使用DELETE命令时失败。
请帮忙!!! |
|
回到顶部 |
|
 |
赤胜
全球主持人

已加入:2009年10月3日 职位:1788 地点:伊利诺伊州布卢明顿
|
|
|
|
文档说什么是FTP返回代码99000的原因? |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
首先,696步条件代码是99000模4096(这是z / OS处理大于4095的代码的标准方式)。因此,告诉我们它是什么不会对现有信息添加任何内容。
其次,错误代码12看起来是FTP_INPUT_ERR-错误读取INPUT或STDIN。是否有可能编辑了FTP命令并且行号在73至80列中?如果是这样,您将需要删除它们,因为FTP在其子命令中无法识别行号。以我的经验,这是FTP子命令输入问题的最常见原因。
第三,您不必费心告诉我们带有DELETE FILENAME.txt的步骤的条件代码或FTP输出是什么—如果您无法提供完整的信息,那么我们将很难为您提供帮助。 |
|
回到顶部 |
|
 |
苏尼莎1612
新的用户
已加入:2008年1月3日 帖子:7 地点:班加罗尔
|
|
|
|
你好,谢谢你的回复。
我已经检查了文件中的数据。没有编辑的行号,从73到80。
我的工作有2步...正如前面提到的那样。而且我想我已经提供了完整的信息。如果没有,请告诉我。
谢谢。 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
您尚未向我们展示:
- the JCLyou are using
-第一步的输出
-整个作业的输出,其中DELETE已用您说的任何命令替换了
-的印刷品&TEMP1 data set
您也没有告诉我们您要连接哪种服务器-z / OS,z / OS Unix系统服务,Windows或Unix / Linux计算机。因此,您没有在任何地方提供完整的信息。
引用: |
如果只有STEP1成功,则使用FTPWEB PROC |
如果您不知道它,FTPWEB是特定于您的站点的-这不是普遍使用的过程;尽管使用FTP已有很多年,但我从未听说过它。
查看您提供的信息,有迹象表明您的&TEMP1数据集有问题-EZA1460I提示符通常后面跟着输入数据集中的第一个命令。可能是&TEMP1与错误的DD名称相关联,否则可能存在其他问题。 |
|
回到顶部 |
|
 |
苏尼莎1612
新的用户
已加入:2008年1月3日 帖子:7 地点:班加罗尔
|
|
|
|
你好
My JCLis
码: |
-------------------------------------------------- -------------------------
//第2步 EXEC SAS,COND=(0000,NE)
// SYSPRINT DD SYSOUT = *
// SYSOUT DD SYSOUT=*
// SYSUDUMP DD SYSOUT = *
// SYSSNAP DD SYSOUT = *
//系统 DD SYSOUT = *
// DASA DD DSN = USERID.WORKPACK.SS1,DISP = SHR
// DASB DD DSN = USERID.WORKPACK.SS2,DISP = SHR
数据FTPREC(KEEP = FTPIN FTPOUT FTPOPT FTPMSK);
INFILE DASA END = LASTOBS;
输入@ 1 FTP_REC $100.
;
数据DASB(KEEP=FTPINP);
LENGTH FTPINP 70美元;
SET FTPREC;
IN_PATH1 ='CD \PATH1\PATH2\';
IN_PATH2 ='DIR';
IN_PATH3 ='删除'|| FTPREC;
IN_PATH4 = 'DIR';
IN_PATH5 = 'QUIT';
如果_N_ = 1,那么做;
FTPINP = IN_PATH1;
输出;
结束;
DO I = 2 TO 5;
如果I = 2,则FTPINP = IN_PATH2;
如果I = 3,则FTPINP = IN_PATH3;
如果I = 4,则FTPINP = IN_PATH4;
否则,如果I = 5,则FTPINP = IN_PATH5;
输出;
结束;
DATA _NULL_;
SET DASB;
FILE DASB;
PUT @1 FTPINP $70.
;
RUN;
// ****************程序名称:FTPWEB ****************
//第2步 EXEC FTPWEB,PARM='(EXIT'
// SYSPRINT DD SYSOUT = *
// SYSOUT DD SYSOUT=*
// SYSUDUMP DD SYSOUT = *
// SYMMFAP DD SYSOUT = *
//系统 DD SYSOUT = *
//输入 DD DSN =USEDID.CNTL(SIGNON),DISP=SHR
// DD DDNAME=SYSIN
//输出 DD SYSOUT=*
// SYSIN DD DSN = USERID.WORKPACK.SS2,DISP = SHR |
-------------------------------------------------- -----------------------------
STEP1的输出是带有FTP命令的数据集,该数据集将在下一步中执行。
码: |
CD \ PATH1 \ PATH2 \
目录
删除FILENAME.txt
目录
退出 |
-------------------------------------------------- --------------------
引用: |
-整个作业的输出,其中DELETE已用您说的任何命令替换了 |
码: |
EZA1789I密码:
EZA1701I>>> PASS
230用户登录。
EZA1460I命令:
EZA1735I Std返回码= 99000,错误码= 00012
EZA1701I>>> 退出
221再见
STEP2-执行步骤-COND CODE 0696 |
请让我知道我是否缺少某些东西...不知道哪里出了问题 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
您的SAS步骤没有明确的SYSIN DD。
您没有证据表明存在的实际&TEMP1数据集,因此此刻打印其内容是无用的。
您使用两个不同的DD读取(一个)并更新(另一个)同一数据集。这是一个非常糟糕的主意,您可能会因为数据集仅包含少量记录而无法使用它。不要那样做
还要注意,您正在使用DISP = SHR进行更新,这意味着,如果您两次提交作业,则两个作业可以同时执行,从而进一步增加了损坏的可能性。
还请注意,如果SAS由于任何原因而失败,则很可能会破坏您的输入数据集和输出数据集。如果要执行“就地损坏”处理(输入和输出的数据集相同,非PDS / PDSE),则必须在执行此步骤之前进行备份。
您尚未提供数据集的DCB信息。
当您手动输入所谓的说明时,它们是否起作用?手动将它们输入具有相同特征的数据集,并进行实验(编辑)以使它们不起作用。 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
USERID.CNTL(SIGNON)可能引起您的问题;既然您没有列出,谁知道呢? USERID.CNTL的LRECL是什么? USERID.WORKPACK.SS2的LRECL是什么?
您的SAS代码非常糟糕。为什么不简化为
码: |
数据DASB(KEEP=FTPINP);
SET FTPREC;
FILE DASB ;
PUT 'CD \PATH1\PATH2\';
PUT 'DIR';
把'DELETE'FTPREC $ 63。
PUT 'DIR';
PUT 'QUIT';
|
此外,您仍未像您在原始帖子中所声称的那样向我们显示完全成功运行的任何作业输出:
引用: |
我曾经通过PUT和GET命令运行类似的作业。他们成功了。 |
除非您能向我们展示成功的工作,并以与发布工作完全相同的方式执行,否则至少可以说您声称成功执行了工作。为了回应Bill的评论,您的原始帖子谈到了&TEMP1数据集-但是发布的JCL没有此数据集。您不是要发布正在使用的内容,还是要发布有关您在JCL中未执行的操作的信息。
由于您不能清楚,简单地发布自己的工作,结果是什么以及结果与想要的有何不同,为什么不应该将此主题锁定为完全浪费时间? |
|
回到顶部 |
|
 |
苏尼莎1612
新的用户
已加入:2008年1月3日 帖子:7 地点:班加罗尔
|
|
|
|
嗨,比尔和罗伯特,
引用: |
USERID.CNTL(SIGNON)可能引起您的问题;既然您没有列出,谁知道呢? USERID.CNTL的LRECL是什么? USERID.WORKPACK.SS2的LRECL是什么? |
两个数据酶的LRECL均为80。
USERID.CNTL(SIGNON)-它具有ID / IP地址&PWD,我们将使用它来连接FTP站点。
我接受有更好,更有效的方法来编写任何程序,但是此代码已在PROD中运行。因此,我们正在修改现有的。
引用: |
此外,您仍未像您在原始帖子中所声称的那样向我们显示完全成功运行的任何作业输出: |
码: |
// STEP3 EXEC SAS,COND=(0000,NE)
// SYSPRINT DD SYSOUT = *
// SYSOUT DD SYSOUT=*
// SYSUDUMP DD SYSOUT = *
// SYSSNAP DD SYSOUT = *
//系统 DD SYSOUT = *
// DASA DD DSN=&&CNTL,DISP=(OLD,DELETE,DELETE)
// DASB DD DSN = USERID.PARM.LIB(IN),DISP=SHR
//工作 DD SPACE=(TRK,(30000,10000)),UNIT=(SYSDA,5),
// DCB=(RECFM = FS,BLKSIZE = 6144,LRECL = 6144,DSORG = PS)
选项S = 72 S2 = 72 PS = 60 LS = 132节点错误= 0;
数据FTPREC(KEEP = FTPIN FTPOUT FTPOPT FTPMSK);
INFILE DASA END = LASTOBS;
输入@ 1 FTP_REC $50.
;
保留FTPIN FTPOUT FTPOPT FTPMSK;
LENGTH FTPIN $ 50。;
LENGTH FTPOUT $ 50。;
LENGTH FTPOPT $10.;
LENGTH FTPMSK $12.;
如果_N_ = 1,那么做;
FTPIN = FTP_REC;
结束;
IF _N_ = 2 THEN DO;
FTPOUT = FTP_REC;
结束;
IF _N_ = 3 THEN DO;
FTPOPT = FTP_REC;
结束;
IF _N_ = 4 THEN DO;
FTPMSK = FTP_REC;
结束;
IF LASTOBS;
跑;
数据DASB(KEEP=FTPINP);
LENGTH FTPINP 70美元;
SET FTPREC;
IN_PATH1 ='GET'|| FTPIN || ' +';
IN_PATH2 = ' //DD:OUTFILE (REPLACE';
IN_PATH3 = 'QUIT';
IF _N_ = 1 THEN DO;
FTPINP = IN_PATH1;
OUTPUT;
END;
DO I = 2 TO 3;
如果I = 2,则FTPINP = IN_PATH2;
否则,如果I = 3,则FTPINP = IN_PATH3;
OUTPUT;
END;
DATA _NULL_;
SET DASB;
FILE DASB;
PUT @1 FTPINP $70.
;
// **********************
//步骤4 EXEC FTPWEB,
// COND=(0000,NE),PARM='(EXIT'
// SYSPRINT DD SYSOUT = *
// SYSOUT DD SYSOUT=*
// SYSUDUMP DD SYSOUT = *
// SYMMFAP DD SYSOUT = *
//系统 DD SYSOUT = *
//输入 DD DSN =USERID.SIGNON,DISP=SHR
// DD DDNAME=SYSIN
//输出 DD SYSOUT=*
//输出文件 DD DSN =&&CNTL1,DISP=(NEW,PASS,DELETE),
// DCB=(LRECL=1000,RECFM=FB),UNIT=CART,
// VOL=(,,,20)
// SYSIN DD DSN =USERID.PARM.LIB(IN),DISP=SHR
RUN; |
引用: |
为了回应Bill的评论,您的原始帖子谈到了&TEMP1 data set -- yet the posted JCLdoes not have this. |
是。我用了&之前为TEMP1,然后为了检查命令是否正确填充,我将其替换为数据集USERID.WORKPACK.SS2
引用: |
由于您不能清楚,简单地发布自己的工作,结果是什么以及结果与想要的有何不同,为什么不应该将此主题锁定为完全浪费时间? |
您可能已经看到这么多人发布问题,可能是因为您这样回复...
但是我已经发布了所有的信息。而且我只隐藏了对每个人都保密的用户ID PWD。
感谢您的时间.... |
|
回到顶部 |
|
 |
尼克·克劳斯顿
全球主持人
加入时间:2007年5月10日 帖子:2455 地点:英国汉普郡
|
|
|
|
你有 仍然 没有显示工作 输出 即将消息写入到阀芯以进行相关步骤。 |
|
回到顶部 |
|
 |
阿伦·拉吉(Arun Raj)
主持人
已加入:2006年10月17日 帖子:2481 位置:@我的办公桌
|
|
|
|
苏尼莎1612写道: |
您可能已经看到这么多人发布问题,可能是因为您这样回复 |
绝对不。 OP通常不会通过重复发布被问到的内容或发布具有误导性的内容来邀请此类回复。
如果您确实在寻求论坛的帮助,请开始关注所问问题的详细信息,并在您的回答包含足够的信息以帮助其他愿意帮助您而不是抱怨的信息时进行复审。 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
引用: |
您可能已经看到这么多人发布问题,可能是因为您这样回复 |
我们之所以这样答复,是因为您没有提供足够的信息来帮助我们。在我们之间,Bill和我在这个论坛上(在其他论坛上)发了15,000多个帖子-因此我们在处理各种问题方面拥有丰富的经验。当我们一遍又一遍地要求相同的内容时,您需要查看发布的内容,而不是责怪Messenger。
码: |
数据FTPREC(KEEP = FTPIN FTPOUT FTPOPT FTPMSK);
INFILE DASA END = LASTOBS;
INPUT @1 FTP_REC $100.
;
DATA DASB(KEEP=FTPINP);
LENGTH FTPINP 70美元。;
SET FTPREC;
IN_PATH1 = 'CD \PATH1\PATH2\';
IN_PATH2 = 'DIR';
IN_PATH3 ='删除'|| FTPREC; |
至少您的问题之一在这里。 SAS数据集WORK.FTPREC是使用变量FTPIN,FTPOUT,FTPOPT,FTPMSK以及仅这些变量构建的。您将输入FTP_REC变量作为100字节字符变量。由于它不是KEEP变量之一,因此不会保留它,因此FTPREC SAS数据集中没有数据。您的DELETE语句将没有与之关联的文件名。您的GET示例将FTP_REC一次移动到4个KEEP变量,因此FTP GET将具有有效的FTPIN值。您的代码存在这种差异是我们一直要求您至少发布两天有效代码的原因之一。 |
|
回到顶部 |
|
 |
茉莉花 警告:1 活跃用户
已加入:2006年7月12日 职位:184 地点:美国
|
|
|
|
苏尼莎1612
您没有提到您已经在放置调试语句之后比较了正常工作和非正常工作的输出,也就是'// OUTPUT DD SYSOUT = *'。对于INPUT命令,也是如此。以我的经验(远远少于7,500答复),这几乎可以肯定地向您显示输入命令到底出了什么问题。
并且,相信我,这些人在这里为您提供帮助。他们对我有很大帮助。 |
|
回到顶部 |
|
 |
|