BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
|
e-docs > WebLogic Integration > BPM トピック > WebLogic Integration Studio ユーザーズ ガイド > ワークフロー式の使用法 |
WebLogic Integration Studio ユーザーズ ガイド |
ワークフロー式の使用法
この章ではワークフローを表現する式の言語を説明し、またワークフロー式を生成する場合の Expression Builder と XPath Wizard の使用法について説明します。
ワークフロー式の概要
Studio のダイアログ ボックス内でフィールドの横に [式] ボタン が表示される場合、そのフィールドにはワークフロー式の言語で定式化したエントリを入力する必要があります。式は、テンプレート定義ラベルの作成、分岐ノードやイベントでの条件の定義、イベント キーの設定、および実行時に提供する情報の指定を行うために、Studio 全体で使用されます。
ワークフロー式は、実行時にシステムによって実行される計算を定義する数式で、文字列、整数、およびその他の定数などのリテラルや、ワークフロー変数、演算子、ワークフロー関数で構成されます。ワークフロー式構文を使って、文字列の操作、関係と条件のテスト、算術計算の実行、実行時にワークフローまたは XML メッセージからの情報を取得する関数の使用などを行うことができます。
式の結果は、文字列、整数、倍精度の値、日付/時間の値、またはブール値になります。結果としてブール値を返す式は、条件式または条件と呼びます。
また Studio では、式の作成に役立つ次の 2 つのツールが用意されています。1 つは Expression Builder で、これは構文の検査とエラー情報を提供します(Expression Builder の使い方を参照)。もう 1 つは XPath Wizard で、これはサンプルの XML ドキュメントから XPath 式を生成する場合に使います(XPath Wizard を使用する XPath 式の作成を参照)。
以下の節では、リテラル、演算子、およびワークフローの各変数の構文を示し、また組み込み関数の使用法と構文について説明します。
リテラルの使い方
式には、リテラルの値または定数が含まれています。使用可能なリテラルは次の表のとおりです。
注意: 日付のリテラルは、日付型の変数を設定するためにのみ使用できます。他のコンテキストで使用する関数や式には、日付のリテラルを使用できません。
変数の使い方
式には、カレント ワークフローで定義したワークフロー変数の参照が含まれます。
ワークフロー変数の参照には、以下の構文のいずれか 1 つを使用できます。
演算子の使い方
次の表は、利用可能な演算子の値を示します。
関数の使用法
関数とは組み込みの式のことで、これを使用して実行時にデータを取得できます。関数は、変数の型キャスト、ワークフロー情報の識別、データ演算の実行など、さまざまな目的で使用します。また多くの関数では、特定のワークフローやシステム データを実行時に返す組み込み属性を指定できます。
以下の節では、ワークフロー関数をカテゴリ別にグループ化して示します。それぞれのリスト内では、関数の代表的な属性を丸かっこで囲んで示しています。ただし、関数に他の関数や式を組み込んだり、属性を埋め込み式として表現することもできます。
注意: この節で示すデフォルトの関数の他に、プラグイン関数も使用することができます。
関数の結果を変数に代入するか、または 2 つの関数の結果を比較したい場合は、それぞれのデータの型が一致することを確認する必要があります。したがって、返却値の型も以下の関数の説明に一覧で示します。
実行時のシステム データを収集する
システム情報を実行時に収集するには、次の関数を使用します。
Date()
実行時のイベント データを抽出する ワークフローの JMS メッセージのヘッダまたは XML 本文から内容を抽出する場合、あるいはプロパティを調べる場合に以下の関数を使うことができます。
EventAttribute()
EventData()
XPath は、XML ドキュメントの部分をアドレッシングする言語です。これは文字列、数字、およびブール値を扱う基本的な機能を提供します。XPath は、XML ドキュメントの階層構造でナビゲートするための URL のパス名から名前を取得します。XPath 言語の公式な仕様を入手するには、次のインターネット サイトを参照してください。http://www.w3.org/TR/xpath.html XPath の表記法や関数のクイック リファレンス ガイドを入手するには、次のインターネット サイトを参照してください。http://www.mulberrytech.com/quickref/XSLTquickref.pdf 各ノードからのテキスト値の取り出し、属性値の取り出し、サブツリーの選択、属性値などによる XML ドキュメントからのノードの選択など、XPath の最も一般的な使用サンプルを次に示します。リスト 8-1 の XML ドキュメントを検証してください。 コード リスト 8-1 XML サンプル ドキュメント <b> 要素のテキスト値("This is the first value" など)を選択する場合: ID 属性が "d3" の値を持つ <d> 要素("This is the fourth value" など)を選択するには次のコードを使います。 2番目の <d> 要素のテキスト値("This is the third value" など)を選択するには次のコードを使います。 <b> 要素の名前属性の値("bill" など)を選択するには次のコードを使います。 <c> サブツリー全体を選択するには次のコードを使います。 注意: XPath 式は、ユーザ自身がキー入力するか、または XPath Wizard を使って作成できます。Wizard の使用法の詳細は、XPath Wizard を使用する XPath 式の作成を参照してください。 XML 要素のドット表記 変数の初期化の際に、[開始のプロパティ]、[イベントのプロパティ]、[例外ハンドラのプロパティ]、および [XML をクライアントに送信] でより簡素なドット(.)表記を使用して XML ドキュメントから要素データを取得することができます。それには、次の構文を使います。 root_element.subelement1.subelement2.subelement3 . . . XML ドキュメントの例としては次のようなものがあります。 コード リスト 8-2 XML ドキュメントの例 この例では、期限切れの値を検索するのに、次の式を使用します。 account.balance.status この表記を使って属性値を取得することはできません。また、式の先頭がルート要素である必要があります。サブ要素で式を始めることはできません。 この表記では常に文字列が返されます。型キャストを実行する関数と併用したとしてもその他のデータ型を返すことはできません。 実行時のワークフロー データを収集する 実行時のデータをワークフローから収集するには、以下に一覧で示す関数を使用します。
<?xml version="1.0"?>
<a>
<b name="bill">This is the first value</b>
<c>
<d id="d1">This is the second value</d>
<d id="d2">This is the third value</d>
<d id="d3">This is the fourth value</d>
<d id="d4">This is the fifth value</d>
</c>
</a>XPath("/a/b/text()")
XPath("/a/c/d[@id=¥"d3¥"]/text()")
XPath("/a/c/d[2]/text()")
XPath("/a/b/@name")
<c>
<d id="d1">This is the second value</d>
<d id="d2">This is the third value</d>
<d id="d3">This is the fourth value</d>
<d id="d4">This is the fifth value</d>
</c>)
XPath("/a/c")<account>
<number>847365</number>
<customer>John Doe</customer>
<balance>
<status>past due</status>
<date_due>7-11-2001</date_due>
<amount_due>5670.85</amount_due>
</balance>
<credit_limit>7500.00</credit_limit>
</account>
CurrentUser()
注意: 上記の表に示す属性以外のものを使用すると、サーバで例外が発生します。 WorkflowAttribute()
注意: 上記の表に示す属性以外のものを使用すると、サーバで例外が発生します。 WorkflowVariable()
データ型を変換する 以下の関数を使用して、1 つの式の戻り値の型を別のものに変換できます。ワークフローの型の変換ルールについては、変数を代入した場合の日付の型変換を参照してください。
DateToString()
StringToDate()
データを処理する データに対して各種のオペレーションを行う場合、以下に示す関数を使用できます。
Abs()
StringLen()
日付関数のフォーマット 日付関数の日付フォーマットを指定するには、タイム パターン 文字列を使用して日付と時間を記述します。 たとえば、DateToString() 関数では、次のようなタイム パターン文字列が使用されています。 結果は、次のようなフォーマットになります。 同様に、StringToDate() 関数を使用する場合は、ユーザが指定するフォーマットに応じて日付のリテラルを書式指定しなければなりません。 ここではパターンの文字を説明し、書式指定の指針を示し、また指定サンプルを示します。
"yyyy.MM.dd G 'at' hh:mm:ss z"
2000.07.31 AD at 13:10:35 PDT
フォーマットの指針 フォーマットはパターン文字の数によって決定されます。
パターン内のいずれかの文字が ['a'..'z'] と ['A'..'Z'] の範囲外の場合、その文字は引用符で囲まれたテキストとして扱われます。たとえば、 ':', '.', ' ', '#' および '@' などの文字は、一重引用符で囲まれていなくても、結果は時間のテキストで示されます。
無効なパターン文字を含むパターンは、フォーマット処理またはパーシングの結果例外が発生します。
時間パターンのサンプル
変数を代入した場合の日付の型変換
式を実行した結果の値をワークフローの変数に代入する場合があります。たとえば、XML ドキュメントから XPath 式で返されたデータを使って、ワークフローの起動時に変数を初期設定する場合です。また、1 つの変数の型の値を別のものに割り当てたい場合があります。
式の戻り値の型が、式の結果の値を割り当てたい変数の型と異なる場合、サーバは自動的に型の変換を行います。ただし、型の変換を行うことができない場合もあり、その場合は例外が発生します。次の表は、型の変換を行う方法を示します。表中の * の数は、表の後の「メモ」の項目番号に対応しています。
注意: 以下の表で示す型の変換ルールは、データ型のデフォルト設定値に適用されます。ヌル値のサポートに用いる変換ルールについては、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」にある「Null 変数をサポートする BPM のコンフィグレーション」を参照してください。
NS = サポートされません(Not supported)。変換を行おうとすると、型の変換が違法なことを示すエラー メッセージが表示されます。 ノード リスト = XPath の text() 関数で返されるオブジェクトです。 * ソースの値が、ターゲットのデータの型に対して有効な入力でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。 ** 文字列の値が「True」、「t」、または「1」の場合は True です。文字列の値が「False」、「f」、「0」の場合は False です。文字列の値がそれ以外の場合は、型の変換が違法なことを示すエラー メッセージが表示されます。 *** 文字列にシリアライズされ、その後でターゲットのデータの型に変換される DOM オブジェクトです。ソースの値が、ターゲットのデータの型に対して有効な入力でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。 **** 文字列にシリアライズされる DOM オブジェクトです。文字列の値が「True」、「t」、または「1」の場合は True です。文字列の値が「False」、「f」、「0」の場合は False です。文字列の値がそれ以外の場合は、型の変換が違法なことを示すエラー メッセージが表示されます。 ***** XML ドキュメントの要素に解析する DOM で、単なるノードではありません。これは、文字列に再変換した場合に、文字列に以下のような XML のヘッダが含まれることを意味します。<?xml version=”1.0” encoding=”UTF-8”?>.ソースの値が、DOM の解析に有効でない場合、型の変換が違法なことを示すエラー メッセージが表示されます。 これらの変換ルールは式の計算を完全にサポートしていないことに注意してください。たとえば、次の式を仮定します。 XPath(“your_expression”) + 2 your_expression のデータの型が不明なため、この文の結果は計算できません。この文を有効にするには、型キャスト関数を使用して、ユーザが希望するデータの型に結果を変換する必要があります。 たとえば、your_expression の評価が 3 の値になると仮定し、また結果を文字列のデータ型にすると仮定します。その場合は、次の文を使用する必要があります。 ToString(XPath(“your_expression”) + 2 この場合、式の評価は 52 の文字列の値になります。 たとえば、your_expression の評価が 3 の値になると仮定し、また結果を整数にすると仮定します。その場合は、次の文を使用する必要があります。 ToInteger(ToString(XPath(“your_expression”)) + 2 この場合、式の評価は 7 の整数値になります。
Expression Builder の使い方
Expression Builder は、関数、演算子、リテラルおよび変数から成る式の作成に役立ちます。Studio 全体を通して、次の図に示す [Expression Builder] ボタンがダイアログ ボックスの各フィールドに表示されます。
図8-1 [Expression Builder] ボタン
[Expression Builder] ダイアログ ボックスを表示するには、このボタンをクリックします。 図8-2 [Expression Builder] ダイアログ ボックス
注意: 式の一部になる関数に対してプラグインが定義されている場合、このダイアログ ボックスには新しい関数が含まれます。 式を作成する手順は次のとおりです。
無効な式を入力した場合、式が無効な理由を説明するメッセージが表示されます。表示されることのあるメッセージについて、考えられる原因を以下の表に示します。
Expression Builder は、次のそれぞれについて有効性は調べません。
XPath Wizard を使用する XPath 式の作成
XPath Wizard のグラフィカル インタフェースを使って、実際の XML エンティティから自動的に XPath 式を生成したり、XML エンティティの定義と検証を行う XPath 式を定義およびテストできます。XPath 式を生成してテストした後でその式を Expression Builder に返すことにより、ワークフロー構文に準拠するために追加する必要がある引数を Expression Builder に追加できます。
XPath Wizard は、サンプルの XML ドキュメント、つまり Document Type Definition (DTD)、XML Schema Document (XSD)、Extensible Stylesheet Language (XSL) または Message Format Language (MFL) ファイルをサンプリングできます。ユーザが DTD、Schema、XSL、または MFL ファイルを Wizard にロードすると、ユーザが選択したファイル内の仕様に基づいて、サンプルの XML ドキュメントが自動的に生成されます。生成された XML ドキュメントを使用して、XPath 式を作成します。
[XPath Wizard] を開くには、[Expression Builder] から XPath Wizard をクリックします。
図8-3 XPath Wizard
[XPath Wizard] には、[ワークスペース] タブ、[サンプル] タブ、および [テスト] タブの 3 つのタブが含まれています。これらは次を行うために使用します。
これらの 3 つのタブには、ツールバーと以下の 2 つの読み取り専用フィールドが表示されます。
ツールバーのボタンについて以下の表で説明します。
XPath ロケーション式を XML エンティティから生成する Xpath Wizard を使用して、以下をターゲットとする XPath ロケーション式を生成できます。
XML§MFL、XSL、DTD または XSD ドキュメントをサンプリング用にロードできます。ユーザが DTD または XSD ドキュメントを開くと、Wizard はサンプルの XML ドキュメントを、ユーザが選択した DTD または Schema から生成します。生成された XML ドキュメントを使用して、XPath 式を作成します。
XPath ロケーション式を生成する手順は、次のとおりです。
XPath 式を表示する
Studio セッション中に XPath Wizard で作成したすべての XPath 式は、[ワークスペース] に配置できます。XPath 式を作成するごとに、式を [ワークスペース] に固定できます。このようにして、1 つの XML ドキュメントに対して複数の式を作成し、これらの式が正しい結果を返すことを後でテストできます。
図8-5 [XPath Wizard] : [ワークスペース] タブ
ワークスペースには、各 XPath 式について以下の情報が表示されます。
式をテストするには、リスト内の式を選択して [テスト] タブをクリックします。テストの手順については、XPath 式をテストするを参照してください。 [Expression Builder] に式を返すには、リスト内の式を選択して [OK] をクリックします。[XPath Wizard] ウィンドウが閉じ、選択した式が [Expression Builder] に配置されます。 XPath 式をテストする XPath Wizard のテスト機能は、次の目的で使用します。
XPath 言語によって指定される関数の一覧については、http://www.w3.org/TR/xpath.html を参照してください。
式を構築した後、計算値が XPath Wizard によって返されます。
ロケーション式をテストする
XPath のロケーション式をテストする手順は、次のとおりです。
図8-6 [XPath Wizard] : [テスト] タブ
関数を含む式をテストする
関数を含む XPath 式をテストする手順は、次のとおりです。
図8-7 XPath の関数の演算結果