Azure Logic Apps の特定の値に基づいてワークフロー アクションを実行するスイッチ アクションを作成する
適用対象: Azure Logic Apps (従量課金)
オブジェクト、式、またはトークンの値に基づいて特定のアクションを実行するには、"スイッチ" アクションを追加します。 この構造は、オブジェクト、式、トークンを評価し、その結果と一致するケースを選択して、そのケースだけの特定のアクションを実行します。 スイッチ アクションが実行されるときは、1 つのケースのみが結果と一致する必要があります。
たとえば、電子メールで選択されたオプションに基づいてさまざまなステップを実行するロジック アプリが必要な場合があります。 この例では、ロジック アプリは Web サイトの RSS フィードで新しいコンテンツをチェックします。 RSS フィードに新しい項目が出現すると、ロジック アプリは電子メールを承認者に送信します。 承認者が選択する "承認" または "拒否" に基づいて、ロジック アプリが異なるステップを実行します。
ヒント
すべてのプログラミング言語と同様に、スイッチ アクションは等値演算子のみをサポートします。 その他の関係演算子 ("より大きい" など) が必要な場合は、条件アクションを使います。 確定的な実行動作が確実に行われるようにするには、ケースに動的トークンまたは式ではなく、一意で静的な値を含める必要があります。
前提条件
Azure サブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
このアーティクルの例を進めるために、Outlook.com アカウント、または職場か学校のアカウントを使用して、従量課金ロジック アプリ ワークフローの例を作成します。
電子メールを送信するアクションを追加するときは、代わりに次のアクションを探して選択します。 [承認の電子メールを送信します]
承認の電子メールの受信者の電子メール アドレスなど、必須フィールドに指定します。 [ユーザー オプション] に「Approve, Reject」と入力します。
スイッチ アクションを追加する
この例では、サンプル ワークフローの最後にスイッチ アクションを追加します。 最後の手順の後ろで、 [新しいステップ] を選択します。
ステップとステップの間にスイッチ アクションを追加するときは、スイッチ アクションを追加する場所にある矢印の上にポインターを移動します。 表示されるプラス記号 (+) を選択し、[アクションの追加] を選択します。
検索ボックスに、フィルターとして「switch」と入力します。 このアクションを選択: [Switch - Control](スイッチ - 制御)
1 つのケースと 1 つの既定ケースを含むスイッチ アクションが表示されます。 既定では、スイッチ アクションには既定のケースに加えて、少なくとも 1 つのケースが必要です。
[On](オン) ボックス内をクリックして、動的コンテンツ リストを表示します。 リストから、その出力によって実行するアクションが決まる [SelectedOption] フィールドを選択します。
承認者が
Approve
またはReject
を選択したケースを処理するために、Approve
とReject
の間にもう 1 つのケースを追加します。次のアクションを対応するケースに追加します。
ケース番号 SelectedOption アクション ケース 1 Approve 承認者が [Approve] を選択した場合のみ、RSS 項目の詳細を送信するために Outlook [Send an email](電子メールの送信) アクションを追加します。 ケース 2 Reject RSS 項目が拒否されたことを他の承認者に通知するために、Outlook [Send an email](電子メールの送信) アクションを追加します。 Default なし 対処不要です。 この例では、 [SelectedOption](SelectedOption) に 2 つしかオプションがないため、 [既定] ケースは空です。 ロジック アプリを保存します。
この例を手動でテストするには、ロジック アプリが新しい RSS 項目を見つけて承認の電子メールを送信するまで、 [実行] を選択します。 [Approve] を選択して結果を確認します。
JSON の定義
スイッチ アクションを使ってロジック アプリを作成しました。ここで、スイッチ アクションの背後にあるコード定義の概要を見てみましょう。
"Switch": {
"type": "Switch",
"expression": "@body('Send_approval_email')?['SelectedOption']",
"cases": {
"Case": {
"actions": {
"Send_an_email": {}
},
"case" : "Approve"
},
"Case_2": {
"actions": {
"Send_an_email_2": {}
},
"case": "Reject"
}
},
"default": {
"actions": {}
},
"runAfter": {
"Send_approval_email": [
"Succeeded"
]
}
}
Label | 説明 |
---|---|
"Switch" |
スイッチ アクションの名前です。わかりやすいように変更することができます。 |
"type": "Switch" |
アクションがスイッチ アクションであることを指定します |
"expression" |
この例では、承認者が選択するオプションを指定します。これは、定義の中で後で宣言される各ケースに照らして評価されます。 |
"cases" |
任意の数のケースを定義します。 各ケースで、"Case_*" はケースの既定の名前です。わかりやすいように名前を変更できます。 |
"case" |
ケースの値を指定します。これは、スイッチ アクションで比較に使われる、一意の定数値にする必要があります。 switch 式の結果と一致するケースがない場合は、"default" セクションのアクションが実行されます。 |
サポートを受ける
- ご質問がある場合は、Azure Logic Apps に関する Microsoft Q&A 質問ページを参照してください。
- 機能や提案について投稿や投票を行うには、Azure Logic Apps のユーザー フィードバック サイトにアクセスしてください。