LocalEnvironment でのスクラッチパッド領域の使用

LocalEnvironment ツリーには、Variables という名前のサブツリーが含まれています。 このサブツリーは必ず作成されますが、メッセージ・フローには決して移植されません。 この領域は、あるノードから別のノードへと情報を受け渡すなどの、独自の目的に使用できます。

このサブツリーにすべての情報を組み込むことをお勧めします。 とはいえ、必要であれば、LocalEnvironment ツリーに他のサブツリーを作成することができます。

LocalEnvironment のスクラッチパッドに独自のデータを作成する利点は、 メッセージ・フロー内の後続のノードに、このデータが論理ツリーの一部として伝搬されることです。 Compute ノードに新規出力メッセージを作成する場合には、 入力メッセージ内の LocalEnvironment ツリーのすべてまたは一部をその新規出力メッセージに含めることもできます。

しかしメッセージ・フローがそのメッセージ・フローに戻る場合には (たとえば、例外が出される場合、またはメッセージが FlowOrder ノードの第 2 のターミナルを経由して処理される場合)、ノードで更新または追加された任意のデータは保存されません。 独自のデータを作成し、データをメッセージ・フロー全体で保持したい場合には、Environment ツリーを使用する必要があります。

Compute ノードの Variables サブツリーに値を設定し、 メッセージ・フローを構成する際に定めた特定の目的で他のノード (Compute、Database、または Filter) が後ほど使用するようにできます。

たとえば、出力メッセージの宛先を判別するのに使用することもできます。 最初の Compute ノードは、このメッセージ・フローからの出力メッセージが WebSphere MQ キューに到達する経路を判別できます。次の ESQL を組み込んで、この情報を LocalEnvironment スクラッチパッド領域に挿入します。
SET LocalEnvironment.Variables.OutputLocation = 'MQ';
2 番目の Compute ノードはこの情報にアクセスして、必要な宛先を Destination サブツリーに書き込み、MQOutput ノードに伝搬される出力メッセージが作成されたキューのリストに送信されるようにします。 「宛先モード (Destination Mode)」プロパティーを「宛先リスト (Destination List)」に設定して、MQOutput ノードが宛先リストを使用するように構成します。
IF LocalEnvironment.Variables.OutputLocation = 'MQ' THEN
DO;
   SET LocalEnvironment.Destination.MQ.DestinationData.queueManagerName = 'myQManagerName';
   SET LocalEnvironment.Destination.MQ.DestinationData.queueName = 'myQueueName';
END IF; 

DestinationData サブツリー内のエレメントの完全なリストについては、 DestinationData サブツリー内のエレメントのデータ・タイプを参照してください。

関連概念
メッセージ・フロー
LocalEnvironment ツリー
ESQL
メッセージのモデル化

関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
ESQL ファイルの管理

関連資料
Compute ノード
Database ノード
Filter ノード
DestinationData サブツリー内のエレメントのデータ・タイプ
ESQL
IF ステートメント
SET ステートメント