DataScrapingの終点検出 MaxNumberOfResultsの設定


#1

こんにちは

UiPath AcademyのLevel 3 Advanced Training Assignment no.1で困っております。どなたか知恵を拝借願えませんでしょうか。

:black_medium_small_square:やりたいこと
ACME System1 のWork Item一覧をData scrapingで抽出し、TypeがWI5、かつStatusがOpenのWork Itemを抽出する。

:black_medium_small_square:現在の状況
Data Scrapingを使用してWork Item一覧を選択すると、「テーブルが選択されました、テーブル全体を抽出しますか」と思わしきポップアップウィンドウが出現するのでそれをOK。その後表示されるDataTableのプレビューでは正しく抽出できているように見えます。

Work Item数は変化すると想定してプロパティのMaxNumberOfResultsを0にしました。
その後、Work Itemは複数ページにまたがっているので次ページのアイコンを指定して最後まで取得するように設定しました。
OutputをdataTableだとします。

:black_medium_small_square:問題
条件に合うWork Itemが抽出できるかどうか確認のため下記の式を入力したWrite lineを使用しました。
dataTable.Select(“Type=‘WI5’ and Status = ‘Open’”).Count.ToString

実行したところ下図のエラー発生(確認のためDataScrape→Write lineのみのシーケンスで実行)
Error

:black_medium_small_square:考察
実行中にWork Itemが取得されていく際に、最終ページに遷移してしばらく停止してから(30秒ほど)エラーが発生します。
ここに問題あると考えMaxNumberOfResultsを5に設定すると問題なく動作し、Write lineの結果も妥当でした。
私のアカウントでSystem1で生成されたWork Itemは36個でしたのでMaxNumberOfResultsを36にしても同様に動作しました。
37にした場合はエラーになりました。

DataScrapingの終点検出になにか異常があるのでしょうか。
MaxNumberOfResultsを固定することは実用的ではないので避けたいです。
もしくはイニシャライズが必要なのでしょうか。しかし、MaxNumberOfResultsが36の場合はエラーにならないので必ずしも必要でないように思いました。

どなたか解決法おわかりでしょうか。
長くなりましたがよろしくお願いします。

I would like to extract Work Items which condition is “Type = WI5 and Status=Open” in ACME System1.

After data scraping(output is dataTable), to confirm if I get correct data,
I put Write line activity with following text;
dataTable.Select(“Type=‘WI5’ and Status = ‘Open’”).Count.ToString

but the above error was shown after transition to the final Work Item list page.

The number of generated Work Items in my system is 36.
When I set MaxNumberOfResults(Property of data scraping) to 36, The workflow worked successfully and result of Write line was correct.

Only when MaxNumberOfResults is 0, more than 36, or empty, the error happened.

I want to avoid to fixing MaxNumberOfResults. Its not practical.
Would I need Initialization?
please help me.


#2

@Yashiki_takajin さん、こんにちは。
DataScrapingのDatatableに以下のイニシャライズしたら解決できるかを試していただけますか。


#3

@whyyouandi さん

ありがとうございます!
NullReferenceExceptionはなくなりました。

しかし、依然としてDatascraping実行中に最終ページまで遷移した後、次のアクティビティが実行されるまで 数十秒ほど停止します。

終点まで検出してすぐに次のアクティビティに移るにはどうしたらよいでしょうか。WaitForReadyプロパティはいろいろいじりましたが改善しませんでした。

よろしくお願いします。


#4

@Yashiki_takajin さん、よかったです。
早くさせるにはExtract Data ActivityのTimeoutMSを短くするのもできます
(インターネットのスピードが遅い場合などもあるため、1000/1秒ほどが無難かもしれません)。