3

mule studio でアプリケーションを開発しています。「Choice」コンポーネントを使用する必要がありますが、ペイロードに含まれるメッセージ プロパティではなく、プロパティ ファイルに含まれる変数を評価したいと考えています。

<choice doc:name="Choice">
                <when expression="${CONTROL_VARIABLE}.equals(&quot;S&quot;)">
                    <set-variable variableName="URL_ADDRESS" value="${URL_PREPATH_VALUE}/[#payload.URL]" doc:name="Variable"/>
                </when>
                <otherwise>
                    <set-variable variableName="URL_ADDRESS" value="[#payload.URL]" doc:name="Variable"/>
                </otherwise>
            </choice>

もちろんうまくいきません。ちゃんと理解すれば、メッセージのペイロードしか評価できないからです。

最善の方法でタスクを達成するにはどうすればよいですか? なんらかの方法ですべてのプロパティ ファイル変数をペイロードに追加する必要がありますか?

ありがとうございました!

4

3 に答える 3

2

CHOICE の条件式は、プロパティ ファイルからロードされたデータで問題なく機能します。

次の部分を試してみてください。うまくいくはずです。

<when expression="'${CONTROL_VARIABLE}' == 'S'">

お役に立てれば。

于 2013-08-30T14:54:05.740 に答える
1

以下のようにプロパティファイルを参照して選択肢式の条件を定義することもできます。

<when expression="#['${test}' =='1']">

于 2015-02-11T03:58:08.977 に答える
-2

==プロパティ参照を一重引用符で囲みませんでした。演算子を使用する代わりに equals メソッドを使用することもできます。比較の前に、プロパティ参照を一重引用符で囲むだけです。

<*when expression="'${CONTROL_VARIABLE}'.equals('S')"*>

説明: プロパティ参照を '${CONTROL_VARIABLE}' のように一重引用符で囲むと、この後に文字列オブジェクトに変換され、文字列型をサポートする任意のメソッド/演算子を適用できます。

お役に立てれば。

于 2015-11-11T15:18:24.123 に答える