Power Automate Premium のライセンスがあると、デスクトップフローでクラウドフローのアクションが利用できるようになり、ちょいちょいURIエンコード・デコードが必要になったので、メモ書きです。
Power Automate for desktop クライアント のバージョン
バージョン: 2.53.180.25037
URIエンコード
標準アクションでURIエンコードするアクションがないので、 PowerShell スクリプトを利用してURIエンコードします。
デスクトップフローとしてはこんな感じ。
コピペで貼れるようにRobinも記載しておきます。
**REGION URLエンコード SET URL TO $'''https://www.microsoft.com/ja-jp/power-platform''' Scripting.RunPowershellScript.RunPowershellScript Script: $'''#HttpUtilityクラス を有効化 Add-Type -AssemblyName System.Web # System.Web.HttpUtility クラスを使用して URL をエンコードします $encodedUrl = [System.Web.HttpUtility]::UrlEncode(\"%URL%\") # 結果を表示します $encodedUrl''' ScriptOutput=> PowershellOutput Text.Trim Text: PowershellOutput TrimOption: Text.TrimOption.ToEnd TrimmedText=> TrimmedText **ENDREGION
変数の設定
URIエンコードしたい文字列を変数に設定しています。 「https://www.microsoft.com/ja-jp/power-platform」のURLを変数に設定します。
Robin
SET URL TO $'''https://www.microsoft.com/ja-jp/power-platform'''
PowerShell スクリプトの実行
スクリプト内で、デスクトップフローの変数が利用できるので、先ほど作成した変数をPowerShell スクリプトの中に設定します。
#HttpUtilityクラス を有効化 Add-Type -AssemblyName System.Web # System.Web.HttpUtility クラスを使用して URL をエンコードします $encodedUrl = [System.Web.HttpUtility]::UrlEncode("%URL%") # 結果を表示します Write-Output $encodedUrl
Robin
Scripting.RunPowershellScript.RunPowershellScript Script: $'''#HttpUtilityクラス を有効化 Add-Type -AssemblyName System.Web # System.Web.HttpUtility クラスを使用して URL をエンコードします $encodedUrl = [System.Web.HttpUtility]::UrlEncode(\"%URL%\") # 結果を表示します Write-Output $encodedUrl''' ScriptOutput=> PowershellOutput
テキストのトリミング
PowerShell スクリプトの実行結果に改行が入るので、改行を削除します。
改行の削除にはテキストのトリミングを利用しています。
テキストのトリミングという名前のアクションは2つあるので注意が必要です。
トリミング対象で「末尾の空白文字」で改行を削除できます。
Robin
Text.Trim Text: PowershellOutput TrimOption: Text.TrimOption.ToEnd TrimmedText=> TrimmedText
実行結果
Power Fx 版のデスクトップフロー
Power Fxを有効にしたデスクトップフローだともうちょっと簡単にできます。
デスクトップフロー作成時に「Power Fx が有効」のチェックを入れると、デスクトップフローでPower Fxが利用できます。
フローの内容
1行でできます!
変数の設定時に値に「=」をつけるのが従来のデスクトップフローと違う点ですが、Power Fx の関数が利用できるので関数が対応していれば、式で柔軟に対応できます。
Robin
SET URIEncode TO $fx'=EncodeUrl("https://www.microsoft.com/ja-jp/power-platform")'
実行結果
さいごに
Power Automate Premium のライセンスがあると、デスクトップフローからクラウドフローのアクションが利用できるようになります。
クラウドフローのアクションが利用できるようになりかなり利活用の幅が広がりますが、設定値としてURIエンコードの値が必要な場合があり、ちょいちょいURIエンコードしたい時があるので今回の方法を覚えておくとちょっと便利になります。
URI デコード
URIデコードしたい場合の記事も書きました。
flali.hatenablog.com