★概要
JobAutoで変数の値を初期化する必要がある場面と、初期化するタイミングを説明します。Excelへの書き込み行番号やエラーフラグなど、処理中に値が変わる変数を例に紹介します。
変数を初期化しないまま次の処理へ進むと、前の処理で使用した値が残り、Excelの書き込み位置がずれたり、正常なデータまでエラーと判定されたりすることがあります。何を初期化するかだけでなく、どの処理の前に初期化するかを決めることが重要です。
ここでいう「変数の初期化」は、値を必要な初期状態へ戻すための処理です。ロボデザインのコントロールパネルにある、ロボット全体のテスト状態を初期化する機能とは用途が異なります。
★操作動画:変数の値を初期化する必要がある場面
変数の値の初期化が必要になるケースと操作例を紹介する動画です。動画内の画面や設定項目は、現在のJobAutoのバージョンと異なる場合があります。
1.変数を初期化した方がよい場面
例えば、次のように前の値が次の処理へ引き継がれると困る変数は、処理の開始時に初期化する必要があります。
| 変数の例 | 初期化しないと起こること | 初期化する位置の例 |
|---|
| Excelの書き込み行番号 | 前回の行番号が残り、途中の行から書き込みを始める | 一連のExcel転記を開始する前 |
| エラーフラグ | 前のデータで発生したエラーの状態が、次のデータにも残る | 各データの処理を始める前 |
| 件数を数えるカウンター | 前回の件数が加算されたままになる | 新しい集計を開始する前 |
| 一時的な取得値 | 今回取得できなかった際に、前回取得した値を誤って使用する | 新たな取得処理を始める前 |
ただし、処理全体で値を累積するための変数は、毎回の繰り返しで初期化してはいけません。変数が「1件ごとに使う値」なのか「処理全体を通して使う値」なのかを整理してください。
2.Excelの書き込み行番号を初期化する例
Webページから取得した値をExcelの1行目から順番に書き込む処理を考えます。書き込み先の行番号を変数で管理している場合、転記開始時にその値が「6」になっていると、1行目ではなく6行目から書き込まれる可能性があります。
2-1.行番号は一連の転記処理を開始する前にセットする
- Excelへ転記する処理の開始前に、行番号を管理する変数(例:
書込行)へ 1 をセットします。
- 繰り返し処理の中でWebページの値を取得し、行番号の変数を参照してExcelへ書き込みます。
- 1行の書き込みが終わったら、行番号の変数へ
1 を加算します。
- 次の繰り返しでは、更新した行番号を使って次の行へ書き込みます。
| 処理 | 行番号用の変数 | Excelへの書き込み先 |
|---|
| 転記の開始前 | 1 にセット | — |
| 1件目 | 1 | A1 |
| 2件目 | 2 | A2 |
| 3件目 | 3 | A3 |
重要:行番号を繰り返し処理の先頭で毎回 1 に戻してしまうと、すべてのデータをA1へ上書きしてしまうおそれがあります。行番号の初期化は、1件ごとではなく、一連の転記処理を始めるときに1回行います。見出しの下の2行目から書き始める場合は、初期値を 2 にします。
Excelの書き込み位置が途中の行から始まる場合は、JobAutoでExcelへの書き込みが途中の行から始まる場合の対処方法も参考にしてください。
3.繰り返し処理でエラーフラグを初期化する例
一方、データ1件ごとの正常・異常を表すエラーフラグは、各データの処理の開始時に初期化します。例えば「エラーなし」を 0、「エラーあり」を 1 とする場合です。
- 繰り返し対象のデータを1件処理し始める前に、エラーフラグを
0 に戻します。
- 必要なブラウザ操作・Excel操作などを実行します。
- エラーが発生した場合は、エラーフラグを
1 に変更する処理を実行します。
- 後続アクションの前に変数の値を評価し、
0 なら処理を続け、1 なら不要な後続処理を行わないようにします。
- 次の対象へ進んだら、再びフラグを
0 に初期化します。
エラー時にフラグを更新する処理は、エラーが発生してもそのフローへ進めるよう、エラー発生時の対応を適切に設定しておく必要があります。実行がその場で停止する設定では、フラグ変更処理まで到達しません。
エラーフラグによる処理制御については、JobAutoでエラーフラグを使う方法|繰り返し処理の制御も確認してください。
4.変数を初期化する方法の使い分け
JobAutoには、初期値を設定する方法、変数の値をセットする方法、複数の変数をまとめて初期化する方法などがあります。ロボットの実行中に自動で行いたい操作か、ロボデザインで手動で行う操作かを区別してください。
| 方法 | 対象・動作 | 向いている用途 |
|---|
| 「変数の値を加工」→「値セット」 | ロボット実行中に、指定した値を変数へセットする | 行番号を1に戻す、エラーフラグを0に戻す |
| 「変数グループ初期化」アクション | 指定した変数グループ内の変数をまとめて各初期値へ戻す | 処理単位で複数の変数をまとめて初期化する |
| 変数の「初期値に戻す」 | ロボデザインで対象変数を手動で初期値へ戻す | 作成・デバッグ時に変数の状態を戻す |
| コントロールパネルの「初期化」 | ロボットのテスト・デバッグ状態を初期化する | テストを最初からやり直す、繰り返し回数をリセットする |
4-1.変数1つへ指定した値をセットする
行番号やエラーフラグなど、初期化する値が決まっている場合は「変数の値を加工」アクションの「値セット」を使用できます。セットする値を指定し、加工結果の格納先を対象の変数に設定して、目的の値が入ることを確認します。
変数に初期値を設定している場合は、「値セット」でその初期値と同じ値を設定します。初期値を設定していない場合は、「値セット」でNULL(何も設定しない状態)を指定して、変数の値を未設定の状態へ戻す方法があります。
| 変数の初期値 | ロボット実行中の戻し方 | 例 |
|---|
| 初期値が設定されている | 「変数の値を加工」→「値セット」で、設定済みの初期値と同じ値をセットする | エラーフラグの初期値が0なら、0に戻す |
| 初期値が設定されていない | 「値セット」でNULL(何も設定しない状態)を指定する | 一時的な取得値を、値が設定されていない状態へ戻す |
注意:NULLは「値が設定されていない状態」を意味します。文字列としての「NULL」を変数へ格納することとは異なります。値セットの画面で指定する内容と、アクション実行後の変数の状態を確認してください。また、初期値が設定されていても、値セットを実行すると自動的にその値へ戻るわけではありません。初期値を明示的に指定してください。
設定項目についてはJobAutoで変数に値をセットする方法(値セットアクション)をご確認ください。
4-2.複数の変数をまとめて初期化する
関連する複数の変数をまとめて初期値へ戻したい場合は、「変数グループ初期化」アクションを使用できます。「対象のグループ」に指定した変数グループに所属する変数が対象となります。
注意:変数グループ内のすべての変数が初期化されます。処理途中の値を保持する必要がある変数は同じグループに含めず、初期化用のグループを分けて管理してください。また、初期化は必ず空欄にする操作ではなく、各変数に設定された初期値へ戻す操作です。
詳しくはJobAutoで変数グループを初期化する方法をご確認ください。
4-3.ロボデザインで手動で初期値に戻す
デバッグ時に特定の変数だけを元の状態へ戻す場合は、変数を右クリックして「初期値に戻す」を使用できます。初期値が設定されていればその値に戻り、初期値がなければ値が入っていない状態になります。
「初期値に戻す」と「クリアする」は異なる操作です。「クリアする」は初期値自体も消すため、初期値を残したいときには使用しないでください。
操作方法はJobAutoで変数の値を初期値に戻す方法をご確認ください。
5.ロボットのテスト状態の初期化との違い
ロボデザインのコントロールパネルにある「初期化」は、ロボットのテスト・デバッグ状態を初期化する機能です。繰り返し処理のテストをやり直す場合などに使用します。
今回のように、ロボットを実行している途中で特定の変数をリセットしたい場合は、アクションフロー内で「値セット」や「変数グループ初期化」を設定してください。コントロールパネルの「初期化」を実行する操作とは別です。
ロボットのテスト状態をリセットする方法は、JobAutoでロボットのテスト状態を初期化する方法をご確認ください。
6.変数の初期化がうまくいかない場合の確認事項
- 初期化する位置:1件ごとの変数なのか、処理全体で使う変数なのかを確認し、初期化する位置を決めます。
- 初期化後の値:変数の初期値が必ず空欄や
0とは限りません。設定された初期値や「値セット」で指定した値を確認します。
- 格納先の変数:対象の変数を正しく指定できているか、別の変数を変更していないか確認します。
- 繰り返しの回数:転記行番号のように増加させて使う値を、各行の先頭で毎回初期化していないか確認します。
- 条件分岐:エラーや条件に応じて一部のアクションが実行されなかった場合でも、必要な初期化処理に到達する構成になっているか確認します。
- 他のアクション:初期化後に別のアクションが同じ変数を書き換えていないか確認します。
実行前、初期化直後、データ取得後、後続処理の直前など、処理の節目で変数の値を確認すると、どこで想定外の値になったか切り分けやすくなります。
関連するFAQ・マニュアル
JobAutoのナレッジ・技術情報一覧へ戻る