If/ElseIf
複数のifおよびelse if条件に基づいて、異なるアクションの実行を指定します(一部のプログラミング言語でのSwitchやCaseと同様です)。単一の条件に基づいて異なるアクションを指定するには、If/Elseを使用します。
この関数カードでは、次の項目を設定できます。
セクション |
定義 |
---|---|
条件 | どの分岐を実行するかを決定する条件のリスト(true/falseのステートメント)。 |
分岐 | 最初に満たされた条件に基づいて実行するアクションと関数。条件が満たされない場合、Else分岐が実行されます。 |
出力(オプション) | 出力フィールドで、フローの以後のステップで使用できます。それぞれの出力に割り当てられる値は、どの分岐が実行されるかによって異なります。 |
条件
新しいIf/ElseIfを作成する最初の手順は、条件の定義です。条件は、Sales > 1000のようにtrue/falseの値を持つ式です。If/ElseやContinue Ifなど類似のカードと同様に、条件はvalue a、comparison、value bの3つの入力を使用して表現されます。これらの値はマップされたフィールド(たとえば、アクション カードからの出力)または入力した定数です。各種の比較の選択については、以下の表を参照してください。
フローが実行されるとき、条件が先頭からテストされ、trueを返した最初の条件(最初の条件のみ)に対応する分岐(記述された一連のアクションと関数)が実行されます。trueを返した条件がない場合、Else分岐が実行されます。
条件が満たされたときのアクションを定義するには、条件の右側にある追加(+)アイコンをクリックします。左上のドロップダウンを使って別の分岐に移動する方法もあります。分岐に対応する条件を選択するか、[Edit Conditions(条件の編集)]をクリックして条件の編集または新規条件の追加を行います。
value aとvalue bの型は必ず、どのような比較を行うかを反映するよう設定してください。たとえば、greater than演算子は、数値の場合は数値に基づいて比較を行いますが、テキストの場合はアルファベット順に基づいて比較を行います。したがって、80 > 9
という数値の比較はtrueを返しますが、"80" > "9"
というテキストの比較はfalseを返します。
関係演算子の表
演算子 |
ユースケース |
---|---|
equal to | 2つのテキスト、数値、日付、またはtrue/falseを比較し、同じ値かどうかを調べます。 |
not equal to | 2つのテキスト、数値、日付、またはtrue/falseを比較し、異なる値かどうかを調べます。 |
greater than or equal(次より大きいか等しい) | 2つのテキスト、数値、または日付を比較し、最初のものが2番目のものと等しい、またはより大きいかどうかを調べます。 |
less than or equal | 2つのテキスト、数値、または日付を比較し、最初のものが2番目のものと等しい、またはより小さいかどうかを調べます。 |
greater than | 2つのテキスト、数値、または日付を比較し、最初のものが2番目のものより大きいかどうかを調べます。 |
less than | 2つのテキスト、数値、または日付を比較し、最初のものが2番目のものより小さいかどうかを調べます。 |
a multiple of(次の倍数) | 2つの数値を比較し、value aがvalue bの正確な倍数かどうかを調べます。たとえば、12、0、-4はすべて4の倍数ですが、2、3、7は倍数ではありません。 |
in(の) | 2つのテキストを比較し、value aがvalue bの一部かどうかを調べます。たとえば、「test」は「this is a test」に含まれますが、「i」は「team」に含まれません。 |
not in(次にない) | 2つのテキストを比較し、value aがvalue bに含まれていないかどうかを調べます。 |
has key(キーがある) | value aがオブジェクトで、value bがテキストのとき、そのオブジェクトに指定された名前のキーが存在するかどうかを調べます。たとえば、value aが{"test":123}で、value bが「test」なら、trueを返します。 |
doesn't have key(キーがない) | value aがオブジェクトで、value bがテキストのとき、そのオブジェクトに指定された名前のキーが存在しないかどうかを調べます。 |
is empty(空である) | value aが空かどうかを調べます。value bは無視されます。何を「空」と定義するかは型によって異なります。注:テキストとオブジェクトでのみ正しく動作します。数値、日付、T/Fは空と見なされます。 |
is not empty(空でない) | value aが空でないかどうかを調べます。注:テキストとオブジェクトでのみ正しく動作します。数値、日付、T/Fは空と見なされます。 |
分岐
それぞれの分岐には、対応する条件がtrueのときに実行するアクションと関数が含まれます。このコンテナーには、フローの場合と同様にカードを追加します。
Whenコンテナーの左上にあるドロップダウンを使用して各分岐に移動するか、条件を編集、または新しい条件を追加します。
ReturnとContinue-Ifは、If/ElseIf分岐内とIf/Else分岐内では動作が異なります。If/ElseIf分岐は、匿名のヘルパーフローと考えることができます。ヘルパーフローの場合と同様に、Returnを実行すると停止せず、親に復帰します。ReturnまたはContinue-If(falseの場合)は、If/ElseIfの直後のステップに進みます。
出力(オプション)
If/ElseIfの前に実行される出力を、カードからIf/ElseIf内の条件または分岐にドラッグできますが、分岐内の出力をIf/ElseIfの後で実行されるカードにドラッグすることはできません。これは、分岐内からの出力は、別の分岐が実行されるときには未定義のためです。この問題を回避するには、オプションのOutputs機能を使用します。
Outputsにアクセスするには、If/ElseIfコンテナーの右上にある[View Outputs(出力の表示)]をクリックします。これにより、すべての分岐の右側にペインが開きます。クリックすると新しい出力を追加できます。名前を入力し、型を選択してください。定義したそれぞれの出力の下に、If/ElseIfについて定義したIfまたはElse If条件のそれぞれについて1つの入力と、Else条件用に1つの入力が表示されます。対応する分岐から出力をドロップして、それぞれの出力で使用する別の値を指定します。
このペインの出力は、フローの以後のステップにマップできます。