【2009/09/13 original author WATANABE】
CPPUPDTE(IPOUPDTE)というロードモジュールを知っていますか?
システムを導入しているような人なら、よくご存じかと思いますが、簡単にいうと文字列一括変換をするためのツールです。
通常、何かの文字列を変換する、というと、ISPFでCHANGEコマンドを利用したりしますが、対象のメンバー・ライブラリが大量にあると、ミスも多発しますし、なによりも時間がかかります。そこで、このようなツールを利用するわけです。
IBMシステムでは、ServerPac(システムの構成がまとまっている統合パッケージ)を利用してシステムを導入すると、一緒に格納されてきます。
CPPUPDTEのプログラム・ディレクトリ(機能や使い方を含むドキュメント)は、CPPUPDTE program for ServerPac(英語のサイト)にありますので、参照してみてください(和訳版はありません)。
まずは、システムにCPPUPDTE(IPOUPDTE)が入っているかどうか、確認をしてみましょう。デフォルトでは、hlq.order_number.LOADLIBというネーミングのライブラリーに格納されています。hlq.order_number.SCPPLOADというネーミングのデータセットの場合もあるようです。
上記にない場合は、そのシステム管理者に確認をしてみましょう。私もそうですが、たいていは、ServerPac導入用のライブラリ、というものは削除してしまったり、別の場所へ退避したりします。
場合によっては、LNKLSTに関連づけられたライブラリに入っているかもしれません。ロードモジュールの格納ライブラリの探し方の記事を参照して、探してみましょう。
システムで使用できることが確認できたら、早速使ってみましょう。
CPPUPDTE(IPOUPDTE)を使う上で重要なのは、変換対象のライブラリに”$$$COIBM”というメンバーが必要、ということです。中身は空でも、どんな文字列が入っていようが問題ないのですが、このメンバーが存在していることが必要です。
1 2 3 4 5 6 7 8 9 10 11 |
//jobname JOB ... //stepname EXEC PGM=CPPUPDTE,REGION=6M, //*tepname EXEC PGM=IPOUPDTE,REGION=6M, //* PARM='CHECK' // PARM='UPDATE' //SYSPRINT DD SYSOUT=* //@PROC1 DD DISP=SHR,DSN=your.dataset.name //SYSIN DD DATA,DLM='%%' !!!!!!<$$$< %% // |
- サンプルJCL
EXEC文のPARMステートメントで、動作モードを指定します。基本的には、PARM=’CHECK’でチェックをしてから、PARM=’UPDATE’で更新しましょう。!!!!!!に指定した文字列を$$$$$$に変換します。
【2009/09/13 original author WATANABE】