Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

E35 - 出力処理ルーチン (ソート出口 E35)

出力処理ルーチンは通常、ソート後に必要なすべての処理に使われます。 この処理は、図 52 および 図 53 に示してあるとおり、 ソート済みデータを印刷することである場合も、そのソート済みデータを 使ってさらに情報を生成することである場合もあります。 出力処理ルーチンは、ソート・プログラムが PLISRTC または PLISRTD を呼び出すときに使用します。 レコードのソートが終われば、ソート・プログラムはそれを一度に 1 つずつ、出力処理ルーチンに渡します。 次に、出力ルーチンは、必要に応じてそれを処理します。 すべてのレコードを渡し終えると、ソート・プログラムはその戻りコード をセットアップし、 CALL PLISRTx ステートメントの後のステートメントに戻ります。 ソート・プログラムから、最終レコードに達したことを出力処理ルーチンに 知らせる指示はありません。 したがって、データの終わり処理 (EOD) は、 PLISRTx を呼び出すプロシージャーで行わなければなりません。

レコードはソート・プログラムから出力ルーチンへ文字ストリングとして 渡されるため、そのデータを受け取るには、出力処理サブルーチン内で 文字ストリング・パラメーターを宣言しなければなりません。 また、出力処理サブルーチンは、ソート・プログラムへ戻りコード 4 を渡して、 別のレコードを処理する準備ができたことを通知する必要があります。 この戻りコードは、PLIRETC への呼び出しによって設定します。

戻りコード 16 をソート・プログラムに渡せば、ソートを停止することができます。 この場合、ソート・プログラムは戻りコード 16 (ソート失敗) とともに、 呼び出し側プログラムに戻ることになります。

ソート・プログラムからルーチンに渡されるレコードは、文字ストリング・パラメーターです。 PLISRTx への呼び出し内の 2 番目の引数でレコード・タイプを F と指 定するときには、レコード長を持つパラメーターを宣言しなければなりません。 レコード・タイプを V と指定するときには、 次の例のように、パラメーターを調整可能と宣言する必要があります。

DCL STRING CHAR(*);

図 54 は、可変長レコードをソートするためのプログラムを示しています。

典型的な出力処理ルーチンのフローチャートを、図 47 に示してあります。 典型的な出力処理ルーチンの骨組みコードは、図 49 に示してあります。

図 49. 出力処理プロシージャー用の骨組みコード
E35: PROC(STRING);      /*The procedure must have a character string
                          parameter to receive the record from Sort*/

  DCL STRING CHAR(80);  /*Declaration of parameter*/

 (Your code goes here)

  CALL PLIRETC(4);   /*Pass return code to Sort indicating that the next
                       sorted record is to be passed to this procedure.*/
   END E35;          /*End of procedure returns control to Sort*/

PLIRETC を呼び出すと、PL/I プログラムから渡され、 その後の任意のジョブ・ステップで使用できる戻りコードが 設定されることに注意しなければなりません。 出力処理ルーチンを使用した後は、 PLISRTx を呼び出して から PLIRETC を呼び出し、戻りコードをリセットして、 ゼロ以外の完了コードが出ないようにすることをお勧めします。 ソート・プログラムからの戻りコードを引数として 使用して PLIRETC を呼び出せば、PL/I 戻りコードにソートの成功または 失敗を反映させることができます。 この方法は、この章の終わりにある例に示してあります。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)