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

如何使用SYNCSORT实现呢?


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

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月19日,星期三,12:46 pm
引用回复

你好

我有两个日期字段,格式为CCYYMMDD
02 DB-DT-QTR-BEGIN PIC 9(5)COMP-3。
02 DB-DT-QTR-END图9(5)COMP-3。

我还有另一个日期字段,格式为YYMMDD
02 AV-DT-CLM-PRCH图9(6)COMP-3。

我的要求是将AV-DT-CLM-PRCH字段添加世纪,并确定该日期是否在DB-DT-QTR-BEGIN和DB-DT-QTR-END日期之内。

如果满足条件,则写出记录。我不知道日期格式。任何人都可以帮助我。

提前致谢
卡迪克
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月19日,星期三1:05 pm
引用回复

抱歉,我忘记指定字段位置,

在“文件主文件”中查看

我归档

数据库DT DB DT
QTR开始QTR结束
P 3 P 3
27 ------- 30 -----

II档

音视频
CLM PRCH
P 4
125--------
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月19日,星期三1:05 pm
引用回复

引用:
我的要求是将AV-DT-CLM-PRCH字段添加世纪,并确定该日期是否在DB-DT-QTR-BEGIN和DB-DT-QTR-END日期之内。

您想在第二个日期字段中添加哪个世纪的值-AV-DT-CLM-PRCH?
引用:
如果条件满足,则写出记录

什么是要写入输出的字段以及来自哪些文件?还要输入LRECL / RECFM ..
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月19日,星期三,下午1:51
引用回复

karthikr44,

您的File-1中的日期格式为CCYYMMDD,如果使用十进制压缩格式,则需要5个字节。但是您的抄写本仅显示5个数字,仅需要3个字节,这与您的“文件母版”一致。您可以从实际文件中发布一些示例记录吗?
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月19日,星期三2:18 pm
引用回复

HI arcvns,

当我尝试在File master中打开I文件时,它显示日期如下。

码:

  DB DT    DB DT 
QTR开始QTR结束
P 3       P 3     
27 ------- 30 -----
X'031F08'X'001F +
010       010     
3F8       0F8     
------------------


但是我的团队负责人现在说,以上字段均为julian格式(例如:08215),并转换为CCYYMMDD格式。

然后,第二个文件中的字段AV-DT-CLM-PRCH为YYMMDD格式,并转换为CCYYMMDD格式。

我提出:
录音:FB
LRECL:3200

II档:
录音:FB
LRECL:200

然后,如果条件满足,则从第二个文件(整个LRECL)写入输出。

提前致谢
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月19日,星期三,下午4:19
引用回复

您在两个文件中都有多少条记录?您有匹配的钥匙吗?
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月19日,星期三,下午4:39
引用回复

嗨arcvns,

I包含字段DB-DT-QTR-BEGIN,DB-DT-QTR-END的文件只有一个记录。

包含字段AV-DT-CLM-PRCH的II文件具有许多记录。

并且条件是AV-DT-CLM-PRCH应该在DB-DT-QTR-BEGIN和DB-DT-QTR-END之内。

问候
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月19日,星期三,晚上8:38
引用回复

卡尔提克

您可以使用下面的Syncsort作业来实现。我承担了1950年至2049年的世纪之窗。您可以根据需要进行修改。
码:
// STEP01  EXEC PGM=SORT                                           
// SYSOUT    DD SYSOUT=*                                           
//整理   DD DSN=&&C1,DISP=(MOD,PASS)                           
// SORTIN    DD DSN =  Date file---FB/3200                     
// SYSIN     DD *                                                 
 OPTION COPY                                                     
 INREC IFTHEN =(WHEN=INIT,BUILD=(X,27,3,X,30,3)),                 
       IFTHEN=(WHEN=(2,1,CH,GT,X'49'),OVERLAY=(1:X'00'),HIT=NEXT),
       IFTHEN=(WHEN=(2,1,CH,LE,X'49'),OVERLAY=(1:X'01'),HIT=NEXT),
       IFTHEN=(WHEN=(6,1,CH,GT,X'49'),OVERLAY=(5:X'00'),HIT=NEXT),
       IFTHEN=(WHEN=(6,1,CH,LE,X'49'),OVERLAY=(5:X'01'),HIT=NEXT)
 OUTFIL BUILD=(C'BEG,',1,4,DT1,80:X,/,                           
               C'END,',5,4,DT1,80:X)                             
// STEP02 EXEC PGM = SORT,PARM ='CENTWIN = 1950'                       
// SYSOUT    DD SYSOUT=*                                           
// SYMNAMES  DD DSN =&&C1,DISP=(OLD,PASS)                           
// SORTIN    DD DSN =  Input file  ---FB/200                         
//整理   DD DSN= 输出文件--- FB / 200                                       
// SYSIN     DD *                                                 
 OPTION COPY                                                     
 INREC OVERLAY=(201:125,2,Y2P,126,2,PD0,M11,127,2,PD0,M11)       
 OUTFIL INCLUDE=(201,8,ZD,GE,BEG,AND,201,8,ZD,LE,END),BUILD=(1,200)
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月20日,星期四,上午11:45
引用回复

嗨,阿伦,

Thnx为您的解决方案。但是我正在中止SOC7。

输入/输出数据:

码:

  DB DT 
QTR开始
P 3     
27-------
X'274F08'
240     
7F8     


倾倒:

    地址00000000长度00000000(十进制)无效长度
    工作:JCLSORT步骤:STEP01程序:QKQMAIN
    未为程序“ QKQMAIN”找到CAPD112W的符号信息。

    指示说明
    F871 F0E2 F0EC ZAP零和添加

    操作数:R15!+ E2
    值:0000000000000000<-- NOT NUMERIC

    操作数:R15!+ EC
    值:4F08<-- NOT NUMERIC

    在地址80023326处发生中断

    输入点地址为00007130,在程序QKQMAIN中为+000000偏移量



一个小的更新,第一个文件LRECL是3208,而不是3200。我认为这不会产生S0C7异常终止。

请建议我如何解决这个问题,
谢谢
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月20日,星期四,12:26 pm
引用回复

卡尔提克

您输入文件中的数据似乎不是有效的COMP-3数据。更正数据,然后重试。
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月20日,星期四,12:38 pm
引用回复

嗨,

我是生产文件。不会错的。我也尝试了许多文件,所有文件都转到S0C7异常终止。

谢谢
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月20日,星期四,下午3:00
引用回复

引用:
我是生产文件。不会错

我并不是说您的生产文件是错误的。您的解释方式可能是错误的。压缩的十进制字段将始终将符号存储在最后半字节中。您的3字节打包日期看起来像这样,这不是有效的COMP-3字段。您需要清楚要处理的数据。
码:
  DB DT
QTR开始
P 3     
27-------
X'274F08'
240     
7F8
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2008年11月21日星期五上午1:32
引用回复

您好,

在视图/浏览中打开文件(不是文件主文件),然后向右滚动到该数据位置(也可以使用COLS在记录中显示位置)。将此数据以十六进制形式发布(十六进制打开,复制/粘贴到将要创建的答复中,并使用“代码”标签使数据更具可读性并保持对齐)-包括COL信息。使用“预览”来查看您的回复,因为它会出现在论坛中;如果您对帖子的显示方式感到满意,请提交。

如上所述,发布的数据不是有效的打包十进制(comp-3)数据。

以下内容与数据发布方式类似。这两个数字是08215和21508的有效comp-3值。我使用了C符号,但F符号也可能有效。

码:
--3 ---- + ---- 4-
                         
--------------
    *    &รฐ   
44025444258444
0081C00010C000


听起来排序控件中使用的位移不在压缩十进制数据所在的位置。
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月21日星期五上午10:31
引用回复

引用:
听起来排序控件中使用的位移不在压缩十进制数据所在的位置。

卡尔提克

我已经根据您提到的位置和偏移量给出了控制语句,这可能是错误的,因为它们没有有效的COMP-3数据。检查文件并找出正确的字段位置。
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月21日,星期五12:01 pm
引用回复

你好

感谢您的所有回复。在这里,我提供所需的信息。

码:

2 ---- + ---- 3
**********
9P3  |  | 
FDF02402402
97387F87F84
-----------


这里,
DB-DT-QTR-BEGIN-(24,3)
DB-DT-QTR-END-(27,3)

在抄写本中,他们将该字段定义为:
02 DB-DT-QTR-BEGIN PIC 9(5)COMP-3。
02 DB-DT-QTR-END图9(5)COMP-3。
格式为YYDDD。

问候
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月21日,星期五12:55 pm
引用回复

引用:
这里,
DB-DT-QTR-BEGIN-(24,3)
DB-DT-QTR-END-(27,3)

根据您发布的数据,职位似乎是DB-DT-QTR-BEGIN- (23,3) 和DB-DT-QTR-END- (26,3) . icon_rolleyes.gif
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月24日星期一6:09 pm
引用回复

HI arcvns,

U正确指出。现在我没有中止S0C7。

Thnx ..

但是,还有一个帮助,请您简要说明以下几行,


码:
选件复制                                                     
 INREC IFTHEN =(WHEN=INIT,BUILD=(X,27,3,X,30,3)),                 
       IFTHEN=(WHEN=(2,1,CH,GT,X'49'),OVERLAY=(1:X'00'),HIT=NEXT),
       IFTHEN=(WHEN=(2,1,CH,LE,X'49'),OVERLAY=(1:X'01'),HIT=NEXT),
       IFTHEN=(WHEN=(6,1,CH,GT,X'49'),OVERLAY=(5:X'00'),HIT=NEXT),
       IFTHEN=(WHEN=(6,1,CH,LE,X'49'),OVERLAY=(5:X'01'),HIT=NEXT)

提前致谢,
卡迪克
回到顶部
查看用户资料 发送私信
阿努·达万(Anuj Dhawan)

高级会员


已加入:2006年4月22日
帖子:6250
地点:印度孟买

发布发表:2008年11月25日,星期二,凌晨3:53
引用回复

你好

希望您可以使用这些手册,如果不要求Alissa向您发送最新文档,她是SyncSort代表&该站点的JCL部分的主持人。

1. 选件复制:使XXxxSORT将SORTIN数据集或插入的记录复制到输出数据集。 (除非所有记录都通过E35出口处理)。

2. IFTHEN子句:通过指定如何将构建或覆盖项应用于满足给定条件的记录,以不同的方式重新格式化不同的记录。 IFTHEN子句允许您使用复杂的条件逻辑来选择如何重新格式化不同的记录类型。

2. BUILD:通过逐个指定其所有项目来重新格式化每个记录。通过Build,您可以完全控制重新格式化的记录中所需的项目以及它们出现的顺序。您可以删除,重新排列和插入字段和常量。

3.覆盖:通过仅指定覆盖特定列的项目来重新格式化每个记录。覆盖使您可以更改现有的特定列,而不会影响整个记录。

OVERLAY用于覆盖特定的字节-您不能使用它在其他字段之前插入字符。为此,您必须使用BUILD来逐项构建记录。

4.如果要在同一记录中检查多个字段,则必须使用HIT = NEXT选项。
回到顶部
查看用户资料 发送私信
karthikr44

活跃用户


已加入:2007年8月25日
帖子:235
地点:钦奈

发布发表:2008年11月25日,星期二,1:10 pm
引用回复

嗨阿努吉,

感谢您的回复和解释性声明。

我在之前的帖子中没有明确提及。其实我想要什么逻辑
他尝试使用那条线来实现。

谢谢
卡迪克
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月25日,星期二,下午1:34
引用回复

引用:
现在我没有中止S0C7。
卡尔提克

很好,您没有得到S0C7。它是否给出了预期的输出? icon_smile.gif。那么什么是问题-“正确的生产文件”或布局?
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
没有新帖 带SyncSort的数值检查。 同步排序 1
没有新帖 通过SYNCSORT,每月的最后一天。 同步排序 5
没有新帖 同步排序错误-超出控制范围... 同步排序 10
没有新帖 在...中填充日期和序列号 同步排序 11
没有新帖 在HEADER中插入系统运行时... 同步排序 9
搜索我们的论坛:

回到顶部