ユーザー定義プロパティー (UDP) は、メッセージ・フロー・エディターを使用してメッセージを構成するときに 定義するプロパティーです。このプロパティーは、メッセージ・フロー・ノード (Compute ノードなど) の 内部にある ESQL プログラムによって使用できます。また、JavaCompute ノードによって 生成された Java の内側で Java プロパティーとして 使用することもできます。
UDP の利点は、デプロイメント時に操作員が値を変更できることです。アプリケーション・プログラムを変更する必要はありません。 例えば、UDP を使用してコンピューター・センターに関するデータを保持する場合は、 メッセージ・ノード・レベルでコードに変更を加えずに、デプロイメント時に特定のマシン、 タスク、または環境用にメッセージ・フローを 構成できます。
メッセージ・フロー・エディターを起動してメッセージ・フローを作成したり 既存のメッセージ・フローを変更したり、メッセージ・フローで必要なノードを決定したりするときには、 一部のユーザー定義プロパティーに初期値を定義および指定する オプションも (タブによって) 提供されます。「編集」ウィンドウの下部にある 「ユーザー定義プロパティー」タブを使用します。この方法の詳細は、メッセージ・フロー・エディターを 参照してください。
メッセージ・フロー・エディターを使用して定義するほかに、UDP は、 その UDP を使用する任意の ESQL プログラムで DECLARE ステートメントに EXTERNAL キーワードを指定するか、 その UDP を使用する任意の JavaCompute ノードで getUserDefinedAttribute メソッドを使用して 定義することもできます。
DECLARE ステートメントについて詳しくは、DECLARE ステートメントを 参照してください。JavaCompute ノードで UDP を使用する方法について詳しくは、JavaCompute ノードからユーザー定義プロパティーへのアクセスを 参照してください。
メッセージ・フローでの定義時に UDP に値を指定すると、ESQL または Java プログラムの 変数の値がオーバーライドされます。
UDP の値は、ブローカー・アーカイブ・エディターを使用して bar ファイルを編集することにより、 デプロイメント時に変更することもできます。この値は、メッセージ・フローの定義時に 指定した値をオーバーライドします。
メッセージ・フロー中のすべての UDP に、UDP の宣言時に指定した値か、 メッセージ・フロー・エディターまたはブローカー・アーカイブ・エディターによって指定した値がなければなりません。 値がない場合は、デプロイメント時にエラーが発生します。実行時 (UDP は宣言済み) に、後続のプログラム・ステートメントによって その値を照会できますが、変更することはできません。
UDP の値はフロー・レベルで設定され、フローに含まれるすべての適格なノードで 同じになります。"適格なノード" とは、UDP をサポートしており、アプリケーションに対して UDP を宣言している宣言の有効範囲内にあるノードのことです。例えば、 メッセージ・フロー・エディターを使用して、「myFlow」という メッセージ・フロー中の「mySchema」というスキーマで 宣言されている「timezone」というユーザー・プロパティーの値を 変更する場合、myFlow 中のすべてのノードのうち UDP をサポートしていて mySchema の範囲内のものに対して 実行時に UDP を使用できます。
同様に、メッセージ・フロー・エディターを使用してサブフロー中の ユーザー定義プロパティーの値を変更する場合、サブフロー中のすべてのノードのうち UDP をサポートしており、 宣言の有効範囲内にあるものに対して、新しく編集したプロパティーを 使用できます。親フローのノードなどでは 使用できません。