共通部品の考え方と作り方

共通部品とは?

共通部品を作成することでロボットのメンテナンス性を向上しよう

この章では共通部品の概要、どういったメリットデメリットがあるのかを解説していきたいと思います。

共通部品とは何なのか

共通部品とは色々なロボットで使えそうな汎用性のある処理をメインのロボットから分割して、別のロボットとして独立させたものになります。
この分割する手法のことをモジュール化、部品化とも呼び、RPA開発、運用の効率化を目的としています。

共通部品を作るメリット

共通部品を製作するメリットとしては以下のようなものが期待できます。

ロボットの製作期間の短縮

汎用性のある処理を共通部品として独立させておけば、新たに他のロボットを製作することになった際に同じ処理や似たような処理が必要になった場合、その共通部品を流用することでロボット制作の期間やコストの削減が期待できます。

ロボットのメンテナンス性の向上

処理ごとにロボットが分割されていることで、ロボットの動作把握がしやすくなりどんな処理をしているロボットなのかが理解しやすくなります。
これはロボットの運用、開発を引き継いだ際などに特に有用です。

加えて、システムのバージョンアップなどの際に共通部品として分割した処理でエラーが発生した場合、共通部品の中身だけを修正することで、共通部品を呼び出しているロボットの処理すべてに改修を適用できます。

エラー箇所の特定、可読性の向上

単一のロボットのみの構成だと動作内容の把握やエラー箇所の特定に多大な時間や労力が必要となってしまいます。
しかし、子ロボットとして処理を小分けにしたり、共通部品を用意することでひとつひとつのロボットの内容の把握がしやすくなり、エラー箇所の特定が容易になります。

共通部品を作るデメリット

共通部品を作成するのにはメリットだけではなく、デメリットもあります。

改修の影響が共通部品を使用しているロボット全体に及んでしまう

メリットの項で述べていた共通部品を呼び出しているロボット全体に改修が及ぶというのはメリットでもありますが、デメリットでもあります。
例えば、あるロボットAでエラーが発生し共通部品の中身を修正した際、同じ共通部品を使用している他のロボットBにおいて、改修が原因で意図しない動作を起こしてしまうことがあります。
こういった意図しないエラー動作を避けるためにも設計をしっかりと固めてから共通部品を作成することを推奨します。

処理を分割しすぎると逆に全体像の把握がしにくくなってしまう

全ての処理を考えなしに分割しすぎてしまうと逆に全体像の把握がしにくくなってしまい、作業の非効率化に繋がってしまいます。
なので、処理を分割する際には開発標準として一定のルールを設けて、そのルールに沿って処理を分割することを推奨します。

共通部品の考え方と作り方

汎用性が高い、何回も使用している、明確な役割がある処理は共通部品化しよう!

この章では共通部品を作る際の判断方法や基準を定めるのに役立つ情報を紹介して行きます。

共通部品化の判断基準例

他のロボットで流用する可能性の高い処理

一つ目の判断基準例として紹介するのは、他のロボットで流用する可能性が高い処理です。
例を挙げると

  1. システムのログイン、ログアウト処理
  2. エラー時にデスクトップの画面のスクリーンショットを撮影し、フォルダに格納する処理
  3. ロボットで使用するフォルダ内に不要なファイルがある場合に排除する処理

などが挙げられます。
こういった汎用的な処理は転記処理などで使用頻度が高めなので、共通部品として分割しておくと開発効率の向上が期待できます。

ロボット内で同じ処理を複数回繰り返している処理

二つ目に紹介する判断基準例は、一つのロボット内で同じ処理を複数回繰り返している処理です。
例を挙げると

  1. SAPの操作で次の画面に進むためにEnterなどのキーを押す処理
  2. 指定したExcelのファイルを開いて、ウィンドウサイズを最大化する処理
  3. 指定されたファイル名やファイルパスにあるファイルを、コピーしたり削除したりする処理

などのある程度、操作する範囲が定まっている処理が該当します。
こういった処理はコードの冗長化に繋がってしまうので、共通部品として作成しておくとコードの行数を短縮でき、ロボット全体の流れが把握しやすくなります。

一つの役割のみを持った処理

複数の役割を持つような複雑な処理は共通部品として流用するのには向いておらず、広い役割を持てば持つほど共通部品としての使いやすさが下がっていきます。
なので、共通部品として分割する際はできるだけ単一の目的、役割のみを持たせた処理を共通部品として分割するように心がけましょう。
例を挙げると、決まったページの決まった入力欄に渡された値を転記する処理は役割がシンプルで共通部品に向いていますが、上記を含めた転記処理全てを共通部品化しようとすると範囲が広すぎて共通部品としては使いづらくなってしまうといった形です。

共通部品化すべき処理例

次に共通部品として作成しておくと便利な処理例を紹介して行きます。

ロボット起動時、終了時に必ず実施する処理

まず作っておくと作業が捗る処理と言えば起動時処理と終了時処理です。
起動時処理によく含まれているのは

  1. 変数の初期化処理
  2. ロボット内で使うアプリケーションを事前に閉じておく処理
  3. ロボットの稼働開始通知をメールで送る処理
  4. ロボット稼働中の一時的ファイル保存先の中身を全て削除する処理

などの処理が挙げられます。

終了処理によく含まれているのは

  1. ロボットが使用したアプリケーションを全て閉じる処理
  2. ロボットの稼働終了通知をメールで送る処理

などの処理が挙げられます。

これらはどんなロボットでも使用する可能性のある処理の為、ロボット開発時のテンプレートとして用意しておくと有用です。

システムへのログイン、ログアウト処理

次に紹介するのはロボット内でよく使うシステムなどへのログイン処理、先ほど終了時処理でも紹介したログアウト処理です。
SAPなどをはじめとしたデータ管理系のシステムへのログイン、ログアウト処理やSharePointなどの共有サーバーへのログイン、ログアウト処理は共通部品化しておくことで、転記するデータ内容によって個別に作成する必要のあるロボット群作成の際に大いに役立ちます。

共有サーバーへのデータアップロード、ダウンロード処理

更にSharePointなどファイル共有サーバーへのログイン、ログアウト処理に加えて、転記し終わったデータファイルなどを共有サーバーやフォルダにアップロードする処理や必要なデータを事前にダウンロードしてくる処理なども共通部品化しておくと、非常に便利です。

システムログやエラーログの出力処理

処理の内容をtxtファイルなどに出力してログを残す処理は、エラー箇所の特定やフローを追う際に活躍する為、使用頻度がかなり高いので共通部品化するのをお勧めします。

共通部品作成事例の紹介

共通部品を使用しているロボットの流れをご紹介

ここでは実際に業務で作成したAutomation 360上での共通部品使用の流れを簡略化してご紹介します。

ロボットで必ず処理前・処理後に実施する処理、システムのログイン・ログアウト処理

  1. 変数初期化処理
  2. configファイルから処理に必要な変数を取得
  3. 初期処理ロボットを実行 ★共通部品
    1. 前回稼働時に使用したファイルが残っていたら削除する
    2. 処理に必要なフォルダが存在しない場合は作成する
    3.  メール送信処理ロボットを実行(処理開始) ★共通部品
  4. SAPログイン処理ロボットを実行 ★共通部品
  5. SAP転記処理
  6. SAPログアウト処理ロボットを実行 ★共通部品
  7. 終了処理ロボットを実行 ★共通部品
    1. ロボット内で使用したアプリケーションを全て終了する処理
    2. メール送信処理ロボットを実行(処理終了) ★共通部品

エラーが発生した際の例外処理に必要な処理(エラー時にディスプレイのスクリーンショットを撮影して、ファイルに格納する処理、エラーログの出力処理)

  1. エラー発生でエラーハンドラー:キャッチに跳ぶ
  2. スクリーンショット撮影、保存処理 ★共通部品
  3. エラーログ出力処理 ★共通部品
  4. 異常発生メール送信処理 ★共通部品
  5. エラーハンドラー:スロー
  6. 終了処理ロボットを実行 ★共通部品

今回は共通部品とは何なのか、作る際の考え方や実際の流れについて紹介してきました。
共通部品を作成することは、ロボットの運用、開発の効率化に繋がります。

弊社ではAutomation 360やUiPtah、BizRobo!といった多種多様なツールを用いて皆様のRPA導入をお手伝いしています。
新規開発として一からロボットを作るだけではなく、既存のロボットの改修や仕様ツールの変更による移行なども請け負っておりますので、お気軽にご相談ください。

本記事の執筆者

ペネトレイター株式会社 石川