0

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

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.任何人都可以看到为什么找不到我的数据集,如果可能的话,这是产生我想要的结果的代码。谢谢。

4

2 回答 2

1

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

您拼错了可能是问题的第一部分“SHECICS”。

于 2017-11-19T15:54:58.463 回答
0

尝试删除数据集名称周围的引号。

即改变

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

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

原因是:-

如果在 JCL DD 语句中用引号分隔数据集名称,则 JCL 处理无法对该语句进行语法检查,SMS 会根据其对数据集名称的解析拒绝输入。SMS 不允许对名称进行编目,因为引用的数据集无法通过 SMS 管理。

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

以下是我感兴趣的:-

数据集名称

字符集 - 表 2. 语法中使用的特殊字符

于 2017-11-19T06:04:58.503 回答