長期実行ワークフローは、サービスのオーケストレーション、人間の介入、無人環境における長期実行トランザクションをサポートするマスター プロジェクトです。
特定のプロセスが、アクティビティの次のステップに進む前に、例外、承認、または検証を処理するために人間の入力を必要とする場合、人間の介入が行われます。この状況では、プロセスの実行が中断され、人間のタスクが完了するまでロボットは解放されます。
ワークフローの断片化
長期実行ワークフローは、UiPath.Persistence.Activities を含み、[プロセスを呼び出し] アクティビティやユーザーの操作を伴わないアクティビティと組み合わせて、人間のタスクとロボットのタスクのオーケストレーションが可能です。セッション 0 で動作するため、高速実行が保証されます。オーケストレーション プロセスのデバッグはユーザー セッションで行われることに注意してください。

長期実行ワークフローは、以下のオーケストレーションが可能です。
- API コールを実行し、セッション 0 で動作するアクティビティが含まれる可能性があるバックグラウンド プロセス。これらのプロセスは、[プロセスを呼び出し] アクティビティによって起動できます。
- UI: Orchestrator のアクティビティから [ジョブを開始] によって呼び出された、ユーザー操作を伴うアクティビティによるプロセス。
- 人間参加型 : Orchestrator でのフォーム入力が必要なタスクを介して、ユーザーが操作します。[フォーム タスクを作成] アクティビティと [フォーム タスク完了まで待機し再開] を組み合わせて使用することを意味します。
オーケストレーション プロセス テンプレート
Studio で [ホーム] > [オーケストレーション プロセス] に移動して、テンプレートを開きます。テンプレートには、既定の UiPath.Persistence.Activities と UiPath.System.Activities 依存関係が、フローチャート のワークフローに組み込まれています。

テンプレートの project.json ファイルには、タスクの完了時にプロセス実行が再開されることを示す supportsPersistence: true
パラメーターが含まれます。
requiresUserInteraction: false
パラメーターは、このワークフローが、ユーザー操作アクティビティを伴わない、バックグラウンド プロセスに似たものであることを示しています。
project.json
ファイルのパラメーターを手動で変更することはお勧めできません。

[プロジェクト設定] ウィンドウの [永続性をサポート] を [はい] に切り替えることで、プロセスをオーケストレーション プロセスに変換できます。
オーケストレーション プロセスのスニペット
作業着手の手がかりとして、[スニペット] パネルには、オーケストレーション プロセスの作成に使用できるワークフロー スニペットが多数用意されています。

オーケストレーション プロセスを構築する
以下の手順に従い、UiPath.Persistence.Activities
パッケージのアクティビティ部分を組み合わせ、独自のオーケストレーション プロセスを構築してください。
- [キュー アイテムを追加して参照を取得] アクティビティを使用して、
in
、in/out
、またはout
パラメーターでキュー アイテムを追加し、対応するキュー アイテムのオブジェクトを取得します。キュー アイテムが処理されると、このアクティビティが [キュー アイテムの待機と再開] アクティビティと組み合わされている場合、ItemInformation
プロパティで提供される引数がマッピングされたワークフロー変数に割り当てられます。

- [キュー アイテム完了まで待機し再開] アクティビティをキュー アイテムの追加と参照の取得アクティビティと組み合わせる必要があります。ワークフローは一時停止ステートになり、プロセスの次のステップに進む前にこのアクティビティで特定のキュー アイテムの完了を待機しているロボットを解放します。

- [ジョブの開始と参照の取得 ] アクティビティは
in
、in/out
、out
の型の引数を提供することで、別のプロセスを呼び出します。このアクティビティが、[ジョブの待機と再開] と組み合わされている場合は、実行後、変更された引数は、ワークフロー変数にマッピングされます。

- [ジョブの待機と再開] アクティビティは、後者のアクティビティの出力として
Job Object
を提供することにより、[ジョブの開始と再開] と組み合わせる必要があります。これにより、現在のプロセスが一時的に中断され、参照ジョブが完了するまで待機し、参照ジョブがステータスを更新してプロセスを再開します。

- ワークフロー内の人間の操作のためのフォームベースのビジュアリゼーションとタスクを作成するために [フォーム タスクを作成] アクティビティを使用します。関連するワークフロー コンテキストを持つこれらのフォームは、意思決定やその他のシナリオのためにユーザーに提示されます。
このアクティビティを使用するには、UiPath.FormActivityLibrary パッケージをインストールする必要があります。

- [フォーム タスク完了まで待機し再開] アクティビティは、この特定のタスクがエンド ユーザーによって完了するまでワークフローを一時停止するための入力として
Task Object
を提供することによって、[フォーム タスクを作成] と組み合わせる必要があります。

- ワークフローの実行を一時停止し、指定した日時に、それを再開する[時間差で再開] アクティビティを使用します。
- Studio からワークフローを実行します。ロボットは、実行時間の長いアクティビティを実行するたびに、Studio はリボンで [再開] オプションが有効化された読み取り専用のステートになります。続行するには、基になるタスク、キュー アイテム、またはジョブを完了し、[再開] をクリックします。
ベスト プラクティス
UiPath.Persistence.Activities
パッケージの長期実行アクティビティの部分は、オーケストレーション プロセスのエントリ ポイント、つまりMain.xaml
としてマークされたファイルのみで使用することができます。- オーケストレーション プロセスから構築された再利用可能なコンポーネントは、別のオーケストレーション プロセス内からしか参照できません。
- キュー処理にアタッチされるプロセスは、長期実行ワークフローにモデル化しないでください。そのようなプロセスを使用する必要がある場合は、最初の永続性ポイント (任意の待機および再開アクティビティ) より前に、[トランザクションのステータスを設定] アクティビティにより、キュー アイテムのステータスを確実に完了にしなければなりません。
- 永続化ポイント ([待機] および [再開] アクティビティ) は、[繰り返し (コレクションの各要素)] アクティビティの本体内で使用しないでください。これらのアクティビティは最初の繰り返しを実行した後にワークフローを中断しますが、この挙動が意図した挙動と異なることがあるためです。
代わりに、[並列繰り返し (コレクションの各要素)] などの Persistence アクティビティをループとともに使用する方法を検討してください。ジョブごとの再開トリガーの最大数は、既定で 1,000 に制限されています。 - オーケストレーション プロセスには、[待機] アクティビティを使用しないでください。
- 長期実行のワークフローは、ジョブを一時停止したロボットと同じ種類 (Unattended または Non-production) で、同じロボット グループまたはフォルダーにあるロボットであれば、どのロボットでも再開できます。したがって、実行に必要なローカル リソースは永続化ポイントの後にも用意する必要があります。
- 長期実行アクティビティの範囲で使用されるすべての変数は、シリアライズ可能でなければなりません。このページに記載されている変数の型はシリアライズ可能です。テキスト、True または False、数値、配列、日付と時刻。データ テーブルとジェネリック値変数。
- 長期実行アクティビティを含まない範囲で使用される変数は、ワークフローが範囲内で一時停止されないため、シリアライズの要件は適用されません。非シリアライズ可能なデータ型は、[ジョブ完了まで待機し再開]、[キュー アイテム完了まで待機し再開]、[フォーム タスク完了まで待機し再開] などの待機アクティビティと再開アクティビティの間にある限り、同じワークフローの個別のシーケンス範囲で使用するか、他のファイルを呼び出すことによって使用できます。
- 長期実行アクティビティによって生成されたオブジェクトの一部のプロパティは、 [ローカル] パネルで評価できないことに留意してください。
- 各ジョブで実行されるアクション数が多いと予期されるワークフローには、適切なバッチ処理を実装してください。ジョブが一度に待機できるアクション数 (または他のジョブ トリガー) の上限は、既定で 1,000 件に設定されています。
2 年前に更新