説明
<if> 要素は式を評価し、その値に応じて、2 つのアクティビティ・セット (式の結果が真の場合のアクティビティと偽の場合のアクティビティ) のいずれかを実行します。
<if> 要素には、<true> 要素と <false> 要素を含めることができます。これらの要素は、式の結果が真の場合および偽の場合に実行されるアクションをそれぞれ定義します。
<true> 要素と <false> 要素を両方指定する場合、<if> 要素ではどちらを先に配置してもかまいません。
条件が真で <true> 要素がない場合、または条件が偽で <false> 要素がない場合、その <if> 要素では何も実行されません。
次の例では、<if> 要素を使用して、<call> 要素と <sync> 要素を組み合わせた結果を調整しています。
<sequence name="thread1">
<call name="A" />
<call name="B" />
<sync calls="A,B" type="all" timeout="10" />
// Did the synchronization time out before it finished?
<if condition='synctimedout="1"'>
<true>
<trace value="thread1 timeout: Call A or B did not return." />
</true>
// If not, then the calls came back, so assign the results.
<false>
<assign property="context.TheResultsFromEast"
value='syncresponses.GetAt("A")'
action="append"/>
<assign property="context.TheResultsFromWest"
value='syncresponses.GetAt("B")'
action="append"/>
</false>
</if>
</sequence>
この例の <if> アクティビティでは、実行コンテキスト変数 synctimedout が整数値 1 であるかどうかをテストする条件が指定されています。<call> に関するドキュメントで説明しているように、synctimedout の値は、0、1、または 2 となります。2 つの値が等しい場合、この <if> 条件は整数値 1 を受け取り、<true> 要素内の文が実行されます。それ以外の場合は、<false> 要素内の文が実行されます。
Note:
ビジネス・プロセスの実行コンテキストの詳細は、<assign> 要素の説明を参照してください。