Power Automate Desktop でフローに入力変数が渡せなくなった

はじめに

当サイトでかつて紹介したことのある無料RPAツール「Power Automate Desktop」(以下PAD)で不可解な機能ダウンが行われた模様だ。

その内容とは、他のフローを呼び出す際に入力変数が渡せなくなったという深刻なものだ。

この仕様変更に関して開発元のマイクロソフトから特にアナウンスがあった様子はなく、どうやら昨年あたりのバージョンアップの際に密かに行われたのではないかと想像している。

大変残念なことが起きてしまったようだが、取り急ぎ現状の把握と対策について考えてみたい。

影響が出たのは「Desktop フローを実行」アクション

具体的に影響が出たのは、アクション一覧の「フローを実行する」配下にある「Desktop フローを実行」のアクションだ。

このアクションは、他のフローをサブルーチンの用に呼び出せるアクションだ。
呼び出しの際には当然ながら入力変数の受け渡しが可能となっていたのだが、なぜかこの部分が無効化されてしまったのだ。

フロー設定の画面から入力変数が消えた

それでは実際にフローの設定画面を見てみよう。

前出のアクション一覧画面から「Desktop フローを実行」をクリックしてみよう。
すると以下のような画面が表示されるはずだ。

ここで赤枠で囲まれた部分をクリックすると、プルダウンリストから作成済みの他のデスクトップフローを選択することが可能だ。

今回は、入力変数と出力変数をそれぞれ一つずつ持つ「引数持ちのフロー」という名前のフローを選択した。
下図のプルダウンリストの下から2番目のフローだ。

すると下図のように選択した「引数持ちのフロー」が表示されるようになる。
ところが、このフローには入力変数と出力変数がそれぞれ一つずつ用意してあるにもかかわらず、それらの変数が何も表示されず、名前だけが表示されるようになってしまったのだ。

以前にどのように表示されていたのかはキャプチャーを取っていなかったので示せないのだが、ここでマイクロソフトの公式サイトを見てみよう。

実は上図の「詳細」をクリックすると、ブラウザーに公式サイトが表示される仕組みになっている。
以下は、そのサイトの一部をキャプチャーした画像だ。

これによると、デスクトップフロー名の下に入力変数の設定が行える領域が表示されていたようだ。
公式サイトにも書かれていることがなぜ実現されなくなったのかは不明だが、もしかすると有償版では、今でもこのように表示されるのかも知れない。

もちろん、今回指定した「引数持ちのフロー」には入力変数と出力変数が設定済みだ。
ちなみに、このフローの実際の変数の設定状況は以下の通りだ。

NewInput と NewOutput という名前の変数が用意されていることが分かるだろう。
ちなみに前者が入力変数で、後者が出力変数だ。

だが、この変数に値を設定する方法は失われてしまったようだ。

過去に作成したフロー呼び出しの入力変数は有効になっている

前述のように、別フローを呼び出す際に入力変数を渡すことはできなくなってしまった。
ただし、過去に作成したフロー呼び出しで渡していた入力変数は、仕様変更後も削除されたりすることなくきちんと渡されているようだ。

実際に業務で使用していたフローしか実例がないので、詳細をお見せすることはできないのだが、過去分までが全て台無しになったというわけではないようだ。

もっとも、既存のフロー呼び出しの部分を編集することはやめておいた方がよいだろう。
これまで引き渡されていた入力変数が、編集の結果引き渡されなくなってしまうとも限らない。

対策

結論から先に書いてしまうと、効果的な対策はない。
残念ながら、当方が参画していたプロジェクトでは、PADの使用を中止して別の製品を採用するに至っている。

ただ、いくつかの妥協をすればPADを使い続けられないこともない。

考えられるやり方としては、別フロー化していた処理をサブフロー化することだろう。
入出力変数については、グローバル変数を利用すれば引き渡すことは可能だ。

ただし、フローのサイズが肥大化しまうのと、ロジックの見通しが悪くなってしまうことは避けられない。
つまり、あまりおすすめできるやり方ではない。

どうしてもPADを使い続けなければならない場合以外はやめた方が賢明かもしれない。

移行先の製品について

今回の仕様変更を受けてPADの使用を諦める場合、移行先の製品を探す必要がある。
ただ、こちらも帯に短したすきに長しで中々ぴったりな製品は簡単には見つからないようだ。

PADに類似する製品は数多くあるのだが、無償のものでPADと同程度の機能が実現できそうなものは調査時点ではなさそうだった。
ちなみに、調査を行ったのは2023年の冬頃だ。

ほとんどのRPAツールは有償となっていて、コストも相応となっている。
その代わり、有償を受け入れるならば、PADと同等かそれ以上の機能を持つツールはたくさんある。

あるいは、プログラミングを厭わないのであれば、Pythonなどの言語を使ってしまうのも手だ。
言語系は基本的に無償なのでコスト的にも有利だ。

その反面、PADほど簡単ではなく開発時間もかかると思われるが、PADよりも細かい制御ができるだろう。

どちらの方法がよいかは、状況に応じて決めるしかないだろう。

まとめ

PADでフロー呼び出しの際に入力変数を渡せなくなった仕様変更について考察してみた。
PADを使い続けるなら、別フロー化をやめてサブフロー化するなどすればある程度の対応は可能だが、あまりおすすめはできない。
別製品に移行するなら、有償のRPAツールを使うか、Pythonなどの言語系でプログラミングをするかになるだろう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です