★概要
JobAutoでエラーフラグを使い、ロボットの後続処理を実行するかどうか制御する方法を説明します。特に、ExcelやWebページのデータを繰り返し処理している途中でエラーが発生したときに役立つ考え方です。
エラーフラグとは、エラーが発生したかどうかを変数に保存しておくための目印です。例えば、正常な状態を0、エラーが発生した状態を1として管理します。後続のアクションは、その値を判定して実行するかどうかを決めます。
「エラーフラグ」は説明用に付けた変数名です。JobAutoに同名の専用機能があるという意味ではありません。ロボットで使用する変数を作成し、値をセットして判定する方法です。
1.エラーフラグを使う理由
例えば、繰り返し処理の中に「B処理」「C処理」「D処理」があり、B処理でエラーが発生したとします。Bが失敗したままCやDを実行すると、未取得のデータで登録処理を行うなど、意図しない結果になる場合があります。
このような場合に、B処理でエラーが発生した事実をフラグに記録しておけば、CやDを実行する前にその状態を確認できます。
| フラグの値 | 状態の例 | 後続処理 |
|---|---|---|
0 | エラーが発生していない | 処理を続ける |
1 | エラーが発生した | 必要に応じて処理をスキップする |
0と1は設定例です。どの値をどの状態に使うかをロボット内で統一することが重要です。
2.エラーフラグを使った処理の流れ
繰り返し処理で各データを扱うときの基本的な流れは次のとおりです。
繰り返し処理(各データ) ① エラーフラグを0にする ② B処理を実行する └ エラー時:エラーフラグを1にする ③ エラーフラグの値を確認する ├ 0:C処理・D処理を実行する └ 1:C処理・D処理を実行しない ④ 次の繰り返し対象へ進む
重要なのは、各データの処理を始める前にフラグを0へ戻すこと、エラー時に1をセットすること、後続処理の前にその値を確認することの3点です。
3.JobAutoで設定する手順
- 変数を作成する:ロボデザインで、処理状態の保存に使用する変数「エラーフラグ」を用意します。
- 処理開始時に初期化する:繰り返し処理の先頭に「変数の値を加工」の「値セット」を配置し、エラーフラグへ
0をセットします。 - エラー時に値を変更する:エラーが発生したときに進むフローを設定するなどして、エラーフラグへ
1をセットします。エラー発生時にロボットが停止する設定のままでは、後続のフラグ判定を実行できません。 - 後続処理の前に判定する:「変数の値を評価」アクションで、エラーフラグが
1かどうか確認します。 - 実行する処理を分ける:フラグが
0なら後続処理を続け、1なら不要な後続処理を行わないようにフローを構成します。 - 正常時とエラー時をテストする:エラーになったデータで後続処理が実行されず、次の正常なデータは処理されることを確認します。
変数へ値をセットする方法はJobAutoで変数に値をセットする方法、エラー時のフロー設定はJobAutoでエラー発生時の処理を設定する方法をご確認ください。
4.操作動画:フラグの上手な使い方
エラーフラグを利用したロボットの処理制御について、操作例を動画で確認できます。動画の画面や操作項目は、現在のJobAutoのバージョンと異なる場合があります。
5.繰り返し処理ごとにフラグを初期化する
エラーフラグを使うときに特に注意したいのは、前の繰り返し対象でセットした値を次の対象へ引き継がないことです。
例えば、1件目のデータでエラーが発生し、フラグが1になったとします。2件目の処理を始めるときに値を0へ戻していないと、2件目は正常でもエラーと判定され、処理がスキップされるおそれがあります。
| 対象データ | 開始時のフラグ | B処理の結果 | 判定時のフラグ |
|---|---|---|---|
| 1件目 | 0 | エラー | 1 |
| 2件目 | 0に戻す | 正常 | 0 |
| 3件目 | 0に戻す | 正常 | 0 |
初期化の処理は、ロボット全体の開始時だけでなく、必要に応じて繰り返し対象ごとの先頭に置きます。エラーフラグをロボット全体の状態管理に使用する場合は、初期化するタイミングを別に設計してください。
6.「後続処理をしない」と「次の繰り返し処理に移動する」の使い分け
フラグの値を判定した後にどの処理を止めたいかによって、設定を使い分けます。
| 方法 | 使う場面 |
|---|---|
| 後続処理をしない | 現在のブランチにある後続処理を実行したくない場合 |
| 次の繰り返し処理に移動する | 現在の対象に対する残りの処理を飛ばし、次の対象へ進みたい場合 |
| 繰り返し処理をやめる | 繰り返しそのものを終了し、残りの対象も処理しない場合 |
「変数の値を評価」を使って後続処理を制御する方法は、変数の値を判定して後続処理をしない方法と変数の値を判定して次の繰り返し処理へ移動する方法で説明しています。
なお、エラーフラグを使わず、エラーが発生したアクションの「エラー発生時の対応」で直接、次の繰り返し対象へ移動する方法もあります。単純に1件をスキップするだけなら、その方法の方が設定を少なくできる場合があります。
7.エラーフラグが想定どおりに動かない場合
- フラグが更新されない:エラー発生後に、
1をセットするフローへ進む設定になっているか確認します。 - すべてのデータがスキップされる:繰り返し対象ごとに、フラグを
0へ戻しているか確認します。 - エラーでも後続処理が実行される:判定する変数、比較する値、判定アクションの配置位置を確認します。
- 想定外の処理まで止まる:判定結果で停止するブランチや繰り返しの範囲を確認します。
- 内側のループだけがスキップされる:入れ子の繰り返しで、どのループの次の対象へ進むかをテストします。
テストするときは正常なデータと意図的にエラーになるデータを用意し、フラグの値と実行されたアクションを順番に確認すると、設定の問題を切り分けやすくなります。
8.「フラグへジャンプ」との違い
JobAutoには、フロー内の位置を示す「フラグ」と、その位置へ移動する「フラグへジャンプ」という別の機能もあります。このページのエラーフラグは、処理の結果を記録するために使用する変数を指します。名前が似ていますが、用途は異なります。
関連するFAQ・マニュアル
- JobAutoで繰り返し処理中のエラーをスキップする方法:B処理のエラーでC・Dを省略する具体例
- JobAutoで変数に値をセットする方法:0・1などの値の設定
- JobAutoで変数の値を判定して後続処理をしない方法:フラグを判定してブランチの後続処理を制御
- JobAutoで変数を判定して次の繰り返し処理へ移動する方法:対象1件だけをスキップする処理
- JobAutoでエラー発生時の処理を設定する方法:エラー時に続ける処理・停止する処理
- JobAutoのアクションフローにおける繰り返し:繰り返しの範囲の確認

[…] A.フラグを使うことで処理をする、しないを制御してはいかがでしょうか。 エラーが発生したら、エラーフラグという変数に1をいれる。 後続処理の先頭で必ずエラーフラグが1になっていないことを確認し、1になっていた場合は後続処理を実行しないように設定する。 具体的な参考手順はこちらをご参照ください。 […]