くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【PowerAutomate】トリガー起動条件の書き方講座

はじめに

例えば、PowerAutomateトリガーにSharePointの「項目が作成されたとき」を使うけど「特定の条件の時のみ項目を作成したい」のようにトリガーを起動する条件を設定したい場合ありませんか?
今回は、トリガーに起動条件を設定する方法と記載方法について述べたいと思います。

目次

注意事項

この記事はクラウドフローを対象にしています。

起動条件を設定する

下記手順に従って起動条件を設定してください。
1.トリガーの「…」>「設定」をクリックする。

2.「トリガーの条件」にトリガーの起動条件式を入力します。
「+追加」をクリックすることで複数の条件を設定可能です。
「+追加」で追加した条件は「And条件」となりますのでご注意ください。
3.条件設定後、「完了」をクリックします。

条件式を作成する

上記で「トリガーの条件設定方法」については分かりましたが肝心の条件式の書き方がわからないと意味がありません。
ここでは簡単に条件式を作成する方法を伝授します!

大体は「アレイのフィルター処理」を使えばいい!!

最も簡単な条件式の作成方法はPowerAutomateに作ってもらうことです。
「アレイのフィルター処理」アクションを使って、条件式を作ってもらいましょう。

1.「アレイのフィルター処理」アクションを追加します。

2.下図赤枠内で条件式を作成します。
3.「詳細設定モードで編集」をクリックして、2の条件式をコード化します。

4.コード化された条件をコピーして、トリガーの設定画面に登録します。

条件記載 例

トリガー起動条件の記載例は以下を参考にしてください。
条件式はコピペで利用できます。
Title と Price は、SharePointリストに追加した列の内部名です。

contains(A,B)

A に B が含まれる場合 を表す。

例:Title に テスト が含まれる場合
@contains(triggerOutputs()?['body/Title'], 'テスト')

not(contains(A,B))

A に B が含まれていない場合 を表す。

例:Title に テスト が含まれていない場合
@not(contains(triggerOutputs()?['body/Title'], 'テスト'))

equals(A,B)

A が B と等しい場合 を表す。

例:Title が テスト と等しい場合
@equals(triggerOutputs()?['body/Title'], 'テスト')

not(equals(A,B))

A が B と等しくない場合 を表す。

例:Title が テスト と等しくない場合
@not(equals(triggerOutputs()?['body/Title'], 'テスト'))

empty(A)

A の値が 空 の場合 を表す。

例:Title の値が 空 の場合
@empty(triggerOutputs()?['body/Title'])

not(empty(A))

A の値が 空 ではない場合 を表す。

例:Title の値が 空 ではない場合
@not(empty(triggerOutputs()?['body/Title']))

greater(A,B)

A より B が大きい場合 を表す。

例:Price より 100 が大きい場合
@greater(triggerOutputs()?['body/Price'], 100)

greaterOrEquals(A,B)

A が B 以上の場合 を表す。

例:Price が 200 以上場合
@greaterOrEquals(triggerOutputs()?['body/Price'], 200)

less(A,B)

A が B 未満の場合 を表す。

例:Price が 1000 未満の場合
@less(triggerOutputs()?['body/Price'], 1000)

lessOrEquals(A,B)

A が B 以下の場合 を表す。

例:Price が 500 以下の場合
@lessOrEquals(triggerOutputs()?['body/Price'], 500)

startsWith(A,B)

A が B から始まる場合 を表す。

例:Title が 【会議】から始まる場合
@startsWith(triggerOutputs()?['body/Title'], '【会議】')

not(startsWith(A,B))

A が B から始まらない場合 を表す。

例:Title が 【会議】から始まらない場合
@not(startsWith(triggerOutputs()?['body/Title'], '【会議】'))

endswith(A,B)

A が B で終わる場合 を表す。

例:Title が  で終わる場合
@endswith(triggerOutputs()?['body/Title'], '【会議】')

not(endswith(A,B))

A が B で終わらない場合 を表す。

例:Title が  で終わらない場合
@not(endswith(triggerOutputs()?['body/Title'], '【会議】'))

and(A,B)

A かつ B の場合 を表す。

例:「Title に テスト が含まれる」かつ「Price が 500 以下」の場合
@and(
 contains(triggerOutputs()?['body/Title'], 'テスト'),
 lessOrEquals(triggerOutputs()?['body/Price'], 500)
)

or(A,B)

A または B の場合 を表す。

例:「Title に【会議】が含まれる」または「Price が 2000 以上」の場合
@or(
 contains(triggerOutputs()?['body/Title'], '【会議】'),
 greaterOrEquals(triggerOutputs()?['body/Price'], 2000)
)

参考

クラウド フローのトリガー条件を設定してトリガーの実行を制御する方法 | Japan Dynamics CRM & Power Platform Support Blog

Power Automate のトリガー条件を使ってOutlookを色んな条件でトリガーさせる方法。 - Qiita

式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Learn