UiPath Blog
こんにちは、UiPath株式会社の大下です。
今回は、Action Center(タスクとフォーム、参考: https://www.uipath.com/ja/product/rpa-management-apps)を活用し、簡単にロボットの作業と人間の作業を連携させるワークフロー(Human in The Loop)を作成していきます。 Action Centerによってロボットと人間の”協働”が容易に可能となり、自動化できるビジネス領域が格段に広がります。
Action Centerのサービス概要
Action Centerはジョブの実行中に人間を介在させるためジョブを中断したり再開したりする仕組みを作る機能群です。タスクとフォームの二つの機能によって構成させています。
実際にAction Centerを活用したロボット、データの流れは以下のイメージです。
Unattendedロボットでワークフロー実行しオーケストレーター上で人間が介在作業します。
事前環境準備
Studio及びOrchestrator
Studio:19.10以上
Orchestrator:19.10以上
以下のアクティビティパッケージと該当するバージョンをインストールしてください。
UiPath.Form.Activities
UiPath.Form.ActivityLibrary
UiPath.Persistence.Activities
ワークフローシナリオ(OCR業務)
それではAction Centerを使って実施にワークフローを作成していきます。今回はロボット作業とロボット作業の間に人間が介在するケースが多いOCR×RPAの業務を例に作成します。例えば請求書データをOCRし、人間がデータチェック・追加、最後に基幹システム登録というシナリオです。
フォームタスクを作成アクテビティ
まずはオーケストレーションプロセステンプレートを利用して新規プロジェクトを作成します。
フォームタスクを作成アクティビティを使用します。
次にフォームタスクを作成アクティビティ内の必要パラメータを入力します。
タスクタイトル:後に作成されるオーケストレーター上のタスクとして表示されるタイトル名です。
フォームデータ:フォームで使用する引数です。
今回はOCR業務ということで、請求書イメージデータ、合計金額、支払期限、勘定科目コードの4つを設定します。
次にフォームデザイナーでフォームのレイアウトをします。
完成するとこのようなフォームが作成できます。左側のペインに請求書元画像、左側にOCR読みとり結果を表示できます。
まず、フォームタスクを作成アクティビティ内のフォームデザイナーを開くをクリックします。
先ほど設定した引数をラベルタイトルにすでにテキストフィールドとして表示されています。
任意の場所にドラッグ&ドロップでフォームデザインが簡単にできます。
まず、TotalAmount, DueDate, AccountCodをフォーム上部に動かします。
次にラベルタイトルをわかりやすく変更します。カーソルをフィールドに合わせ、Editボタンをクリックします。
ラベルの箇所のテキストがフォームに表示されるタイトルになりますので、わかりやすい表示名に変更します。
次に出力引数(フォーム上から返却されるデータ)として設定したout_AccountCode(勘定科目コード)はテキストフィールドで人間が手入力できるようにします。
最後に請求書のイメージデータをフォーム画面上にイメージとして表示させます。
フォームに表示する画像イメージはBase64エンコードした文字列をHTMLへ渡します。
後のHTMLとして表示するための文字列を以下のように作成します。
imgSrcText = "data:image/png;base64," + img.Base64
イメージを表示させるには詳細設定→HTML要素を使います。
バインド設定で先ほどの文字列を設定し、
HTMLの<img>タグ内に{{ data.imgSrc}}として設定します。
また、「更新時に更新」にチェックを入れます。
参考までにテキストインプット以外にもドロップダウン、チェックボックス、ラジオボタンなどいろいろとデザインツールがフォームデザイナーには備わっています。
FormTaskData型の変数をタスクフォームを作成アクティビティのタスクオブジェクト(出力)プロパティにセットします。
そして同じ変数をフォームタスク完了まで待機し再開アクティビティのタスクオブジェクト(入力)プロパティにセットします。
これにより、ジョブがフォームタスク完了まで待機し再開アクティビティのステップにまで達すると、ジョブはとなり一時停止となり、ロボットはジョブが実行されているセッションからログアウトします。
タスク
それではオーケストレーター上に作成されたタスクを見てみましょう。オーケストレーターログイン後、タスクメニューへ遷移すると、
新しくタスクが「未割り当て」の状態で作成されています。
オーケストレーター上でのタスクのアサイン
各タスクの操作パネルで、どの担当者(オーケストレーターログイン)へこのタスクをアサインするかを選択できます。
割り当てられたタスクに紐づけられたフォームを開き、ここで人間の目でのデータチェック、追加データを入力などの作業を行います。
フォームの「送信」ボタンを押すとタスクが完了となります。
後続ロボット作業の実行
フォームタスク完了まで待機し再開アクティビティにより、一時停止されていたジョブはタスクが完了すると再開されます。またジョブ一時停止中はUnattendedロボットは別のジョブの実行に利用することができます。
Studioでジョブを再開する場合は再開ボタンをクリックしてください
この際、先ほどフォーム画面上で追加したデータや、修正したデータなどはフォームデータに設定した出力変数に格納されます。
今回はAction Centerの動作・仕様がわかりやすいようにStudio/Attended実行でご説明しましたが、Action Centerとしての公式サポートはUnattendedロボットによる実行となります。
(参考)サンプルワークフロー
上記で作成したAction Centerサンプルワークフローです。
ぜひみなさまもAction Centerで単一のプロセスだけでなくビジネスプロセス全体まで自動化領域を広げていただきたいと思います。
Principal Sales Engineer, UiPath