こんにちは!
M365(特にSharePoint,Power Automate,Power Apps,Teams)に関する記事やちょっとした小ネタなどをご紹介していきます。
はじめに
Power Automateを使ってSharePointリスト内のハイパーリンク列の情報を別のリストにコピーするフローを作成した際、”SharePointにHTTP要求を送信します” アクションで陥ったエラーについて記載したいと思います。
仕様なのかバグなのか、、、原因までは突き止められていませんが、何かの参考になれば嬉しいです。
作成したフロー
フローを実行したところ、以下のエラーが表示されてしまいました。
コピー先のリストを変更して試したところうまくいくケースもあったため、ソースを比較してみたところ、⑥(または⑥')で最後に指定したリストの内部名に記号(ここでは[ _ ](アンダースコア))が含まれているかどうかの違いがありました。
回避方法:リストの内部名を変更
リストの内部名を変更することでエラーを回避できるのではと考え、試してみることにしました。
内部名はUIでは変更できませんが、以下のPowerShellコマンドで変更することができます。
※ 内部名を変更すると、リストのURLが変わってしまうため、ナビゲーションリンクや他の場所からリンクを貼っている場合は注意が必要です。
フローの再実行
フロー側でも⑥および⑥' のリストの内部名を修正し、再度実行してみます。
今度こそ、と思った矢先、同じエラーが出てしまいました。。。
根拠はありませんでしたが、リストの内部名の最初が大文字だったらどうだろうかと思い、再度以下のように内部名を変更してフローも修正してみました。
実行した結果、フローが正常に完了し、コピー先のリストにアイテムがきれいにコピーされました。
まとめ
HTTP要求の送信アクションはこれまであまり使ったことが無く、技術的な追及を後回しにとりあえず実装するところから取り掛かってしまった結果、思わぬところではまってしまいました。
今回はSharePoint側の内部名を工夫して回避ができましたが、本来それがエラーの原因となりうるものだったのか、本質的なところは引き続き探っていきたいと思います。
最後に
ハイパーリンク列のコピー方法について本記事では詳細は触れませんでしたが、とある方のブログ記事を参考にさせていただきました。
とても分かりやすく、また実現したかった結果も得られることができ大変感謝しております。
リンク掲載は控えさせていただきますが、気になる方は「PowerAutomate ハイパーリンク列 コピー」で検索していただくと出会えるかもしれません。