UiPathのロボット作成ポイントと実行時間検証

Pocket

ロボット作成ポイントと実行時間検証

私は業務にてRPA(ロボティクス・プロセス・オートメーション)ロボットを作ることがあります。ロボットを作る上で自分なりに感じたこととポイント、および頭を悩ませた実行時間について、本記事で取り上げたいと思います。

作り手/使い手に優しいロボットを比較検証

一般的にRPAツールでは「ノンコーディングで組める」と言われているものが多くあり、 実際コーディングをしたことのない方でも組めるようになっています。 普段自分が行っている動きを覚えさせ、それを実行するだけでロボットが完成します。

ただ、「ノンコーディングで組める」のであって「コーディング出来ない」という訳ではありません。 コーディングの仕方によって、同じ作業を行うロボットでも、片や5分かかるロボット、片や2分で終わるロボットにもなりえます。 発想ややり方次第で大きく違いが出てきます。

そこで、RPAツールであるUiPathを使って、同じ結果を出すが組み方が違う2つのロボットの実行時間検証を行ってみます。つくるロボットは以下の2つです。

  • 作り手に優しいロボット:仕様変更に柔軟に対応出来、誰でもわかりやすいロボット
  • 使い手に優しいロボット:繰り返し実行することを主とした実行時間を意識したロボット

検証処理仕様

今回の検証で行う処理は、「顧客別売上金額ファイルの明細にマスタから情報を付加する」です。仕様は以下の通りです。

処理用テストデータ

  1. 顧客別売上金額ファイル
    • 顧客コードごとの売り上げデータ
    • 顧客コード-年月-売上金額-顧客名称(空白)-区分1(空白)-区分2(空白)-区分3(空白)-区分4(空白)-区分5(空白)
  2. 顧客マスタ
    • 顧客コードと名称、各区分データ
    • 顧客コード-顧客名称–区分1-区分2-区分3-区分4-区分5



処理の共通部分

顧客別売上金額ファイルをデータテーブルに取り込みます。また、顧客マスタをデータテーブルに取り込みます。

作り手に優しいロボットをつくる

顧客別売上金額ファイルデータテーブルを1レコード読み込み、変数rowにセットします。(全件ループ)
変数rowにセットされたレコードから顧客コード列の値を取得し変数kokyaku_cdにセットします。

変数kokyaku_cdで顧客マスタの顧客コードを検索し、顧客マスタの顧客名称を取得して、変数kokyaku_nameにセットします。
変数kokyaku_ nameが空白またはNULLかチェックします。
変数kokyaku_ nameが空白またはNULLでない場合は顧客別売上金額ファイルデータの現在行の顧客名称に変数kokyaku_ nameをセットします。

EXCELファイルtest_out.xlsxのA1セルに顧客売上明細ファイルデータテーブルを書き込みます。
※これをセットする項目数分記載を追加していきます。(区分1から区分5まで)

使い手に優しいロボットをつくる

顧客マスタデータテーブルを1レコード読み込み、変数rowにセットします。(全件ループ)
変数rowにセットされたレコードから顧客コード列の値を取得し変数kokyaku_cdにセットします。

顧客別売上金額ファイルデータテーブルを変数kokyaku_cdをキーにSELECTし変数urimei_tempにセットします。
kokyakuuri_db.select(“[kokyaku_cd] = ‘” + kokyaku_cd + “‘”)

変数urimei_tempの件数が0件かチェックします。
urimei_temp.count = 0

0でない場合は以下の処理を行います。
変数urimei_tempの1レコード目のインデックスを変数urimei_rowにセットします。

変数rowの2列目(顧客名称列)を顧客別売上金額ファイルデータテーブルの変数urimei_row行目の4列目(顧客名称列)にセットします。
※これをセットする項目数分記載を追加していきます。(区分1から区分5まで)

2つのロボットの違い

処理の動き

作り手に優しいロボットは、キーが一致する行を取得し、その行の指定の列の値を取得します。Excelで例えると、セルの値を取得し、セルに値をセットするような動きをしています。1項目取得するごとに、検索してセルを取得しています。

使い手に優しいロボットは、キーが一致する行を取得し、指定の列にセットしていきます。SELECT/UPDATEのような動きをしています。レコードで取得している為、項目が増えても検索回数は1回のみとなります。

作り手に優しいロボットは値ごとに検索を繰り返すのに対し、使い手に優しいロボットは1度の検索で複数の値をセット出来ます。
セットする項目が増減が多い、または仕様がよく変わるなら作り手に優しいロボットを作り、何度も処理を繰り返すならば処理が速い使い手に優しいロボットを作るといいかと思います。

DBという考え方を知っていなければ、使い手に優しいロボットの処理は考えづらいです。IT技術者ではないユーザー様が修正する予定がある場合は、修正のしやすさを考慮して、作り手に優しいロボットで作ったほうがいいと思います。

実行時間の検証結果

作り手に優しいロボットは5,000件のデータの場合、1項目を検索してセットするのに約30秒かかります。今回テストで作った処理の場合、顧客名称・区分1・区分2・区分3・区分4・区分5の6項目あり3分程度かかります。

使い手に優しいロボットは、1項目でも6項目でも2分強で終わります。SELECTに時間がかかるのですがその後の項目セット部分が増加しても差は微々たる時間です。

よって、セットする項目が1つだけだと、作り手に優しいロボットの方が速いことがあります。項目数によって処理を変えるというのも大事かと思います。

余談ですが、ロボットが動く環境に、処理速度は大きく左右されます。良いPCだと速く、ひと昔前のPCだと遅いなんてこともあります。「ロボットが動くだけだから古いPCでもいい」という訳ではありません。ロボットの処理能力を考えると、より良いスペックのPCを準備することが処理時間の短縮に繋がります。

最後に:コスト削減だけではないRPAのメリット

RPAロボットの導入を検討する際、業務をロボット化することが工数や費用の削減に繋がるかという点が、一つの指標になりえます。RPAツールのライセンス料に対し、業務効率化で削減されるだろうコストが勝らないと、RPAの導入に二の足を踏まれる方も多いかと思います。

一方、RPAは、削減できる工数は少なくても、従業員の働き方に良い影響を与えることがあります。

例えば、このような事例があります。ある担当者が毎日1時間かけて作成している資料がありました。その資料作成は色々な条件やシステムが複雑に絡み、担当者しかできない業務となっているため、担当者はなかなか休暇を取れない状況でした。そこでRPAロボットを導入し、業務をロボット化したことによって、担当者は資料作成に囚われず、連続した休みを取り、海外旅行に行けるようになりました。もちろんすべてがロボットを導入したおかげではないにしろ、担当者が長期休暇を取得できた一つの要因になったのは確かだと思います。働き方改革という観点では、高い効果を出したのではないでしょうか。

また、ロボット化した結果、担当者が他業務に力を発揮できる状況を作ることもあります。もし担当者が変更になった場合、引継ぎ業務は、仕様書とロボットがあれば容易になります。

RPA導入の費用対効果を、直接的なコスト面だけでなく、従業員の働き方を改善するという面からも検討いただければと思います。

RPAやUiPathについてご興味を持っていただいた場合は、ぜひ弊社までこちらからご相談ください。

お問い合わせ先

執筆者プロフィール

Yamake Masaru
Yamake MasaruTDISS パナソニックISサービス一部
お客様に喜んでいただけるシステム作りをモットーに設計・開発を行なっています。
COBOLから始まったエンジニアの道はまだまだこれから、日々精進です。
Pocket

関連記事