■サイト内検索:
 

RPA Biz > RPA > 【決定版】ロボット(RPA)設計時に抑えておきたいポイント

【決定版】ロボット(RPA)設計時に抑えておきたいポイント

2018.07.31

今回の記事では、業務のRPA化を行うための設計書を記載する際にどのような点に気をつければよいかをまとめます。

 

特にRPAのエンジニアではない人がRPAのロボットの設計書を作成する際に理解しておきたいポイントを中心に記載します。

 

そもそもRPAのための設計書ってどんなものなの?と思う方もいるかも知れませんが、

RPAの場合は通常のソフトウェアの開発よりも簡易的な仕様書を利用する場合が多く、

処理フローのようなガチガチのIT設計書を書かない場合もあります。

 

 

当然、プロジェクトによってどのような設計書を作成するかは異なりますが、

実際のプロジェクトで採用されている例としては、引き継ぎ時などに利用される業務マニュアルをベースに、

業務手順書を再作成するといった手段を取っています。

 

この記事内では具体的な設計書の内容については触れませんが、

設計書を書く際のポイントをいくつかの区分に分けて説明していきたいと思います。

 

 

【設計書に最低限記載されているべき内容】

 

そもそも何を書けばいいんだっけ?と、頭を捻らせてしまう方もいらっしゃるかもしれませんが、

難しく考える必要はありません。

 

設計書の基本は、人間が対象業務をどのような手順でやっているかをそのまま書き出していくだけです。

 

ただし、ロボットは文脈を理解することはできないので、どのファイルを開くのか、

どの対象画面を操作するのかを明確にする必要があります。

 

例えば、Excelであれば、コピーする範囲はどの列からどの列までで何行目までか

貼り付ける先はどこのセルか、といった点を具体的に設計書に記載する必要があります。

 

 

設計書に書いてある内容の適切な粒度としては、

まったくPCの操作を知らない新人が、その内容を見るだけで該当の業務をだれに質問することもなく業務を完了できる」といったレベルです。

 

すこしハードルを高く感じるかもしれませんが、このレベルまで記載ができていれば、

ロボットを開発するエンジニアに感謝されるでしょう。

 

またこのような形で明確に設計書に記載をすることで、目的が不明な作業や不要なステップに気づくことができるので、

このような面での見直しもついでにできるとなお良いですね。

 

 

【ロボットの起動の仕方について】

 

ロボットは通常のソフトウェアと同じなので、デスクトップのアイコンをダブルクリックするなどで動作を開始することができます。

 

またそれ以外にも自動起動という手段があります。

自動起動の一番メジャーなやり方は、

 

  • Windowsのタスクスケジューラーを設定し、毎日起動時間を指定する。
  • あるいは指定曜日を指定する。

 

が考えられます。

 

この方法はWindowsの基本機能を利用するので比較的柔軟にロボットにいつ動作してもらうかを指定することができます。

 

また基本的には月曜日から金曜日が起動だけれども、祝日は稼働してほしくない、といった場合は、

残念ながら祝日を自動判定する機能はロボットにはないので、

営業日の判定を行うロジックを作成する必要があるため、この判定が必要な旨を設計書に明記する必要があります

(RPAのソフトウェアによっては、サーバー側でロボットを一括監視し、

ロボットをどのタイミングで起動するかを管理する機能を持つものもありますのでご確認ください)

 

こちらは応用編ですが、基本は朝9:00に起動してくれるので良いのだけれど、

特定の曜日やある特定の日だけ(月末)は、朝10:00に開始してほしいんだよね、といった場合は、

以下の方法で対応します。

 

ロボットは9時で自動起動にするが、後続処理を実施するかしないかの判定をさせ、

後続処理を実施しない判断をした場合は一定の時間後にリトライさせるといった方法です。

 

もし事前に一定の法則で起動時間帯をずらしたい日付を決めることができるのであれば、

そのルールをロボットに組み込む必要があるので、これも設計書には記載する必要がでてきます。

 

事前に起動時間をずらす条件を決めることができないのであれば、特定のファイルの存在有無を確認させたのち、

特定のファイルの中身を読み込ませて、後続処理を実施するかどうかを判定させるといった設計方法が考えられます。

 

 

【初期処理と終了処理】

 

ロボットの設計書を書くにあたって、大事だけれども忘れがちな2つの概念、初期処理と終了処理について記載します。

 

システムを開発された経験がある方であればイメージがつくかもしれませんが、

ロボットが起動した最初にやる処理と、ロボットが終了したときに実施する処理のことを指します。

 

この初期処理と終了処理は、RPAの場合は、データベース接続を閉じる、メモリを開放するといったシステム開発の観点とは異なります

 

RPAでは、人間の処理の内容をロボットが変わりに代行するという機能なので、

画面に他のアプリケーションが表示されていたり、不要な画面が一番手前に来ていたりする場合に、

動作が意図通りに完了しないというリスクがあります。

 

このリスクを抑えるために必要なのが初期処理と終了処理で実施するプロセスの削除や開いているアプリケーションをクローズする処理です。

 

特にロボットをPC上で動作させて、そのパソコンを人間がほとんど触ることがない場合、

この初期処理・終了処理がきちんと設計できていないとしょっちゅう業務処理を失敗してしまうロボットになってしまいます。

 

そのため、設計時には今一度、このロボットが操作する可能性のあるソフトウェアはなにか、

それらを終了させる・画面を閉じる記載があるかを再確認してください。

 

 

【リトライできる設計】

 

将来的にはロボットも人間のように状況に応じた判断を自ら業務を遂行していくようになるのかもしれませんが、

現状のロボットは、人間が業務をするのと異なり、

なにか予期せぬエラーが発生してしまった場合に、動作できなくなってしまいます

 

この予期せぬエラーが発生した場合に役立つ概念がリトライ(再実行)です。

 

ただし、再実行するように設計書に記載するのは簡単ですが、再実行を記載する際には気をつけるポイントがあります。

気をつける最大のポイントは、その動作をそのまま再実行しても問題がないか、という点です。

 

ロボットを作成するソフトウェアの種類によっては、特定のステップのみを複数回実施するだけでなく、

特定のステップのまとまりを再実行する範囲として定めることができます。

 

 

例えば、

Step1. Excelを開く。

Step2. シート1の内容を全選択しコピー。

Step3. シート2に貼り付ける。

Step4. シート1の特定の条件を満たすデータを削除。

という処理だった場合に、Step 1のExcelを開くのみを再実行させる、という指定の仕方もあれば、

1-4を一つのまとまりとして考え、1-4のいずれかが失敗した場合に、

1.Excelを開くからやり直しさせるといったことが指定可能です。

 

筆者の経験したプロジェクトでは多くの場合すべてのステップにリトライ処理を入れるのは時間がかかるため、

1-4を一つのまとまりとして、そのまとまりの中で失敗したらリトライをするという設計になっています。

 

では、上記のようなプロセスの1-4をそのままリトライさせることの問題は何でしょうか

Step1のExcelを開くのに失敗した場合であればそのままリトライ処理しても、後続処理に影響がでることはありませんが、

Step4の特定の条件を満たすデータを削除の途中で予期せぬエラー(EXCELが固まってしまう・突然の強制終了等)により失敗した場合はどうなるでしょうか。

 

この場合、途中までデータが削除されているので、Step1からリトライしてしまうと、

Step2でコピーする内容とStep3でシート2に貼り付ける内容が意図した内容にはなりません

 

また同様に、もしStep2で予期せぬエラーによりリトライがかかってしまっても、

既にStep1でExcelを開いているため、Excelの2重起動になってしまいます。

(場合により、読み取り専用で開きますか?といったポップアップが表示され、

そのポップアップを認識できずにロボットが止まってしまいます。)

 

つまり、上記のようなトラブルを起こさないためにも、

「その動作をそのまま再実行しても問題がないか」という点を考慮した設計にする必要があります。

 

 

この場合、1-4の手順に以下のような工夫を加えることで、そのまま再実行しても問題ない設計にすることが可能です。

 

Step1.もしExcelが開いていれば終了する。

Step2.操作対象のExcelをコピーして別のフォルダに移動する。

Step3.別のフォルダに移動したExcelを開く。

Step4.シート1の内容を全選択しコピー。

Step 5.シート2に貼り付ける。

Step 6.シート1の特定の条件を満たすデータを削除。

Step7.コピーしたファイルを元のフォルダに戻して上書きする。

 

このように変更することで、1-7のどこのStepで失敗しても、1からやり直せば何度でも同じ結果になることがわかります

 

もしリトライの処理を設計に組み込む際には上記のような点を考慮してください。

 

 

おわりに

今回の記事はいかがでしたでしょうか。

できるだけ実践的な内容をお伝えできるようにかなり細かい内容になってはいますが、

実際にRPAの設計書を書く際にご参考になれば幸いです。

 

 

 

topへ
© RPA.biz