Excelに情報を書き込んで、その後データの読み込みする処理を作っていますが、書き込んだデータが0件(Excelの中身のデータがない)の場合、読み込み時にエラーとなります。
そのため、0件でも正常に処理するまたは、Excelの中身が0件かの判断を入れたいのですが、どのような実装が考えられますでしょうか?
Excelに情報を書き込んで、その後データの読み込みする処理を作っていますが、書き込んだデータが0件(Excelの中身のデータがない)の場合、読み込み時にエラーとなります。
そのため、0件でも正常に処理するまたは、Excelの中身が0件かの判断を入れたいのですが、どのような実装が考えられますでしょうか?
Hi @111161
Use try catch and then use read rang e and then give condition as Dt.Rows.Count>0
then process rows in else set a flag as row(“Status”)=0
Thanks
Ashwin S
I tried but some error happened.
ワークフローを終了の理由または例外に、何を設定すればよろしいでしょうか?
SheetRead.Rows.Count == 0を理由に設定しましたが、うまくいきません
DataTabel.Rows.count = 0
という条件を通じて判別可能です。
理由のところには、String型のデータを入れる必要があるかと思います。表示されているエラーの情報を参照してください。
トライキャッチがうまくいきません
Tryの箇所で、エクセルから読み込んだデータを、データテーブル型のSheetReadに格納しています
またエラーはBoorlean型からString型に変換できませんとなります
どうすればエラー対処できますでしょうか?
やりたいことはあくまで、SheetReadが0レコードの際に、Uipathを終了したいとなります。
こんにちは
文字列型なので例えば
"行数が0です"
みたいな感じでOKかと...
「理由」の欄は、「どのようなときに終了させるか」ではなく、「終了させる際に表示させるメッセージ」を指定する項目です。
ですので、SheetRead.Rows.Count > 0
は、この位置に含めるものではありません。
読み込んだデータテーブルの行数が0であることの判定は、「範囲を読み込み」アクティビティの下に、「True か確認」アクティビティを含め、そのプロパティのうち「式」に、SheetRead.Rows.Count > 0
を入れてください。
もし0件であった場合、この条件式が True にならないのですが、このアクティビティは True でないときには例外を発生させます。そうすると、その例外がキャッチされて、「ワークフローを終了」アクティビティに遷移し、「理由」で入力した文字列が表示されて終了する、という流れです。
cheez_RPAさん
ありがとうございます!
理由欄は、条件ではなく単にメッセージなのですね。
さて、添付のように作成しましたが、いまだエラーとなります
何をしているかといいますと、データテーブル上の値を、エクセルのSheet1に書き込み、その後データテーブルが0件であればと条件いれましたが、Trueか確認で”条件が定義されていません”とエラーとなってしまいます。なぜでしょうか?
所望のワークフローの全体像が正しく認識できていないかもしれませんので、確認させてください。
おおよそ下記の内容であっていますでしょうか。
SheetRead
に格納するSheetRead
の行数が0であれば、エラーを発生させワークフローを終了させるSheetRead
のデータを任意のExcelファイルに書き込むcheez_RPAさん
大変お返事遅れ、申し訳ございません
試行錯誤した結果、うまくいきました。
具体的には0件のExcelを読み込む処理をトライキャッチでくるみ、
exceptionの際に、メッセージログ出力→ワークフロー終了にて、Main処理を抜けるようにしました。
解決したようで何よりです!
解決に至った投稿を「解決策」(Solution)としてマークしていただけますと助かります!