Webからのデータダウンロードについて

uipathを使い始めたばかりの超初心者です。

すごく初歩的なことなのだと思いますが、

どなたかご教示いただければ幸いです。

あるwebのページから、下記のようにダウンロードしたいです。

①ダウンロードするデータの種類を選択

(プルダウンから選ぶため、「select item」で指定)

②データの開始日・終了日を入力

※変数管理用のexcelで開始日・終了日(YYYY/MM/DDの書式)を予め入力しておき、「excel application scope」でファイル選択、「read cell」でgeneric型の変数設定)

③該当の「会社名」を検索し検索結果が出たらclickし選択する

※会社名(複数あり)は変数管理用のexcelにリストアップしておき、「read range」で変数(datetable 【会社名】という名)に。

「for each row」にて、

row in 【会社名】

bobyに「assign」で【company】=row.item(0).tostring にする

web画面では「会社名」を入力する箇所に「type into」で【company】を入力するように

④ダウンロードボタンをclickする

⑤(IEのポップアップ?が出てくるので)保存をclick

※③の社名だけ変更するようにしてデータをダウンロードするのを繰り返します

しかし、下記が問題となり、データをダウンロード出来ません。

②において、

変数の型を「GenelicValue」にしても「datetime」にしても「string」にしてもエラーになります。

(read cellに水色の!マークが表示されている)

何型にすればうまく行くでしょうか。

⑤において、

ポップアップの「保存」をclickしても、

ダウンロードフォルダに保存されていません。

(ブラウザはieです)

保存ボタンをクリックしたあとに出てくる

「ファイルを開く」「フォルダを開く」などのボタンがあるポップアップにて、「フォルダを開く」をclickする指示をしなくてはいけないのか、

もしくは他に原因ありますでしょうか…

また、フローチャートの作り方としてお聞きしたいのですが、

検索で繰り返し変えるのは【会社名】だけで、

ダウンロードするデータの種類・開始日・終了日は変えずに、

1社ずつ【会社名】にある会社名を検索してダウンロードしたい場合は、

③の「for each row」のbobyの中で

①・②・④・⑤を入れ込むのが良いのでしょうか。

※【会社名】は、一社検索してデータダウンロードしたあと、別の会社名のデータをダウンロードしたい時は、

検索したその社名を×印をクリックして消してから別の会社名を入力する必要があります。

長々と、とても拙い説明で申し訳ございません。

また、今実際にuipath上の画像を貼り付けることが出来ずとても分かりにくいことと思いますが。。

どなたかお分かりになる方いらっしゃればお助けください。

何卒宜しくお願い致します。

色々とあるようなので順番に。

Read Cellで取得できる値はGenericValueで問題ないと思います。
それでエラーが出るとすると、考えられるのは

  1. シート名・セル名が正しく設定されていない(シート名やセル名は文字列型なので、固定値を設定するなら、 “Sheet1” や “A1” のようにダブルクォーテーションで囲む必要があります)
  2. Excel Application Scopeの外側にRead Cellがある(Read Cellは内側にないとエラーになります。下の画面コピーのような感じです)
    image

のどちらかではないでしょうか。先ずそれを確認してみてください。

ダウンロード時に値がリセットされない仕組みなら、それで問題ないと思います。

ここは会社名を入力する処理(Type Into)のプロパティで、EmptyFieldにチェックをいれてみてください。自動的に入力前に値をクリアしてくれるので、×をクリックする必要がなくなります。

IEだと最後の保存先を記録している可能性があります。
対策はいくつか考えられるのですが、一番確実なのは「名前をつけて保存」でファイルの保存先を指定することかな、と思います。
少し手間がかかりますが、

  1. Get Text等で、「名前をつけて保存」に表示されるファイル名を取得(String型)
  2. Assignを使って保存先のファイル名をフルパスで指定
  3. EmptyFieldをONにしたType Intoで保存先を入力して「保存」ボタンを押す

という流れで処理すると、保存場所がブレることがありません。
2. の補足として、VB.NET書式の、
System.IO.Path.Combine(保存先のフォルダ名(変数か文字列), ファイル名(変数か文字列))
を使うと、フォルダ名・ファイル名の結合が確実にできます。
(戻り値もString型なので、Assignの左辺側に設定した変数に、フルパスでのファイル名が設定されます)

現状、Enterprise向けは2018.2.6が最新なのですが、Community Editionは2018.3.1が最新になっていて、Community Editionで作成したサンプルはEnterprise版では読み込めなくなっています。
なのでサンプルのWorkflowを添付するのが難しく……。
とりあえずざっくりとした説明なので、何か細かい部分でわからなければお返事いただければと思います。

1 Like

ご丁寧にご教示いただきありがとうございます!

②に関してですが、「read cell」にてシート名を""でくくっていてもエラーが出てしまっております。

他にどういった原因が考えられるでしょうか。。。

for each rowの中身の件もありがとうございます。
社名のところは、TypeIntoのEmptyFieldにチェック入れて作成してみます。

保存ボタンのところは解消いたしました。

本当にありがとうございます。

日付のところだけもしお分かりになればまたご回答いただければ幸いです。

何卒宜しくお願い致します。

ちょっと珍しい現象、に思えますが……
考えられるのだと、「開始日」と「終了日」の変数のスコープ(有効範囲)が違っていて、Read Cellの内部が「開始日」の変数のスコープ外側になっている、ぐらいでしょうか。

スクリーンショットからも、画面右側のプロパティ部分で、Output > Result の変数を設定する部分の右上に小さい「!」マークが出ているのが確認できると思います。
少し見づらいかもしれませんが、そこにマウスカーソルをあわせると具体的なエラーの内容が(英語ですが)出るので、そちらも確認してみてください。

さっそくご教示いただきありがとうございます!
scopeがどうなっているか、確認してみます!
エラー内容も確認します。