MFJSORT によってサポートされるプログラム制御文を次に示します。文のコード化のルールは、メインフレーム ユーティリティと同じです。
注:MFJSORT は、IBM の DFSORT 製品のほとんどのメジャーな機能をエミュレートします。詳細については、「
DFSORT および ICETOOL エミュレーション」を参照してください。
プログラム制御文
- ALTSEQ
- AQ 制御フィールドの代替照合順序を指定します。
- END
- プログラム制御文の終了を示します。省略した場合、MFJSORT はファイルの終わりまで読み取りを行います。
- INCLUDE
- 入力レコード内の 1 つ以上のフィールドの比較テストに基づいて、入力データ セットのレコードを含めます。サブストリング比較とビット論理 (ビット演算子およびビット比較) テストをサポートしています。条件式を 16 個まで指定できます。
- INREC
- ソートまたはマージの前に入力レコードを再編成します。INREC は、SORT、MERGE、OUTFIL、OUTREC、および SUM 文によって使用される制御フィールドの位置を変更する可能性があるので注意してください。
- MERGE
- マージ操作を定義します。MERGE 文には、COPY 要求を含めることができます。マージする入力データ セットの部分を選択できます。制御フィールドは 32 個まで定義できますが、制御フィールドの合計長は 1,024 バイト以下でなければなりません。次の制御フィールド タイプについては昇順または降順を要求することができます。
- AQ
- 代替照合順序。
- BI
- バイナリ。
- CH
- 文字。
- CLO
- 先行オーバーパンチ記号を使用した符号付き数値。
- CTO
- 後続オーバーパンチ記号を使用した符号付き数値。
- CSF
- オプションの先行浮動符号付き符号付き数値。
- CSL
- 先行分離記号を使用した符号付き数値。
- CST
- 後続分離記号を使用した符号付き数値。
- FI
- 固定小数点整数。
- FL
- 浮動小数点。4 バイトと 8 バイトの形式のみサポートされます。(COMP-1 および COMP-2)。
- FS
- オプションの先行浮動符号付き符号付き数値。
- LS
- 先行分離記号を使用した符号付き数値。
- OL
- 先行オーバーパンチ記号を使用した符号付き数値。
- OT
- 後続オーバーパンチ記号を使用した符号付き数値。
- PD
- パック 10 進数。
- PD0
- 符号と最初の桁が無視されるパック 10 進数。
- TS
- 後続分離記号を使用した符号付き数値。
- Y2B
- 2 桁、1 バイトの 2 進の年データ。
- Y2C
- 2 桁、2 バイトの文字またはゾーン 10 進の年データ。
- Y2D
- 2 桁、1 バイトの 10 進の年データ。
- Y2P
- 2 桁、2 バイトのパック 10 進数年データ。
- Y2S
- 2 桁、2 バイトの文字またはゾーン 10 進の年データ (特殊なインジケーター付き)。
- Y2Z
- 2 桁、2 バイトの文字またはゾーン 10 進の年データ。
- ZD
- ゾーン 10 進数。
- MODS
- E15 および E35 出口プログラムの名前を指定します。他の出口はサポートされません。
- OMIT
- 入力レコード内の 1 つ以上のフィールドの比較テストに基づいて、入力データ セットからレコードを除外します。サブストリング比較とビット論理 (ビット演算子およびビット比較) テストをサポートしています。条件式を 16 個まで指定できます。
- OUTFIL
- 複数の出力ファイルを書き込みます。OUTFIL では拡張子が考慮されます。
- 各出力データ セットに含めるレコードを選択するには、INCLUDE、OMIT、および SAVE オペランドを使用します。INCLUDE および OMIT オペランドは、INCLUDE および OMIT 文の機能をすべて提供します。SAVE を使用すると、他のサブセット用に選択されていないレコードを選択できます。
- OUTREC オペランドでは、長さ、先行ゼロ、抑制ゼロ、記号などに関して数値フィールドの表示方法を編集および制御できます。事前定義された 26 個の編集マスク (M0~M25)が用意されており、EDIT、SIGNS、および LENGTH オプションなどを使用してユーザー定義のマスクを作成することもできます。入力としての文字、16 進数文字列、またはビット文字列に基づいて、出力の文字または 16 進文字列をルックアップ テーブルから選択するには、CHANGE オプションを使用します。
- 各出力データ セットに含めるレコードの範囲を選択するには、STARTREC および ENDREC オペランドを使用します。
- 出力データ セットの中で均一にレコードを分布させるには、SPLIT オペランドを使用します。
- 数値入力フィールドの合計値、最大値、最小値、および平均値などを含んだ複雑なレポートを作成するには、OUTREC とともに、LINES、HEADER1、TRAILER1、HEADER2、TRAILER2、SECTIONS、および NODETAIL オペランドを使用します。
- OUTREC
- ソートまたはマージの後に出力レコードを再編成します。リテラル変数を出力レコードに挿入することもできます。フォーマットされたレポートの作成だけでなく、レコードの再フォーマットもサポートしています。また、必要に応じてさらに再フォーマットすることができる入力フィールド上の算術演算をサポートしています。
-
算術演算は、演算子 ADD (加算)、SUB (減算)、MUL (乗算)、DIV (除算) を使用して 2 つの数値フィールド間で実行できます。次に例を示します。
OUTREC FIELDS=(1,8,ZD,ADD,1,7,ZD,1X,2,5,PD,SUB,5,2,PD)
制約事項については、「ソート/マージ操作 (MFJSORT)」の注を参照してください。
- RECORD
- レコード長の情報を指定します。この文の最初の値 (最大レコード長を指定する値) だけが使用され、他の値はすべて無視されます。RECORD 文で指定された値は、入力データ セットの論理レコード長によってオーバーライドされます。
- SORT
- ソート操作を定義します。SORT 文には、COPY 要求を含めることができます。制御フィールドは 32 個まで定義できますが、制御フィールドの合計長は 1,024 バイト以下でなければなりません。MERGE 文用に説明したものと同じ制御フィールド タイプについては、昇順または降順を要求することができます。
- SUM
- 重複するソート フィールドを持ったレコードに対して 1 つの出力レコードだけを生成します。オプションとして、重複レコード内の数値フィールドを出力レコードで合計することができます。合計処理は、次の制御フィールド タイプの場合に実行できます。
- AQ
- 代替照合順序。
- BI
- バイナリ。
- FI
- 固定小数点整数。
- FL
- 浮動小数点。4 バイトと 8 バイトの形式のみサポートされます。(COMP-1 および COMP-2)。
- FS
- オプションの先行浮動符号付き符号付き数値。
- PD
- パック 10 進数。
- ZD
- ゾーン 10 進数。
OVFLO パラメーター
OVFLO パラメーターでは、サマリーのオーバーフロー時に設定できるアクション (継続または終了)、メッセージのタイプ (情報またはエラー)、および戻りコード (0 または 16) を制御できます。次に例を示します。
OPTION OVFLO=-----RC0-----
-----RC16-----
- RC0 - サマリー フィールドがオーバーフローした場合、オーバーフロー メッセージを発行し、戻りコードを 0 に設定し、処理を続行します。RC0 は OVFLO パラメーターのデフォルト値です。
- RC16 - サマリー フィールドがオーバーフローした場合、オーバーフロー メッセージを発行し、処理を終了し、戻りコード 16 を指定します。