パフォーマンス改善のためのUiPath開発実践テクニック
今回は、UiPathの動作を高速化しパフォーマンスを改善するためのUiPath開発テクニックをご紹介します。
UiPathワークフローの実行も安定してきた、ワークフロー本数も増えてきた、という方も多くいらっしゃると思います。次は、こんな悩みが出てきている頃ではないでしょうか…
- ワークフロー処理のスピードを速めて、実行時間を短くしたい
- ワークフローの処理負荷が高くて、PCが止まってしまうことがある
- 範囲選択等、一部の動作が遅くなることがある
動作が遅くなってしまったUiPathの処理の高速化のため、今すぐに試すことができて、効果も実感できるテクニックをご紹介しますので、是非、参考にしてみてください。
(注意)このコラムは UiPath Studio Ver19.10.2 を使用しています。バージョンによりアクティビティ名やプロパティ名が異なる可能性があります。
テクニック① Excelの処理はバックグラウンドで
みなさまも使用する頻度が高いだろうExcelの操作ですが、
- 読み込み、書き込みのデータ量が多いとき
- 複数のファイルを開いて処理を行うとき
こんなときは処理負荷が高くなり、ワークフローのパフォーマンスが低下しがちです。そこで効果的なのは、Excelアプリケーションスコープのプロパティ「可視」のチェックを外すこと。「可視」というのは名前の通り、Excelファイルをデスクトップに表示した状態で処理をするかどうかを選ぶ項目です。デフォルトでは、「可視」にチェックが入っていて、処理中、デスクトップ上にExcelファイルが表示されたままになりますが、アンチェックにするとバックグラウンドで処理が進んでいきます。
テクニック② Excelを開くのは一度だけ
続いても、よく使うExcelの操作テクニックです。CACでは、お客様がRPAを自社開発できるようになるための「RPA⾃社開発イネーブルメントプログラム」をサービス提供していますが、その中で実際に質問があったものです。その時の組み込んだテクニックを事例として紹介します。
例えば、販売予実の日報作成業務があるとします。日報作成は以下のような処理で構成されています。
(Step.1)日報ファイル(Excel)から販売コードデータを読み込む
(Step.2)システムから販売コードに対応する販売実績データを取得する
(Step.3)日報ファイル(Excel)に販売実績データを転記する
ここで、Step.1 と Step.3 で同じ日報ファイル(Excel)を使っています。Excelファイルの処理には、Excelアプリケーションスコープを使いますが、通常の使い方としては「ブックのパス」項目にExcelファイルパスを定義すると思います。
ここで「ブックのパス」にファイルパスを定義すると、Excelアプリケーションスコープを抜けたらExcelファイルも閉じられる点に注意が必要です。Excelファイルにアクセスする度、Excelアプリケーションスコープに入るので、その回数だけExcelファイルの「開く」「閉じる」が繰り返されます。他の開発プロジェクトでも、同じようなワークフローを実行する際、Excelファイルの動きとUiPathの処理が噛み合わず、待機時間を設けて調整をしていたことがありました。
回避策としては、1つ目はExcelアプリケーションスコープの「ブックのパス」に加えて、プロパティ「ブック」に変数(WorkbookApplication型)を設定します。ここでは “WB_日報” という名前の変数を使用しています。
2つ目のExcelアプリケーションスコープではプロパティ「既存のブックを使用」に先ほどの変数 “WB_日報” を設定します。
こうすることで Step.1 で日報ファイルを開いた後、そのまま開いた状態で Step.2、Step.3 へと処理に進み、転記後に日報ファイルが閉じられます。Excelの立ち上げ、Excelファイルの「開く」「閉じる」処理がそれぞれ1回になりますので、ワークフロー全体の負荷を軽減できます。
テクニック③ ロジックそのものを見直す
続いては、これまでワークフローのロジックをのものを見直していきます。初め慣れないうちに作ったワークフローだったり、追加の実装が増えて複雑なワークフローになっているものはありませんか?
ここでは次のような処理を例に考えていきましょう。
(Step.1)販売コードの一覧がデータテーブルに格納されており、それを1データずつシステムで検索する
(Step.2)販売コードに対応する販売実績を取得し、アウトプットに書き出す
左のワークフローは、繰り返しの中にアプリケーション起動や、Excelファイルへの書き込みが入っていることで、1データの処理の中でアプリケーションが切り替わり、実行負荷が大きくなっています。
比べて右のワークフローは、対象のアプリケーションを開いた後に、検索や販売実績値の取得などをまとめて行っているので、ウィンドウが開いたり閉じたりするのを防ぐことができています。
また、販売実績の書き出しも、繰り返しの中ではデータテーブルへの代入にとどめておき、Excelファイルへの書き出しを最後に1度だけにしています。処理スピードが速くなるだけでなく、ワークフローもすっきり見えますよね。
Tips :「待機」はもったいない
最後におまけとして、一定時間、処理を止めてワークフローを待機をさせる「待機」アクティビティについてです。「待機」アクティビティを使う場面は、対象のアプリケーションを起動するとき、画面が遷移するとき、クリックの空振りなどのエラーが発生するとき、などがあげられます。
ただ、なんでも待機時間に任せるというのは危険です。どんどん処理時間が長くなってしまいます。これについては、もう止まらせない!UiPathワークフローの作り方(動画)の『画面の遷移やアクティブ化になる前にRPAが先走るエラー』にて「要素を探す」アクティビティの説明をしていますので、是非、チェックしてみてください。
上で紹介した「RPA⾃社開発イネーブルメントプログラム」は、実際の業務の自動化を、お客様自身に設計・開発・テスト・保守まで全工程ご経験いただき、お客様自身が開発リーダーとして立ち上がっていただくことを目指すプログラムです。ワークフロー作成の基本から、今回、ご紹介したようなパフォーマンス改善のためのテクニック、エラーが発生しにくくなるコツなど実践的なスキルトランスファーをご用意しています。
他にも、CACでは、こうした開発ノウハウを生かしてRPAの開発、運用・保守やトレーニングといったRPAに関わるサービスをワンストップにご提供しています。お気軽にお問い合わせください。
【このコラムを動画でみる】のどか先輩のUiPath開発講座2022冬 〜④速く動くよう作ろう編〜
【このコラムを動画でみる】【UiPath開発】Excelはバックグラウンド処理する
【このコラムを動画でみる】【UiPath開発】Excelは一度だけ開く
このコラムの執筆者
株式会社シーエーシー
アドバンスドテクノロジー本部
森永 和花
入社以来、RPAの開発・保守を担当しています。RPAが初めての方はもちろん、今、運用中のお悩みをお持ちのお客様と一緒に、RPAを着実に進めていけるよう、日々業務に取り組んでいます。
本記事のカテゴリ :RPA技術コラム
関連記事
-
美しいワークフロー(シナリオ)の作り方をUiPathで、コラム「RPAの気になる話」2021/3/15
-
止まらないワークフロー(シナリオ)の作り方をUiPathで、コラム「RPAの気になる話」2021/3/15
-
UiPath初心者でもワークフロー(シナリオ)が作れる、CAC RPAセミナーアーカイブ(動画)
PickUP
本記事に関連するCACのサービスやお役立ち情報をご紹介します。
RPA技術レポート無料ダウンロード
- 【コラム】WinActor ver7.5.0「シナリオ作成ガイド」で作ってみました
- 【コラム】 RPA導入・拡大の課題と解決 ―知っておきたい3つのTIPS
- 【コラム】RPA開発のポイント ―RPAを一人で始めて会社を巻き込む
- 【コラム】医療事務の現場 事務でRPAが求められる背景から対象業務、メリット、事例まで一挙解説!
- 【サービス】RPA開発/サポートサービス
- 【サービス】RPA+Oneソリューション
- 【サービス】RPA研修 自社開発イネーブルメントプログラム
- 【動画】CAC RPAセミナー オンデマンド
- 【資料ダウンロード】美しいコードをみると感動する、美しいワークフローの作り方|CAC RPA White Paper