最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

17.6.オブジェクトについて

[ Previous ] [ HOME ] [ Upper ] [ Next ]


本日から、やっと、AS/400のお話になります。

SYSTEM38とSYSTEM36を統合した、新しいIBMのオフィスコンピュータは、「シルバーレイク」という開発コードを持っていました。1988年6月に、このマシンはAS/400という名前で発表されました。当初のASとは、Application Systemからつけられたものでしたが、その6年後、Advanced Seriesとして、再びASという言葉が使われました。この後者は、AS/500になるかも、と噂されましたが、結局同じAS/400という名前でした。これらは、IBMのマーケティングの事情の問題で、同一性としては、ほぼ同じと思ってください(オープンネスは、今は忘れてください)。見かけ上、大きく変わったのは、シャーシです。白くてでかいのが、黒くて小さくなったのです。白くて大きいのは、別のマシンのシャーシを流用していて、この後の、黒くて小さいのは、初めてAS/400専用のシャーシとなったのです。IBMの力の入れようが分かりますね。

もし、AS/400の系譜を詳しく知りたいならば、英語ですが、「Inside the AS/400」の2nd editionをお勧めします。この付録に「History of the AS/400」があります。読者からのリクエストに応じたものだそうです。

IBMのウエッブ上で、この部分の翻訳が出ています。興味のある方は、ご覧ください。アクロバットが必要ですが、同じページから取得出来ますよ。

OSの機能強化は、IBMの公約どおり、一年に一度づつ行われています。出た当初は、リリースという単位でOSのバージョンは管理されていましたが、その後、バージョン+リリースという管理に変わりました。つまり、昔は、リリース2とか呼んでいたのが、今は、バージョン3リリース1などと、使います。(これは例として挙げただけです)。これはたんに、OSというソフトウェアのアップグレードの段階を意味する呼称です。1998.3現在、最新バージョンは4です。

さて、ここでは、ハードよりも、ソフトウエアに焦点を当てていますので、ソフトウエアのはなしをしましょう。仮に、皆さんをプログラマー見習いと仮定させていただきます。(こうしないと、何から話していいのか分からなくて。)それから、マニュアルと同じ解説をしていたら、「予備校」の意味がありません。ここでは、自分なりの言葉を使って説明しようと思います。中には、他のエキスパートの方から「何だこれは」といわれるかもしれません。でも、「感覚」を理解してほしいので、大胆な(いいかげん、ではありませんよ)説明をしようと思います。

オブジェクトについて

この言葉は、多分AS/400のマニュアルなり、本なりを読むと必ず出てきますよね。当然なんです。これは、OS/400(AS/400のOSの名前)が対象としうる、構成物の最小単位の総称です。つまり、オペレータ(プログラマも含む)が操作できる対象群です。このオブジェクトには、名前があり、さらに定義域がOS内部で付加されています。たとえば、オブジェクト名は、PGMRで、さらにそのテキストは何で、オブジェクトサイズはどのくらいで、オブジェクトタイプは何で、作成日時はいつで、作成者は誰で、機密保護情報はこうで、保管・復元情報、最終使用日時、使用回数はこうです、などと、その他もろもろの情報が、オブジェクトにぶら下がっています。まるで、すべてのオブジェクトが履歴書を持っているようなものです。徹底した、オブジェクト管理概念を持っていますね。パソコンのファイルでは、これほど徹底していません。まるで、優等生の模範となるような、徹底ぶりで、ほれぼれしてしまいます。これらの、オブジェクトの定義域(これを通常オブジェクト記述といいます)を表示するコマンドは、DSPOBJD(Display Object Description)というコマンドです。これは、表示するだけですが、多くの記述内容を、見ることができます。

だんだん分かってくると思いますが、オブジェクトは、すべて、「何かをする前に、存在すべき実体とその定義の集まり」なのです。今は、分からないでしょうが、まとめて考えると、そのようなものです。

オブジェクトタイプについて

このオブジェクトには、様々な種類があります。これをオブジェクトタイプと呼びます。80個くらいあります。自分もすべて覚えているわけではありませんが、重要なものはいやでも覚えます。たとえば、*PGM(プログラムのこと)、*FILE(ファイルのこと)、*LIB(ライブラリーのこと)。

AS/400のシステムの上で、ほかのオブジェクトと区別しうる最小限の項目は、

ライブラリー名+オブジェクトの名前+オブジェクトタイプ

です。つまり、上のことから分かるように、

同じオブジェクト名でも、ライブラリー名またはオブジェクトタイプが違えば、別物として扱ってくれます

ちなみに、AS/400では、オブジェクト名はすべて10文字以内です。頭の片隅に置いておいてください。

オブジェクト
オブジェクトタイプ オブジェクト属性
(様々な記述)
が個々のオブジェクトに付く
*PGM
*LIB
*FILE
*QRYDFN
*CMD
*DTAARA
*OUTQ
*JOBQ
ほかたくさん

本日は、*LIB、*PGM、*FILEについて、説明します。どれも、いつでも出てくる、基本中の基本のオブジェクトタイプです。

注意

このように、OS400では、予約値(あらかじめ、OSで使うとされる文字列)を

*云々

と、アスタリスク*をつけます。

*LIB

これは、ライブラリーのことです。かなり特殊なオブジェクトです。オブジェクトの登録先のことです。言い換えると、このライブラリーに、必ずオブジェクトが登録されます。社員が、必ずどこかの組織に属するのと同じです。また、ややこしいのですが、このライブラリー自身もオブジェクトである以上、必ずほかのライブラリーに属します。そして、このすべてのライブラリーの登録先となる、ライブラリーがQSYSです。(キューシスと呼んでいる。)

このシステムライブラリーQSYSは、様々なOSのプログラムや、どのライブラリーにも属せない重要な定義(装置記述など)が入る、OSの中核、心臓となる、最重要のライブラリーです。

そして、このQSYSというライブラリーに、その他の(たとえばあなたが作成した)ライブラリーが登録され、さらに、その(あなたが作成した)ライブラリーにオブジェクトが登録されるわけです。パソコンで言えば、ルートディレクトリに、ユーザーディレクトリが、作成されるのと同じです。但し、パソコンとは違い、ライブラリーの中にライブラリーはできません。システムライブラリーQSYSにライブラリーができるのが唯一の例外です。

オブジェクト(複数)ライブラリー(複数)QSYS(単一)

Qで始まる名前は、オブジェクトやその他のもの(システム値など)でも、すべて、システム(OS400)で予め準備されたもの、または、システム構成物そのもの、を意味しています。したがって、ユーザーはQで始まるものを作ってはいけません。
たとえば、QRYという簡易照会プログラムの名前をQRYxxxxとするのは、誤りです。おやめください。

関連するコマンド

ライブラリーの作成コマンド CRTLIB
ライブラリーの削除コマンド DLTLIB
ライブラリーに登録されたオブジェクトの消去コマンド(ライブラリーそのものは残る) CLRLIB
ライブラリーの(オブジェクト記述)の変更 CHGLIB

消去(CLR)と削除(DLT)は違います。「消去」は対象となるものに属するものを消すことで、「削除」は対象となるものを、属するものもひっくるめて消し去ることです。

*PGM

これは、プログラムのことです。OSもあるいは、購入したパッケージも、さらに、あなたの作ったプログラムも、このオブジェクトタイプ*PGMを持つ、オブジェクトです。あるものはCOBOLでしょう。あるものは、RPGでしょう。あるものは、CLPでしょう。それらすべてのプログラムは、オブジェクトタイプ*PGMのオブジェクトです。また、オブジェクト記述には、さらに、オブジェクト属性があります。ここでは、さらに細かくRPG,CLPなどと記されます。これは、オブジェクトタイプ*PGMを更に、細かく定義する、ただの記述(コメント)です。

関連するコマンド

プログラム記述を表示するコマンド DSPPGM
プログラム記述を変更するコマンド CHGPGM
プログラムを削除するコマンド DLTPGM
RPG/400プログラムを作成するコマンド CRTRPGPGM
CLプログラムを作成するコマンド CRTCLPGM
ILE RPG/400を作成するコマンド CRTBNDRPGb_debug.gif (282 バイト)

このように、大半のOS400のコマンドは、オブジェクトもしくはオブジェクトタイプに向けられます。

私は、SYSTEM38それからAS/400ともに、コマンドの合理的なネーミングに、美的感覚というか、純粋さの美しさみたいなものを感じてしまいます。いずれ、説明しますが、ライブラリーリストというものがあります。このライブラリーリストに関するコマンドに、

ADDLIBLEジョブ環境のライブラリーリストにライブラリーを追加登録。
RMVLIBLEジョブ環境のライブラリーリストからライブラリーを取り除く。
CHGLIBL ジョブ環境のライブラリーリストを一括して、置き換える。

があります。ライブラリーリストの置き換えコマンドCHGLIBLには、最後にEがつかない。どうしてだろうと思ったら、ADDLIBLEは、Add Library List Entryで、CHGLIBLは、list entryに追加や削除をしないので、Eがつかないのです。コマンド作成の時に、言語学者がついていたのでしょうか?これに気づいて以来、コマンドの名前を噛み締めるようになりました。

コマンドは、だいたい3文字くらいを単位にした文字列でできています。たとえば、CREATE=CRT、DISPLAY=DSP、DELETE=DLT,CHANGE=CHG、など。マニュアルの「プログラム便覧」に、コマンドのネーミングルールのマトリックスが出ています。もし、あなたがプログラマーならば、ご自分で一冊持たれたほうがいいでしょう。もちろん、読むこと!

*FILE

ファイルのことです。データを短期間または長期間、蓄積するところです。さらに、ある頃から、「ファイルとは、プログラムが相手にするものすべてで、外部の装置(マシン)の制御もできる」、という概念になっています。これに伴い、いわゆる外部装置に依存した機能も、プログラムから、このファイルを通して行われるようになりました。これらを、装置ファイルといい、オブジェクトタイプも*FILEです。

データファイル 物理ファイル(Physical File) PF データを制御(データの実際の保管場所)
論理ファイル(Logical File) LF データを制御(データを持たず、物理ファイルのデータの並び替えなどのみ)
装置ファイル 画面装置ファイル(Display File) DSPF 画面装置の表示を制御
印刷装置ファイル(Printer File) PRTF 印刷装置の印刷を制御

装置ファイルには、ほかにも、通信ファイルやDDMFなどいろいろありますが、上記のものは基本ですので、暗記してください。

関連するコマンド

物理ファイルデータ(メンバー)表示コマンド ※論理ファイルはできない。コマンドはDisplay Physical File Memberのことです。 最後にMがついたら、メンバーのこと。 DSPPFM
物理ファイル作成コマンド CRTPF
論理ファイル作成コマンド CRTLF
画面装置ファイル作成コマンド CRTDSPF
印刷装置ファイル作成コマンド CRTPRTF
ファイル削除 DLTF
物理ファイルデータの消去(ファイルは残る:データのクリアのみ) CLRPFM
物理ファイルの記述変更 CHGPF
論理ファイルの記述変更 CHGLF
画面装置ファイルの記述変更 CHGDSPF
印刷装置ファイルの記述変更 CHGPRTF

ふう、きりがない。ファイルに関するコマンドは、ほんとにたくさんあります。DLTFはファイルそのものを全部消してしまい、CLRPFMは物理ファイルのデータのみ消す(レコードのないファイルができる)の違いに注意してください。

また、データそのものを意味するメンバーは、上記データファイル(PFやLF)に含まれるもので、ここで説明しているオブジェクトではありません。ファイルの方が、オブジェクトなのです。

また、ファイルのオブジェクト属性には、レコード件数や、物理ファイルと論理ファイルの主従関係や、装置情報など、結構重要なものがたくさん入っています。ファイルに関しては、別の機会に、細かく説明します。

今日説明したところは、開発をはじめると、もう、しょっちゅう出てくることなので、理解できるまで、マニュアル「AS/400CL(制御言語)プログラミング」を読んだり、このページを見たりして、勉強してください。

今日はここまで

起立、礼、着席


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送