3

Rexx プログラムを呼び出してパラメーターを渡すには、IKJEFT01 を使用できます。

// SET PARM1=
// SET PARM2=
//AUDITDS  EXEC PGM=IKJEFT01,
//     PARM='RXPGM &PARM1 &PARM2'

ただし、PARM がサポートする文字数には制限があります。JCL を使用して REXX を呼び出し、より多くの文字を含むパラメーターを渡す方法はありますか? SYSTSIN を使用することは解決策ですが、PARM パラメータのシンボリック パラメータを使用したいと考えています。

4

3 に答える 3

4

CEE3PR2歴史的な理由から、PARM フィールドは 100 バイトに制限されていますが、 LE 呼び出し可能サービスを呼び出す LE (言語環境) 対応アプリケーションの場合、この制限は 32K に引き上げられます。LE 言語は、アセンブラー (特定の注意事項が適用されます)、および最新バージョンの COBOL と PL/I です。私の知る限り、Rexx は LE 対応言語ではありません。

私が働いていたある場所には、PARM 値で渡されたものをフラット ファイルに書き込む汎用プログラムがありました。私たちのものはたまたまアセンブラーでしたが、それは COBOL、PL/I、または Rexx であった可能性があります。

使用方法の例については、この回答を参照してください。

あなたのショップにまだプログラムがない場合は、そのようなプログラムを作成することをお勧めします (独自のプログラムを作成する前に確認してください)。Syncsort(そしておそらくDFSORT)出力ファイルにパラメーターを書き込む機能があるため、そのルートに進むこともできます。

フラット ファイルに parm を書き込む機能を前提として、各パラメーターに対して 1 回呼び出し、結果をフラット ファイルに MOD 化することができます。次に、フラット ファイルを Rexx プログラムに読み込みます。各レコードは、パラメーターの 1 つを表します。

更新: @BillWoodger がコメントで指摘しているように、PARMDD DD を使用できます...

コマンド parmstring の長さが 100 文字を超える場合に実行するコマンド parmstring を含むデータ セットの DD 名を指定する PARMDD を使用します。

...これにより、パラメータを一度に 1 レコードずつ読み込む必要がなくなります。

また、どうやらz/OS 2.1 の時点で、パラメーターをデータセットに配置するためのプログラムは不要になったようです。JCL の処理時にパラメーターをストリーム内で解決することができます。

于 2016-06-09T15:55:22.810 に答える