大型机 - 数据集 SHECICS.ZEUSBANK.TXNOFFLD 未找到

mainframe - DATA SET SHECICS.ZEUSBANK.TXNOFFLD NOT FOUND

我有一个顺序数据集,其形式如下

0000000520161103152815SHE0009 P1234561234567898765411112222        120AA

最后 2 个字节(位置 71 和 72)是 AA、AB、BA 或空白的单独 CH。我试图对这个输入进行排序并创建一个包含 AA、AB、BA 部分的报告,并忽略没有 AA、AB 或 BA 的记录。每个部分的每一行显示出纳员姓名(上面的 SHE0009,位置 23)和付款(上面的 120,AA 之前的 11 个字节,位置 60)。每个部分的最后一行汇总该部分的所有付款。

这是我的代码

 //SHE0008 JOB                                                          
 //SORTSTEP EXEC PGM=SORT                                               
 //SYSOUT   DD SYSOUT=*                                                 
 //SYSPRINT DD SYSOUT=*                                                 
 //SORTIN   DD DSN='SHECISC.ZEUSBANK.TXNOFFLD',DISP=SHR                 
 //SORTOUT  DD DSN=SHE0008.TESTT,                                       
 //          DISP=(NEW,CATLG,DELETE),SPACE=(CYL,(10,5),RLSE)            
 //SYSIN  DD *                                                          
   SORT FIELDS=(71,1,CH,A,72,1,CH.A)                                    
   INREC BUILD=(71,1,72,1,23,8,60,11,BI,TO=ZD,LENGTH=11)                
   OUTFIL REMOVECC,                                                     
          SECTIONS=(1,1,2,1                                             
          HEADER3=(1:C'PAYMENTS BY TELLER',/,X,/,                       
                   1:C'TRANSFER TYPE:    ',1,1,2,1,/,X,/,               
                   1:C'TELLER',10:C'PAYMENT',/,                         
                   1:C'------',10:C'-------'),                          
          TRAILER3=(X,/,                                                
     1:C'BRANCH TOTAL: ',16:TOT=(11,11,BI,EDIT=(SIIIITTT),SIGNS=(,-)))),
          TRAILER1=(X,/,1:C'GRAND TOTAL: ',TOT=(11,11,BI,               
                         EDIT=(SIIIITTT),SIGNS=(,-))),                  
         OUTREC=(1:7,4,CH,LENGTH=7,10:11,4,BI,EDIT=(SIIIITTT),          
                         SIGNS=(,-))                                    
 /*                                                                     

我收到错误 SORTIN - DATA SET SHECISC.ZEUSBANK.TXNOFFLD NOT FOUNDI - STEP WAS NOT EXECUTED. 任何人都可以看到为什么找不到我的数据集吗?如果可能的话,这是实现我想要的结果的代码。谢谢。

尝试删除数据集名称两边的引号。

即变化

//SORTIN   DD DSN='SHECISC.ZEUSBANK.TXNOFFLD',DISP=SHR

//SORTIN   DD DSN=SHECISC.ZEUSBANK.TXNOFFLD,DISP=SHR

推理是:-

If quotation marks delimit a data set name in a JCL DD statement, JCL processing cannot perform syntax checking on the statement, and SMS rejects the input based on its parsing of the data set name. SMS does not allow the name to be catalogued because quoted data sets cannot be SMS managed.

SMS 是系统管理存储,尽管我相信在 SMS 出现之前结果会是一样的。如果我没记错的话,我还用 DSN=' ',(一些空格)创建了奇怪的磁带,如果他们试图阅读磁带,这会愚弄很多人,即引号允许您使用一致的数据集名称。

以下是我感兴趣的:-

Data Set Names

Character sets - Table 2. Special Characters Used in Syntax

文件名是SHECICS.ZEUSBANK.TXNOFFLD你写的SHECISC.ZEUSBANK.TXNOFFLD

您拼错了第一部分 "SHECICS",这可能是问题所在。