緒言
Power AutomateでSharePointリストの添付ファイルのURLをそのまま承認アクションに貼り付けると、ファイル名に空白(スペース)が含まれている場合にリンクが壊れてしまうという問題発生。
ただencodeUriComponent
を使うだけでは解決できませんでした。
問題詳細
このAbsoluteUriを抽出して承認アクションに貼ると、下図のように空白部分でリンクが途切れてしまう。
対策失敗例
取得した AbsoluteUri
全体をencodeUriComponent
関数で囲んでみると、下図のように:
や/
までエンコードされて失敗。
https%3A%2F%2Fyourtenant.sharepoint.com%2・・・
対策成功例
concat(
replace(
items('For_each')?['AbsoluteUri'],
last(split(items('For_each')?['AbsoluteUri'],'/')),
''
),
encodeUriComponent(
last(split(items('For_each')?['AbsoluteUri'],'/'))
)
)
上記のようにファイル名部分だけエンコードすればOK。
リスト名に空白が含まれてたりすると同様のリンク途切れ発生するのでさらなる工夫必要
結言
いろんなことを想定しないといかんなと学びました。。。
最近エンコード関係でつまづきすぎ。。。