組織で高品質なロボットの開発を進めようと思ったときに、フレームワーク(頻繁に発生する設定が用意された枠組み)を上手く活用することが重要です。
フレームワークを導入することのメリットには以下のような点が挙げられます。
- 品質レベルの標準化
フレームワークの中で開発するという制限が加わるため、要求される開発品質が一定になる - 可読性と保守性の向上
フレームワーク部分が共通になるため、可読性と保守性が高まる - 開発工数の効率化
検証済みのフレームワークを共有して利用するため、毎回該当箇所を開発・検証をする工数を削減できる。
今回の記事では弊社でAutomation Anywhereのロボット開発時に利用しているロボットのテンプレート(=ロボットフレームワーク)を基に、ロボット開発時に流用できるロボットのフレームワークの作成方法と使用方法についてご紹介します。
目次
ロボットフレームワークとは
ロボットフレームワークで標準化された品質のロボットを効率的に作成できる!
ロボットのフレームワークとは、開発ロボットのテンプレートのことを言います。
具体的には、開発時に必ず設定が必要な要素の設定枠のみを用意したロボットがあり、それをテンプレートとして活用することができます。
ロボット開発の標準化(品質の確保)
開発者によって作成するロボットの設定に大幅な違いがあると、品質が開発者に依存し、すべての開発者が開発するロボットで品質を一定に保つことが難しくなります。
しかし、ロボットフレームワークには開発時に必ず必要な要素が入っている、品質を確保できる設定枠があらかじめ用意されているため、他のロボットとのつくりが統一されます。
上記により、ロボットの全体の流れは「品質を確保できる設定方法」から大きく変わらなくなるため、一定の品質を保つことが可能になります。
ロボット開発の効率化(生産性の向上)
必ず必要な設定を毎回設定するのは意外と多くの作業時間を消化します。
ロボットフレームワークにはあらかじめ開発時に必ず必要な大枠の設定が既に網羅されているため、今回自動化対象の処理の開発から着手できます。
これにより、ロボット開発の効率化を実現します。
ただ、ここで課題となるのは「品質を確保できるロボットフレームワーク」を作成するためにはどうしたらいいのか?というところです。
次の章では、ロボットフレームワークの基本的な構成と具体的な設定内容をご紹介します。
ロボットフレームワークの構成と処理内容
誰でもわかる!使える!ように作ることが重要
ロボットフレームワークの構成についてですが、作る上での前提条件として、どの開発案件にも汎用できることが重要になります。
この章では上記のようなロボットフレームワークを作るためのポイントをご紹介します。
まず、どの開発案件にも汎用できるようなロボットフレームワークを作成するには、すべての開発案件に必ず必要な設定を組み込むことがポイントになります。
ロボットフレームワークで基本的に必要な処理は以下の通りです。
ほとんどの企業で作られているロボットフレームワークには以下の処理が標準で組み込まれているので、以下の要素を満たしていればどの案件でも汎用的に使用することができるでしょう。
▼弊社で作成しているロボットフレームワークの全体構成(Automation 360バージョン)
上記5つの設定の具体的な内容は以下の通りです。
ロボットの親子構造 (全体処理/自動化処理)
基本的に開発するロボットはメンテナンス性やロボットの簡略化を考慮し、親子構造でロボットの役割を分けて設定することが推奨されています。
そのため、ロボットのフレームワークも親子構造(全体処理と自動化処理)で作成されています。
エラーハンドリング
エラーハンドリングはロボットでエラーが発生した時にもロボットが最後まで処理を完了させられるように、例外処理の対応をするものです。
エラーハンドリングも開発時には必ず必要な設定のため、ロボットフレームワークでテンプレート化しておくことで、設定工数を削減できるのはもちろん、開発時のエラーの特定を素早くできます。
尚、エラーハンドリングの中には以下の機能も設定されます。
- プロセスログ・エラーログ出力
プロセスログ:ロボットの中の各処理の記録を残すもの
エラーログ:ロボットの中で発生したエラー内容の記録を残すもの - 画面キャプチャの取得
エラーが発生したらエラーログを出力する
▼自動化処理の中に設定されているエラーハンドリング
エラーが発生したらエラーログを出力する
事前処理
ロボットフレームワークの自動化処理を実行させる前に必ず必要な処理を子ロボットにまとめて呼び出しをする処理です。
ロボットの実行条件に必要な準備を事前処理に設定しておくことで、
万が一、直前に稼働するロボットでファイルが開いたまま処理を終了してしまった、、、ということが起きても事前処理でロボットが必要な準備をしてくれるので予期せぬエラーを防ぐことができます。
また、企業によってはロボットが処理を開始した通知メールの送信処理を追加するケースもあります。
一般的に設定されている内容としては以下の通りです
- 開始メールの送信
- 使用するフォルダ内の不要ファイルの削除 等
事後処理
最後にクリーンアップ処理は、あらかじめ指定したアプリケーションを閉じて画面を綺麗な状態にする処理を意味します。ロボットの処理の前、事前処理、事後処理と併用して使用されることが多いです
事後処理で一般的に設定されている処理は以下の通りです。
- 次回稼働で使用しないファイル削除
- 正常・異常終了通知メールの送信
クリーンアップ処理
最後にクリーンアップ処理は、あらかじめ指定したアプリケーションを閉じて画面を綺麗な状態にする処理を意味します。ロボットの処理の前、事前処理、事後処理と併用して使用されることが多いです
上記の設定を組み込むことですべての開発案件に汎用できるロボットフレームワークを作成することができます。
上記に加えて、誰でもどこに何の設定がされているかわかるように、ステップやコメントを活用してどこに何が入っているのかの説明を適宜追加するようにするとさらに使いやすいロボットフレームワークになります。
では、上記の構成を組み込んだロボットフレームワークを作成した後、どのように使用すればいいのか?について次の章でご説明させていただきます。
開発時にロボットフレームワークを使用する方法
ロボットフレームワークの設定を確定した上で開発に使用することがポイント!
前の章でロボットフレームワークに組み込む必要がある構成を説明しましたが、ロボットフレームワークを作成して使用するにあたって必要な準備があります。
今回は弊社でルール化しているロボットフレームワークの使用ルールを基に、ロボットフレームワークの使用方法をご紹介します。
準備を実施しなくても使用することはできますが、ロボットでの設定の負担が増えたり、せっかく作成したテンプレートに編集が加わってしまったりする可能性があるので、以下の手順を踏んだ上で使用することを推奨します。
ロボットフレームワークを開発に使用する際の事前準備としては大きく分けて2つのステップがあります。
- 管理者側でロボットフレームワークを開発環境で活用するための準備をする
- 開発者側でロボットフレームワークを複製し、開発準備をする
それぞれの具体的な手順についてご説明します。
管理者側でロボットフレームワークを開発環境で活用するための準備をする
- フレームワークのロボットを開発環境にインポートする
- 各会社のポリシーに合わせてフレームワークの修正を行う
- 修正したロボットをチェックインする(共有サーバーに移動する)
- グローバル値(共通で使用する変数)を設定し、監査ログなどを格納するフォルダパスを定義する
上記のように管理者はロボットフレームワークを開発者に展開する前に① 開発先の会社のポリシーに基づいてフレームワークを調整し、② ロボットフレームワークの使用時に必要な変数を必要に応じてグローバル値に設定しておく、、、等、ロボットフレームワークの仕様を確定する作業を実施します。
上記の準備をしない場合、開発時に開発者側でのフレームワークの調整が発生しやすくなり、本来のロボットフレームワークの利点を最大限に享受できない可能性が高いです。 ロボットの品質や開発期間に影響することも考えられますので、上記の事前準備をしっかり行いましょう。
開発者側でロボットフレームワークを複製し、開発準備をする
- 公開タブにあるフレームワークをクローンする。
- 全体処理ロボットと自動化処理ロボットを該当の開発フォルダへコピー&名称変更をする。
- 全体処理ロボット>ロボット毎に要編集ステップの中の変数を編集する。
- 全体処理ロボットの自動化処理ロボット呼び出し個所を編集し、コピー後の自動化処理ロボットを呼び出すように修正する。
- 自動化処理ロボットに自動化したいロジックを実装する
開発者側で気を付けることとしては、確定した複製元のロボットフレームワークに誤って編集を加えないようにすることです。
フレームワークをクローン⇒コピーして使用することにより、開発時に誤って元のテンプレートを編集してしまうことを防ぐことができます。
上記の手順でロボットフレームワークを活用し、品質の維持、開発時間の削減に生かしましょう。使用しているうちに調整が必要になることももちろんあるので、その場合も仕様を確定・調整した上で展開するように気を付けていただければと思います。
今回はロボットフレームワークの作成ポイントについてご説明させていただきました。
フレームワークをはじめ、開発時にあらかじめルールを決めておくことで、効率的に品質の高いロボットを作成することができます。
弊社では、これまで複数のRPAツールでフレームワークをはじめとする開発標準の設定、社内での展開を実施しておりますので、品質維持や開発工数の削減方法等でお悩みの方は弊社までお問い合わせください。
ペネトレイター株式会社 阿多