ブックインデックスについて

ブックインデックスとは

エクセル操作の各アクションのAdvancedタブにブックインデックスという
設定項目があります。こちらは本製品を使っているPCで何番目に開かれたエクセルであるかを示しております。


インデックスがずれないように注意

ロボットを作成していた時

エクセルの手順書を開きながらロボットを作成していました。そしてエクセルの新規作成アクションを実行し、セルに値入力アクションを作成しました。このとき新規作成したエクセルに割り当てられたブックインデックスは1となり、セルに値入力アクションはブックインデックス1に対して実行するように設定しました。

ロボットを実行するとエラーが発生

作成したロボットをスケジュール実行しましたが、ブックインデックスが1のエクセルはなかったためエラーになりました。それはスケジュール実行していた時に、ロボットを作成していた時とは異なり手順書は開かれておらず、ロボットが新規作成したエクセルに割り当てられたブックインデックスは0となったことで、値の入力アクションで実行先として設定されたブックインデックス1のエクセルがなかったためです。

対処方法1

エクセルの各アクションを作成するときは、ブックインデックスがずれないようにロボットが操作しないエクセルは開かないようにしておくのをお勧めします。

対処方法2

0.10.4から操作対象のエクセルを指定する方法に、エクセルファイル名で指定する方法が追加されました。エクセルファイル名で指定することで、ロボットが操作しないエクセルを開いていてもインデックスがずれることはありません。

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

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

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.安定して動くロボットを
作成するなら安定して動いてくれるロボットがいいですよね。

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

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

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

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

指定の文字に対してマウス操作

★アクションの説明、概要

画面内の操作したい個所を表示されている文字による指定を行います。そして指定した箇所をマウスで操作する方法について説明しています。

GoogleのAPIを使って変換をしています。OCR変換する文字はJobAutoからGoogleへ送信されます。ご承知おきください。Googleへインターネット経由で通信を行います。インターネットへの接続をプロキシサーバを介して行っている環境の場合は、プロキシの設定を行ってください。

またインターネットでアクセス先のドメインに制限がかかっている場合はvision.googleapis.comの制限を解除してください。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。画面を読み込みと操作対象にフォーカス、背景色についてはこちらをご覧ください。

1.基本設定

1-1.文字が見つかるまでのタイムアウト(秒)

設定した時間まで、指定した文字をロボットが探し続けます。

1-2.クリックパターン

クリックの種類を選択します。

・クリック

マウスのクリックを行います。

・ダブルクリック

マウスのダブルクリックを行います。

・右クリック

マウスの右クリックを行います。

・マウス移動

マウスのカーソルを移動します。

・マウスダウン

マウスの左クリックを押しっぱなしにします。

・マウスアップ

マウスの左クリックを押しっぱなしをやめます。

・上スクロール

マウスを使って上にスクロールします。

・下スクロール

マウスを使って下にスクロールします。

1-3.対象となる値

画面内から探す文字を入力します。変数参照可能です。

・検索ボタン

対象となる値に設定された文字を画面内から探します。

1-4.インデックス

設定した値で1つの文字に絞り込めない場合、何番目の文字を操作するか指定します。1番目の場合、0を設定します。

1-5.クリック位置

指定した文字のクリック位置を座標で設定します。

・X

クリック位置のX座標を設定します。

・Y

クリック位置のY座標を設定します 。

1-6.OCRの解析結果 ※0.10.6から

対象となる値へ設定した文字が画面内にあるか、検索ボタンで探すことができます。このときにOCRで解析した結果が表示されます。設定した文字が探せない場合に、文字を変更するときの参考にしてください。


2.高度な設定

2-1.アクション有効

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


3.エラー発生時の対応

3-1. エラー時の処理

エラーが発生したときの設定を行います。詳細はこちらをご確認ください。

3-2.基点となる条件分岐

エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。

3-3. エラー時にログ出力

エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。

リリースノート – 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という結果となってしまう不具合の修正

アプリの表示サイズを変更

★アクションの説明、概要

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


★アクションの作成方法


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

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

1.基本設定

1-1.画面サイズ設定

変更後のサイズを選択します。

・最大化する

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

・最小化する

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

・ 元のサイズに戻す

アプリのサイズを元の大きさに戻します。


2.高度な設定

2-1.アクション有効

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


3.エラー発生時の対応

3-1. エラー時の処理

エラーが発生したときの設定を行います。詳細はこちらをご確認ください。

3-2.基点となる条件分岐

エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。

3-3. エラー時にログ出力

エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。

ロボットの設定

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

option1

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

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

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

・パラメータリスト

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

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

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

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

◆マッチング方式を画像にしたときに安定して動かすには

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


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

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

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

button1

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

button4

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

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

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

button10

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

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

button5

3.効率よく修正を行うために共通部品を使用する

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

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

修正作業時間を少なくするために、 共通部品を使うことをおすすめします。

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

button6

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

button7

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

button9

作成した 共通部品へデータを渡せば、1つの 共通部品でシステムへの入力を行えます。

button8

RoboWebのトップページ

★ページの説明・概要

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

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

roboweb1

★各項目について

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

1.お知らせ

  • パスワードが一定期間変更されていません。
    RoboWebへログインしたときのユーザーが一定期間パスワードを変更していない場合に表示されます。
  • 新しいバージョンX.X.Xがリリースされました。
    使用中のバージョンより新しいバージョンがリリースされている場合に表示されます。
  • 利用時間:前回〇〇H ===>> 今回〇〇H
    スケジュールで実行したロボットの稼働時間が表示されます。前回は前月、今回は今月を指しています。

2.稼働中ロボット一覧

  • プロジェクト名
    実行中のスケジュールが登録されているプロジェクトです。
  • スケジュール名
    実行中のスケジュール名です。
  • ロボット名
    実行中のロボット名です。
  • ホスト名
    ロボットが実行されている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機能を使った画像から文字を読み取るアクションを作成します