PowerAutomateの困った現象

PowerAutomateで作業をしていて、非常に困った現象のあれこれ

PowerAutomateでフローを作成している際に、実際に遭遇して困った現象を解説しておきます(1つ1つは小さいことで、1つの記事にするほどの内容ではないようなこと)
同じく困ってしまうことがあると思いますので注意のため、なるべく早い段階で読んでおいてほしいです
また、現象に遭遇するたびに追記していこうと思います

変数の自己参照が出来ない

変数の利用が出来ますが、その変数は自己参照が出来ません

VBAでよくあるのが、「i = i + 1」というような加算を行うような変数の更新です
これは変数「i」に代入する際に「i」を参照しています
これが自己参照です

PowerAutomateではこれが使用できません
変数の設定アクションでは、別の変数を使用する必要があります

実際上記の加算に関しては、専用のアクションがありますが
やはりVBAになれているものからすると、この自己参照が出来ないのは結構不便に感じます

もっとも単純な解決法は、2つの変数を作成することです
VBA的に記載しますと、「i = i + 1」が利用できないので
「i = i_2 + 1」と記載して加算を行う
「i_2 = i」と記載して計算結果を2つ目にも共有する
このように2つの変数を介することで、疑似的に自己参照の動きを作成できます

考えるだけで面倒ですね、なんとか自己参照できるようになってほしいものです

エラー発生時の挙動

エラー発生時は非常に面倒です

特に保存を許してくれないのが、1番のストレスです
エラーをとりあえず解決するまで保存を実行しようとしてもフローチェッカーが保存を阻んできます
これが案外面倒で、終了アクションを代入してそこでフローが終わるようにしてテストを行いたくても保存が出来ないからテスト出来ない

とりあえず全てのエラー個所にダミー値を入力していく
これが数が多いと面倒だし、何より修正前のデータを残しておきたいこともある

さらに最悪なのが、それなりに作業を進めてから誤って変数などを削除してしまってエラーになった場合です
PowerAutomateには操作を戻す機能が無いため、元に戻せません
なので新たに変数やアクションを作り直して再度設定を全て行う必要があります

これが保存後最初の操作ならまだしも、前述したようにそれなりの作業後にこの状況に陥ると前回保存時からの作業が全て吹き飛ぶため絶望的です
これで何度「やってもた・・・」と言ったか記憶に無いです、保存できてないので・・・

もう1つ面倒なのが、アクションの名前を付けづらくなることです

エラーが発生した状態では一定時間ごとにチェックが行われているためか、アクションの名前の変更を行っている際に1秒程度で強制完了させられます
瞬時に編集して確定させれば編集は可能なのですが、考えながら入力するのが当然なので漢字変換してるあいだに強制確定されて、入力内容が無くなってしまう

エラーチェッカーさんは、保存を阻むのだけはやめてくれないでしょうかねぇ

アクションが削除出来ないことがある

たまにアクションが削除できなくなることがあります
アプリのネットワーク状況によるものなのかもしれませんが、アクションの詳細メニューから削除を選択しても、うんともすんとも言わず、削除が行われない事があります

この場合はブラウザを再更新すれば、また削除を行えるようになります

これがまた上記のエラー発生時に出た時は非常にやっかいです
なんせ保存できないので、再更新かけられんですから

アクション名の後変更の要注意

アクション名は見出しにもなっているので、わかりやすい文字列にする方がフローを読みやすくなります

ただこれで注意してほしいのが、アクションを作成して後続処理を作成した後に名前を変更する場合です

と、いうのもPowerAutomateの場合に関数の引数にアクションを指定した場合、そのアクション名が文字列として指定されています
ここが後で変更した場合に自動的に変わってくれないのです

そのため、アクション名を変更することで後続の関数が動作しなくなることがあります
動的なコンテンツの追加では構わんのですが、PowerAppsへの引数名にも同じ現象が発生するので、アクション名は後で変更することは基本避けた方が良いです

というか、そもそもアクション名は変更しなくても良いと思っています
正直ここに詳細な内容を書くことが出来ないので、ここにその目的は持たせず、コメントを入力することが出来るのでフローの動作の説明はそちらで記載するようにして、アクション名は初期のまま変更しなくていいんちゃう、と今は感じております

当然動的なコンテンツの追加から選択する場合はアクション名をしっかり付けている方が分かりやすいです
でもアクション名に意味を持たせると、どうしても後で仕様変更だったり修正だったりで微妙につけた名称と違ってくることがあり、その場合には変更するのが非常に面倒ですよね、そもそも動いていたフローを必要以上にいじる必要もあるし
かといって全然ちゃう意味の名前になってたら、なんでこんな名前なんや?と無駄な思考の時間が発生します

なら最初っからアクション名には意味を持たせない、これでええんです
もちろんコメントはどこにも影響与えないので、後で変更はいくらでも可能です

動的なコンテンツの追加が変なとこに入る

動的なコンテンツの追加を行った際に、入力カーソルのある位置に入らないことがあります
というか、連続代入の時はほぼ入りません

いちいち入力カーソルをマウスクリックで指定してから代入を行う必要があります

ついでに言うと、shiftキーを押しながら矢印キーを押していって、入力カーソルを移動させてコピペ範囲を取得しようとしても範囲が広がらないことが多々あります
この場合は、矢印キーを使用せず、shiftキーを押しながらマウスクリックで指定することが出来ます

@が自動的に増え続ける

これはもはや怪奇現象ですが、条件分岐の条件設定に「@」を入力して、別の個所を選択したりしなかったりと発現する理由はよくわかりませんが、どんどん増えていきます

1文字だけ増えたり一気に数文字増えたり、最初見た時はおののきましたね

@自体がPowerAutomateの内部処理では特別な意味を持つ文字であるため、なんらかの補完処理なのかが暴走しているようです

対処としてはこれを文字列として指定すればいいので「”@”」というように文字列指定をして下さい
ってか関数では文字列指定は「’」シングルなんですが条件分岐での入力時はダブルでしないとダメみたいです、もう何がなんやらですね
ちなみに関数のString関数を使用しても良いです、もちろんその場合は「’@’」という引数設定になります

PowerAutomateの詳細画面

フローの詳細設定画面の説明、共有についての説明も行います

PowerAutomateの詳細画面では、フローの名称含め設定関係を行うことが出来ます

フローの詳細画面を開く方法
詳細画面を表示する

詳細画面は初期の作成時には経由しませんので、表示されません
一度保存してから開く必要があります

まずはマイフローを選択して、保存されたフローを表示してください
基本的にはクラウドフローを表示します
ここに表示されたフローから、名称の部分をクリックすると詳細画面が表示されます

ちなみに、この画面から直接編集画面に行く場合は、右側に表示されているえんぴつマークをクリックすると遷移できます

詳細画面の画像
詳細画面の画像

こちらがフローの詳細画面となります

ここでは基本的によく利用するのが、編集画面への移行と共有になります

まず、上のメニューから解説します
「編集」はフローの編集画面に移動します
「共有」はこのフローを別のアカウントに共有することができます
「名前を付けて保存」はこのフローの複製を名前を付けて行うことができます
「削除」「実行」はそのままの意味の動作です
「コピーの送信」は別のアカウントにこのフロー自体を送付できます
「オフにする」は自動実行フローを一時停止する場合に使用します
これ以外はほとんど利用しませんので、割愛します

共有とコピーの送信について

上記のメニューの中でややこしいのが、「共有」と「コピーの送信」です

この2つの操作はどちらも別アカウントで作成したフローを利用できるように共有する機能ですが、共有は別アカウントに所有権を持たせる機能で、コピーの送信は別アカウントを所有者として別のフローを新規作成してもらう形になります

共有の場合は、共同所有者という権限の元に自己アカウントと別アカウントの両方から編集が可能になります
これは主に、フローの設定値などを環境に合わせて変更したり、定期的に変更が必要な場合に別アカウントの人にフローの編集を行ってもらうことが難しい場合に有効です

別アカウントの人から条件設定を聞いてから自分でフローの編集を行えば、その別アカウントの人は新規条件にてフローを実行することが出来ます

一方、コピーの送信は別のフローとして新規作成を行います
なので自己アカウントにあるものはそのアカウントに共有されませんので自分の作ったものをオリジナルとして保管しておくことが出来ます

また、別アカウントの方で新規作成を行うため、そのフローの所有者となることが出来ます
この所有者権限は、2021年2月6日時点で譲渡が出来ない仕様となっています
そのため、作成元のアカウントを削除したりするとフローが利用できなる可能性があります
共有ではあくまでも共同所有者という権限で、所有者権限とは別権限になります

この共有とコピーの送信の機能に関しては、どちらの方が良いというものではありませんので、状況に合わせて使い分ける様にしてください

名前を付けて保存について

名前を付けて保存とは、このフローを別の名称を指定して複製する機能です
フロー自体には複製・コピーといった機能は無く、ここから既存のフローを元に作成する場合に利用できます

また、フロー自体が運用中であれば編集したりテストを実行することも出来ません
テスト自体が保存を実行しないと行えない仕様のためです

なのでフローの編集前に一度別フローとして作成してテストフローとして実行してみて問題ないことを確認してから、運用中フローを更新する。というような場合にも利用できます

オフにするについて

オフにするは、フローの実行を行わないようにする設定です
オフにした場合はこの場所が「オンにする」に切り替わりますので、ここをクリックすることでオンオフの切り替えを行うことが出来ます

基本的には自動実行フローにおいて、メンテナンスを行う際や一時的に利用を停止したい場合に使用します

ただ、この設定をオンにする際に注意が必要なのが、自動実行フローの場合にトリガーが保存されていることがあります
オフにしている間に、実行されなかったフローがオンにした瞬間に一気に連続して走ることがあります
そのため、自動実行フローを戻す場合にフローが実行されてほしくない場合はフローのアクションで一番最初に終了アクションを代入しておき、オンにして自動実行されるかを確認して実行されるようならすべての実行が終了されるまで待ってから、終了アクションを削除して本稼働させる、というような操作が必要になります

また、この設定をオフにした状態ではテスト実行も行えません
テストを行おうとした時点でエラー表示されます

詳細設定について

情報の詳細編集画面
詳細設定画面

フローの名称や説明を編集する場合は、左上の範囲「詳細」の右上にある編集を選択してください

ここを選択すると編集画面が右側に表示されます
ここから編集を行います

ここではフローの名称と説明を記入することが出来ます
フローの名称自体はフローの編集画面でも編集可能です

説明は後で自分が見てわかるようにしっかり記載を行っておいてください

PowerAutomateについて

PowerAutomateについてと新規作成の方法について

PowerAutomateとは、Microsoftアプリの1つで契約内容によって制限が異なります
基本的にアプリの利用に関してはMicrosoftアカウントがあれば利用可能です

また、Webアプリとデスクトップアプリがありますが、根本的に機能がちがっておりデスクトップ版は2021年1月25日現在でプレミアム機能となっております
そのため、このサイトでの解説は全てWebアプリでの解説となります

先頃Windows10ユーザーに対して、無償版のPowerAutomateのデスクトップ版が提供されましたので、当サイトでも解説をしていこうと思います(2021年4月19日追記)

Microsoftアカウントを取得していれば、WebのMicrosoftアプリページに移動することで利用が開始できます

Officeアプリから全てのアプリを表示する
すべてのアプリを選択する

WebのOfficeを開くと左のアプリ一覧の一番下に、すべてのアプリを開くボタンがありますので、ここをクリックします

PowerAutomateの起動方法
PowerAutomateを選択する

一覧に表示されたアプリの中から「PowerAutomate」を選択します
ここに表示されているアプリは、アカウントによって変化します
Web版なので、PCにインストールしているかどうかは関係ありません

フローを新規作成する

新規作成を始める操作方法
新規作成を行う

新規作成を行う場合は、左のメニューから「作成」ボタンを選択します
さらにフローというのは最初に実行条件である「トリガー」というものを最初に設定します

作成した後でも変更は可能なので、「自動化したクラウドフロー」や自動実行のトリガーは後でも大丈夫です
一番テストを行いやすい、手動実行トリガーが最初に選択するのがおすすめです

「インスタンスクラウドフロー」を選択して、次の画面を表示します

手動実行トリガーの選択方法
「手動でフローをトリガーします」を選択する

表示された画面でトリガーの選択とフローの名前を指定できます
フローの名前は後で変更可能なので、とりあえず空白で大丈夫です

「手動でフローをトリガーします」を探して選択して、チェックボタンを付けてください
基本は一番上に表示されていると思いますが、見当たらなければ種類は多くは無いので探してください

新しいアクションの表示方法
処理アクションの追加

作成されると画面が作成画面に切り替わります
この時点でトリガーはすでに作成されています
1番目にあるものがトリガーです

トリガーはフローの中では特別なもので、常に最上部にあり1つしか指定できません

新しいステップをクリックすると、アクションの選択画面が表示されます

表示したアクションから条件コントロールを選択する
アクションの選択画面

全てのアクションが表示されます
下向き矢印で区切られていますが、この範囲より上がアプリで下が実際に追加されるアクションとなります

なので、まずは上の部分から利用したいアプリを検索して選択します
そのあと選択したアプリに対応するアクションが表示されるので、そこから追加を行っていきます

まずはアプリの左上にある「コントロール」を選択してください

条件コントロールアクションの追加
条件を指定する

コントロールには、制御系のアクションがあります

今回はここから条件アクションを追加します
条件アクションはVBAでいうIF分岐になります
ここで指定した条件によってフローの流れを分岐させることが出来ます

手動実行時の引数の設定追加方法
手動トリガーの引数設定

条件式に設定する値を作成します
前にある処理はトリガーのみなので、ここに値を作成します

トリガーのタイトル部分をクリックして展開すると、画像のような表示になります
ここから入力の追加をクリックします

引数に整数値を設定する方法
引数の型指定

すると、引数の型の指定表示となります
PowerAutomateでは変数は型が存在しています
型自体は別記事での解説を行います

今回は整数値を指定できる「数」を指定してください

初期値の設定表示画面
数を指定した初期設定

「数」を指定すると、画像のような表示になります
これがこの引数の初期設定になります
このままでも利用可能ですが、引数の名称だけは変更した方が分かりやすいです

引数の名称設定個所
引数の名称を変更

引数の名称を「数」から「任意の数値」に変更しました
ここは引数名ですが、日本語入力は問題なく利用できますので、VBAでの変数名の付け方をイメージしてもらって良いですね

右側の入力ボックスには既定値の設定が行えます
今回は特に指定しなくても良いです

参照設定に作成した引数の名前を設定する
参照対象の設定

引数の設定が完了したら、その引数を条件アクションに設定します
この時に対象となる引数は、上記で設定した名称がリストに表示されます

条件の設定値を指定する
条件式の作成

中央のボックスは条件式の比較方法です
日本語で記載されているので、特に詳細に説明することも必要は無いとは思います
今回はそのままの「次の値に等しい」を指定しています

右のボックスには比較対象の入力値を設定します
今回はテストのため「0」を指定しておきます

これで引数が0かどうかで分岐処理を行うことが出来ます

フローの保存を実行する
上書き保存の実行

作成が完了したら、上書き保存を実行します
PowerAutomateは自動保存は行わないので、保存を必ず実行するようにしてください

ちなみにエラー発生状態では保存が出来なくなります
原因の特定が出来なくなり保存が出来なくなることがありますが、その場合はWebアプリを終了すれば保存データに戻ります

この保存操作を行う際にフローチェックも行われているので、エラーが出た場合は修正を行ってください

動作の確認を行うテスト実行ボタン
動作テストボタン

動作確認には自動フローでもどちらであっても、このテストメニューから行えます
ここから実行することで、引数があるものは指定して実行することが可能です

実際に実行されるので、テストとはいえ本運用と同じ動きをするのでメール送信をしたりするような外部に対して処理を行っている場合は、事前に注意して実行してください

手動でテストの実行を行う
実行方法の確認

フローの動作のトリガーの設定画面が表示されます
手動トリガーであれば基本的には手動で構いません

自動を選択した場合は、過去に実行した履歴での実行を行う場合に利用します
過去履歴を選択しない場合は、この指定を行った後にトリガー操作を行う必要があります

引数値を指定して実行する操作
引数の設定

手動を選択した場合に、引数がある場合はここで指定を行う画面が表示されます
今回は条件分岐の条件である「0」を指定します
複数の引数がある場合などは、ここに一緒に表示されます

設定値を入力出来たら、下にあるフローの実行をクリックして実際の実行を行います

フローの実行開始メッセージの表示
実行の開始表示

フローが正常に実行されると、画像の画面が表示されますので完了ボタンをクリックしてください

ここは実行の完了であって、フローの処理が完了したわけでは無いので正常表示であれば特にみることはありません

実行結果の確認
実行結果の表示

完了ボタンをクリックすると、実行結果画面が表示されます
処理に時間のかかるものであれば、処理の実行段階が表示されていきます

アクション名の右上に緑のチェックマークの付いたものは正常に実行されたものに付きます
ここを確認することで実行されたルートの確認や、エラーの発生したアクションを確認できます

今回はこの条件アクションは実行され、条件式の結果もここで確認できます
「true」が返されていることから、条件式が真になったことが分かります

trueの場合には、この後のはいの場合に指定したアクションが実行されます
falseの場合には、いいえの場合が実行されます
この条件式は複数条件にすることも出来ます

解説についての注意点

本記事の作成日は2021年1月31日です
この時点での環境で画像等は作成しておりますが、このアプリはいまだ多くのプレビュー機能やアプリの追加が行われています
また、微妙なマイナーチェンジや機能の統合などが日々行われています
そのため、このサイトでの記事と実際の画面が違う可能性があります

また基本的に無いとは思いますが、アクション等の削除も考えれらます
Microsoftもアプリの向上を行っておりますが、それに伴った仕様変更は存在することはどうにもできません
そのため、このアプリで作成するフローは自動的に実行される場合が多いですがたまにはメンテナンスをしてあげてください