IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

如何使用最后一个qlfr动态选择PDS文件?


IBM大型机论坛 -> JCL& VSAM
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年4月4日星期三下午4:39
引用回复

你好

我有一个PDS(BPAA.CNTLCARD.V0610),其中包含一组控制卡。如果任何一个成员有任何更改,将使用相同的成员集和各个成员的更改来创建新的PDS(BPAA.CNTLCARD.V0611)。

我有一个jcl,其中他们使用BPAA.CNTLCARD。&version命名约定的控制卡PDS,在此情况下,只要创建新的PDS,他们便会手动更改此版本。

无论如何,我可以通过检查PDS的最后一个限定符来自动获取版本号,并在触发时在我的jcl中动态选择它。

问候,
庄花
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

发布发表:2007年4月4日星期三下午4:46
引用回复

好吧,我只能说,谁想过每次更新PDS时都要不断更改其名称的想法,也许应该寻找IT以外的职业。
回到顶部
查看用户资料 发送私信
超级

全球主持人


已加入:2004年4月26日
帖子:4650
地点:美国北卡罗来纳州罗利

发布发表:2007年4月4日星期三下午6:11
引用回复

庄花写道:
无论如何,我可以通过检查PDS的最后一个限定符来自动获取版本号,并在触发时在我的jcl中动态选择它。


是的,我认为您可以做到。这很可能需要两项工作-一个用于确定和存储PDS的姓氏,然后是使用该变量的工作。可能是这样的:

码:

今天双色球开奖结果第1步    EXEC PGM=IKJEFT01                             
今天双色球开奖结果 SYSTSPRT DD   DSN=&&SYSTSPRT,DISP=(,PASS),             
今天双色球开奖结果         UNIT=VIO,SPACE=(CYL,(1,1),RLSE)               
今天双色球开奖结果 SYSTSIN  DD   *                                         
LISTCAT ENT('BPAA.CNTLCARD.*')                           
/ *                                                        
今天双色球开奖结果 *                                                       
今天双色球开奖结果第2步    EXEC PGM=ICEMAN                               
今天双色球开奖结果 SORTIN   DD   DSN=&&SYSTSPRT,DISP=(OLD,DELETE)         
今天双色球开奖结果整理  DD   DISP = SHR,DSN = MY.PARMLIB(MYMEMB)     
今天双色球开奖结果 SYSOUT   DD   SYSOUT=*                                 
今天双色球开奖结果 SYSIN    DD   *                                         
  选项VLSHRT                                           
  SORT FIELDS=(22,44,CH,D)                               
 完全转换,包括=(6,7,CH,EQ,C'NONVSAM'),ENDREC=3,
    OUTREC=(C'今天双色球开奖结果 SET THEPDS =',22,44,80:X)                 
/ *                                                        
今天双色球开奖结果 *                                                       


其中“ MY.PARMLIB(MYMEMB)”包含以下行:

今天双色球开奖结果 SET THEPDS = BPAA.CNTLCARD.V0611

然后,您的作业使用变量作为PDS名称:

码:

今天双色球开奖结果 JCLLIB ORDER = MY.PARMLIB
今天双色球开奖结果 INCLUDE MEMBER = MYMEMB
今天双色球开奖结果 *
...
今天双色球开奖结果 SYSIN DD DISP = SHR,DSN =&THEPDS
回到顶部
查看用户资料 发送私信
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年4月4日星期三晚上7:01
引用回复

你好

在步骤1中,我得到的输出为

1READY
LISTCAT ENT('BPAA.DBA.R010.CNTLCARD。*')
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0702NT
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0704
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0706
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0708
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V8TEST
IN-CAT --- SYS1.CRIS#.CATALOG
准备
结束

但是我没有在MY.PARMLIB(MYMEMB)中得到任何东西

用step1的输出分析了step2中的sysin之后,我做了很少的更改。
今天双色球开奖结果 SYSIN DD *
选项VLSHRT
排序字段=(18,44,CH,D)
完全转换,包括=(2,7,CH,EQ,C'NONVSAM'),ENDREC=3,
OUTREC =(C'今天双色球开奖结果 SET THEPDS =',18,44,80:X)
/ *

即使没有在输出文件中获取任何数据。
您能给我解释一下系统信息,以便我检查一下原因吗?

问候,
庄花
回到顶部
查看用户资料 发送私信
超级

全球主持人


已加入:2004年4月26日
帖子:4650
地点:美国北卡罗来纳州罗利

发布发表:2007年4月4日星期三晚上8:55
引用回复

好的,第一个解决方案很糟糕,因为我没有考虑列出的数据集数量可能会变化的事实。该过程需要使用ICETOOL而不是SORT:

码:

今天双色球开奖结果第1步    EXEC PGM=IKJEFT01                             
今天双色球开奖结果 SYSTSPRT DD   DSN=&&SYSTSPRT,DISP=(,PASS),             
今天双色球开奖结果         UNIT=VIO,SPACE=(CYL,(1,1),RLSE)               
今天双色球开奖结果 SYSTSIN  DD   *                                         
LISTCAT ENT('BPAA.CNTLCARD.*')                           
/ *                                                        
今天双色球开奖结果 *                                                       
今天双色球开奖结果第2步    EXEC PGM=ICETOOL
今天双色球开奖结果在       DD   DSN=&&SYSTSPRT,DISP=(OLD,DELETE)         
今天双色球开奖结果 T1       DD   UNIT=VIO,SPACE=(CYL,(1,1))
今天双色球开奖结果输出      DD   DISP = SHR,DSN = MY.PARMLIB(MYMEMB)     
今天双色球开奖结果 DFSMSG   DD   SYSOUT=*                               
今天双色球开奖结果工具  DD   SYSOUT=*                               
今天双色球开奖结果 TOOLIN   DD   *                                     
  SORT FROM(IN) USING(CTL1)                           
  COPY FROM(T1) USING(CTL2)                           
/ *                                                      
今天双色球开奖结果 CTL1CNTL DD   *                                     
  选项VLSHRT                                       
  SORT FIELDS=(22,44,CH,D)                             
 OUTFIL FNAMES = T1,转换,                           
    包含=(6,7,CH,EQ,C'NONVSAM'),                   
    BUILD=(22,44,80:X)                                 
/ *                                                      
今天双色球开奖结果 CTL2CNTL DD   *                                     
 OUTFIL FNAMES = OUT,ENDREC = 1,                         
    BUILD=(C'今天双色球开奖结果 SET THEPDS =',1,44,80:X)               
/ *                                                      
今天双色球开奖结果 *                                                       
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2007年4月4日星期三晚上9:37
引用回复

嗨!

由于您的组织如果没有这种设置就无法生存,因此最简单的合并方法是使用ALIAS方法。
它的意思是 :

在您的JCl中,使用常规名称为例
您喜欢的BPAA.DBA.R010.CNTLCARD。

每次创建新的PDS时,只需运行一个简单的IDCAMS作业即可创建一个别名,就像刚刚创建的数据集一样

码:


今天双色球开奖结果 ALIAS JOB ......
今天双色球开奖结果 AMS EXEC PGM = IDCAMS
今天双色球开奖结果 SYSPRINT DD SYOUT = *
今天双色球开奖结果 SYSIN DD *
 删除BPAA.DBA.R010.CNTLCARD。任何您喜欢的别名
  set maxcc = 0
  定义别名( -
             NAME(您喜欢的BPAA.DBA.R010.CNTLCARD。) -
             RELATE(BPAA.DBA.R010.CNTLCARD.Vnnnnnn) )
今天双色球开奖结果


执行工作看起来像
码:


今天双色球开奖结果 jobname JOB ....
今天双色球开奖结果 s exec程序名称
今天双色球开奖结果 ddname dd disp = shr,
今天双色球开奖结果                 dsn = BPAA.DBA.R010.CNTLCARD.anyyouing喜欢(member)
....
....


简单干净!不必大惊小怪
关键事件:
创建新的pds和定义别名集中在一个步骤中

问候

e.s

附言

它与IBM用于管理新DB2版本的安装的技术相同

生产工作将始终参考
DSN文件
真正的数据集将是
DSN.V8R1M0.DSNLOAD
DSN.V9R1M0.DSNLOAD

DSN文件将指向DSN.V8R1M0.DSNLOAD

在截止时间到新版本
一个简单的
码:

 DEFINE ALIAS ( -
             NAME(DSN.DSNLOAD) -
             RELATE(DSN.V9R1M0.DSNLOAD) )


将实现不更改任何jcl的开关
回到顶部
查看用户资料 发送私信
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年4月5日星期四上午10:08
引用回复

你好

由于第一步是通过

[码]
1READY
LISTCAT ENT('BPAA.DBA.R010.CNTLCARD。*')
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0702NT
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0704
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0706
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V0708
IN-CAT --- SYS1.CRIS#.CATALOG
NONVSAM ------- BPAA.DBA.R010.CNTLCARD.V8TEST
IN-CAT --- SYS1.CRIS#.CATALOG
准备
结束

在上面的列表中,我需要&THEPDS中的BPAA.DBA.R010.CNTLCARD.V0708,但是正在获得BPAA.DBA.R010.CNTLCARD.V8TEST。
我尝试将PDS列出为BPAA.DBA.R010.CNTLCARD.V0 *,但无法正常工作。

有什么办法可以使用BPAA.DBA.R010.CNTLCARD.V0 *获取PDS列表吗?

问候,
庄花
回到顶部
查看用户资料 发送私信
murmohk1

高级会员


已加入:2006年6月29日
帖子:1436
地点:印度班加罗尔

发布发表:2007年4月5日星期四上午10:25
引用回复

庄花,

更改步骤2的包含条件,以仅提取具有“ NONVSAM”和“ BPAA.DBA.R010.CNTLCARD.V0”的记录。我认为应该可以解决您的问题。

码:

包含=(6,7,CH,EQ,C'NONVSAM',AND,
                 22,25,CH,EQ,C'BPAA.DBA.R010.CNTLCARD.V0')
回到顶部
查看用户资料 发送私信
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年4月5日星期四上午10:49
引用回复

icon_sad.gif

OUTFIL STATEMENT中的给定语法错误

问候,
庄花
回到顶部
查看用户资料 发送私信
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年4月5日星期四上午11:11
引用回复

你好

发现错误。现在工作正常。

非常感谢 icon_smile.gif

问候,
庄花
回到顶部
查看用户资料 发送私信
庄花

新的用户


已加入:2005年3月22日
帖子:15
地点:钦奈

发布发表:2007年5月16日,星期三,12:04 pm
引用回复

你好

例如,我有PDS列表

BPAA.DBA.R010.CNTLCARD.V0704
BPAA.DBA.R010.CNTLCARD.V0706
BPAA.DBA.R010.CNTLCARD.V0706T0

通过使用上面的SORT卡,我可以获取最新的PDS。即BPAA.DBA.R010.CNTLCARD.V0706T0,但我需要获取BPAA.DBA.R010.CNTLCARD.V0706 PDS作为我的输出。

所以我尝试如下更改代码

码:


包含=(6,7,CH,EQ,C'NONVSAM',和,45,2,CH,EQ,C'V0',
         AND,50,2,CH,EQ,C'  '),



但是上面的代码无法正常工作,我的输出没有任何东西。
在这方面帮助我。

感谢和问候,
庄花
回到顶部
查看用户资料 发送私信
德夫兹

活跃成员


已加入:2007年1月20日
帖子:684
地点:好莱坞

发布发表:2007年5月16日,星期三,下午6:05
引用回复

码:
AND,50,2,CH,EQ,C'  '),

IDCAMS输出是可变长度文件,在位置50,2上不一定是空格。那就是它不起作用的原因。

您需要修复SORT卡。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
没有新帖 将匹配的记录写入输出文件 DFSORT / ICETOOL 9
没有新帖 比较文件记录计数百分比... DFSORT / ICETOOL 4
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 将文件从PD转换为显示... 同步排序 4
没有新帖 RECFM = U磁带文件的记录数 DFSORT / ICETOOL 17
搜索我们的论坛:

回到顶部