UiPathでファイルダウンロードを自動化する完全ガイド
UiPathでファイルダウンロード操作を自動化する方法を徹底解説。ダウンロードを待機アクティビティ、HTTPリクエスト、従来の方法など、3つの主要なアプローチを実例付きで紹介します。
この記事について
UiPathでファイルダウンロード操作を効率的に自動化する方法を、初心者から上級者まで理解できるよう詳しく解説します。状況に応じた最適な手法を選択できるよう、複数のアプローチを紹介します。
ビジネス自動化において、Webサイトからのファイルダウンロードは頻繁に発生する作業です。UiPathでは、状況や要件に応じて複数の方法でファイルダウンロードを自動化できます。
ファイルダウンロード手法の概要
UiPathでファイルダウンロードを実現する主な方法は以下の3つです:
ダウンロードを待機
2021.10から追加された専用アクティビティ。画面操作によるダウンロードに最適
HTTPリクエスト
直接URLからファイルを取得。固定URLが分かっている場合に効率的
従来の監視方式
繰り返し処理でファイル存在を確認。古いバージョンでも利用可能
🎯 ダウンロードを待機アクティビティ
概要
「ダウンロードを待機」アクティビティは、UiPath 2021.10から正式に追加された最新の手法です。このアクティビティは指定したフォルダーを監視し、新しいファイルが生成されるまで待機します。
動作原理
このアクティビティは「ブラウザからのダウンロードを監視」しているのではなく、「指定したフォルダに生成される新規ファイルを監視」しています。既存ファイルの上書きでは検知されないため注意が必要です。
基本的な使用方法
アクティビティの配置
アクティビティパネルから「ダウンロードを待機」を検索し、ワークフローにドラッグ&ドロップします。
場所: ワークフロー
→ システム
→ ダウンロードを待機
監視フォルダーの設定
プロパティパネルで「ダウンロード フォルダー」を設定します。
デフォルト: C:\Users\[ユーザー名]\Downloads
Tip
ブラウザの設定で「ダウンロード前に各ファイルの保存場所を確認する」をOFFにしておくと安定して動作します。
ダウンロードアクションの追加
アクティビティ内の「本体」セクションに、実際にダウンロードを実行するアクション(クリックなど)を配置します。
出力変数の設定
「ダウンロードされるファイル」プロパティに、FileInfo型の変数を設定してダウンロードされたファイル情報を取得します。
実装例
基本的なワークフロー構成
1. ダウンロードを待機アクティビティ
├── 監視対象フォルダー: C:\Users\[ユーザー名]\Downloads
├── タイムアウト: 300秒(5分)
└── 本体:
└── クリック(ダウンロードボタン)
2. メッセージをログ
└── 出力: "ダウンロード完了: " + downloadedFile.Name
注意事項とベストプラクティス
- 上書きダウンロードの非対応: 既存ファイルを上書きする場合は検知されません
- フォルダー操作の禁止: 監視中にフォルダー内でファイルを削除・移動すると誤動作の原因となります
- 一時ファイルの考慮: Office製品などが生成する一時ファイルに注意が必要です
- ファイル生成のタイミング: アクティビティ実行後に生成されるファイルのみが検知対象です
🌐 HTTPリクエストを使用した方法
概要
ダウンロード先のURLが既知の場合、HTTPリクエストアクティビティを使用して直接ファイルを取得できます。この方法は画面操作が不要で、より確実で高速な処理が可能です。
実装手順
変数の準備
必要な変数を定義します:
- downloadUrl (String): ダウンロードするファイルのURL
- fileName (String): 保存するファイル名
- fileContent (Byte[]): ダウンロードしたファイルの内容
HTTPリクエストの設定
HTTPリクエストアクティビティを配置し、以下のように設定:
- エンドポイント:
downloadUrl
- メソッド:
GET
- 出力:
fileContent
- 出力タイプ:
Byte[]
ファイル保存
「ファイルに書き込み」アクティビティで取得した内容をファイルに保存:
- ファイル名:
"C:\Downloads\" + fileName
- コンテンツ:
fileContent
コード例
' URL設定
downloadUrl = "https://example.com/files/sample.pdf"
fileName = "sample_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf"
' HTTPリクエスト実行後、ファイル保存
' (HTTPリクエストアクティビティとファイルに書き込みアクティビティを使用)
' 成功ログ
System.IO.File.Exists("C:\Downloads\" + fileName) = True
HTTPリクエストの利点と制限
🔄 従来の監視方式(繰り返し処理)
概要
UiPathの古いバージョンや「ダウンロードを待機」アクティビティが利用できない環境では、繰り返し処理を使用してファイルの存在確認を行う方法があります。
実装例
変数の初期化
- chkFileExist (Boolean): False(初期値)
- filePath (String): ダウンロード先のフルパス
- maxRetryCount (Integer): 最大リトライ回数
繰り返し(前判定)の設定
条件: chkFileExist = False
本文内に以下を配置:
- パスの存在を確認アクティビティ
- 条件分岐(ファイルが存在しない場合は待機)
ファイル存在確認
「パスの存在を確認」アクティビティで対象ファイルをチェック:
- パス:
filePath
- 出力:
chkFileExist
待機処理
ファイルが存在しない場合は数秒待機してから再チェック
ダウンロード開始
Step 1ユーザーがダウンロードボタンをクリック
監視開始
Step 2繰り返し処理でファイル存在をチェック開始
待機・リトライ
Step 3ファイルが見つからない場合は5秒待機して再チェック
ダウンロード完了
Step 4ファイルが検出されたら次の処理に進む
手法の比較と選択指針
手法 | 複雑さ | 確実性 | 速度 | 対応バージョン |
---|---|---|---|---|
ダウンロードを待機 | 低 | 高 | 中 | 2021.10以降 |
HTTPリクエスト | 中 | 最高 | 最高 | 全バージョン |
従来の監視方式 | 高 | 中 | 低 | 全バージョン |
実践的な応用例
レポート自動ダウンロード
毎日の売上レポートを自動でダウンロードして、Excelで加工するワークフローを作りたいな。
それなら「ダウンロードを待機」アクティビティと組み合わせて、以下のような流れがおすすめです。
具体的にはどのような手順になりますか?
まず管理画面にログインし、日付範囲を指定してレポート生成ボタンをクリック。その後「ダウンロードを待機」でファイルを取得し、日付付きのファイル名でリネームして保存します。
大量ファイルの一括ダウンロード
For Each fileUrl In downloadUrlList
' HTTPリクエストでファイル取得
httpResponse = HttpRequest(fileUrl)
' ファイル名を生成
fileName = Path.GetFileName(fileUrl) + "_" + DateTime.Now.ToString("yyyyMMdd")
' ファイル保存
File.WriteAllBytes("C:Downloads" + fileName, httpResponse.Content)
' 成功ログ
Log.Info("ダウンロード完了: " + fileName)
' サーバー負荷軽減のため待機
System.Threading.Thread.Sleep(1000)
Next
まとめ
重要なポイント
UiPathでのファイルダウンロード自動化は、要件と環境に応じて最適な手法を選択することが重要です。新しいプロジェクトでは「ダウンロードを待機」アクティビティを、API連携が可能な場合はHTTPリクエストを優先的に検討しましょう。
ファイルダウンロードの自動化は、業務効率化の重要な要素です。この記事で紹介した3つの手法を適切に使い分けることで、確実で効率的な自動化ワークフローを構築できます。
次のステップ
ダウンロード後の処理
取得したファイルのExcel操作やデータ抽出処理を学習
スケジュール実行
UiPath Orchestratorでの定期実行設定を習得
通知機能
処理完了時のメール通知やSlack連携を実装
エラーハンドリング
堅牢な例外処理とログ出力の実装方法
継続的な学習と実践を通じて、UiPathでのファイルダウンロード自動化をマスターしましょう!
💭この記事はいかがでしたか?
あなたの感想やご意見をお聞かせください。今後のコンテンツ改善の参考にさせていただきます。
📤この記事をシェア
この記事が役に立ったら、ぜひ他の人にも共有してください!
⚠️ 記事の内容は投稿時点での情報です。最新の情報については公式サイト等でご確認ください。
🔄 内容の正確性には注意を払っていますが、誤りがある場合はお知らせください。