【z/OS】プログラム不要!DFSORT/SYNCSORTでできる全機能まとめ(JCLサンプル付き)

都会の夜明けをバックに、IT格闘じいじが爽やかな笑顔で、検証済みのJCL punched cardを手にしている。彼の手元からは、DFSORT/SYNCSORTの7大機能(SORT/MERGE, INCLUDE, OUTREC, SUM, OUTFIL, JOINKEYS, ICETOOL)が、完璧に制御されたデジタルな光の輪となって都会へデプロイされており、その光には検証済みのJCLサンプルコードが含まれている。挫折を乗り越え、最強のバッチ処理術を世界へ届ける決意。 【技術深掘り】メインフレーム遺産
「プログラムレスでここまで動くのが、メインフレームの誇る重戦車級のポテンシャル。徹底デバッグ済みのJCLとソートカードで、現場の運用をスマートに自動化しようぜ!」

オス!IT格闘じいじだ。

メインフレームの現場で「データの並び替え、条件抽出、レイアウト変更が必要になった」とき、まさか毎回COBOLやPL/Iでプログラムをゴリゴリ書いてねえだろうな?

そのデータ処理、すべてソートユーティリティ(DFSORT / SYNCSORT)の制御カード(SYSIN)だけで完結するぜ!

プログラムを1本組んで、テストして、本番移行して……なんてやってる暇があったら、ソートカード数行でスマートに片付けちまおう。27年メインフレームのリングで戦ってきた俺から言わせれば、ソートを極めることは、運用の自動化やメンテナンスのスピードを劇的に跳ね上げる「最強のジャブ」を身につけるようなものだ。

今回は、現場のエンジニアや運用担当者が直面する「重複データの削除(SUM)」「柔軟なデータ加工(OUTREC)」「ICETOOLを使ったジョブ制御の自動化」など、ソートユーティリティが持つ全ポテンシャルをJCLサンプル付きで一挙に網羅した。

「え、ファイル結合までソートでできるの?」と思った若手も、日々の運用保守を効率化したいベテランも、まずはこの記事をブックマークして「現場で即役立つ逆引き辞書」として使い倒してくれ!

ソートユーティリティの7大マスター機能

都会の夜明けを背景に、IT格闘じいじが「ソートユーティリティの7大マスター機能」を解説している。画面左右には、SORT/MERGE, INCLUDE, OUTREC, SUM, OUTFIL, JOINKEYS, ICETOOLの各機能の処理イメージがアイコンと共に分かりやすく配置されており、右下には「z/OS verified」のデバッグ完了スタンプが刻まれている。
これがメインフレーム運用の現場を激変させる「7大マスター機能」の全貌だ。並び替えからファイル分割、ICETOOLでの自動化まで、俺の27年の現場経験から厳選した「100%動く型」をここに集約したぜ!

制御カード(SYSIN)の組み合わせだけで実現できる、ソートの全戦闘スタイルがこれだ。

  1. 基本操作: SORT(並び替え)/ MERGE(併合) / COPY(単純コピー)
  2. フィルタリング: INCLUDE(抽出) / OMIT(除外)
  3. データ加工: INREC / OUTREC(レイアウト変更・値の上書き・条件分岐)
  4. 集計・要約: SUM(数値の合計・重複レコードの削除)
  5. マルチ出力: OUTFIL(条件別の複数ファイル分割・帳票ヘッダー作成)
  6. ファイル結合: JOINKEYS(SQLのような複数ファイルのキー結合)
  7. 高度なユーティリティ: ICETOOL(件数カウント・簡易レポート作成)

「プログラムレス」でここまで動くのが、メインフレームが誇る重戦車級のポテンシャルなんだぜ。

■ 【コピペ用】これさえあれば動く!基本のSORT JCL

都會の夜明けを背景に、IT格闘じいじが爽やかな笑顔でスマホを手にしている。スマホの画面には、検証済みの『基本のSORT JCL(PGM=SORT)』のコードが、z/OS verified(検証済み)のスタンプと共にくっきりと表示されている。ボイスメモ(image_60.png)で磨いた『型』が、具体的なコードとして結実している様子。
これが現場で27年戦ってきた俺が保証する、100%動く『基本のSORT JCL』だぜ。ボイスメモで叩き込んだ『型』は、このコードのように、スマホにセットしていつでも投入できるようにしておくのがプロの格闘スタイルだ!

まずは、全ての基本となる EXEC PGM=SORT のJCLテンプレートだ。現場で作業するときは、この形をベースにして SYSIN の中身を書き換えていけばOKだ。

//SORTJOB  JOB (ACCOUNT),'SORT RUN',CLASS=A,MSGCLASS=X
//*-------------------------------------------------------------------
//* IT格闘じいじ直伝:基本のSORTユーティリティJCL
//*-------------------------------------------------------------------
//STEP01   EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DSN=YOUR.INPUT.DATASET,DISP=SHR
//SORTOUT  DD DSN=YOUR.OUTPUT.DATASET,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(CYL,(5,5),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN    DD *
  SORT FIELDS=(1,10,CH,A) 
  /*

じいじのワンポイント: SORT FIELDS=(1,10,CH,A) は、「1バイト目から10バイト分の文字(CH)を基準に、昇順(A)でソートせよ」という基本中の基本のコマンドだ。

■ 各機能のざっくり解説と制御カード例

黄昏時の都會を背景に、IT格闘じいじが爽やかな笑顔で、検証済みのJCL punched cardと、同じコードが表示されたスマホを手にしている。彼の手元からは、完璧に制御されたデジタルな光が、都會の空へ『各機能のざっくり解説と制御カード例』というタイトルの大きな戦闘スタイルマップとしてデプロイされており、すべての機能に『z/OS verified(検証済み)』のスタンプが刻まれている。挫折を乗り越えたキャリアと技術の融合。
検証済みのJCL punched cardとスマホが、黄昏の都會へ解き放たれた時、それは最強の戦闘スタイルマップへと進化する。これが俺の27年のキャリアと技術を融合させた、現場で即役立つ『検証済み・ソート機能辞書』だぜ!

今後、それぞれの詳細な攻略記事(子記事)をガッツリ公開していくが、まずは全体像を脳細胞に叩き込んでくれ!

レコードの抽出・除外(INCLUDE / OMIT)

ファイルの中から、特定の条件に合うデータだけを抜き出したり、不要なデータを弾く機能だ。

カード例:

INCLUDE COND=(11,2,CH,EQ,C'01')

(11バイト目から2バイトが「01」のレコードだけを抽出)

レイアウト変更・データ加工(INREC / OUTREC)

データの並び順を変えたり、スペースで桁数を増やしたり、特定の値を上書き(OVERLAY)できる。

カード例:

OUTREC FIELDS=(1,10,21,5,C'20260516')

(元データの1〜10バイトと21〜25バイトを抽出し、後ろに固定値の日付をくっつけて80バイトに整形)

重複削除と集計(SUM)

同じキーのデータが複数あった場合、1件だけにまとめたり(重複削除)、特定の数値フィールドを足し合わせることができる。

カード例(重複削除):

SUM FIELDS=NONE

(ソートキーが完全に一致するレコードを、先頭の1件だけ残して削除する神カードだ)

複数ファイルへの分割出力(OUTFIL)

1つの入力ファイルを、条件に応じて複数の出力ファイルへ同時に振り分ける強力な機能だ。

カード例:

OUTFIL FNAMES=OUT1,INCLUDE=(1,2,CH,EQ,C'01')
OUTFIL FNAMES=OUT2,SAVE

(1〜2バイト目が「01」ならDD名:OUT1へ出力し、それ以外をすべてDD名:OUT2へ一括保存する)

高度な技:複数ファイルの結合(JOINKEYS)

DBのSQLを使わなくても、2つのファイルを共通のキーでガッチャンコ(インナージイン・アウタージョイン)できる。これは詳細記事でガッツリ解説するぜ。

■ 一歩進んだ自動化なら「ICETOOL」を使いこなせ!

夕暮れのオフィスビルを背景に、IT格闘じいじが力強く拳を握り、満足そうな笑顔を浮かべている。彼の手元には、検証済みのICETOOL実行JCL(EXEC PGM=ICETOOL)が記載されたカードとスマホが浮かび上がっており、下部には「条件コード制御」や「z/OS verified」のデバッグ完了スタンプが配置されている。運用の完全自動化を体現した姿。
基本のソートから一歩進んで、ジョブの戻り値(RC)まで自動制御するのがプロの『ICETOOL』使いだ。ファクトチェック済みの2階建てJCL構造をマスターして、運用の自動化リングでも完全勝利を収めようぜ!

基本は PGM=SORT で十分だが、「データの件数をカウントして、0件ならジョブを異常終了(RC=12)させたい」とか「綺麗な表形式でサクッと出力したい」という時は、ラッパーツールである EXEC PGM=ICETOOL の出番だ。

ICETOOLを使う時は、処理を指示する TOOLIN と、具体的なソート条件を書く CNTL(任意のDD名)の2系統のカードを組み合わせるのが基本の型だ。

【コピペ用】ICETOOL実行JCLサンプル

//TOOLJOB  JOB (ACCOUNT),'ICETOOL RUN',CLASS=A,MSGCLASS=X
//*-------------------------------------------------------------------
//* IT格闘じいじ直伝:空ファイルならRC=12で落とす自動化JCL
//*-------------------------------------------------------------------
//STEP01   EXEC PGM=ICETOOL
//TOOLMSG  DD SYSOUT=*
//DFSMSG   DD SYSOUT=*
//INFILE   DD DSN=YOUR.INPUT.DATASET,DISP=SHR
//OUTFILE  DD DSN=YOUR.OUTPUT.DATASET,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(CYL,(5,5),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//*
//* [TOOLIN] ICETOOLへのコマンド指示
//TOOLIN   DD *
  SORT FROM(INFILE) TO(OUTFILE) USING(CTL1)
  COUNT FROM(INFILE) EMPTY
  /*
//*
//* [CTL1CNTL] SORT処理の具体的な制御カード
//CTL1CNTL DD *
  SORT FIELDS=(1,10,CH,A)
  /*

じいじのワンポイント: TOOLIN の中で「INFILE を CTL1(CTL1CNTLで定義)の条件でソートして OUTFILE に出せ」と指示し、次の行で「もし INFILE が空っぽ(EMPTY)なら戻り値12(RC=12)を返せ」という2段階のコンボを叩き込んでいる。これで後続ジョブの実行を自動で制御できる、運用保守で超使えるプロの技だぜ。

■ まとめ:ソートを制する者は、メインフレーム運用を制す

美しい朝焼けの都会をバックに、IT格闘じいじが誇らしげな笑顔で力強くガッツポーズを決めている。彼の手元にあるJCLカードからは、検証済みの全ソート機能(SORT, INCLUDE, OUTREC, SUM, OUTFIL, JOINKEYS, ICETOOL)が展開されており、そのすべてに『z/OS verified』のスタンプと『緑のチェックマーク(合格)』が刻まれている。27年の技術と挫折が、完全な信頼性として結実した瞬間。
正しく組んだJCLとソートカードは、俺たちを絶対に裏切らない最強のカウンターパンチになる。27年のキャリアを武器に、ソートの全機能をマスターして、メインフレーム運用という名のリングを完全に支配しようぜ!

一社のお見送りや面接のミスマッチ(※前回の記事参照)で凹んでいる暇があったら、このソートカードを1行でも多く組んで、自分の「テクニカルな武器」を研ぎ澄まそうぜ。

JCLやソートカードは、正しく組めば100%裏切らない最強のカウンターパンチになってくれる。

次回からは、今回紹介した機能の中から、現場で一目置かれる「SUMカードを使った重複削除と数値集計の極意」をシステム開発・保守のリアルな実例付きで深掘りしていくぜ!

次戦に向けて、スキルもシステムも自動化(最適化)していこうぜ。

Status: Batch Processing (次戦のJCL投入準備完了だ!)

関連記事:

JCLユーティリティ必携ガイド|27年選手が選ぶ「現場で即戦力の武器」TOP5
「武器(ツール)を使いこなすプロの姿」を強調するスタイルだぜ!「IEBGENERとIEBCOPY、どっちを使えばいいんだ?」「IDCAMSのコマンドが多すぎて、やりたいことがすぐできない……」もしお前がJCLのユーティリティ選びで足踏みして…
【DFSORT/SYNCSORT】SUM FIELDS=NONE だけじゃない!重複削除と数値集計(SUM)の現場実例マスター
DFSORT/SYNCSORTの「SUMカード」を徹底攻略!基本の重複削除(SUM FIELDS=NONE)の仕組みから、パック10進数(PD)・ゾーン10進数(ZD)の集計で絶対にアベンドを起こさないためのプロの指定方法まで、サンプル付きで解説。
【DFSORT/SYNCSORT】カラムのズレはこれで解消!INREC/OUTRECによるデータ加工とパディングの現場実例マスター
DFSORT/SYNCSORTの「INREC/OUTREC」を徹底攻略!BUILDを使った項目の入れ替えや、現場頻出のスペース埋め(X指定)、ゼロパディング(Z指定)の具体例を解説。若手が必ずハマるINREC使用時の「ソートキー位置ズレ・アベンド」を完璧に防ぐプロの防衛策を伝授。
【DFSORT/Syncsort】大量データを一瞬で間引く!INCLUDE/OMITカードによる爆速データフィルタリング術
メインフレームのバッチ処理を爆速化するDFSORT/Syncsortの「INCLUDE/OMIT」によるデータフィルタリング術をIT格闘じいじが伝授!固定長(FB)と可変長(VB)のデータイメージを視覚的に対比し、若手が100%ハマる「RDW(4バイト)の罠」やS0C7アベンドを防ぐプロの防衛策を徹底解説。そのまま実務で使える検証済みJCLコード付き!

コメント

タイトルとURLをコピーしました