概要
※こちらの記事は以前noteで投稿していた記事の移植版です。
Design Studioでロボットを開発、確認している際、ブランチで枝分かれした後のステップを選択する等で、ループが全部回りきるまで進めなくなってしまったり、システムへのログインや処理をされると困るからDAの実行をさせたくないのに…といったことはないでしょうか。
スマート再実行(フル)モードの場合、最小実行(ダイレクト)モードとは異なり、実際にロボット実行した際の状態を再現したフローで実行されるため、上記のような状況が起こりえます。
また、DAを利用する場合には、スマート再実行モードにすることが必須ですし、データベース照会のように仕様上無効にできないステップもあるため、悩まれている方もいらっしゃるかもしれません。
そんな方のための記事です。
アァァァァァァァッッッッッッ!!!!
極端な話こんなこともあり得るわけです。
実行を無効にする方法
防ぐ方法ですが、わざとエラー発生させるステップである「エラー生成」を入れて進ませないように…、といったことも可能ですし、実際やるときもあります。
しかし、スマート再実行モードでは、それを防ぐことができるようデザインモード中に指定した分岐の処理を実行しなくしたり、有効にする条件を指定することが可能なのです。
また、ステップ追加やステップごとに無効化してしまうと、うっかり戻し忘れたまま保存してしまい、いざ実行しようとしたら動きがおかしい…?といった事故もあり得ます。
今回の方法は一時的に無効にするだけなので実際の処理内容には響かないのがポイントです。
やり方は簡単、無効にしたいフローの箇所を右クリックし、メニューから「Design Studioで無効にする」を選択するだけです。
青くなっている箇所が今回の選択箇所です。
すると…
このように選択した枝の先がグレーアウトし、無効化されました。
選択した後のステップすべてが無効になるため、この箇所を選択すると…
このように枝分かれした先も無効化されます。
この方法を利用すれば、余計な実行をさせずに部分的な開発や確認をしたいときにも便利ですね。
いやいや、ループ全部実行されるのは困るけど少しは実行させて確認したいんだよ、とおっしゃる方もいらっしゃるかもしれません。
そんな場合にも利用できる方法があります。
有効にする条件を指定する方法
条件付きで有効にして指定した条件のときのみ実行させることもできます。
値判定でループ回数があまりに多すぎたらストップするようなロボットを作ったことがある方もいらっしゃるかもしれませんが、それをデザインモードのときだけやるイメージです。
また指定したい箇所を右クリックします。
すると、画面右側にこのようなプロパティ画面が出てきます。
チェックを付ける箇所が2つありますが、有効の方のチェックを外すと先ほどの無効化になります。
有効にしたまま条件にチェックを付けると…
グレーアウトしていたエクスプレッションの入力欄が有効になります。
ここに条件式を入力すれば、その条件がTrueの場合のみ分岐が有効になるというわけです。
例えば、こんな感じ
iteration() <= 10
「iteration()」というのは、直前のループ回数を取得する関数なのですが、これが10以下の場合、つまりループの10回目の処理まではTrueなので分岐が有効になる、ということです。
これで10回目のループまでの処理を実行した状態を作ることができます。
下図のように11回目以降進めないようになっています。
他には、何らかのエラーフラグや変数値の値を確認し、指定した値のときだけの状態を確認する、といったことも可能です。
例えば、ロボットで実行エラーがあってある条件のときの状態を確認したい、といったときにも使えると思います。
少しでも皆様の効率が良く安全なロボット開発や確認に役立てば幸いです!