IT仕事 PowerAutomate

GASで作成したスクリプトをPower Automateで使うには(めちゃx2苦労した話)

投稿日:

ChatGPTに「GASで作成したスクリプトをPowerAutomateで使うにはどうすればよいか」と聞いたら、「Google Apps ScriptをWeb APIとして公開し、Power AutomateからHTTPリクエストで呼び出す」という回答とその方法を返してきた。

やつの提案は極めてシンプルで、簡単そうに見えた。
しかし、提示された方法通りにやっているにもかかわらず、何度やってもうまくいかない。奴が時々そうであるように、平気でうそをついているのだ。

そこで、ググって調べてトライ&エラーに切り替え。
一日目の午後を費やし、翌日の午前も半分使ったあたりで、ようやくできた。。。

結論から先に言うと、ChatGPTの提案では、そのまま進めても絶対にうまくいかない。
PAのフローでStatus code 302(リダイレクト)エラーが返ってくるところから先に進む方法を教えてくれない。
エラーを受けて、そのあとの処理が必要。Power Auotomate の HTTPアクションが 302 に対応しない。

まあ、ここまでわかるのに半日かかった。
最終的にはPOST形式の処理をしたかったのだが、どこが悪いのか確かめたかったので、最初はGET形式のフローを作って、試行錯誤した。

なお、PowerAutomateは、アドバンスエディタでは、目的のフローを作れないところも、問題を複雑にし、解決に時間がかかった。クラシックエディタで「実行条件の構成」を設定しないといけない。これを設定しないとリダイレクト失敗後の後続のフローが実行されない。
ちなみにChatGPTに聞いたら、アドバンスエディタでも実行条件の構成を設定できると言われたが、どこをさがしても該当項目が無い。できない。嘘つき。

ポイントは2つ。
PAフローのHTTPリクエストは2つ連続で作ること。一つ目は普通に作るが必ずエラーになるので、二つ目でエラー文を解析してそこから outputs(‘HTTP’)[‘headers’][‘Location’] でリダイレクト先URLを取り出す。PAはテスト実行の際に出力内容を表示してくれるので、それをみたらoutput~の意味がわかるはず。
また、「実行条件の構成」を設定して「失敗したときだけ二つ目を実行」にすること。成功することはないけど。

あと、GETは2段処理のHTTPリクエストは両方ともGETでいいが、POSTは1段目はPOST、2段目はGETでないとうまくいかない。なのでPOSTのフローを作るのにもエネルギーを費やした。疲れた。

以下は、実際に思い通りに動いたGETとPOSTそれぞれのPAのフロー例。

GET

POSTはJSONフォーマットを本文に入れて値を渡さなくてはいけないので面倒。それよりは簡単に値をURLに https://script.google.com/・・・exec?name=abc&age=25 のように簡易にできるGETを、まず先に作るほうが良いと考えた。

また、BODYには式として、outputs(‘HTTP’)[‘headers’][‘Location’] を入力する。

POST

GETで思った通りの動作がされることを作成してから、そのPAフローをコピペして、それをもとにPOSTに取り掛かった。図の該当箇所を赤で囲っていないけど、
先に書いたように、POSTの後にGETする。

うまくいったかな? うまくいかない方は、なんとか頑張ってみてね!

-IT仕事, PowerAutomate

執筆者:

関連記事

no image

VBA-JSONはダメだったがPowerQueryはよかった

オンラインショップの在庫管理目的で、業務システムを動かしているAccessかExcelで、何とかしてWebの商品マスターAPIのデータを取ってきたい。 最初、VBA-JSONというのを使えばいいのかな …

no image

ExcelWebAddin でWebフォームを自動入力

たまーーに、おじさんの不動産物件の入力をボランティアでお手伝している。 電話オーダーが多く、また前回メールで問い合わせたもんだけど・・・という方が結構多い。ありがたいことである。 その際、見積システム …

no image

フォームを直接Accessで印刷プレビューし、閉じるときのイベントで処理をしたい

困ったこと: 前提として、自分とこのシステムは、フォームを直接Accessで印刷プレビューして、そのまま印刷できるように作ってある。 しかし、リボンに印刷プレビューを閉じるボタンがある一方で、フォーム …

Jazzy Formsで見積を計算してもらいその結果をメールで送る方法

やりたいことは、 「Webサイトの見積フォームを設置し、それを使ってお客さんに見積をしてもらい、その見積結果を管理者宛に送信する」 ・・・というもの。 WordPressのプラグインで、「Jazzy …

no image

XOOPSとWordPressが同居しているDBでWP側のデータをいじりたいとき。

かたやEUC、かたやunicodeなので、なかなか思ったようにいかず、しばらく試行錯誤。 苦労した結果、以下の手順でやればうまくいきそうなので、覚え書き。 ■PhpMyAdminで既存DBからエクスポ …