忍者ブログ

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
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字