FAkitamura
(Yuki Kitamura)
1
お世話になっております。
プログラミング未経験でUiPath(2017年8月~)を触っているものです。
Foundation Trainingは修了しているので、ある程度のロボットは作ることは出来ますが、
データ(list, array, datatable)まわりで行き詰ることが多く、調べながら進めています。
掲題の件について、シンプルな方法があればと思い、書き込みさせていただきました。
ある別のDBから出力されたCSVをDatatable(inputTbl)に取り込み、対象のキー(番号)の数分処理します。10時間以上処理し続けるロボットです。
アプリケーションエラーの頻度は少ないですが、いつエラーが起きるかわかりません。
それにあたって、エラーが起きた瞬間までのデータを除いたデータを
残りのテーブル(remainTbl)のように吐き出そうと思って試行錯誤しています。
(それを次回の処理に利用します)
ベストプラクティスがあればご教示いただきたいです。
よろしくお願いいたします。
Yoichi
(Yoichi)
2
こんにちは
それにあたって、エラーが起きた瞬間までのデータを除いたデータを
残りのテーブル(remainTbl)のように吐き出そうと思って試行錯誤しています。
(それを次回の処理に利用します)
例外が発生した時に重い処理を走らせるのは、あまりよい考えではないように思えます。
システムが不安定になるなど、そもそも処理を正しく実行できないケースも考えられるからです。
よくあるパターンとしては
・各レコードの処理が完了した際に、そのレコードに対して完了済のフラグを書き込む
・各レコードの処理を実行する際に、完了済フラグの有無を確認し、完了済であれば当該レコードをスキップする。
といった感じの方が安全かと思います。
なお業務要件によっては、仕掛かりコードの手当てが必要になる場合もありますので、その点も留意いただく方が良いかと思います。
3 Likes
FAkitamura
(Yuki Kitamura)
3
ありがとうございます。
確かにそうですね。。!
アウトプットしたい物自体が出力されなければ意味がないですもんね。。
この方向で考えてみたいと思います。
ただ、ワークアラウンドではなくて、
DataTableの処理としてもどうすればよいか気にはなっているので、
ご教示いただけますと幸いです。m(_ _)m
Yoichi
(Yoichi)
4
こんにちは
DataTableの処理としてもどうすればよいか気にはなっているので、
DataTableの構造や処理内容によっても異なるので一概には言えませんが、
DataTableをdt、処理結果を格納する列を「結果」とし、「結果」の列には当初何も入っていない(null)と仮定すると
dt.select("結果 is null").CopyToDataTable
のような感じになると思います。
処理完了フラグのようなものがあれば、それを条件にDataRow配列を抽出し、DataTableに変換すればよいと思います。
あとはこのDataTableをEXCELなどに書き出せばよいかと。
前提が変わるとこのあたりの処理も変わります。またこの部分の例外については個別対応の必要があるかもしれませんので、適当にアレンジください。
1 Like
system
(system)
Closed
6
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.