17.7 .XQ*ファイル
DBID=*ANY、DBID=*AS400、DBID=*OTHER、DBID=*NONE、DBII=*NONEを使ってアプリケーションを実行するPCの場合、一連の追加ファイルを作成またはインストールするか、接続するサーバーのディスク・ドライブから利用できるようにする必要があります。
これらのファイルは"xq*"ファイルと呼ばれ、ユーザーがプロンプト、ヘルプテキストの表示などのアクションを実行する場合、生成されたVisual LANSA アプリケーションがこれらのファイルにアクセスします。
ローカルDBMSシステムが使われないことを表示する場合、NONE、*ANY、*AS400 および *OTHERは同じです。違いは、*ANY、*AS400、*OTHERはサーバーへの自動接続が構築されることを追加で示すために使われることです。接続の詳細は、「17.4.12 PSxx サーバー・パラメータ」に記述されている一連のPSXX=パラメータで定義されます。
.XQファイルは、読み取り専用ディクショナリ/リポジトリにアクセスするためのローカルDBMSの代わりに使われます。
これらのファイルの完全なセットは以下の通りです。
名前 |
記述 |
lx_msg.xqi |
メッセージ定義です。 |
lx_msg.xqd |
|
lx_f96.xqf |
システム定義です。 (IBM i上では使われません) |
lx_f46.xqf |
"ppp"区画の定義です。 |
lx_f60.xqf |
"ppp"区画の言語です。 |
lx_f03.xqi |
"ppp"区画のフィールド定義です。 |
lx_f03.xqd |
|
lx_f40.xqi |
定義された"ppp"区画プログラムと上書きされるフィールド定義です。 |
lx_f40.xqd |
|
lx_f62.xqi |
"ppp"区画のフィールド記述です。 |
lx_f62.xqd |
|
lx_f04.xqi |
ヘルプ・テキストです。 |
lx_f04.xqd |
|
lx_f61.xqi |
*MTXT値です。 |
lx_f61.xqd |
|
lx_f05.xqi |
妥当性検査ルールの定義です。 |
lx_f05.xqd |
|
lx_f06.xqi |
妥当性検査ルールの定義です。 |
lx_f06.xqd |
|
lx_f07.xqi |
妥当性検査ルールの定義です。 |
lx_f07.xqd |
|
lx_f08.xqi |
妥当性検査ルールの定義です。 |
lx_f08.xqd |
|
lx_f09.xqi |
妥当性検査ルールの定義です。 |
lx_f09.xqd |
|
lx_f10.xqi |
妥当性検査ルールの定義です。 |
lx_f10.xqd |
|
lx_f11.xqi |
妥当性検査ルールの定義です。 |
lx_f11.xqd |
|
lx_f44.xqi |
プロセス添付です。 |
lx_f44.xqd |
|
lx_f64.xqi |
物理ファイル記述です。 |
lx_f64.xqd |
|
lx_f65.xqi |
論理ファイル記述です。 |
lx_f65.xqd |
|
lx_f66.xqi |
プロセス記述です。 |
lx_f66.xqd |
|
lx_f67.xqi |
関数の記述です。 |
lx_f67.xqd |
|
lx_f27.xqi |
ファイル定義です。 |
lx_f27.xqd |
|
lx_f15.xqi |
論理ファイルです。 |
lx_f15.xqd |
|
lx_f14.xqi |
ファイル・フィールドです。 |
lx_f14.xqd |
|
lx_f26.xqi |
システム変数です。 |
lx_f26.xqd |
これらのファイルはバイナリ・フォーマットです。読み取り専用ファイルで、どのようなタイプのツールを使っても、手作業で編集してはいけません。
このルールを守らない場合、アプリケーションの失敗 および/または予測不能な結果につながることがあります。
作成されたlx_fnn.xqi と lx_fnn.xqd の各セットは、一致したペアになります。lx_fnn.xqiファイルはインデックスで、 lx_fnn.xqd (データ) 内への 直接オフセット参照を実行します。常に2つのlx_fnnファイルを一組で作成、提供およびインストールする必要があります。このルールを守らない場合、アプリケーションの失敗 および/または予測不能な結果につながることがあります。
- x_f61.xqd および lx_f61.xqi ファイルは、ユーザーのアプリケーションが*MTXT変数を使う場合のみ必要です。
- lx_f05.xqd から lx_f11.xqi までのファイルは、ユーザーが自動フィールド・レベルのヘルプ・テキスト生成を使う (または有効にした) 場合のみ必要です。
- lx_f27.xqd から lx_f26.xqi までのファイルは、(サーバー上で) LANSAオープン・アプリケーションのみに必要です。
- lx_f96.xqf から lx_f60.xqf までのファイルは、省略値以外のシステム、区画および言語の定義を必要とするアプリケーションのみに必要です。lx_f96.xqfファイルは、IBMi側のLANSAには使われません。
- PSXXパラメータまたはINIT関数を使ってサーバーに接続する場合、ローカルでは見つからないリポジトリ・データはサーバーから取得するか、または省略値を設定します。これは、理論上 xq*ファイルを使わずにクライアント側のスーパーサーバー・アプリケーションを配布することができることを意味します。しかし、パフォーマンスおよび調整の妨げになります。詳細については、「PSRR (プライマリ・サーバー・ルート・リポジトリ)」を参照してください。
クライアント/サーバー・アプリケーションの設計および構築の詳細については、『LANSA アプリケーション設計ガイド』の「クライアント/サーバー・アプリケーション」を参照してください。
すべての lx_fnnファイルが区画ソース ・ディレクトリ (x_lansa\x_ppp\source) に配置されます。.ファイルが存在しない場合は作成されます。ファイルが存在する場合、エクスポートが進行する前に存在するデータすべてのファイルが消去されます。
実行環境において特定のファイルが読み取られている場合、いつも x_lansa\x_ppp\ソース・ディレクトリが最初に確認されます。そのディレクトリにファイルが見つからない場合、 x_lansa\ソース・ディレクトリが確認されます。これは、配布に柔軟性を与えます。例えば、異なる区画は、それぞれ自分のメッセージ・ファイルのコピーを持つことができます。
xq*ファイルは、いつでもすべてのWindows開発システム上で作成できます。以下のようにX_RUNコマンドを使用するだけで作成できます。
X_RUN PROC=*SYSEXPORT FUNC=ttttt LANG=xxx PART=ppp .... etc.
"ttttt"値は、個々のテーブル名 (LX_F03、 LX_F46など) または*ALL として指定することができます。特別な値 *ALLは、すべてのアウトプット・ファイルを生成させます。
エクスポート処理が起動されると、標準イベント・ログが表示され、エクスポートの進行にしたがって更新されます。完了するとイベント・ログ・ウィンドウ内に [OK] ボタンが表示され、メッセージの確認ができます。 [OK] ボタンをクリックすると、エクスポート処理が終了します。
- 指定されたファイルは、PROC=*SYSEXPORT機能により、すべての有効化された環境にエクスポートされます。
- 該当するコード・ページ/環境移動ファイルが存在する場合、そのプレゼンスおよび使用は、*SYSEXPORT機能が発行するメッセージ内で言及されます。
- PROC=*SYSEXPORT を DBID=*NONE/*ANY/*AS400/*OTHERとともに使うことはできません。このルールを守らない場合、予測不能な結果 および/または アプリケーションの失敗につながることがあります。
- lx_fnnファイルを他のアプリケーションまたはユーザーが使用している場合は、PROC=*SYSEXPORTを使えません。このルールを守らない場合、アプリケーションの失敗 および/または予測不能な結果につながることがあります。
- システム・ベースの lx_f96 および lx_msgについては、すべての詳細がエクスポートされます。 それ以外のすべての lx_fnnファイルについては、現在の区画 (X_RUNコマンド上の PART=ppp) の詳細のみがエクスポートされます。
- 区画ベースの lx_fnnファイルは、内部に区画を格納しません。したがって、これらのファイルは、異なる区画名で使用できます。しかし、データ・ライブラリ-およびプログラム・ライブラリー値はまだファイルに格納されており、変更できません。
- 通常、lx_fnnファイルはタスク/プロジェクトの完了時に作成され、アプリケーションのパッケージおよびインストール手順に含められます。lx_fnnファイルを使用しており、DBID=*NONE/*ANY/*AS400/*OTHERの場合、ユーザーはこれらの生成、提供およびインストール手順を、このガイド内でアプリケーションのパッケージを記述しているセクションで推奨されている手順に追加する必要があります。
- lx_fnnファイルは、関連付けられたSQLベースのテーブルの読み取り専用スナップショットです。スナップショットであることを忘れてはいけません。たとえば、*SYSEXPORTを使って LX_F04 (ヘルプ・テキスト) をエクスポートし、DBID=*NONE.を使ってアプリケーションを実行するとします。Visual LANSAを使ってヘルプ・テキストを編集する場合、 lx_f04.xqi および lx_f04.xqdファイルが再度作成されるまで、DBID=*NONEを使用しているアプリケーションに変更は表示されません。(しかし、ユーザーのアプリケーションをサーバーに接続し、リポジトリ・データがサーバー上に存在する場合、見つからない 情報は、サーバー上に省略値が存在する場合は、省略値 設定により取得されます。変更された情報は取得されません。詳細については、「PSRR (プライマリ・サーバー・ルート・リポジトリ)」を参照してください。
lx_fnnファイルは、完全なスタンドアロン環境において、システムの初期化、フィールドのプロンプトおよびヘルプ・テキストの表示をサポートします。これらは、スタンドアロン環境におけるアプリケーションの実行に必要なエレメントです。
他のデータベース・アクティビティのフォームは、I/Oオペレーションがサーバーに転送されない限り失敗します。
I/Oオペレーションには、オブジェクト・ロック要求 (自動的にサーバーに転送できます) およびIMB i データ領域エミュレーション (CALL_SERVER_FUNCTION機能を使って手作業でサーバーに転送する必要があります)も含まれます。例えばSAVE_LISTといった、それ以外の埋め込み関数もデータベース・アクティビティを含むことがあり、手作業でサーバーに転送する必要があります。
何らかのアクティビティを実行し、結果を発信者に返す必要のある関数があるとします。例えば、次の注文番号を付与する、リストを保存するなどのアクティビティです。
アクティビティは、常にサーバー上で実行される必要があります。
関数を次のように構築すると:
function *direct rcv_lsts(<working lists>)
exchange <other information> options(*always)
if *cputype = as400
<perform required activity>
else
use call_server_function ( ... itself .......)
endif
return
IBM i 上で呼び出された場合、この関数はジョブを実行し、作業リスト、交換リストなどを送受信します。
PCアプリケーション内に呼び出された場合、この関数は即座に関連付けられたサーバー (ジョブを実行し、結果を返します)上で自分自身を呼び出します。
この関数を呼び出したこのプログラムに対して、サーバーへの切り替え (必要な場合) は表示されず、重要ではありません。
*cputype = as400よりフレキシブルでダイナミックなスイッチを使うことにより、クライアントとサーバーの間で、非常に強力でダイナミックな方法の切り換えロジックを設計することができます。
ユーザー定義メッセージ
ユーザー定義メッセージは、LX_MSG.XQD / XQIファイルにはコピーされません。したがって、ユーザーのアプリケーションに特有のメッセージがあるシナリオ内でのFXQF=*ALLの使用は推奨されません。そのような場合は、メッセージ・ファイルを使用する必要があります。