前のトピック: USS オブジェクト用の BPXBATCH リモート ジョブ ステップ次のトピック: 配布先の作成


コマンド ストリームをカスタマイズする方法

リモート ロケーションでファイルをカスタマイズするステップを挿入することにより、コマンド ストリームをサイトの標準に合わせることができます。 たとえば、mkdir、chown、chgroup コマンドを挿入したり、または配布された un-pax コマンド スイッチを変更したりすることができます。

  1. リモート JCL 用のモデルを選択します。 デフォルト テーブル(C1DEFLTS)内の RJCLROOT パラメータは、モデルのどのカスタム セットがサイトで使用中かを判定します。
  2. コピー ステップのモデル JCL を以下のように編集します。
    1. CSIQOPTN ライブラリで適切なモデルを見つけます。
      • デフォルト テーブルで RJCLROOT=FCPY を指定している場合は、モデル メンバ #RJFCPY1 を使用します。
      • デフォルト テーブルで RJCLROOT=ICPY を指定している場合は、モデル メンバ #RJICPY1 を使用します。
    2. モデル メンバの BPXBATCH ステップを見つけます。 このステップはコマンド ストリームを実行します。 #RJICPY1 の BPXBATCH ステップの例を以下に示します。
      //*                                         
      //BPXBAT   EXEC PGM=BPXBATCH           ICPY 
      //STDOUT   DD   SYSOUT=*                    
      //STDERR   DD   SYSOUT=*                    
      //STDPARM   DD  DISP=SHR,                   
      //         DSN=&RUCD                       
      
      
      DSN=&RUCD

      リモート コマンド ファイルの名前を解決します。

    3. 必要に応じて、BPXBATCH ステップの前に、変更したコードを呼び出すステップを挿入します。

例: REXX 用に編集されたリモート コマンド ファイル

REXX プログラムを SYSUT1 から 現在のコマンド ストリームで読み取り、次にカスタマイズしたストリームを SYSUT2 に書き込みたい場合を考えてみます。 これを実現するには、モデル メンバの BPXBATCH ステップの前に以下のコードを挿入します。

//*********************************************************** //* SAMPLE TAILOR UCD COMMAND STREAM //*********************************************************** //UCDEDIT EXEC PGM=IRXJCL,PARM='UCDEDIT' //SYSEXEC DD DISP=SHR,DSN=BST.SUPPNDVR.ISRCLIB //SYSUT1 DD DISP=SHR,DSN=&RUCD //SYSUT2 DD DISP=SHR,DSN=&RUCD //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //***********************************************************

以下の REXX exit(UCDEDIT)の例は、コマンド ストリームのカスタマイズの主要な要件を示しています。 プログラムは既存のコマンド ストリームで読み取り、カスタマイズされたストリームに書き込む必要があります。 プログラムは SYSUT1 からの入力を読み取り、カスタマイズした出力を SYSUT2 に書き込みます。 この exit は単純な文字列検索を実行し、pax コマンドに追加のスイッチを付加(挿入)します。

/* Rexx to read from Sysut1 and write to Sysut2 (like IEBGENER) However, this version is a bit special in that it also performs some string substitutions. It's intended to allow a customer to edit their USS Ship command stream at the remote location changing the pax command parms or saving some commands to be executed later. */ frmstr = 'pax -rvzk' /* This is what we're looking for */ tgtstr = 'pax -rvzk -p op' /* and we'll replace it with this */ /* Read input file (BPXBATCH commands) */

"EXECIO * DISKR SYSUT1(STEM DATA. FINIS" IF RC ¬= 0 THEN SIGNAL IOERROR

/* Main loop to search/replace the string */

do i = 1 to DATA.0 start = 1 do while start < length(DATA.i) found = pos(frmstr,DATA.i,start) if found = 0 then leave endstr = found + length(frmstr) newstr = Left(DATA.i,(found - 1)) || tgtstr DATA.i = newstr || substr(DATA.i,endstr) start = found + length(tgtstr) end end

/* Write the substituted file out */

"EXECIO * DISKW SYSUT2(STEM DATA. FINIS" IF RC ¬= 0 THEN SIGNAL IOERROR

/* That's it all done */ Exit 0

IOERROR: SAY 'PROBLEM DURING I/O, Return code:' || RC EXIT RC