Mainframe 动态添加JCL-SORTIN

Mainframe 动态添加JCL-SORTIN,mainframe,jcl,dfsort,Mainframe,Jcl,Dfsort,想知道如何在排序步骤中包含一个包含SORTIN内容的文件,这意味着该文件是动态创建的,其内容如下 //SORTIN DD DSN=DES.LQHISE03.ENTRADA,DISP=SHR步骤1:请拥有以下3个数据集 数据集1:工作卡和EXEC语句 //JOBNAME JOB ('ACCOUNT INFORMATION'), // JOBCARD,CLASS=2,MSGCLASS=H,NOTIFY=&SYSUID //STEP1 EXEC PGM=SORT

想知道如何在排序步骤中包含一个包含SORTIN内容的文件,这意味着该文件是动态创建的,其内容如下


//SORTIN DD DSN=DES.LQHISE03.ENTRADA,DISP=SHR
步骤1:请拥有以下3个数据集

数据集1:工作卡和EXEC语句

//JOBNAME JOB ('ACCOUNT INFORMATION'),          
//    JOBCARD,CLASS=2,MSGCLASS=H,NOTIFY=&SYSUID 
//STEP1   EXEC PGM=SORT   
数据集2:SORTIN内容-这应该是动态创建的文件

//SORTIN   DD DSN=DES.LQHISE03.ENTRADA,DISP=SHR
数据集3:其余内容

//SORTOUT DD DSN=OUTPUT.DATASET.NAME,       
//        DISP=(,CATLG,DELETE),             
//        SPACE=(CYL,(100,0),RLSE),         
//        DCB=(LRECL=80,RECFM=FB,BLKSIZE=0) 
//SYSOUT  DD SYSOUT=*                       
//SYSIN   DD *                              
  SORT FIELDS=COPY
/*
//IDCAMS   EXEC PGM=IDCAMS,COND=(0,LT,STEP1)
//SYSPRINT DD SYSOUT=*
//DD1   DD DISP=SHR,DSN=YOUR.PDS
 DELETE 'YOUR.PDS(MEMBER)' FILE(DD1)
/*                          
第2步:连接数据集

//STEP2   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*                       
//SYSUT1   DD DSN=Dataset 1,DISP=SHR             
//         DD DSN=Dataset 2,DISP=SHR             
//         DD DSN=Dataset 3,DISP=SHR             
//SYSUT2   DD DSN=Sort Step,
//        DISP=(,CATLG,DELETE),             
//        SPACE=(CYL,(100,0),RLSE),         
//        DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)            
//SYSIN    DD DUMMY 
步骤3:让IEBGENER作为PDS中的成员写入排序步骤(步骤2的输出)

//STEP3   EXEC PGM=IEBGENER,COND=(0,LT,STEP2)
//SYSUT1   DD DSN=*.STEP2.SYSUT2,DISP=SHR                         
//SYSUT2   DD DSN=YOUR.PDS(MEMBER),DISP=SHR           
//SYSPRINT DD SYSOUT=*                                        
//SYSIN    DD DUMMY

现在,您将在PDS中的一个成员中拥有完整的JCL(注意:在完成排序作业后,PDS中的成员将被删除)。您只需要提交成员。您可以使用IKJEFT01实用程序运行TSO函数LISTDS。此函数用于显示数据集属性。如果存在成员,则会发出RC 0&您可以添加代码以提交该成员,否则您可以发出一些返回代码(表示该成员不可用)。更多详细信息

您可以添加有关您尝试过的内容的信息吗?具体来说,对于失败的作业,您能否提供输出,以便我们能够更有效地帮助您?是否有特定的原因需要每次动态分配一个新文件,而不是使用GDG?@SaggingRufus问得好,我认为这意味着他在前一步中创建了该文件,并希望将其作为输入提供给排序PROC@SaggingRufus真正需要的是海报阐明他的目标、问题以及他们的尝试。否则,我们正在猜测一个问题的选项,这个问题并不清楚articulated@SrinivasanJv我确实澄清了你的回答。这不是OP的要求。OP有一个动态分配的文件,并希望将其用作排序步骤的SYSIN。基于这个狭窄的问题,这个答案非常广泛。所有额外的步骤都很混乱,因为这些步骤对于手头的问题来说都不是必需的。谢谢大家的评论。不可能按照Srinivasan Jv的建议执行,因为我事先不知道sortin中的文件名,我只知道包含sortin语句的文件名。这是以前jcls中归档过程的一部分,文件是根据年份创建的,因此我们事先不知道会有多少。您好@NatBI根据我的回答,您不需要知道SORTIN中的文件名。如果您知道包含SORTIN语句的文件的名称,您可以仅将其视为步骤1中所示的DataSet 2。如果我清楚,您在数据集中拥有SORTIN语句,最终的目的是使用SORTIN语句中给出的文件运行排序步骤。请澄清。