Skip to main content

<if>

条件を評価し、真の場合の操作または偽の場合の操作を実行します。

構文

<if condition="1">
   <true>
     ...
   </true>
   <false>
     ...
   </false> 
</if>

属性と要素

condition 属性

必須項目。この条件式が真の場合、<true> 要素内のコードが実行されます。偽の場合は、<false> 要素内のコードが実行されます。

1 (真の場合) または 0 (偽の場合) を求める式を指定します。

LanguageOverride 属性

オプション。(この要素内の) 式が記述されるスクリプト言語を指定します。

"python""objectscript"、または "basic" (記載されていません) になります。既定は、この属性が含まれる <process> 要素で指定される言語です。

namedisabledxposyposxendyend 属性

"一般的な属性と要素" を参照してください。

"一般的な属性と要素" を参照してください。

<true> 要素

オプション。条件が真の場合、<true> 要素内のアクティビティが実行されます。

<false> 要素

オプション。条件が偽の場合、<false> 要素内のアクティビティが実行されます。

説明

<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> 要素の説明を参照してください。

関連項目

FeedbackOpens in a new tab