17.7 .XQ*ファイル

17.7.1 .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ファイルを一組で作成、提供およびインストールする必要があります。このルールを守らない場合、アプリケーションの失敗 および/または予測不能な結果につながることがあります。

すべての 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] ボタンをクリックすると、エクスポート処理が終了します。

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の使用は推奨されません。そのような場合は、メッセージ・ファイルを使用する必要があります。