[Power Automate] PADでSharePointからドキュメントを安全にダウンロードする方法

Robinコード

**REGION 定数定義
SET TARGET_URL TO $'''https://★ドメイン名★.sharepoint.com/sites/★SharePointサイト名★/Shared%%20Documents/Forms/AllItems.aspx'''
SET TARGET_FILE_NAME TO $'''★ダウンロードしたいファイルの名前★'''
**ENDREGION
WebAutomation.LaunchChrome.LaunchChrome Url: $'''%TARGET_URL%?view=7&q=%TARGET_FILE_NAME%''' WindowState: WebAutomation.BrowserWindowState.Maximized ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
# 三点リーダのアイコンをクリック
WAIT 1
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {
    const buttons = document.querySelectorAll(\'button[data-automationid=\"FieldRender-DotDotDot\"]\');
    buttons[0].click();
}''' Result=> Result
# ダウンロードボタンをクリック
WAIT 1
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {
 	const button = document.querySelectorAll(\'button[name=\"ダウンロード\"][data-automationid=\"downloadCommand\"]\');
	button[0].click();
}''' Result=> Result
WAIT 1
WebAutomation.CloseWebBrowser BrowserInstance: Browser

フロー定義

1分解説

SharePoint ドキュメントへのファイルパスには「%」が含まれている。
「%」はPAD上では変数を囲うために使用しているため、そのままでは不正なURLとエラーになってしまう。そのため「%%」とすることで%を文字として扱っている。

クリックする場所が異なるだけであとは「[Power Automate] PADでSharePointからファイルを安定してダウンロードする」と同じであるため、解説省略。

懸念点が1点あり、URL中に含まれる「view=7」が固定値でよいのかの確証が取れていない。
私の環境では2つのSharePointサイトにおいて、キーワード検索をした際の値はいずれも「7」固定であった。
また、ドキュメントの列の並び替えをしてもその値が変わることはなかったのでいったんは良しとする。

ファイル名が重複していると、検索結果に複数のファイルが表示されてしまうため、別のファイルをダウンロードする可能性がある。
そのためファイル名に気を付ける、またはJavascriptのquerySelectorAllで複数の要素が取得できた場合にはエラー値を返却し、フローの処理を中断するという方法がある。
(重複しえないファイル名を付けるほうがずっと楽ではある)

動作確認

試行回数:50回
実行結果:50個のファイルがダウンロードされたことを確認