UiPath:ファイルダウンロード完了の判断方法「繰り返し(前判定)」
Webスクレイピングでファイルをダウンロードすることはよくあると思います。
その際、ダウンロードが完了する前に次の処理に進んでしまい、エラーになってしまうことがあります。
それを回避するため、ファイルのダウンロードが完了したかどうかの判断が必要になります。
いくつか方法はありますが、まず一つ目に「繰り返し(前判定)」を使い、ファイルがダウンロード先にあるかないかをチェックし、なければ数秒待機して、再度チェックするという方法の紹介です。
以下で説明する内容は、ブラウザの「保存」ボタンを押した後、指定した保存フォルダにファイルがあるかないかを確認するための部品のような感じのものとなります。
◆「繰り返し(前判定)」利用
処理の全体像は以下のようになります。
判断用の変数「chkFileExist」は既定値を「False」にしています。
◆シナリオの作成
(1)ダウンロードするファイル名を指定
ダウンロードするファイル名を自分でつけることを前提にして作ったので、まず変数にファイル名を代入します。
(2)「繰り返し(前判定)」アクティビティの追加
「繰り返し(前判定)」をアクティビティにドラッグ&ドロップします。
場所:「ワークフロー」⇒「制御」⇒「繰り返し(前判定)」
(3)「繰り返し(前判定)」の条件設定
「条件」に判断用の変数「chkFileExist」が「False」の間は「本文」内の処理を繰り返すように条件づけます。プロパティの「繰り返し最大回数」に数値を入れることで、無限ループにならないように設定もできます。
(4)「パスの存在を確認」アクティビティの追加
「パスの存在を確認」をアクティビティにドラッグ&ドロップします。
場所:「システム」⇒「ファイル」⇒「パスの存在を確認」
その下にはファイルのフルパスを入力します。
(5)「パスの存在を確認」のプロパティ設定
「パスの存在を確認」の結果を変数に代入します。
プロパティの「出力」に「存在の有無」というのがあり、結果をTrueかFalseで変数に代入してくれます。ここでは「chkFileExist」としています。
(6)「待機」アクティビティの追加
「条件分岐」をアクティビティにドラッグ&ドロップします。
場所:「ワークフロー」⇒「制御」⇒「条件分岐」
ファイル
(7)「待機」アクティビティの追加
「待機」をアクティビティにドラッグ&ドロップします。
場所:「ワークフロー」⇒「制御」⇒「待機」
ファイル
ここでは「5秒」にしています。