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

需要使用Build选项排序卡。


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

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月10日星期一5:29 pm
引用回复

你好

我有一个文件,该文件在FILE A中有此顺序的记录

事故编号(10)Ind1(1)Ind2(1)

Ind 1和Ind 2的可能值分别是P,G和A,B

例如-
码:
0000000091 P A
0000000091 G A
0000000072 P B
0000000051 G B


我有另一个文件FILE B,其事件编号字段位于20 pos

我的要求是,我想检查文件A的事件编号以及可能的组合“ PA”,“ GA”,“ PB”和“ GB”。

我需要以这种方式省略分类卡,例如

它检查“ P A”和所有事件编号。
它检查“ PB”和所有事件编号。
它检查“ GA”和所有事件编号。
它检查“ GB”和所有事件编号。

所以我需要4个省略排序卡

仅凭事件编号,我就有这张分类卡

码:
// SYSINDD *                                                   
  OPTION COPY                                                 
  OUTFIL REMOVECC,                                             
      HEADER1=(' SORT FIELDS = COPY',/,                       
        '  OMIT COND=(1,1,BI,NE,1,1,BI,OR,'),                 
      BUILD=(C' 20,10,CH,EQ,C''',1,10,C''',OR,',80:X),       
      TRAILER1=('  1,1,BI,NE,1,1,BI)')                         
/ *


但我也需要检查指标。请帮助

编码
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月10日星期一5:40 pm
引用回复

请注意,您的帖子已经过编码以保留间距。

您是否可以同时显示两个输入文件的示例数据RECFM和LRECL,以及该文件的预期输出,无论匹配还是不匹配。我认为您最好看一下JOINKEYS,但是直到我们看到您想要的东西时才能确定。
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月10日星期一6:14 pm
引用回复

要求如下:

有3个文件

文件A(FB nad LRECL 80)
文件B(FB nad LRECL 200)
文件C(FB nad LRECL 200)

文件A的内容是-

0000000091 P A
0000000091 G A
0000000072 P B
0000000051 G B

这些是指标的含义-

A和B指示是否需要从FILE B或FILE C中删除记录

P-(1类事件),G(2类事件),所以P和G是事件类型

如果没有事件在文件1中给定P,则事件编号在FILEB或FILEC中的位置20

如果没有事件在文件1中给定G,则事件编号在FILEB或FILE C中的位置40

因此,基于这些指标,我需要省略排序条件才能从2个文件FILE B和FILE C中删除记录

在此先感谢您的帮助
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

发布发表:2012年12月10日星期一6:22 pm
引用回复

引用:
A和B指示是否需要从FILE B或FILE C中删除记录


是A记录仅在FileB中,B记录仅在FileC中还是可以同时存在?您需要精确地提出要求。

加油
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月10日星期一6:27 pm
引用回复

A和B仅表示需要从FILE B或FILE C中删除特定事件编号的记录

文件B和FILE C最初都具有完全相同的记录。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2012年12月10日星期一8:20 pm
引用回复

您好,

您需要发布两个输入文件样本数据以及想要从该样本数据中输出的信息。使样本全面。

使用代码标签以提高可读性。使用“预览”查看您的帖子如何出现在论坛中。

完全/明确地重新发布您的“规则”。
回到顶部
查看用户资料 发送私信
斯科鲁苏

高级会员


已加入:2007年12月7日
帖子:2205
地点:圣何塞

发布发表:2012年12月10日星期一10:34 pm
引用回复

mfchnuser,

最终输出是什么?消除到单个文件后,来自FILEB和FILEC的记录?还是需要相应地拆分?

运行以下作业并向我们展示完整的sysout,它有助于我们确定系统所拥有的DFSORT级别
码:

// STEP0100 EXEC PGM = SORT 
// SYSOUT   DD SYSOUT=*   
// SORTIN   DD *           
美国广播公司           
//整理  DD SYSOUT = *   
// SYSIN    DD *           
  排序字段=复制       
// *     
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月11日,星期二,下午4:54
引用回复

跑了你之前给的工作

sysout如下:

码:
 SYNCSORT已获得CPU序列号55BA6的许可,型号2817 708           
 SYSIN :                                                                 
   SORT FIELDS=COPY                                                     
 WER276B SYSDIAG = 7613154,12987187,12987187,8178825                 
 WER164B 最多可提供6,896K个虚拟存储字节,     
 WER164B     要求保留0个字节,已使用440K个字节                 
 WER146B 分配了2万个紧急空间字节                         
 WER108I  SORTIN   : RECFM=FB   ; LRECL=    80; BLKSIZE=    80           
 WER073I  SORTIN   :DSNAME = Z1225DJ.F0091CVT.JOB00968.D0000101。?         
 WER110I  SORTOUT  : RECFM=FB   ; LRECL=    80; BLKSIZE=    80           
 WER074I  SORTOUT  :DSNAME = Z1225DJ.F0091CVT.JOB00968.D0000104。?         
 WER410B 16MEG线以上有5,868K个虚拟存储字节,
 WER410B     要求保留0个字节,已使用324K个字节                 
 WER211B  SYNCSMF 通过SYNCSORT调用; RC = 0000                           
 WER449I SYNCSORT全局DSM子系统活动                           
 WER416B BSAM用于SORTIN                                       
 WER416B BSAM已用于脱浆                                     
WER054I  RCD IN          1, OUT          1                                     
WER169I 发行1.4个批次0520 TPF等级0.1                                 
WER052I 结束同步-F0091CVT,STEP0100,,DIAG = AC00,6242,8084,00CC,E47A,48CB,8688,8460


要求如下,为简化起见,我使用了类似于文件名的ID:

有3个文件

文件A(FB nad LRECL 80)
文件B(FB nad LRECL 200)
文件C(FB nad LRECL 200)

提交内容

码:
0000000091 P B
0000000095 G B
0000000072点
0000000051 G C

这些是指标的含义-

A和B指示是否需要从FILE B或FILE C中删除记录

P-(1类事件),G(2类事件),所以P和G是事件类型

如果没有事件在文件1中给定P,则事件编号在FILEB或FILEC中的位置20

如果没有事件在文件1中给定G,则事件编号在FILEB或FILE C中的位置40

因此,基于这些指标,我需要省略排序条件才能从2个文件FILE B和FILE C中删除记录

现在的例子:

考虑的内容如下:

文件B内容
码:
---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5


123456789123456789AA00000000A1AAAAAAAAA0000000095
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000072AAAAAAAAA0000000001


文件C的内容
码:
---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5


123456789123456789AA00000000A1AAAAAAAAA0000000095
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000072AAAAAAAAA0000000001

现在,由于文件A具有以下内容

提交内容
码:
---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5


0000000091 P B
0000000095 G B
0000000072点
0000000051 G C

在事件第一的记录中'0000000091'在12 pos处的指标是P而在14 pos处的指标是B
意味着需要从文件B和事件编号中删除记录。将位于文件B中的位置20(由文件A中的“ P”指示)

第2次记录的方法相同。 '0000000095'在12位置处的指标是G而在14位置处的指标是B
意味着需要从文件B和事件编号中删除记录。将位于文件B中的位置40(由文件A中的“ G”表示)

第3个事件的记录方法相同。 '0000000072'在12 pos处的指标是P而在14 pos处的指标是C
意味着需要从文件C和事件编号中删除记录。将位于文件C中的位置20(由文件A中的“ P”指示)

第4条记录的记录方式相同。 '0000000051'在12 pos处的指标是G而在14 pos处的指标是c
意味着需要从文件C和事件编号中删除记录。将位于文件C中的位置40(由文件A中的“ G”表示)
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月11日,星期二,下午5:16
引用回复

WER消息表示您具有SynsSort,因此发布在错误的论坛中。 SyncSort问题在JCL中。

Kolusu是DFSORT开发人员。 SyncSort是竞争对手的产品,您现在已经浪费了Kolusu的时间。

请确保您不会再在错误的论坛中发帖。
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

发布发表:2012年12月11日,星期二,下午5:21
引用回复

您的输出显示您使用的是SYNCSORT,而不是DFSORT。您在错误的论坛中发布了-您应该在同时适用于JCL和SYNCSORT的JCL论坛中。

此外,您现在已从使用A和B指示器更改为B和C指示器,这些指示器现在似乎指示要从哪个文件中删除记录。我昨天要求对此进行澄清,但您对该请求的答复并未澄清。

加油
回到顶部
查看用户资料 发送私信
达夫波塞兰

活跃的成员


加入时间:2006年12月1日
职位:747
所在地:宾夕法尼亚州

发布发表:2012年12月11日,星期二,7:01 pm
引用回复

我认为您似乎已经使文件B和C以及“删除来源”方法变得过于复杂了。

尝试仅使用两个输入文件1和2重新定义您的要求(因为B和C始终相同)。

然后,您可以使用Cond和Joinkey的组合(具有不成对的2),从文件2中选择要输出到文件1的文件,并从文件2中选择要输出的文件。

这种积极的逻辑对人类的思想(至少在我的思想中)来说要容易得多。
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月12日,星期三,下午4:56
引用回复

Gary,很抱歉在DFSORT中发布了此内容,我将在syncsort中重新发布,我将指示符记为B和C使其听起来很容易,以便指示符与文件名匹配

达夫波塞兰,这些文件B和C并不完全相同,但是许多记录是相同的。我需要使用排序卡删除的记录将同时存在于两个文件中,但这并不意味着文件相同。我只是按要求提供了样本数据
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月12日,星期三,下午5:34
引用回复

mfchnuser写道:
Gary,很抱歉在DFSORT中发布了此内容,我将在syncsort中重新发布


Please don't do that. I've already moved the topic to the JCLforum, which is where SyncSort questions are dealt with.
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月12日,星期三,下午6:01
引用回复

感谢Bill将其移至正确的论坛,如果有人可以帮助我解决问题,那将是非常不错的。

提前致谢
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月12日,星期三,下午6:03
引用回复

您能显示给定代码的输入和输出文件吗?
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月12日,星期三,下午6:36
引用回复

输入文件:

文件A

码:
0000000091 P B
0000000095 G B
0000000072点
0000000051 G C


文件B
码:

123456789123456789AA0000000051AAAAAAAAA0000000095
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000072AAAAAAAAA0000000001
123456789123456789AA0000000015AAAAAAAAA0000000004
123456789123456789AA0000000023AAAAAAAAA0000000004
123456789123456789AA0000000045BBBBAAAAA0000000005
123456789123456789AA0000000032AAAAAAAAA0000000008


文件C

码:
123456789123456789AA0000000051AAAAAAAAA0000000095
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000072AAAAAAAAA0000000001
123456789123456789AA0000000015AAAAAAAAA0000000004
123456789123456789AA0000000023AAAAAAAAA0000000004
123456789123456789AA0000000045BBBBAAAAA0000000005
123456789123456789AA0000000032AAAAAAAAA0000000008
123456789123456789AA0000000032AAAAAAAAA0000000045
123456789123456789AA0000000032AAAAAAAAA0000000176
123456789123456789AA0000000032AAAAAAAAA0000000668
123456789123456789AA0000000032AAAAAAAAA0000000678
123456789123456789AA0000000032AAAAAAAAA0000000488


执行排序卡后,按照文件A中给出的条件
,则FILEB和FILE C中的输出应为


文件B

码:
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000072AAAAAAAAA0000000001
123456789123456789AA0000000015AAAAAAAAA0000000004
123456789123456789AA0000000023AAAAAAAAA0000000004
123456789123456789AA0000000045BBBBAAAAA0000000005
123456789123456789AA0000000032AAAAAAAAA0000000008


文件C

码:
123456789123456789AA0000000051AAAAAAAAA0000000095
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000015AAAAAAAAA0000000004
123456789123456789AA0000000023AAAAAAAAA0000000004
123456789123456789AA0000000045BBBBAAAAA0000000005
123456789123456789AA0000000032AAAAAAAAA0000000008
123456789123456789AA0000000032AAAAAAAAA0000000045
123456789123456789AA0000000032AAAAAAAAA0000000176
123456789123456789AA0000000032AAAAAAAAA0000000668
123456789123456789AA0000000032AAAAAAAAA0000000678
123456789123456789AA0000000032AAAAAAAAA0000000488
回到顶部
查看用户资料 发送私信
达夫波塞兰

活跃的成员


加入时间:2006年12月1日
职位:747
所在地:宾夕法尼亚州

发布发表:2012年12月12日,星期三,晚上7:10
引用回复

每个文件中有多少条记录?

我问的原因是可能有一种替代方法(也许是Rexx)。

根据我的观察,将需要多遍Syncsort解决方案。

您至少需要一步到A和B上的Joinkey,而另一步到Joinkey A和C。由于B和C中的密钥根据A中的P / G值而异,所以每个步骤甚至可能有两个。

这不是一件容易的事吗?
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月12日,星期三,下午7:39
引用回复

码:
  OMIT COND=((12,1,CH,EQ,C'P',
              AND,(20,10,CH,EQ,C'您的号码'),
            OR,
             (12,1,CH,EQ,C'G',
              AND,(40,10,CH,EQ,C'您的号码')))


我没有运行上面的程序,但是应该关闭了。

这样的事情。然后,您需要为每个文件生成其中一个(如您现有的示例)。

您知道您不会从实际的B和C文件中删除记录,而是创建没有这些记录的副本吗?
回到顶部
查看用户资料 发送私信
mfchnuser

新的用户


已加入:2012年9月21日
帖子:12
地点:印度

发布发表:2012年12月12日,星期三,下午7:57
引用回复

嗨daveporcelan

记录的数量每天都在变化。它可能高达50 k。

Rexx不能使用,因为此步骤必须作为现有JCL的一部分添加。

Bill,因为这将是动态排序卡,因为FILE A的内容每天都会更改。我一直在寻找可以使用build语句给出的内容
回到顶部
查看用户资料 发送私信
达夫波塞兰

活跃的成员


加入时间:2006年12月1日
职位:747
所在地:宾夕法尼亚州

发布发表:2012年12月12日,星期三,8:09 pm
引用回复

引用:
Rexx不能使用,因为此步骤必须作为现有JCL的一部分添加。



A 'Step' can be added to the existing JCLinvoking a Rexx Exec to perform the processing.

这就是我如何处理这种复杂的需求。就是我5万条记录将在短时间内处理。

您将需要几个“排序”步骤才能实现目标。
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月12日,星期三,晚上8:15
引用回复

我提供了一个OMIT,我认为您可以生成...

然而...

您不知道P / G,除了文件A上的文件,我认为任何OMIT都不会做您想要的事(正如您在数据中所显示的那样,事件编号可以在文件B上的任何地方或C)。

我认为您需要使用不同的OMIT将两个文件分别传递两次。

要么是那个时间,要么是“编程时间”,或者尝试找出Kolusu的想法:-),同时还要记住DFSORT拥有JNFnCNTL文件之类的东西,而SyncSort可能没有。
回到顶部
查看用户资料 发送私信
Anbarasan D

新的用户


已加入:2010年4月20日
帖子:21
地点:美国

发布发表于:2012年12月13日,星期四12:51上午
引用回复

你可以试试看

码:

// S1       EXEC PGM=SORT             
// SYSOUT   DD SYSOUT=*               
// SORTIN   DD *                     
0000000091 P B                       
0000000095 G B                       
0000000072点                       
0000000051 G C                       
//文件    DD DSN=&&FILEP,           
//            DISP=(,PASS,DELETE),   
//            UNIT=SYSDA,           
//            SPACE=(TRK,(10,5),RLSE)
//文件    DD DSN=&&FILEG,           
//            DISP=(,PASS,DELETE),   
//            UNIT=SYSDA,           
//            SPACE=(TRK,(10,5),RLSE)
// SYSIN    DD *                                 
  OPTION COPY                                   
 OUTFIL FNAMES = FILEB,INCLUDE =(12,1,CH,EQ,C'P'),
                    BUILD=(1,80)                 
 OUTFIL FNAMES = FILEC,INCLUDE =(12,1,CH,EQ,C'G'),
                    BUILD=(1,80)                 
/ *                                                
// S2       EXEC PGM=SORT                         
// SYSOUT   DD SYSOUT=*                           
// SORTJNF1 DD DSN =&&FILEP,                       
//            DISP=SHR                           
// SORTJNF2 DD *                                 
123456789123456789AA00000000A1AAAAAAAAA0000000095
123456789123456789AA0000000021AAAAAAAAA0000000051
123456789123456789AA0000000091AAAAAAAAA0000000004
123456789123456789AA0000000072AAAAAAAAA0000000001
/ *                                                
//整理 DD SYSOUT = *                       
// SYSINDD *                               
 JOINKEYS FILE = F1,FIELDS =(01,10,A),SORTED 
 JOINKEYS FILE = F2,FIELDS =(21,10,A),SORTED 
  JOIN UNPAIRED,F2                         
  REFORMAT FIELDS=(F2:1,80)                 
  排序字段=复制                         
/ *                                          
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年12月13日,星期四,凌晨1:31
引用回复

嗯....你呢 当然 那将满足要求?

对于一个最终输出文件,您如何区分TS的FILEB和FILEC?
回到顶部
查看用户资料 发送私信
Anbarasan D

新的用户


已加入:2010年4月20日
帖子:21
地点:美国

发布发表:2012年12月13日,星期四,凌晨1:45
引用回复

抱歉,我只为一个输出文件(FILEB)编码。需要第三步来获取FILEC的输出(类似于S2步骤)
回到顶部
查看用户资料 发送私信
达夫波塞兰

活跃的成员


加入时间:2006年12月1日
职位:747
所在地:宾夕法尼亚州

发布发表:2012年12月13日,星期四,凌晨1:52
引用回复

我认为您还需要再次处理步骤S2的输出,以确保它与文件B不匹配类型G。

我认为这是您完成之前的许多排序步骤。

或一个小的Rexx程序。

我认为我们已经失去了TS。也许等着看他们是否仍然在我们身边。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM 转到页面 1, 2  下一页

 


类似主题
话题 论坛 回覆
没有新帖 建立排序键 DFSORT / ICETOOL 3
没有新帖 很大排序失败-寻求识别... DFSORT / ICETOOL 7
没有新帖 使用SORT进行日期转换 同步排序 4
没有新帖 HDAM中的RMNAME选项 IMS数据库/ DC 4
没有新帖 哪个SORT实用程序可以改善性能? DFSORT / ICETOOL 16
搜索我们的论坛:


回到顶部