3

異なるliblistを使用して実行することにより、as400上のプログラムが機能するオブジェクトを制御します。ただし、これによって直接制御できない操作もあります。したがって、私のプログラムはliblistを読み取り、その中のいくつかのライブラリ、どのように動作するかを決定する必要があります。

プログラム内からliblistエントリを読み取るためのAPIが見つかりませんでした。私が期待するのは、liblistエントリを優先度で反復処理したり、liblistで指定された順序で配列を指定したりできるAPIの一種です。可能であればRPGまたはCLを使用したいのですが、他のILE言語も利用できます。

(なぜ私がこれをやろうとしているのか疑問に思うなら、私が直面している囲みの問題を説明する別の質問をしました:ジョブliblistによって制御される2つの異なるライブラリの1つでDTAQを作成するにはどうすればよいですか? しかしliblistの構文解析は、それを解決するためのアプローチであり、個々の問題です)。

4

4 に答える 4

5

QUSRJOBI APIを使用して、ジョブのライブラリー・リストを取得できます。CLコマンドADDLIBLEを使用して、エラー・メッセージCPF2103(ライブラリーはライブラリー・リストにすでに存在します)をモニターすることもできます。

于 2012-07-16T15:06:32.543 に答える
4

リスト・オブジェクト(QUSLOBJ) APIを使用して、ライブラリー・リストを取得できます。

オブジェクトおよびライブラリー名
*ALLUSRが*LIBLのライブラリー名および*LIBのオブジェクト・タイプ・パラメーターで指定されている場合、スレッドのライブラリー名スペース内のすべてのユーザー・ライブラリーのリストが返されます。* LIBLが指定されている場合、補助記憶域プール(ASP)制御パラメーターが指定されている場合、補助記憶域プール(ASP)装置名はアスタリスク(*)でなければなりません。ユーザー・ライブラリーの定義については、このパラメーターの2番目の10文字の説明の*ALLUSRを参照してください。

ライブラリー・リスト変更( QLICHGLL APIを使用して、ライブラリー・リストを変更することができます。

RTVJOBAコマンドは、SYSLIBLCURLIB、およびUSRLIBLを取得できます


動作中の本のAPI、第3章、リストAPIには、役立つ情報がたくさんあります。

于 2012-07-16T15:09:47.967 に答える
2

状況によっては、より単純な代替アプローチが価値がある場合があります。ターゲットライブラリが事前にわかっている場合は、それらの各ライブラリに、ライブラリ名を含むデータ領域を作成できます。プログラムは、ライブラリリストで最初に見つかったデータ領域を読み取り、データキューを作成するためのライブラリの名前を提供します。

洗練されていませんが、効果的で非常にシンプルであるため、コーディング/デバッグ/保守も簡単です。

于 2012-07-16T18:15:13.640 に答える
0

Kratenko、APIよりもシンプルで少ないコードの代替が必要な場合。rpg内で呼び出すことができる単純なCLpgmを作成します。あなたのclはRTVJOBAを持つことができます(liblを取得するためのparmがあります)。そこから多くのライブラリを取得する可能性があり、必要な特定のライブラリを解析して識別する必要がありますか?識別については、修飾子の1つを知っている必要があります。pgmが実行されるlibまたは「いくつかの」ファイルが存在するlibが必要ですか?はいの場合は、RTVOBJDを使用して特定のライブラリを取得できます。次に、そのlibをCRTDTAQコマンドで使用します。

于 2016-01-17T12:09:06.423 に答える