僕の環境では今年の10月あたりから、「警告! フローが実行されていません」という件名のメールが届くようになりました。
▼スパムのように…
中身を見てみると、
▼あと7日でこのフローは無効化するよ!との事
「過去 180 日間」ってところは60日間だったりする事もありますが、とにかくこの警告メールが届いてから7日でフローが無効化されてしまうとの事。それは困る!下のリンクを見ても別にその対処法が書かれているわけでもない…。
僕の場合、毎日動くフローもあれば、1年に1回や半年に1回などで便利に利用してるフローがあるんですよね。また、仕事柄デモを仕込んでいてたまに使うんです。そういうものも含めて無効化されてしまっては困るし、毎回そのためにフローを実行させるのも微妙。
■実際に該当するフローを見てみる
例えばこのメール。そもそも未だに「 Microsoft Flow 」だし、なんか画像が壊れていたりと、ツッコミどころはありますが…。
「【利用中】 Flic 」ってフローは、Flic って物理ボタンが押されたら位置情報込みでデータが貯まって Microsoft Teams に通知されるというフロー。通勤してる時は良く使ってたけど、在宅勤務で通勤しなくなってから全然使っていませんでした。で、このフローを見てみると、
▼たしかに無効化されています
もちろん無効にした覚えもないし、【利用中】って書かれてあるのに無効化されているのが哀愁漂っています。そして、ふと使った時に動かなかったらガッカリですよね。
▼中を見ると状況が「中断」だし、メニューには「オンにする」、つまり今オフであるという事ですね
■なんでこうなった?
困るんで勝手に無効化されるのを止める方法はないのか?と、管理センターを色々見渡したけどそんな設定項目はなく。SNSでつぶやいたところ、 Taiki Yoshida 氏が教えてくれました。
自動化フロー、スケジュールされたフロー、インスタント フローの制限事項 | Microsoft Docs
https://docs.microsoft.com/ja-jp/power-automate/limits-and-config#expiration-limits
この下の方ですね。 Microsoft 365 プランの場合は90日。トリガーが動かなければフローが期限切れになってオフになるとの事。以前はこんな事がなかったので、おそらく今年の10月あたりに新しく加わった制限事項という事でしょうか。マジか…。
■対応方法
上の制限事項内にも書かれていますね。トリガーを調整するか、単体プランを購入してください、との事です。うまいなぁ!ある程度使って便利になれたところで制限事項を設けてちゃんと買ってちょ!って感じ。ただ、まぁ Microsoft 365 のプランは以前から僕は個人的には試用版みたいな位置付けだと思ってきているので、別に怒り的なものはないです。便利だと思ったら追加でお金を払いましょう!というのはまぁそうですよね。とはいえ…さて、どうしたものか。
■対応方法2
実はSNSでやりとりをした後に、海外では Power Automate で有名な「 John Liu 劉 」さんが、「 for now, use Flow Management to re-save it every 30 days. 🙁 or buy premium 🙂 」って返事をくれたんです。あぁ!なるほど、管理系のコネクタ使えばなんとかなるのかな?と。今まで使った事のないコネクタなので知りませんでした。
ちょっと試してみたいと思います。とりあえず試すので、複数フローを考慮せず、特定のフローにのみ適用させます。あっ、正しいかどうかは知りませんよ!なんせここだけの話、 Power Automate 触ったの1カ月ぶりくらい…。
あと、わざと躓くであろうポイントをわかってもらいたく、変な順番でフロー組んでいます。ご理解ください。
※有識者の方々、間違いなどあったらご指摘よろしくです。また、もっと良い方法があったら是非アウトプットお願いします。需要はありそうです。
■勝手に無効化防止フロー
▼トリガーはこんな感じで月1回発火
次のアクションで使うのは「 Power Automate 管理」というコネクタ。一覧から探すのが面倒なので「管理」で検索すれば出てきます。
▼コネクタ名が途中で切れてるけどコレ
次にアクションを探します。 Johnさんは re-save って言ってたけど、日本語表記だとどれだろう?と探すと、
▼「フローの更新」かな?
▼とりあえずここまで埋めてみました
「フローの表示名」ってのはちゃんと後で動いたかわかるように「(更新)」まで入れてます。フローの状態はおそらく「 Started 」でしょう。ただ、「フローの定義」ってなんだ?ってところで躓くわけですね。
で、大抵こういう場合って何かに対して何らかのアクションを起こしたい場合に必要な項目が足りない時は、その前に情報を取得するアクションが必要だったりするんですよね。ここ躓きポイントです。今回も、「フローの更新」の前に、情報を取得するアクションが必要なんですよね。
▼同じく Power Automate 管理コネクタ内の「フローの取得」アクション
▼こういう感じに間に突っ込む
その後に、「フローの更新」アクションに戻って「フロー定義」をクリックし、
▼動的な値の追加の方のボタン(左の稲妻のヤツ)をクリック
▼「フローの取得」アクション内の値を探すと
▼「フロー定義」あった!
▼最終的には「フローの更新」アクション内はこんな感じ(下のよくわからない項目は見なかった事にして無視…)
▼1トリガーに2アクション
とりあえず完成したので、テストしてみます。
▼「保存」してから「テスト」
▼タイマートリガーだけど今すぐ試したいので「手動」
▼「フローの実行」
▼とりあえずエラーもなく動いたみたい
■無効化されたフローを確認
▼おぉ!なんか無効化が解除されてる
▼中を見てもOK
という事で、無効化されたフローを有効化するためのフローってわけじゃないけど、フローが更新されると自動で有効化になるようですね。後はこれが1ヶ月ごとにフローが動いて更新されるので、たぶん警告メールも届かないだろうし無効化もされないハズです。60日?90日?経たないとわからないので今は断言できませんが。
また、今回のは1つのフローの対策だけど、複数フローで対策する場合はまた違ったフローの実装方法にしないといけませんよね。さすがにもう力尽きたのでそっちは紹介しないどころか僕も作っていませんが。なので、これをご覧の Power Automate 有識者のみなさん!是非もっと良い回避の実装方法があれば是非アウトプットよろしくお願いします。