繰り返し処理回数のループの上限値について

単純な「繰り返し処理」を使って、「待機」を使いながらループさせると、8回目のループに入らずに止まってしまうのですが、「繰り返し処理」のデフォルトで上限回数があるのでしょうか?

繰り返し処理では、多かれ少なかれ、配列的な領域を指定する必要があります。

「繰り返し(各行)」アクティビティならDataTableを
「繰り返し(コレクションの各要素)」アクティビティなら配列、List、Dictionaryなど

「繰り返し(前判定)」「繰り返し(後判定)」でも、WHILE条件を指定する必要があります。

デフォルトで。。。という考えはないはずですが。。。

よろしければ、その「繰り返し処理」のスクリーンショットを貼り付けていただければと思いますが、いかがでしょうか?

HANACCHI様

ご返信ありがとうございます。処理の内容の説明が不足しておりましたが、以下の処理を繰り返す内容です。添付ファイルにフロー画面のキャプチャを添付させていただきます。ご確認のほど、よろしくお願いいたします。

業務レポートの画面キャプチャを取得

メーラーを起動

メールの新規作成

貼り付け

メール送信

※キャプチャファイルですが、「new user」はファイル添付できないというエラーがメッセージが表示されまして、少なくとも今時点では添付できない状況です。ご認識いただければありがたいです。

本筋からは擦れてしまいそうですが、繰り返し処理回数のループの上限値はごくごく普通に使っている段では、コレクションの数、あるいはWHILE条件を満たすまでになります。デフォルトで上限回数は設定されていないと思いますよ

繰り返し処理の種類によりますが、For each または For each row であれば指定したコレクション(配列など)に含まれる要素数になります。繰り返し処理に入る前に、コレクションの要素数を確認してみてください。例えば配列(array)なら array.Count 、データテーブル(dataTable)なら dataTable.Rows.Count とすることで、コレクションに含まれる要素の数を取得できます。

もし While や Do while であれば、こちらは要素数を指定するものではなく原理上無限に繰り返すことが出来ます(よく無限ループの原因になります)。
こちらも途中で終了してしまう場合は、Conditionに指定している条件が繰り返し処理の途中で False になっていることが考えられます。繰り返し処理のなかで、条件に使用している変数などの値を出力して確認することで、原因がわかるかもしれません。

いずれの場合も、デバッグモードなどを用いて使用するデータの値や状態をウォッチしながら実行することで解決に近づくと思います。

1 Like

HANACCHI様、cheez_RPA様
ご回答ありがとうございます。今時点、そういった点は全然気にせずに「デザイナーパネル上」でアクティビティを配置してのみの実行でしたので、ご指摘の「変数」や「要素数」を確認しながらやってみたいと思います。アドバイスありがとうございました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.