ロボットを作成するルール

作成したロボットを運用したときの作業が楽になることを目指したルールです。ぜひ参考にしてみてください。
またわたしはこんなルールを設けてロボットを作成、運用しているという方はぜひご連絡ください!!

1.パラメータはロボットの外で管理する
ロボットが参照するフォルダ、ファイルパスなどのパラメータはロボットの外で管理しましょう。一般的にはエクセルで管理し、ロボットはエクセル内に記載されたパラメータを参照するイメージです。上級者の方はデータベースで管理してもいいかもしれません。

例)
・エクセルで管理する
日報作成作業_マスタ.xlsx

2.命名規則1
ロボットが所属するプロジェクト名やパラメータのエクセルを保存するフォルダなどの命名規則を統一しておきましょう。

例)
・パラメータのエクセルを保存するフォルダ
C:\日報作成作業\パラメータ

・ロボットが出力したファイルを保存するフォルダ
C:\日報作成作業\ロボット

・ロボットが所属するプロジェクト名
日報作成作業

3.命名規則2
ロボットは多くの場合プロジェクトの中に複数作成されます。ロボット名をルールにのっとってつけることで管理をしやすくしましょう
・先頭の3桁は数字。10ごとにロボットへ番号を割り当て。あとから追加で作成するロボットが作成済のロボットの間に入れられるようにするため。AとBのロボットがすでにあり、CをAの後に追加した場合が下の例。
例)
010-Aダウンロード
011-Cファイル加工
020-Bメール送信

・ロボット名は日本語
ロボット名からロボットの実行内容がわかるように日本語で。

・ロボットが何をどうしているか実行内容がわかるようにする
ロボット名からロボットの実行内容がわかるようにする。
例)
010-郵政から郵便番号をダウンロード
011-郵便番号ファイルをフィルタ加工
020-郵便番号ファイルをメール送信

4.アクションフローを見やすく
アクションフローは修正が発生したときに見やすいようにしておきましょう。アクションフローが見にくいと、フローの内容を理解しにくかったり修正箇所をなかなか見つけられなかったり、修正する作業に時間がとられてしまいます。

・ブランチを使う
 -作業手順のかたまりでブランチをわけましょう。以下の例ではファイルを別名で移動する場合、どのようなブランチの内容になるかを説明しています。
手順:ブランチの追加・削除
 例)
 変数の値の加工(ファイル名生成)ーファイルをコピーーファイルを削除

 -ブランチの先頭にコメントを書きましょう。ブックマークアクションを作成し、そこにコメントを書きます。コメントはブランチ内の複数のアクションで行っている処理を説明する内容です。
手順:ブックマークの設置

・1作業、1ロボットに分解する
 -1作業、1ロボットに分割することでアクションフローは小さくなり、ロボットが行っている処理内容の把握がしやくすなります。
 たとえば郵政から郵便番号をダウンロードしメールで送る、という作業をロボットにした場合は以下のように分割されます。
010-郵政から郵便番号をダウンロード
020-郵便番号ファイルをメール送信

  このように分割することであとから郵便番号ファイルをフィルタ加工する作業が追加されても、新しいフィルタ加工ロボットを作成すればよく、作成済のロボットに追加をする必要がない。

 -ロボットの作業状況の管理を行う
 ロボットが処理を開始していいのか、作業前提となるロボットの処理が終わっているのか、ロボットの作業状況の管理を行いましょう。

例)
「011-郵便番号ファイルをフィルタ加工」は作業開始前に、「010-郵政から郵便番号をダウンロード」が終わっているかを確認する必要がある。
たとえば、所定のダウンロードフォルダにダウンロードしてきたファイルがあることを確認する。

「020-郵便番号ファイルをメール送信」は「011-郵便番号ファイルをフィルタ加工」が終わっているかを確認する必要がある。
たとえば、所定の加工済フォルダに加工済のファイルがあることを確認する。

・変数の整理
ロボットが完成したら変数の整理を行いましょう。使っていない変数は削除しましょう
手順:変数の追加・削除

・アクションの整理
ロボットが完成したら不要なアクション、コメントアウトしたアクションは削除しましょう
手順:アクションの削除

・最適なグループ化をおこなう
どうしてもアクションフローが大きくなってしまったロボットはグループ化を行って、フロー全体を見やすくしましょう。ブランチごとに作業が分かれているので、ブランチごとにグループ化するのがおすすめです。
手順:グループ化

・引数の説明
引数を使って処理を行うロボットの場合、ROBOWEBのスケジュールの概要へ引数の役割を書いておきましょう
手順:スケジュール設定(引数の設定)

・アクションの説明
アクションの実行内容はアクション名を編集して書くようにしましょう。
例)
値の入力:今日の日付

5.安定して動くロボットを
作成するなら安定して動いてくれるロボットがいいですよね。

・アプリ操作で画像マッチングはどうしても使わざるを得ない場合以外は使わないようにしましょう。

・エクセル操作を行う前に、エクセルの強制終了アクションを実行しましょう。
エクセルの強制終了アクションを行ってから、エクセルのアクションを行うようにします。このようにすることでブックインデックスのずれによるエラーが発生するのを防ぎます。
手順:エクセルを強制終了する

・エラーハンドリングをできるだけ行う
すべてのアクションへエラーハンドリングを行うのが理想です。しかしアクションの数が多い場合は設定の手間を考えると難しい場合もあります。
なんどかロボットのテストを行ってエラーが発生した箇所へ設定したり、経験値がいりますがエラーが発生しそうな箇所へ設定する方法もあります。

・再実行(リトライ)
ロボットは全くエラーがなく運用し続けることができるものではありません。何かしらの理由でエラーは発生します。
エラーが発生し再実行するときに、再実行するための条件や手順をスケジュールの概要へ記載しましょう

リリースノート – 0.10.3 (2020-08-24)

機能追加
・アプリの最大化・最小化アクションの追加。使用手順はこちらです
・RoboWebのスケジュール画面、実行パターンに、月末単位、1回のみ実行、スケジュール実行しないパターンを追加。使用手順はこちらです
・RoboWebのスケジュール画面、休日設定機能でスケジュールをスキップできる機能を追加。使用手順はこちらです
・RDの変数一覧画面の切り離し別windowで参照できる機能の追加。使用手順はこちらです

機能修正
・カスタムアクションへ処理の概要を書き込む欄の追加
・Excelの行ループに、性能改善のため、”セルへフォーカスする”オプションの追加
・Excelの行ループアクションに、フィルタされた非表示セルの扱いオプションの追加
・フレーム切り替えアクションの選択時の選択判別を画面下に内容をだすように修正
・ExcelのPDF出力アクションに、シート内の印刷設定の範囲をPDF出力対象とするオプションの追加
・RoboWebのスケジュール実行でエラーが発生したときに、ログ詳細画面にその時の画面ショットを追加
・アプリ操作のキー送信でESCキーを送信できるように修正
・RDのカスタムアクション呼び出しを展開する際、”値を渡さずに開く” or ”値を渡して開く”の選択肢を追加
・RDからRoboWebへロボットをアップロード、ダウンロードする際、RDのプロジェクト名と同一のものがあればそのプロジェクトを、なければ前回選択したプロジェクトをデフォルトで選択するように修正
・RoboWebのPCモニタリング画面で画面の更新間隔を削除し、随時更新状態に修正
・RS側の時刻がずれているケースがあるため、RoboWebの時刻をRSの時刻に合わせるよう修正
・フラグへジャンプアクションで、ジャンプする先のブックマークをプルダウン形式からリスト形式に変更し、XY座標も併せて表示するよう修正
・ブックマークアクションを作成したときに、アクションの設定画面へ表示されるデフォルトの名前を自動的にインクリメントした状態で作成されるよう修正
・ロボデザインでエクスポート、インポートする際、「_」を含んだロボットファイルを制限するよう修正

バグフィックス
・カスタムアクションの説明書の出力ができなかった不具合の修正
・RDの全実行でクラッシュする不具合を修正
・RoboWebのPC一覧からPCを削除できない不具合を修正
・アプリ操作の要素指定時、フォーカスしなおすとエラーハンドリングがデフォルトに戻る不具合を修正
・エラーハンドリングタブで”条件分岐の次のエラーへ移動”を選択すると、基点が表示されてエラー時にログ出力チェックが隠れてしまう不具合の修正
・変数の加工アクションの文字置換で変数を選択した際、画面がくずれる不具合の修正
・カスタムアクション内でブレークポイントを設定すると、フリーズする不具合の修正
・ロボットを全実行した際、無効化されているカスタムアクションでずっとアクティブな状態で停止してしまう不具合の修正
・カスタムアクション内でブックマークにジャンプアクションの設定画面が表示されない不具合の修正
・RoboWebのスケジュール画面で1000か月先でスケジュールを新規作成するとスケジュール一覧画面が開かなくなる不具合の修正
・タグのループ内でaタグの値をとる際、1行目のループ内にaタグが無いケースで2行目のaタグにフォーカスしてしまう不具合の修正
・RoboWebのスケジュール画面内、実行パターンをCRON形式にしたときに、開始日時が未来だった場合に、次回実施予定の対象から外れてしまう不具合の修正
・RoboWebで新しくスケジュールを作成したときに、開始日時が未来の日時なのにスケジュールの一覧にはその次に実行される日時が表示され、設定した開始日時を経過してもスケジュール実行が始まらない不具合の修正
・IEをアプリ操作する際、要素を読めなくなる不具合の修正
・Excelの最終行のセルのアドレスを取得アクションで、1行目しかないエクセルで実行した場合に、最終行が1048576という結果となってしまう不具合の修正

変数の一覧

※本機能はバージョン「0.10.3」からご利用いただけます

変数の一覧を別画面で表示したものです。

hensulist2

ロボデザインの左部の変数一覧のボタンをクリックすると変数一覧画面が表示されます。

hensulist1

絞り込みへ入力した文字で一覧に表示する変数を絞り込むことができます。

hensulist3

グループや変数、現在値をクリックして並び替えをすることができます。

hensulist4

変数を右クリックして、クリアするなどの操作をすることができます。

hensulist5

+で変数の追加、-で変数の削除を行えます。

hensulist6

アプリ操作 – 画面の最大化・最小化

接続中のアプリケーションのサイズを変更するアクションです。アプリを最大化しないと操作したいものが表示されない場合や、接続中のアプリがロボットの処理の邪魔になりアプリを最小化したい場合に使用します

アクション設定画面の設定項目についての説明は以下の通りです

[Mainタブ]

・画面サイズ設定

変更後のサイズを指定します。

-最大化する
アプリのサイズを最大化します

-最小化する
アプリのサイズを最小化します

-元のサイズに戻す
アプリのサイズを最大化します

[advancedタブ]

・アクション有効
このアクションを無効にする場合は、チェックを外します

[エラー発生時の対応タブ]

・エラー時の処理
エラーが発生したときの設定を行います

・エラー時にログ出力
エラーが発生したときにログに出力するか設定します

ロボットの設定

ロボデザインで作成したロボットを実行するオプションを設定します。

option1

・全実行時に対象の要素を枠で囲む
選択した設定によって、ロボットの処理速度が変わります。

>全実行時に枠で囲む
通常の設定です。

>全実行時に枠で囲まない
こちらを選択すると枠で囲む設定より、処理速度があがります

・パラメータリスト

ロボットに引数を設定することで、同じ処理内容のロボットを渡した引数によって処理結果を変えることができます。

こちらの設定は、ロボデザインで全実行したり、ステップ実行したりするときだけ使われます。

RoboWebでスケジュール実行するときは、スケジュールの作成時に引数の設定を別途行ってください。

アプリ操作でうまくいかないときは(画像マッチング)1

アプリ操作で画像マッチングを使うとき(使わざるを得ないとき)、安定的にロボットを運用するための設定のコツについて説明します。

1.選択する画像範囲に揺らぎが出ないようにする

たとえば操作する個所がアクティブだったり非アクティブだったりで枠線の色味が若干異なる場合があります。このようなゆらぎがでないように画像範囲を設定しましょう。

以下の送信ボタンを押す設定を行いますが、送信ボタンの枠線が青くなっています。

button1

表示されている枠線が画像範囲に入らないようにします。操作したい個所の真ん中だけが画像範囲になるようにします。

button4

 

2.操作個所とは異なるものからを指定、そこからの座標で指定する

操作したい個所と似たような画像が複数あり、画像判定が安定しない場合があります。

以下のケースのようにボタンに表示されている名前が似ている場合が、このケースに該当します。

button10

 

その場合は、操作したい個所から近いユニークな画像を指定し、そこからの座標をずらして指定します。

以下ではボタン1をクリックする設定を行っています。画像マッチングしている範囲の外にあるボタン1をクリックする設定です。

button5

3.効率よく修正を行うためにカスタムアクションを使用する

アプリ操作で画像マッチングを使ってロボットを作成した場合、ロボットを実行する端末によっては解像度が異なるなどの理由で、画像が見つからないことがよく起きます。

この場合、ロボットを実行する端末で操作する画像を再設定する必要がありますが、修正が必要なアクション数によっては修正にものすごい時間を取られてしまいます。

修正作業時間を少なくするために、カスタムアクションを使うことをおすすめします。

たとえば、以下のエクセルから、

button6

以下のシステムへデータを入力するとします。

button7

個々のデータを入力するアクションフローは同じで、渡すデータが異なるだけです。このような場合は、カスタムアクションを1つ作成し、

button9

作成したカスタムアクションへデータを渡せば、1つのカスタムアクションでシステムへの入力を行えます。

button8

RoboWebのトップページ

RobWebへログイン後、トップページが表示されます。

実行中のスケジュールがある場合は、実行中のスケジュールが一覧で表示されます。

roboweb1

表示されている項目は以下の通りです。

・お知らせ

>パスワードが一定期間変更されていません。
RoboWebへログインしたときのユーザーが一定期間パスワードを変更していない場合に表示されます

>新しいバージョンX.X.Xがリリースされました。
使用中のバージョンより新しいバージョンがリリースされている場合に表示されます

>利用時間:前回〇〇H ===>> 今回〇〇H
スケジュールで実行したロボットの稼働時間が表示されます。前回は前月、今回は今月を指しています

・稼働中ロボット一覧

>プロジェクト名
実行中のスケジュールが登録されているプロジェクトです

>スケジュール名
実行中のスケジュール名です

>ロボット名
実行中のロボット名です

>ホスト名
ロボットが実行されているPCです

>ステータス
実行中のロボットのステータスです

>Action
実行中のロボットに対する操作を行います。

―すぐに停止する
ロボットを停止させます。停止させたロボットの後続に処理予定のロボットがあった場合、そのロボットは実行されません

―ログ詳細
実行中のロボットのログ詳細画面へ遷移します

 

コントロール画面

ロボデザインにはコントロール画面がついています。コントロール画面を使ってアクションを追加したり、デバッグ実行を行います。HOMEとACTIONタブで構成されています

design17

コントロール画面が表示されていない場合は、ロボデザインのツールバーのコントロール画面を表示をクリックしてください。

design18

1.HOMEタブ

HOMEタブではデバッグ実行や作成したロボットをRoboWebへアップロードするためのボタンが用意されています

design19

それぞれのボタンの名称と役割は以下の通りです。

design20初期化ボタン
ロボットの処理をすべて初期化し、startアクションが選択されている状態にします

design21ステップ実行ボタン
ロボット内の選択したアクションを1つだけ実行します。

design22全実行ボタン
ロボット内の選択したアクションから最後のアクションまですべてを実行します

design23一時停止ボタン
全実行中にロボットの処理を一時停止させたいときに使います。

design24再取得ボタン
ブラウザ操作のアクションを設定中に、ブラウザ内の要素を再取得したいときなどに使用します

design25アンドゥボタン
ロボットの内容をひとつ前の状態へ戻したいときに使用します

design26リドゥボタン
直前に取り消した処理を、もう一度繰り返して実行したいときに使用します

design27アップロードボタン
ロボデザインで開いているロボットを、RoboWebへアップロードしたいときに使用します

2.ACTIONタブ

ACTIONタブではロボットに設定するアクションがカテゴリーごとにアイコンで並んでいます

design17

それぞれのボタンの名称と役割は以下の通りです。

design28ブラウザボタン
ブラウザの起動やブラウザ内のボタンのクリックなど、ブラウザ操作に関連するアクションを作成します

design29エクセルボタン

エクセルの起動やセルの値取得など、エクセル操作に関連するアクションを作成します

design30アプリボタン

アプリケーション内のボタンのクリックや値の入力など、アプリケーション操作に関連するアクションを作成します

design31ファイルボタン

ファイルのコピーやCSVファイル操作など、ファイル操作に関連するアクションを作成します

design32フォルダボタン

フォルダのコピーや削除など、フォルダ操作に関連するアクションを作成します

design33ブックマークボタン

ブックマークへジャンプなど、アクションフロー内の制御に関連するアクションを作成します

design34関数ボタン

変数の値を加工や判定など、変数操作に関連するアクションを作成します

design35データベースボタン

データベースのデータを取得や更新など、データベース操作に関連するアクションを作成します

design36その他ボタン

メール送信やコマンド実行など、さまざまなアクションを作成します

design38ブランチボタン

アクションフロー内にブランチや条件分岐など、新しいフローを作成します

design39OCRボタン

OCR読み取りなど、OCR機能を使った画像から文字を読み取るアクションを作成します

ロボデザインの構成

ロボデザインの各部の構成、内容について説明します。

design4

1.ツールバー

画面左上部にツールバーがあります。ファイル、プロジェクト、ロボット、アクション、デザインがあり、それぞれをクリックするとメニューが表示されます

design5

2.リボンメニュー

ツールバーの下にリボンメニューがあります。ACTION、RID、プロジェクト情報の3つのタブで構成されています。

・HOMEタブ

作成中のロボットをデバッグ実行したり、ROBOWEへアップロードするボタンが並んでいます。

tab1

・ACTIONタブ

ロボットに設定するアクションがカテゴリーごとにアイコンで並んでいます。

design6

・RIDタブ

ロボデザインを使用しているPCのRIDや、本製品の新バージョンがリリースされている場合はリリースの告知が表示されます

design7

・プロジェクト情報タブ

ロボデザインで開いているプロジェクトやロボットの名前が表示されます。開いていない場合は空白です。以下だと学習コンテンツというプロジェクトを開いていますが、ロボットは開いていません

design8

3.左サイドメニュー

ロボットの一覧、またロボットが持っている各定義情報などを管理するタブが表示されています

design9

・ロボット一覧

ロボデザインで開いているプロジェクトで作成したロボットの一覧です。

design10

・変数タブ

ロボデザインで開いているロボットで使用する変数を管理します。

design12

・アクションタブ

ロボデザインで開いているロボット内の選択したアクションの設定内容が表示されます。

design13

・カスタムタブ

ロボデザインで開いているプロジェクトで使用するカスタムアクションを管理します。

design14

・DBタブ

ロボデザインで開いているプロジェクトで使用するデータベースの定義を管理します。

design15

4.アクションフロー作成画面

ロボデザインで開いているロボットのアクションフローが表示されます。ここにロボットのアクションを設定していきます。
また赤四角で囲った部分に、選択中のアクション(緑色に反転している)のアクション名やコメントが表示されます

design16

アクションの設定画面について

各アクションの設定画面について、説明します。

各アクションの設定画面は基本的にmainタブ、Advancedタブ、エラー発生時の対応タブで構成されています。アクションによっては名前が異なったり、別のタブがあったりします。

1.mainタブ

アクションの基本的な設定をここで行います。クリックアクションだと、クリックの種類やダウンロードを行うのかを選択します

add11

 

2.Advancedタブ

アクションに対してより細かい設定を行います。クリックアクションだと、クリックする個所の指定のより細かい設定を行います。

add12

 

3.エラー発生時の対応タブ

アクションを実行したときに、ロボットがどのような振る舞いをするかを設定します。

add14

 

―後続処理をしない
アクションでエラーが発生した場合は、後続処理が実行されません。

以下の場合だと、クリックアクションでエラーが発生した場合は、値の取得アクション以降のアクションが実行されません。

add15

 

―エラーを無視して継続する
アクションでエラーが発生した場合でも、後続処理が実行されます。

以下の場合だと、クリックアクションでエラーが発生した場合でも、値の取得アクション以降のアクションが実行されます。

add15

―条件分岐の次のフローへ移動
アクションでエラーが発生した場合、指定した条件分岐から分かれているフロー上にあるアクションが実行されます。

以下の場合だと、クリックアクションでエラーが発生した場合は、赤四角で囲われたアクションが実行されます。

add17

―次の繰り返し処理に移動する
アクションでエラーが発生した場合、次の繰り返し処理対象が処理されます。これは繰り返しアクションの中だけ有効な設定です。

以下の場合だと、クリックアクションでエラーが発生した場合は、後続の値取得アクションが実行されません。1行目でエラーが発生した場合は、処理対象が2行目になります。

add15

―次の繰り返し処理をやめる
アクションでエラーが発生した場合、以降の繰り返し処理を中止します。これは繰り返しアクションの中だけ有効な設定です。

add15

以下の場合だと、クリックアクションでエラーが発生した場合は、ループ処理が完了します。1行目でエラーが発生した場合は、すべての行が処理されません。