文字列一括変換
By 渡辺 - Posted: 2009/09/13 Last updated: 2009/10/10
- 2 Comments
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”というメンバーが必要、ということです。
中身は空でも、どんな文字列が入っていようが問題ないのですが、このメンバーが
存在していることが必要です。
基本的には、PARM=’CHECK’でチェックをしてから、PARM=’UPDATE’で更新しましょう。
!!!!!!に指定した文字列を$$$$$$に変換します。
システムを導入しているような人なら、よくご存じかと思いますが、簡単にいうと文字列一括変換を
するためのツールです。
通常、何かの文字列を変換する、というと、ISPFでCHANGEコマンドを利用したりしますが、
対象のメンバー・ライブラリが大量にあると、ミスも多発しますし、なによりも時間がかかります。
そこで、このようなツールを利用するわけです。
IBMシステムでは、ServerPac(システムの構成がまとまっている統合パッケージ)を利用して
システムを導入すると、一緒に格納されてきます。
CPPUPDTEのプログラム・ディレクトリ(機能や使い方を含むドキュメント)は、
CPPUPDTE program for ServerPac(英語のサイト)にありますので、参照してみてください
(和訳版はありません)。
まずは、システムにCPPUPDTE(IPOUPDTE)が入っているかどうか、確認をしてみましょう。
デフォルトでは、hlq.order_number.LOADLIBというネーミングのライブラリーに格納されています。
hlq.order_number.SCPPLOADというネーミングのデータセットの場合もあるようです。
上記にない場合は、そのシステム管理者に確認をしてみましょう。
私もそうですが、たいていは、ServerPac導入用のライブラリ、というものは削除してしまったり、
別の場所へ退避したりします。
場合によっては、LNKLSTに関連づけられたライブラリに入っているかもしれません。
ロードモジュールの格納ライブラリの探し方の記事を参照して、探してみましょう。
システムで使用できることが確認できたら、早速使ってみましょう。
CPPUPDTE(IPOUPDTE)を使う上で重要なのは、変換対象のライブラリに
“$$$COIBM”というメンバーが必要、ということです。
中身は空でも、どんな文字列が入っていようが問題ないのですが、このメンバーが
存在していることが必要です。
- サンプルJCL
//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='%%' !!!!!!<$$$$$$< %% //EXEC文のPARMステートメントで、動作モードを指定します。
基本的には、PARM=’CHECK’でチェックをしてから、PARM=’UPDATE’で更新しましょう。
!!!!!!に指定した文字列を$$$$$$に変換します。
Posted in ありがたいサンプルJCL • • Top Of Page
2 Responses to “文字列一括変換”
Comment from S360-195
Time 2009年12月26日 at 22:35
>『BUILDPRM』というプログラムはどのような位置付けのプログラムなのか
私の知る限り『BUILDPRM』は日本IBM技術理事の大沼啓希さんが1970年代中頃に書いたプログラムです。
1974年に世に出たMVSをサポートする日本IBM本社部門のLarge Systems Support Center (LSSC)で必要に迫られて書いたと言っていました。目的はコンソールからDASDのInitializeとかCLIP(VOLSERの変更)を容易に行えるようにする事だったそうです。当時は未だSPF(今のISPF)も無くPunch Cardが主体でしたのでコンソールからのキーインだけでDASDIやCLIPが出来るのは非常に便利でした。
プログラムはAssemblerで書かれています。
そしてお客様やフィールドのSEが、IBM本社(六本木)の機械室に来てS/370 Model 158やModel 168を使ってMVSをテストする時に使うMVSのFloor SystemにBUILDPRMを入れていました。
便利だと言うことでフィールドのSEやお客様がコピーされていって、それが今でも使われているという事だと思います。
少なくともIBMの正式なプログラムではありません。
当時は著作権がどうのこうのという時代ではありませんでしたし、彼は必要な人は誰が使っても良いといってました。今で言えばフリーウェアでしょうか。
個人的には大沼さんにお願いして何処かのWebサイトにでも置いていただくのが良いと思いますが、どうでしょうか。
蛇足:あのIBFBR14でも幾つかのAPARがありましたが、大沼さんが作ったBUILDPRMは35年以上にわたってバグ無しというのは大したものですし、35年以上も前のプログラムがz10のz/OS V1.10でも問題無く動くのはIBM Mainframeの素晴らしさですね。
私の知る限り『BUILDPRM』は日本IBM技術理事の大沼啓希さんが1970年代中頃に書いたプログラムです。
1974年に世に出たMVSをサポートする日本IBM本社部門のLarge Systems Support Center (LSSC)で必要に迫られて書いたと言っていました。目的はコンソールからDASDのInitializeとかCLIP(VOLSERの変更)を容易に行えるようにする事だったそうです。当時は未だSPF(今のISPF)も無くPunch Cardが主体でしたのでコンソールからのキーインだけでDASDIやCLIPが出来るのは非常に便利でした。
プログラムはAssemblerで書かれています。
そしてお客様やフィールドのSEが、IBM本社(六本木)の機械室に来てS/370 Model 158やModel 168を使ってMVSをテストする時に使うMVSのFloor SystemにBUILDPRMを入れていました。
便利だと言うことでフィールドのSEやお客様がコピーされていって、それが今でも使われているという事だと思います。
少なくともIBMの正式なプログラムではありません。
当時は著作権がどうのこうのという時代ではありませんでしたし、彼は必要な人は誰が使っても良いといってました。今で言えばフリーウェアでしょうか。
個人的には大沼さんにお願いして何処かのWebサイトにでも置いていただくのが良いと思いますが、どうでしょうか。
蛇足:あのIBFBR14でも幾つかのAPARがありましたが、大沼さんが作ったBUILDPRMは35年以上にわたってバグ無しというのは大したものですし、35年以上も前のプログラムがz10のz/OS V1.10でも問題無く動くのはIBM Mainframeの素晴らしさですね。
Comment from A+F_EQ_19
Time 2009年12月21日 at 13:07
『CPPUPDTE』は残念ながら知りませんでした。ツールプログラムを実行する時など、使えそうですね。また、1つ知識が増えました。
ここで書くのが適切かどうかわかりませんが、IBM社のマシンには、わりと『BUILDPRM』というプログラムが入っていました。機能としては、JCLのEXECパラメータを確か、SYSUT1で指定したファイルに書き出すプログラムでした。
ツールプログラム等、SYSIN形式でパラメータを指定する場合があり、これではJCLプロシジャーの変数では与えられないので、これを使ってプロシジャー変数にしたりしていました。この『BUILDPRM』というプログラムはどのような位置付けのプログラムなのか、教えていただけると幸いです。