RPAプロセス競合対策
2021年06月09日
今日はUipathのプロセス競合(別のプロセスがファイルを開いている)で
リネームできずにロボットが止まってしまった話。
出力フォルダを覗いてみると、リネーム処理がされていない。
メモ帳でCSVファイルを保存したが、その処理が完了する前にリネーム処理が走っている模様。
じゃあ、トライキャッチでリネーム処理に失敗したら3秒待機させてから再びリネーム処理をさせるように変更。
さっそく試してみたけど、トライする前にエラー出てるし!
トライキャッチは、このサイトがわかりやすい。
https://koawaka.com/rpa-school/uipath-trycatch/#i-2
エラー発生時:Try→Catches(System.Exception)→Finally
エラー未発生時:Try→Finally
今回のリネーム処理はフォルダ内全ファイルをループで回しているのだが、
For Each item in Directory.GetFiles(フォルダパス)の処理で
ループ変数のitemがオブジェクト扱いになっているようで
処理中のファイルにアクセスしたことが原因と判明。
item変数のTypeArgumentをObjectからStringに変えてみたけど効果なし。
リネームしたいファイル名は、決まっているので今回はべた書きで対応した。
フォルダ内ループの参考ページ
https://www.rpahiroba.com/2018/08/19/uipathで複数ファイルに同じ処理をする方法/
時間内で調べきれなかったけど、これならいける!?
コレクションをファイルリストで取得
https://sweetpox.com/get-file-list
今度試してみて、また更新します。
PR
Comment