投稿日:2025/6/12
投稿者:関
今回、お客様のシステムで他のシステムで作成されたファイルを取り込むフローを作る必要がありました。
要件は、「他システムのファイルは、Sharepointフォルダーに定期的に格納されるので、取り込み処理終了後は同フォルダーのDONEフォルダーに移動する」でした。
なので、Sharepointコネクタで、「ファイルが作成されたとき」のトリガーを使ってPower Automateのフローを作製することにしました。
フロー実行:無限ループ発生
フローを作製し、Sharepointフォルダに連携ファイルを投稿
ん?フローの実行履歴に実行フローが増えていく
やばい、フローをオフに変更!😥
想定では、ファイル:「テストデータ」を投稿すると、DONEフォルダーに「テストデータ_20250125_2254」が作成されるはずでした。
なんだこりゃ? 下記のような動作してる・・・(処理済み後の作成したファイルが、投稿したファイルと認識している)
1回目 IN:テストデータ → OUT:テストデータ_20250125_2254
2回目 IN:テストデータ_20250125_2254 → OUT:テストデータ_20250125_2254_20250125_2254
〃
〃
〃
原因究明
過去に作成した他のお客様のフローを確認。(OneDrive)
あれ、『サブフォルダーを含める』の指定がある、Sharepointのトリガーには無かった。
これが原因みたいだな。
うーん、サブフォルダーも監視するのは、SharePoint コネクタの仕様みたいです。
なんで、同じパラメータが無いのだろう・・・
フローの改善
仕様なので、サブフォルダーは動作しないように、条件を加えることにしました。
※トリガーで取得した「フォルダーのパス」と変数で定義した「フォルダーのパス」の比較で異なる場合は処理終了
例:
変数定義:
Shared Documents/General/フォルダ監視テスト/Sharepointフォルダ/
DONEフォルダー時のトリガーで取得した「フォルダーのパス」:
Shared Documents/General/フォルダ監視テスト/Sharepointフォルダ/DONE/
無限ループはなくなった。☺
※フローの実行履歴
1月25日22:59 IN:テストデータ → OUT:テストデータ_20250125_2259
→トリガーの「フォルダーのパス」は正しいので、フロー成功
1月25日23:00 IN:テストデータ_20250125_2259
→トリガーの「フォルダーのパス」は正しくないので(DONE)、フロー取り消し済み
まとめ
SharepointとOneDriveのコネクタで異なる部分があるのは想定外でした。
てっきり同じかと思ってました。
みなさんも気を付けて開発してください。
参考情報(ChatGPT):
※結論
最近のコメント