UiPath Workflow Design Pattern


はじめに

RPAプロジェクトでプラットフォームとして活用されているUiPath。そのワークフロー作成ツール「UiPath Studio」には、Enterprise RPAに必要となる機能をそろえたフレームワークである「ReFramework」が組み込まれています。

同じような業務の自動化を行っているUiPathのワークフローでも、その構成は開発した会社ごとに異なることがほとんどです。しかし本来、どんなシナリオのワークフローでも、安定運用させるために最小限実装すべきことは決まっています。また、開発会社によりワークフローの構成が異なることは、ワークフロー動作の不安定さの要因にもなります。

モダンなプログラミングでは、標準的なフレームワークやデザインパターンを使って、コードはシンプルかつ無個性に保つ傾向にあります。そこで、ReFrameworkをベースとして利用シーンに合わせて調整し、テンプレート化したデザインパターン「Workflow Design Pattern」をGitHubに公開しました。このデザインパターンを活用して、ファイル操作やメール処理など、基本処理のワークフローを共有することを提案します。

UiPath Studioを利用すれば“RPAはノンプログラミングではじめられる”というのは、ある意味真実です。しかし、Enterprise RPAに求められる安定性や保守性を実現するために、こうしたフレームワークやデザインパターンを取り入れた開発も必要ではないかと考えます。

RPA設計から実装の段階で起きていること

RPA導入・活用は、一般に以下のような流れで進みます。

1. 業務ヒアリング
2. 業務フロー+導入効果分析
3. 開発
4. 運用開始
5. 保守

多くのRPAプロジェクトでは、対象部門の業務についてヒアリングを行い、自動化したほうがよいもの、そうでもないものを見定めた上で開発が始まります。ヒアリングの過程で現行の業務フローを明らかにし、RPA導入後の業務フローを導き出して、その効果を見極めるわけです。

検討の結果、効果ありと判断されたものが開発に進むのですが、この時、開発者に渡されるのが、作業手順書(どこをクリックして何を入力するという細かい手順書)だけというケースがあります。

すると開発者は、詳細な手順から上位の設計方針を想像して、最適と考えられる方法で開発を進めます。その結果、最初のヒアリング資料とは連動しない、開発会社ごとのポリシーに沿った多様なワークフローが、開発会社の数だけ生まれることになります。

RPA運用開始から保守の段階で起きていること

RPAワークフローの運用が始まった後も、人の異動や組織改変、体制変更などによって、少しずつ作業手順が変わることがあります。そこで、その都度ワークフローも手直しをする必要があるのですが、ここでワークフロー実装の多様さが災いし、当初導入を行った開発会社しかメンテナンスができない、という状況が発生します。

RPAの長所は、人では対応が難しい、システム改変時の手順変更にすぐに対応できることや、頻繁な業務フローの変更に強いこと。しかし、これではRPA導入が業務効率化にとって、あだになってしまいかねません。

RPAワークフローの必要条件

どんなワークフローでも、安定した動作や手間のかからない運用を実現するためには、いくつかの必要条件が考えられます。

1. ワークフローの読みやすさ、UI Automationとビジネスロジックの分離
2. 設定情報の取り扱い
3. ビジネス例外の補足
4. システム例外の補足とリトライ処理
5. 運用情報把握のためのロギング

こうした機能がすべて実装されているフレームワークが、UiPathが公開したReFramework(Robotics Enterprise Framework)です。ベンダー公式のフレームワークでもあり、活用することでワークフローの改善もスムーズに行うことができます。

Workflow Design Pattern

このようにメリットの多いReFrameworkですが、デフォルトではQueueでトランザクションを管理するよう実装されているため、“要件に合わない”と利用をあきらめている開発者も多いようです。

そこで、ReFrameworkを利用シーンに合わせて調整したものを「Workflow Design Pattern」としてGitHub上に公開しました。まずは、ファイル操作、メール、Slackの処理などいくつかのデザインパターンを、それぞれ解説のエントリとともに公開しています。

File/Folder
・Excel Transaction
 Excelファイルの各行を順に処理します
・Folder Transaction
 フォルダ内のファイルを順に処理します

Mail
・Mail Transaction
 受信したメールを順に処理します

Messaging
・Slack Transaction
 Slackチャンネル登録ユーザーを順に処理します

Project Management
・Backlog Transaction
 Backlogの課題を順に処理します
・Wrike Transaction
 Wrikeのタスクを順に処理します

Batch Job
・Batch Job Controller
 大量の逐次処理を行います

最新の記事

UiPath Workflow Design Pattern

カテゴリ

月別アーカイブ