PowerAutomateでSharePointリストアイテムが新規作成されたときのみ実行したい

PowerAutomateでSharePointの特定リストにアイテムが作成されたときにのみ動作させたかったのですが、トリガーとしてはリストアイテムの作成または更新時しかありませんでした

そこで、以下のサイトを参考に今回はトリガーに設定せずにフロー上で判定して作成時のアクションを実行させます

それぞれの取得した時間を日本時間にする

まずは、リストアイテムが作成された際の時間とフローの実行時の時間を取得します
しかし、UTC時間での取得となってしまうので東京時間に変換してわかりやすくします
フォーマットはわかりやすい用に「yyyy/MM/dd HH:mm:ss」にしています

リストアイテム作成日時と現日時の比較

PowerAutomateにあるless関数を用いて日時を比較し、作成時アクションを実行するようにします
ただ、今回はリストアイテムを作成してもすぐに起動するわけではないので、ある程度の余白を作って判定をします

方法としては、フロー実行日時をaddToTime関数を用いて時間を調整します。今回は、10分減らすようにします。-10という値を変数として用意しておくと後々、楽だと思います
それぞれを合わせると下記のようになりました

less(body('リストアイテムをUTCから日本時間へ変換'), addToTime(body('現在時間をUTCから日本時間へ変換'), variables('SubtractingTime'), 'Minute', 'yyyy/MM/dd HH:mm:ss'))

下画像の条件文で実行すると「いいえ」の場合に作成時のアクションを設定する形となります

↓PowerAutomateのless関数について

↓PowerAutomateのaddToTime関数について

実際に動かしてみる

今回の内容で実際に動かしてみます。わかりやすように今回はログ用の変数設定を組み込んでいます

作成日時から指定の範囲内なので「いいえ」が実行されていることが確認できます

作成日時から時間が経ちすぎているため「はい」が実行されていることが確認できます

最期に

これで「はい」の場合は更新時の処理を、「いいえ」の場合は作成時の処理をというように分けて実装することができました。ただ、今回紹介した方法だと作成後すぐになにかしらの更新が実行されるようなロジックだとうまく動かないと思いますので注意が必要です

タイトルとURLをコピーしました