111860
1
現行フロー
1.ブラウザからcsvデータダウンロード
2.システムへcsvデータから情報登録
以下、画像がなくなるまで繰り返し
3.ブラウザで該当データを検索し、SetImageメソッドで画像をコピー
4.システムへ画像登録
上記のようなフローで、アタッチが複雑な入れ子になってしまいます。
具体的には以下です。
1.ブラウザにアタッチ
2.アプリケーションへアタッチ
以下、画像がなくなるまで繰り返し
3.ブラウザへアタッチ→該当データの詳細画面ブラウザへアタッチ
4.システムへアタッチ
問題点
ブラウザと詳細画面、システムへのアタッチが何度も入れ替わることで
・大量のデータを処理する途中で稀に空振りやブラウザのUIが取得できなくなってしまうことがある
・フローのメンテナンスが大変
このような理由で、
質問内容
3~4のブラウザとシステムの行き来をなくし、存在する画像をすべて格納してからシステムに登録する方法をとれないか考えていますが可能でしょうか?
文字列などと違ってimageデータを配列に保持することは難しいでしょうか。
もし可能な場合、現在はSetImageメソッドで取得後すぐにペーストを行っているためメソッドではなく配列への格納方法等をご教示いただきたく存じます。
Yoichi
(Yoichi)
2
こんにちは
技術的には可能です。総数が不定の場合は、Listを使った方が良いかもしれません。
以下スクリーンショットをリストに格納する例です。
なお、画像をすべてメモリに入れるとなると、規模によっては容量の問題や、途中で失敗した時のことを考慮すると、あまりよくないかもしれません。
場合によっては、画像をファイルに格納して、その画像ファイルへのパスをリストとして保持したほうが良いかもしれません。
1 Like
111860
3
ご教示いただきありがとうございます。
なるほど。
確かにそうですね。。
1件分の画像データが全部で1メガあったとしたら、それを200件以上繰り返すため1件の処理が終了するたびにメモリから画像データを削除するようにUiPathから制御することは可能なものでしょうか?
Yoichi
(Yoichi)
4
こんにちは
1件分の画像データが全部で1メガあったとしたら、それを200件以上繰り返すため1件の処理が終了するたびにメモリから画像データを削除するようにUiPathから制御することは可能なものでしょうか?
使い終わったリソースは、Disposeしておくと、適当なタイミングでガベージコレクタが回収してくれます。
要件次第ですが、パフォーマンスの問題が無いのであれば、上記ですとあえてメモリ上にすべてを保持する必要はないかもしれません。
1 Like