本コラムでは実際に活用されているレシピ(シナリオ)を題材にしつつ、RPA(EzRobot)を組む際の考え方やコツなどをご紹介させて頂きます。
中級~上級者向けとして存在している拡張機能は一切使用せず、基本機能のみで簡単に組める内容で解説します。
・RPAの組み方がわからない、難しい
・組んだRPAが止まる、動かない
といったお悩みも解決できるよう、業務改善のヒントとなりましたら幸いです。
第一回「RPA(EzRobot)簡単な組み方、コツをご紹介 1-1」では、作成するロボットの大まかな構成と画像認識を使用した条件分岐の説明を行いました。
第二回「RPA(EzRobot)簡単な組み方、コツをご紹介 1-2」では、画像認識を使用する際に気を付けるべき点を説明しました。
なお、基本機能の各機能の動作の詳細や使い方については本コラムの趣旨から外れる為割愛いたします。
(※契約者様やトライアルユーザー様向けにはEzRobotユーザーサイト上のコンテンツやEzRobot操作マニュアルで情報を提供させていただいております。)
今回は実際の手順をどのようにレシピ(シナリオ)に落とし込んでいくか、構成をどのように考えるかについて説明させていだだきます。
目次
作業内容について
第一回で説明したレシピ(シナリオ)の大まかな構成は以下でした。
- タスクスケジューラでロボット起動
- オレンジフォーム(メールフォーム)にログイン
- データ編集画面へ移動
- 画像による条件分岐開始(チェックがない場合)
- 作業開始
- 画像による条件分岐終了(チェックがない場合)
- 画像による条件分岐開始(チェックがある場合)
- 画像による条件分岐終了(チェックがある場合)
- 表示したブラウザを閉じる
- ロボット終了
ユーザーからオレンジフォーム経由で面談の申込みがあり、その内容をオレンジフォーム上で確認、Googleカレンダーに日程等を登録し、担当者にChatworkでお知らせするという流れになります。
今回は5.の作業について、さらに作り込んでいきます。作業は大きく4つに分かれます。
- 面談申込み情報を取得(オレンジフォーム)
- 面談申込み情報をスケジュールに入力(Googleカレンダー)
- 申込のあった日時を非表示(オレンジフォーム)
- 担当者にお知らせ(Chatwork)
以上が5.作業開始で実際に手作業で行われている操作となります。
それでは早速、実際にどのような手順でレシピ(シナリオ)を組んでいけば良いか、の構想に入りましょう。
レシピ(シナリオ)の構想
手作業で行っていた場合、RPAを動かした場合で全く同じ結果になるようにするのが目的となりますが、内容によっては手順に工夫を凝らす必要がございます。
何故かと言いますと「人間が判断していた箇所」について「どのようにRPAで処理するか」というルートが必要になることが理由です。これは人間と違ってRPAは決まったルールに従ってのみ動かす事が可能だからです。
ではAI(人工知能)を使えば、というご意見もあるかと思いますが、囲碁、データ分析、画像認識等の目的に特化したAIは十分実用段階にありますが、現時点で人間の事務作業を置き換える汎用性のあるAIというものは存在しません。
その為、AというケースではAの為に用意した処理を行う等、人間が行う判断のパターン毎にRPA上で条件付けを行ってそれに当る処理を記述していく必要があります。
この人間が判断する箇所が複雑になればなるほど、RPAに設定するルールも複雑になっていきます。今回のケースは経験上、どちらかと言うとやや複雑な部類に入るかと思われます。
ただ、一つ一つかみ砕いていけば大丈夫です。複雑なルールも、細かい基本的なルールの組み合わせになります。本連載では特に基本機能に絞っています。どっしり腰を落ち着けてイメージしていけばRPAに触れたことのない方でも問題ありません。
まずは作業の大枠からイメージしてみましょう。
1.面談申込み情報を取得(オレンジフォーム)
第一回「RPA(EzRobot)簡単な組み方、コツをご紹介 1-1」でオレンジフォームのチェックボックスを判別する処理を行いました。
オレンジフォームの画面
本処理はオレンジフォーム上にあるチェックボックスと同じ行にある、”姓名”、”メールアドレス”、”希望日時”等の面談申込み情報を取得します。
既に「チェックが無い物について作業をする」という条件分岐が出来ている以上、操作対象となるデータについては絞り込みが出来ている状態です。手順さえ組めば問題はなさそうです。
但し、何が面談申込み情報として必要かということの全てはこの時点ではまだ明確になっていない状態です。「2.面談申込み情報をスケジュールに入力(Googleカレンダー)」および「3.申込のあった日時を非表示(オレンジフォーム)」に進んで、その辺りを明らかにしましょう。
2.面談申込み情報をスケジュールに入力(Googleカレンダー)
こちらの大枠のイメージは
- Googleにログイン
- Googleカレンダーをひらく
- 面談日時等の面談申込み情報を入力
- 保存
となります。
面談申込み情報は「1.面談情報取得(オレンジフォーム)」で取得したデータを使用します。
現状で想定できる懸念点は
1)実際にどのようにGoogleカレンダーに入力していくか。詳細手順について。
2)「対象の日時に、既に他の予定が入ってしまっているケース」も否定できないので、その場合の対処法。
辺りでしょうか。
特に2)については、普段我々が何気なく行っている操作ですが、これをRPAにさせようとすると一工夫必要です。
こちらを意識しつつ、実際にどうすればこれをRPAで出来るか、第一回「RPA(EzRobot)簡単な組み方、コツをご紹介 1-1」で行ったように、条件分岐や画像認識の機能を使いながら考えていくことになります。
なお、面談申込み情報には2種類(オンライン面談かオフライン面談か)あり、それをここで入力することが必要と分かりました。「1.面談申込み情報を取得(オレンジフォーム)」でその情報を取得する必要がありますが、それをどうするかについては後ほど考えることにします。
3.申込のあった日時を非表示(オレンジフォーム)
申込みのあった日時を非表示にする理由は「ダブルブッキングを防ぐ」ことが目的です。
どのような流れで非表示にしていくのか、まずはオレンジフォームの仕様を理解する必要があります。
見たところ、編集ページから該当日時の文字を消して更新するだけなので「変数※・条件分岐・キー操作・画像認識」の基本機能内でスムーズに組んでいけそうです。
(変数 ・・・ 文字や数字等のデータを一時的に格納する箱のようなもの)
オレンジフォーム 編集画面
実際にフォーム内で操作をしていただかないとイメージが沸かないかもしれませんが、本処理の大枠の流れとしては
- オレンジフォーム内の項目編集画面へ移動
- 「1.面談申込み情報を取得(オレンジフォーム)」で取得した「面談日時」を元に該当の予約日を削除
- 更新を行う
こちらも実際に組みながら考えていきましょう。
4.担当者にお知らせ(Chatwork)
こちらは条件分岐などで複数パターンが発生せず1パターンになりますので簡単ですね。
- Chatworkをひらく
- 担当者名を検索
- 面談日時、予約が入った旨をを記載し送信
となります。
簡単そうに見えて、実際に組んでいく過程で「この箇所はRPAのどの機能で実現しようか」と悩むケースもありますが、こちらも組んでいきながら考えていきましょう。
全体像を見直してみる
今回のケースでは面談方法が2種類(オンライン面談かオフライン面談か)あり、「1.面談申込み情報を取得(オレンジフォーム)」の時点でそれを取得する必要があるとの事でしたので
- オレンジフォーム画面の「処理済」のチェックボックスが空白だった場合、その箇所をクリック(クリックにより、チェックボックスに印が付き、その箇所が選択される)
- そのままキー操作で「面談方法」の箇所へ移動し、「オンライン面談かオフライン面談か」を認識し、変数に格納(カレンダーに入力する必要がある為)
- 引き続き、キー操作で移動し「面談日時・メールアドレス・姓名」の内容も変数に格納(こちらもカレンダーに入力する情報の為)
- オレンジフォーム内の項目編集画面へ移動し、変数に格納した「面談日時」を削除し、更新
となります。
申込が複数ある場合を考えると、チェック無しのチェックボックスを認識させて「繰り返し(画像が消えるまで)」の機能を使用する方法も別の方法として考えられます。
これを使用する事により、画面上にチェック無しのチェックボックスがある限り、処理を続ける事が可能になります。終了条件を改めて設定しなくても良い分、こちらの方が処理としてはスッキリとした形になります。
今まではチェック無しがある場合には作業をする、終了条件としてチェックが全てある場合には作業をしない。という条件分岐を大枠として考えていましたが、チェックボックス無しのチェックボックスがある限り繰り返す処理の方が良さそうです。
良さそうというのは処理が簡潔に記述出来る、動作の安定性が増すという判断からになります。従来の「画像による条件分岐」を使ってもシナリオ(レシピ)を作成することは可能です。
より詳細のイメージが沸いてきました。
まとめ
上記を踏まえて、改めてレシピ(シナリオ)の大枠の構想を考えてみましょう。
最初に「1.面談申込み情報を取得(オレンジフォーム)」という作業がありますが、手作業で担当者が行っている場合は恐らく何気なく申込み情報をどこかにコピペするか、画面を複数表示させて画面間でコピペするなど、様々な方法をとっているのではないかと思います。
RPAの場合はそのように担当者によって違う、もしくは気分によってやり方を変えるといったことは無く、予めルールを決めて処理を行う必要があります。
例えば「2.面談申込み情報をスケジュールに入力(Googleカレンダー)」という作業では
RPAの場合、予め「面談日時・面談方法・姓名・メールアドレス」の情報を取得した上で「Googleカレンダーに入力」をする必要があることがわかりました。
そして「3.申込のあった日時を非表示(オレンジフォーム)」では
第一回「RPA(EzRobot)簡単な組み方、コツをご紹介 1-1」で行った「チェックがない場合/ある場合の条件分岐」ではなく「チェックが無くなるまで繰り返し」に変更してみるのが処理としてより適切だということがわかりました。
今回追加した処理
・面談申込み情報を取得(オレンジフォーム)
・面談申込み情報をスケジュールに入力(Googleカレンダー)
・申込のあった日時を非表示(オレンジフォーム)
・担当者にお知らせ(Chatwork)
前回までから変更した処理
・画像による条件分岐(チェックがある/無い場合)→ 繰り返し開始(画像が消えるまで)※チェックが無くなるまで
・チェックボックスにチェックをつける
上記を踏まえた場合、現状の大枠は
- タスクスケジューラでロボット起動
- オレンジフォームにログイン
- データ編集画面へ移動
- 繰り返し開始(画像が消えるまで)※チェックが無くなるまで
- チェックを付ける
- 変数に格納(面談日時・面談方法・氏名・メールアドレス)
- 項目編集画面へ移動
- 面談の入った日時を検索⇒削除⇒ページ更新 日付削除完了
- Googleにログイン
- Googleカレンダーへ移動
- 対象の日時(面談日時を表示)
- 情報(面談日時・面談方法・姓名・メールアドレス)を入力⇒保存 カレンダー入力完了
- Chatworkをひらく
- 担当者名を検索・表示
- 情報を入力し、送信 送信完了
- 表示した各ブラウザを閉じる
- 繰り返し終了(画像が消えるまで)※チェックが無くなるまで
- ロボット終了
となりました。
レシピ(シナリオ)の構想がより詳細になり、実際に組んでいくルートが鮮明に見えてきました。
詳細の流れがほぼ固まったので、次回からは基本機能のみで実際にレシピ(シナリオ)を組む際の考え方、コツについて解説させて頂きます。
RPA(EzRobot)簡単な組み方、コツをご紹介 1-4へ
最後に
RPA EzRobotは【低価格・劇的にカンタン・手厚いサポート】が特徴のRPA製品です。
「どのようにレシピを組めば良いかわからない」といった際でも、サポート(電話/チャット/メール/Web会議等)にてご相談を承っております。
また、弊社にて作成済のレシピ(シナリオ)を無料でダウンロードして微調整のみですぐに使うことが可能です。(こちらは契約者様向けサポートサイト「EzRobotユーザーサイト」からダウンロードできます。)
是非、お気軽にお問合せください。