You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mainframe Sort JCL行转列求助:无法正确分组TY记录

DFSORT 实现 RS./DF./TY. 记录行转列方案

核心思路

借助DFSORT的GROUP操作结合组内序列编号,精准识别以RS.为起始、后续包含DF.及所有关联TY.(1-30条)的分组,再通过OUTFIL将组内TY.记录的目标字段转为列输出。

分步SORT JCL实现

步骤1:筛选记录+字段补0+组标识初始化

先过滤出目标记录,对指定字段做补0对齐处理,同时为每个RS.起始的组生成唯一编号,为组内TY.记录标记序号:

//SORT_INIT EXEC PGM=SORT
//SORTIN    DD DSN=YOUR.INPUT.DATA,DISP=SHR
//SORTO建议Cl, persistence:
-fix-井 position解决OM ident序 Lab的数据集路径替换成实际路径
//SORTOUT   DD DSN=WORK.INIT.DATA,DISP=(NEW,CATLG,DELETE),
//             SPACE=(CYL,(5,5),RLSE)
//SYSIN     DD *
  OPTION COPY
  -- 筛选RS./DF./TY.开头的记录
  INCLUDE COND=(1,3,CH,EQ,C'RS.',OR,
                1,3,CH,EQ,C'DF.',OR,
                1,3,CH,EQ,C'TY.')
  -- 补0处理:根据实际字段位置调整,示例为4HR/0034500/BARKE字段
  INREC IFTHEN=(WHEN=(4,3,CH,EQ,C'4HR'),OVERLAY=(4:C'000004HR')),
        IFTHEN=(WHEN=(7,7,ZD,LT,10000000),OVERLAY=(7:7,7,ZD,TO=ZD,LENGTH=8)),
        IFTHEN=(WHEN=(14,5,CH,EQ,C'BARKE'),OVERLAY=(14:C'000BARKE'))
  -- 添加组编号(RS.触发重启)和组内TY序号
  INREC IFTHEN=(WHEN=INIT,BUILD=(1:1,80,
                                 81:SEQNUM,8,ZD,RESTART=(1,3), -- 组编号
                                 89:SEQNUM,2,ZD,RESTART=(81,8))) -- 组内TY序号(RS./DF.时为1,TY.递增)
/*

步骤2:GROUP分组+PUSH组内TY字段

以RS.为分组起始,将组内所有TY.记录的目标字段推送到扩展区域,仅保留每组的RS.记录用于后续转列:

//SORT_GROUP EXEC PGM=SORT
//SORTIN    DD DSN=WORK.INIT.DATA,DISP=SHR
//SORTOUT   DD DSN=WORK.GROUP.DATA,DISP=(NEW,CATLG,DELETE),
//             SPACE=(CYL,(5,5),RLSE)
//SYSIN     DD *
  SORT FIELDS=(81,8,ZD,A)
  -- 定义分组:从RS.开始,到下一个RS.出现前为一组
  GROUP BEGIN=(1,3,CH,EQ,C'RS.'),
        PUSH=(91:IFTHEN=(WHEN=(89,2,ZD,GT,1), -- 跳过RS./DF.记录,仅处理TY.
                          OVERLAY=(91+(89,2,ZD-2)*8:4,8))) -- 按组内序号推送到对应列位置(最多30条,预留30*8=240位)
  -- 仅保留每组的RS.记录,作为转列的基础行
  OUTFIL INCLUDE=(1,3,CH,EQ,C'RS.'),
         BUILD=(1:1,80,91:91,240)
/*

步骤3:输出行转列结果

将扩展区域的TY.字段按列展开,生成最终输出:

//SORT_OUTPUT EXEC PGM=SORT
//SORTIN    DDOtherwiseSTEND段'变形
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:34:51