ESQL を作成して、ESQL ファイル内の Compute、Database、または Filter ノードの動作をカスタマイズします。
始める前に
このタスクを実行するには、以下のタスクを完了している必要があります。
ESQL ファイル内で、メッセージ・フロー内のノードに関連付けられたモジュールを作成します。 モジュールは、特定のタイプの 1 つのノード (Compute、 Database、または Filter) にのみ関連付けることができます。モジュール内では、 提供されたステートメントおよび関数の他にも、関数やプロシージャーを作成、使用することができます。 ローカル定数および変数を作成することもできます。
ブローカー・スキーマのレベルで定数、関数、またはプロシージャーを作成した場合、 モジュール内でこれらを参照することもできます。多くの異なるモジュールが使用できる レベルでルーチンを定義することができ、開発時間とメインテナンスの努力を節約になります。
ノードに対して ESQL を作成するには、以下のようにします。
(すでにデフォルト・ファイルを作成済みである場合、 「ESQL のオープン (Open ESQL)」をクリックすると、 このファイルがエディター・ビューで開き、新しいモジュールが作成されて強調表示されます。)
ESQL ファイルの終わりに、このノードに対するスケルトン・モジュールが作成されます。 その正確な内容は、ノードのタイプによって異なります。以下のモジュールは、Compute ノードに対して作成されます。
CREATE COMPUTE MODULE <module_name> CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); -- CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; END MODULE;
モジュール名は、対応するノード・プロパティーに設定した値によって決まります。 デフォルトは、<message_flow_name>_<node_type> です。 Main 関数には、以下で説明される、 Main 関数に続く Compute ノード・モジュール内で宣言される 2 つのプロシージャーの呼び出しが含まれています。 これらの呼び出しはコメント化されます。 これらの呼び出しによって提供される関数を組み込みたい場合は、 これらの行のコメントを外し、 Main で作成する ESQL 内の適切なポイントにそれの呼び出しを配置します。
バージョン 2.1 からマイグレーションする場合、このプロシージャーは、 「Compute ノード・プロパティー (Compute node properties)」ダイアログの「メッセージ・ヘッダーのコピー (Copy message headers)」ボタンを選択するときに生成されるコードに相当します。
バージョン 2.1 からマイグレーションする場合、このプロシージャーは、 「Compute ノード・プロパティー (Compute node properties)」ダイアログの「メッセージ全体のコピー (Copy entire message)」ボタンを選択するときに生成されるコードに相当します。
Database ノードに対して ESQL モジュールを作成する場合、 次のモジュールが作成されます。
CREATE DATABASE MODULE <module_name> CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN RETURN TRUE; END; END MODULE;
Filter ノードの場合、 モジュールは、次の最初の行を除いて、 Database ノードで作成されたものと同じです。
CREATE FILTER MODULE <module_name>
ESQL のほとんどは、Main 関数内に、つまり BEGIN ステートメントより後で RETURN TRUE より前に追加する必要があります。 DECLARE ステートメントは、Main 関数外のモジュール内に追加することができます。 ファイルに新しい行を追加するには、「Enter」を押します。
有効な ESQL をコーディングできるように、 エディターに カーソルの位置に有効なステートメントおよび関数のリストが表示されます。 この支援を呼び出すには、
をクリックします。Ctrl+Space キーの組み合わせが使用できるシステムもあります。 表示されたリストをスクロールして使用したいコードを見つけて強調表示し、Enter キーを押します。 適切なコードがモジュールに挿入され、リストが消えます。「内容支援 (Content Assistance)」は以下の領域で準備されています。
「内容支援 (Content Assistance)」は、ESQL が正しく構文解析される場合にのみ作動します。 BEGIN の後に END が欠落しているなどのエラーや、他の判別されないブロック・ステートメントは、 パーサー障害の原因となり、「内容支援 (Content Assistance)」は提供されません。 「内容支援 (Content Assistance)」が作動しないステートメントの周りでそれを試し、 どこにエラーがあるかを絞ってください。別の方法は、ESQL ファイルを保管することです。 ファイルを保管すると、妥当性検査がなされ、構文エラーがすべて「タスク (Tasks)」ビューに書き込まれます。 報告されたエラーを参照して、ESQL 構文のエラーを理解し、訂正してください。 「内容支援 (Content Assistance)」を使用してほとんどのステートメント (ブロック・ステートメントなど) を生成するなら、 これらは正しく入力され、エラーが生じる可能性が減少します。
ESQL ファイルを直接開き、エディターを使用してそのファイル内にモジュールを作成したい場合は、そうすることもできます。これを行うには、次のようにします。
ESQL ファイルを開くのにどちらの方法を使用するにしても、 ESQL のコーディングを支援する関数をエディターが提供することをご承知おきください。ここでは 「内容支援 (Content Assistance)」について触れましたが、エディターで使用できる関数は他にもあります。これらの関数については、ESQL エディター をご覧ください。
関連概念
メッセージ・フロー
ブローカー・スキーマ
ESQL モジュール
関連タスク
メッセージ・フロー・アプリケーションの開発
ノードに対する ESQL の変更
ESQL エディター設定の変更
関連資料
組み込みノード
ESQL
ESQL エディター
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ak09033_ |