はじめに
v2019.10LTSからAction Center(タスクとフォーム)機能が追加され、ActionCenter機能を活用することでロボットと人間の"協働"が容易に可能となりました。
ActionCenterの概要説明は、こちらの記事をご覧ください。https://www.uipath.com/ja/blog/developer/action-center
実際のご利用方法について悩んでいるお客様が多くいらっしゃいますので、本記事ではActionCenterのサンプルワークフロー、作成方法及び開発時の注意点について記載します。
サンプルワークフローをご利用いただくまでの流れ
1.OrchestratorのTask機能をオンにします。
2.Orchestratorからロボットやユーザーのロール権限を正しく設定します。
3.サンプルワークフローを設定し、実行します。
注意点:現バージョン(v20.4まで)は、ActionCenter機能はUnattended Robotとクラシックフォルダのみのサポートとなります。
OrchestratorのTask機能をオンにする方法
インスタンスレベル
1.Orchestratorサーバーにあるweb.config ファイルの<appSettings></appSettings>セクション中に、下記設定を追加します。
・<add key="Features.LongRunning.Enabled" value="true" />
・<add key="Tasks.ModuleEnabled" value="true" />
2.設定の反映のため、IIS を再起動します。
テナントレベル
1.Orchestrator インスタンスのhostテナントに、ホスト管理者としてログインします。
2.[テナント (Tenants)] ページに移動します。
3.タスク機能を有効化したいテナントから、[その他のアクション (More Actions)] > [機能を有効化/無効化 (Enable/Disable features)] をクリックします。[機能フラグ (Feature Flags)] ウィンドウが表示されます。
4.[タスク (Tasks)] チェックボックスを選択して [更新 (Update)] をクリックします。
5.対象のテナントにログインし、画像のように左側メニューの[オートメーション(AUTOMATIONS)]の項目に[タスク(TASKS)]が表示されていれば、タスク機能の有効化は完了となります。
Orchestratorからロボットやユーザーのロールを設定する方法
実際にタスク機能を利用するには、ロボットとOrchestratorユーザーそれぞれに適切なロールを設定する必要があります。
ロボットのロール設定
ロボットのロールを適切に設定し、FormActivitiesを利用できるようにします。
今回は下記公式ガイドに記載のある「 タスクユーザー」を参照にロール設定を行います。
https://docs.uipath.com/orchestrator/lang-ja/v2019/docs/about-tasks
1. adminなど、ロールを作成し割り当てできるユーザーでOrchestrator管理画面にログインします。
2. ロール画面から新しいロールを作成します。新規ロールには以下タスクに関する権限のみ追加します。
なおここでは新規ロール名は、わかりやすいように「TaskUser」と命名します。
[Tasks(タスク)]-[View(表示)]、[Edit(編集)]、[Create(作成)]
設定完了後、CREATEボタンを押下してください。
※既定ロール「Robot」にロールを追加することでも対応可能ですが、既定ロールは他ロボットへの影響が大きいため変更しないことを推奨いたします。
3. 続いて作成したロールの割り当てを行います。
Typeを「Robot」に切り替え、サンプルワークフローを動作させる予定の、UnattendedRobotを選択します。選択後、UPDATEボタンを押下します。
これでロボットに対して、ロールの割り当てが完了しました。
ユーザーのロール設定
ActionCenterで利用するフォームを、Orchestratorユーザーが操作できるよう、適切なロールを設定します。
今回は下記公式ガイドに記載のある「 タスク管理者」を参照にします。
https://docs.uipath.com/orchestrator/lang-ja/v2019/docs/about-tasks
1. Orchestrator管理画面からログインしたユーザーで、左側メニューからTASKSを選択します。この時[Tasks: Access denied(タスク: アクセスが拒否されました)]と表示される場合は、ログインユーザーに権限がないことを意味しています。
2. adminなどロールを作成し割り当てできる権限をもったユーザーで、Orchestrator管理画面にログインします。
3. ロール画面から新しいロールを作成します。
ここでは新規ロール名は、わかりやすいように「TaskAdmin」と命名します。権限の割り当ては、以下の通りです。
[Task Assignment(タスクの割り当て)]-[Create作成)]
[Task Catalogs(タスクカタログ)]-[View(表示)]、[Edit(編集)]、[Create作成)]
[Tasks(タスク)]-[View(表示)]、[Edit(編集)]、[Create作成)]
設定完了後、CREATEボタンを押下してください。
4. 続いて作成したロールの割り当てを行います。
サンプルワークフローで作成したタスクを承認・却下する予定の、Orchestratorユーザーを選択します。選択後、UPDATEボタンを押下します。
これでOrchestratorユーザーへの権限が付与されました。
サンプルワークフロー
「申請者がフォームアクティビティを利用して申請し、それを承認者がOrchestratorのフォームタスク画面から承認する」という流れを想定したサンプルワークフローです。
処理概要
1.申請者がExcelに記入している当月の勤務状況をAction Centerにて承認申請します。
2.承認者はAction Centerに申請された内容を確認し、承認または却下を行います。
3.申請者に承認情報を通知します。
ワークフローの構成
<環境>
Studio v2019.10.4
Orchstrator v2019.10.16
<参照アクティビティ>
"UiPath.System.Activities": "[20.4.0]"
"UiPath.UIAutomation.Activities": "[20.4.1]"
"UiPath.Form.Activities": "[1.1.1]"
"UiPath.FormActivityLibrary": "[1.1.1]"
"UiPath.Persistence.Activities": "[1.0.1]"
"UiPath.Excel.Activities": "[2.7.2]"
"UiPath.WebAPI.Activities": "[1.4.5]"
"UiPathTeam.Excel.Activities": "[1.1.1]"
※マーケットプレイスのパッケージです。
"UiPathTeam.ExcelSheetToImage.Activities": "[1.0.0.3]"
※マーケットプレイスのパッケージです。
<構成>
├ [Data]
| └ Config.xlsx
| ※設定情報ファイル(画像化の範囲、フォームに表示するデータのセルなど)です。
| ※保存階層を変更する場合、InitAllSettings.xamlの修正が必要になります。
| └ 勤務報告2020.xlsx
| ※テスト用のデータです。任意のフォルダに移動してご使用頂けます。
├ Main.xaml
└ InitAllSettings.xaml
※Config.xlsxをDictionary変数に展開するWorkflowです。
Robotic Enterprise Frameworkのxamlファイルを使用しています。
処理詳細
1.設定情報ファイル(Config.xlsx)を読み込みます。
<列情報>
・Name:Dictionary変数のKeyに設定する名称
・Value :Nameに対応する値
・Description:設定値に関する説明(Workflow内では使用されません)
2.フォームから申請情報を入力します。
<フォーム入力内容>
・Excelファイル:勤務表(Excel)ファイルを選択します。
・シート名:申請対象のシート名を入力します。
入力が省略された場合は、アクティブシートを使用します。
<補足>
アクティブシート名の取得には、マーケットプレイスで提供されている「かんたん Excel アクティビティパック(UiPathTeam.Excel.Activities)」の『シート名を取得 (アクティブシート)』アクティビティを使用しています。
https://connect.uipath.com/ja/marketplace/components/easy-excel-activity-pack
3.Action Centerに「申請者情報」の欄に表示する情報をExcelから取得します。
4.勤務表情報(明細画像)ファイルをディスクトップに生成します。
<補足>
・画像の生成には、マーケットプレイスで提供されている
「Print to Image from Microsoft Excel File(UiPathTeam.ExcelSheetToImage.Activities)」の『Excel Sheet To Image』アクティビティを使用しています。
https://connect.uipath.com/ja/marketplace/components/print-to-image-for-microsot-excel
・『Excel Sheet To Image』アクティビティの《Resultuing Image》プロパティのデータ型は<System.Drawing.Image>であり、フォームタスクに画像を表示するために必要な<Uiapth.Core.Image>ではないため、一度、画像をファイルに出力します。
5.Action Centerのフォームタスクを生成します。
<補足>
・v2019.10ではタスクを手動で担当者に割当を行う必要があります。
※APIでの割当も可能です。
https://docs.uipath.com/orchestrator/lang-ja/v2019/reference/tasks-requests#section-assign-a-task-to-a-user
・v2020.4以降では『タスクを割り当て(Assign Tasks)』アクティビティによる割当も可能です。
https://docs.uipath.com/activities/lang-ja/docs/assign-tasks
・UiPath Orchestrator Mobile Appをご利用いただくことで、スマートフォンからタスクに対応することが可能となります。
https://www.uipath.com/blog/uipath-orchestrator-mobile-app
ただしMobile Appの場合、該当サンプルフォームにある日付/時刻コンポーネントで日付項目が入力できない既知問題が発覚しております。日付/時刻コンポーネントの代理として、「日にち」「時刻」など別のコンポーネントのご利用をご検討ください。
6.フォームタスクが完了したら、承認者がAction Centerのフォームに記入した承認結果とコメントを申請者に通知します。
ActionCenterワークフローの作成方法
1.Studioの「テンプレートから新規作成」-「オーケストレーション プロセス」から作成を行います。
※プロセスから作成しても2.のアクティビティパッケージを 指定することで作成可能です。
2.パッケージ管理から次のアクティビティパッケージをインストールします。
・UiPath.Form.Activities
・UiPath.FormActivityLibrary
・UiPath.Persistence.Activities

3.タスク再開後、UiAutomation処理を実行するために、
プロジェクトの「バックグラウンドプロセス」を有効にする必要がございます。
4.『フォームタスクを作成』アクティビティを配置します。
《タスクタイトル》と《フォームデータ》に必要な情報を入力し、「フォームデザイナーを開く」ボタンからフォームデザイナーを開いてデザインを決定します。
5.『フォーム タスク完了まで待機し再開』アクティビティを配置します。
設定内容は次の通りです。
・タスクオブジェクト(入力):『フォームタスクを作成』のOutputを指定します。
・タスクアクション(出力):タスクを完了したアクションのプロパティ名が設定されます。
・タスクオブジェクト(出力):タスク画面に入力された情報がJSON形式で設定されます。
6.『JSON をデシリアライズ(Deserialize JSON)』を使用して、
フォームから取得したデータを使用します。
タスクフォームに画像を表示する方法
1.表示したい画像を『画像を読み込み(Load Image)』で<Uiapth.Core.Image>変数へ読み込みます。
2.手順1で読み込んだ画像を表示用のString(”data:image/png;base64,” + [1で設定した変数].Base64)に変換します。
3.フォームデータのコレクションに2.で生成した画像Stringを引き渡します。
4.フォームに「HTML要素」を配置します。
5.HTML要素のコンテンツに<img>タグを設定します。
入力例:
<img src={{ data.in_ImgSrc }} height=700 width=500/>※変数data.in_ImgSrcの両側にWhiteSpaceを入れないと、v19.10.xのタスクフォームに画像が表示できない既知不具合があります。
<補足>
・手順1.で使用した画像ファイルは、Action Centerでの処理が完了するまで削除できません。