アクティビティ
最新
バナーの背景画像
ワークフローに関するアクティビティ
最終更新日 2024年4月22日

サンプル ワークフロー

UiPath Studio の [スニペット] パネルには、ユーザーが追加した XAML ファイルが保存されています。サンプルの XAML ファイルはフォルダーに保存されています。長期実行のワークフローで使用される XAML ファイルを保存するフォルダーは Orchestration と呼ばれています。

サンプルの XAML ファイルは読み取り専用です。Studio で個別の プロセス を作成し、スニペット内のアクティビティや設定を複製する必要があります。

これらのスニペットは、Persistence アクティビティ パッケージで利用可能なアクティビティを使用して作成されたサンプル ワークフローを表します。

前提条件

  • [スニペット] パネルのワークフローを基にして長期実行のワークフローを開発するには、UiPath.Persistence.Activities パッケージがインストールされている必要があります。
  • オーケストレーション プロセス テンプレートを使用して、長期実行のワークフローの構築を開始することをお勧めします。

キュー アイテムを追加し完了するまで待機する

このスニペットは、キュー アイテムを作成し、そのキュー アイテムの処理が完了するまでワークフローを一時停止します。

  1. ワークフローに [キュー アイテムを追加し参照を取得] アクティビティをドラッグします。

    このアクティビティは、入力/出力パラメーターを使用して Orchestrator 内のキュー コンテナーにキュー アイテムを追加します。その後、キュー アイテムがキューに追加されるまでワークフローを一時停止できるように、新たに作成されたキュー アイテム オブジェクトに関する対応するデータを取得して QueueItemData 型変数に格納します。アクティビティの詳細については、「キュー アイテムを追加し参照を取得」のページをご覧ください。
    キュー アイテムを Orchestrator のキューに追加すると、 QueueItemData 型のすべての変数に、Orchestrator から取得したデータが設定されます。
    1. [アイテム情報] コレクションで、[Direction] が [入力/出力] のパラメーターを作成し、キュー アイテムとして渡す変数として値を設定します。この例では、Test という名前の String 型変数を渡します。
    2. [キュー アイテム オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して QueueItemData 型の変数を作成します。この変数には、Orchestrator でキュー アイテムが作成された後にそのデータを格納します。この例では、「QueueItemObject」という名前の QueueItemData 型変数を作成します。


  2. ワークフローが中断される前に実行される、キュー アイテムに関するデータを取得するための任意のアクティビティをドラッグします。このスニペットでは、ワークフローを一時停止する前に実行すべきステップのセクションはコメント アウトされ、実行時に実行されないアクティビティを配置するためのコンテナーとして機能します。
  3. ワークフローに [キュー アイテム完了まで待機し再開] アクティビティをドラッグします。

    このアクティビティは、QueueItemData 型変数内でキュー アイテムに関するデータを取得してワークフローに再度マップできるように、Orchestrator でキュー アイテムが追加および処理されるまで待機します。アクティビティの詳細については、「キュー アイテム完了まで待機し再開」のページをご覧ください。
    1. [キュー アイテム オブジェクト (入力)] プロパティ フィールドに、Orchestrator に追加するキュー アイテムを参照するための QueueItemObject 変数を渡します。
    2. [キュー アイテム オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して QueueItemData 型の変数を作成します。この変数には、キュー アイテムが作成され取得された後のデータが格納されます。
  4. Orchestrator に追加したキュー アイテムを出力するために、ワークフローに [1 行を書き込み] アクティビティを追加します。この例では、[テキスト] プロパティ フィールドに Test 変数を渡します。

外部タスクを作成し、完了するまで中断する

このスニペットは外部アクションを作成し、ユーザーがアクションを完了するまでワークフローを中断します。

  1. [外部タスクを作成] アクティビティをワークフローにドラッグします。

    このアクティビティは、指定した [タスク タイトル][タスクの優先度][タスク カタログ] (現在は [アクション カタログ] と呼ばれる)、および [タスク データ]外部アクションを Action Center 内に作成します。詳しくは、「外部タスクを作成する」をご覧ください。

  2. [タスク データ (コレクション)] プロパティ ウィンドウに [入力][出力][入力/出力] 情報を渡す引数を設定します。この例では、InOut、および In/Out の 3 つの引数を作成し、それぞれに異なる 方向 の引数を作成します。[型]String 型に設定します。[値] フィールドでは、キーボードの CTRL + K キーを押して、情報を提供する変数 (In 型引数の場合)、または情報を抽出する変数 (Out 型引数の場合) を 3 つ作成します。

    この例では、次の 3 つの String 型変数を作成します。

    • InVariable - 入力引数のです。
    • OutVariable - [出力] 型の引数のです。
    • InOutVariable - [入力/出力] 型の引数のです。


      [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、ExternalTaskData 型の変数を作成します。この例では、変数に TaskPersistData という名前を付けます。この ExternalTaskData オブジェクトは、特定のアクション タスクが完了するまでワークフローが中断されることをロボットに知らせることを目的として、データを Orchestrator に渡すために使用されます。
  3. ワークフローが中断される前に実行される、ExternalTaskData オブジェクトに関するデータを取得するための任意のアクティビティを追加します。
    1. この例では、[シーケンス] アクティビティをワークフローにドラッグ アンド ドロップし、[1 行を書き込み] アクティビティを 3 個設定します。各 [1 行を書き込み] アクティビティは、外部タスクで渡される 3 つの変数のデータを出力するためのものです。[テキスト] プロパティ フィールドで、InVariableOutVariableInOutVariable の値を渡します。
  4. ワークフローに [外部タスクの完了を待機して再開] アクティビティをドラッグします。

    このアクティビティは、外部タスクが完了するまでワークフローを中断した後、そのデータを ExternalTaskData 型変数でワークフローにマッピングします。このアクティビティの詳細については、「外部タスク完了まで待機して再開」をご覧ください。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、作成した外部タスクを正確に参照するために作成した ExternalTaskData 変数を渡します。この例では、TaskPersistData 変数を渡します。
    2. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、String 型変数を作成して TaskAction という名前を付けます。これは、タスクを完了するためにユーザーが実行するアクションを格納します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、ExternalTaskData 型の変数を作成し、TaskData と名前を付けます。この変数には、外部アクションの完了後に Orchestrator から取得する更新されたタスク オブジェクトが格納されます。
  5. ワークフローの再開後に実行するアクティビティを追加します。この例では、4 つの [1 行を書き込み] アクティビティを使用して、外部アクションの完了後に取得したすべての値を [出力] パネルに出力します。[テキスト] フィールドで TaskActionInVariableOutVariableInOutVariable の各変数を渡します。


フォーム タスクを作成し、完了するまで中断する

このスニペットはフォーム アクションを作成し、ユーザーがアクションを完了するまでワークフローを中断します。

  1. ワークフローに [フォーム タスクを作成] アクティビティをドラッグします。

    このアクティビティは、指定した [タスク タイトル][タスクの優先度][タスク カタログ] (現在は [アクション カタログ] と呼ばれる)、および [タスク データ]フォーム アクションを Action Center 内に作成します。詳しくは、「フォーム タスクを作成する」をご覧ください。

  2. [タスク データ] プロパティ ウィンドウに [入力][出力][入力/出力] 情報を渡す引数を設定します。この例では、異なる方向の入力、出力、および入力/出力の 3 つの引数を作成します。[型] を String に設定します。[値] フィールドでは、キーボードの CTRL + K を押して、情報を提供する変数 (入力引数の場合)、または情報を抽出する変数 (出力引数の場合) を 3 つ作成します。

    この例では、次の 3 つの String 型変数を作成します。

    • InVariable - 入力引数のです。
    • OutVariable - [出力] 型の引数のです。
    • InOutVariable - [入力/出力] 型の引数のです。


      [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、FormTaskData 型の変数を作成します。この例では、変数に TaskPersistData という名前を付けます。この FormTaskData オブジェクトは、特定のアクション タスクが完了するまでワークフローが中断されることをロボットに知らせることを目的として、データを Orchestrator に渡すために使用されます。
  3. ワークフローが中断される前に実行するアクティビティを追加して、FormTaskData オブジェクトに関するデータを取得します。 この例では、[シーケンス] アクティビティをワークフローにドラッグ アンド ドロップし、そこに [1 行を書き込み] アクティビティを 3 個設定します。各 [1 行を書き込み] アクティビティは、外部アクションで渡される 3 つの変数のデータを出力するためのものです。[テキスト] プロパティ フィールドで InVariableOutVariableInOutVariable の値を渡します。
  4. ワークフローに [外部タスクの完了を待機して再開] アクティビティをドラッグします。

    このアクティビティは、フォーム アクション が完了するまでワークフローを中断し、FormTaskData 型変数内でワークフローに返してマッピングします。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、Action Center で作成したフォーム タスクを正確に参照するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData 変数を渡します。
    2. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、String 型変数を作成して TaskAction という名前を付けます。これは、タスクを完了するためにユーザーが実行するアクションを格納します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、FormTaskData 型の変数を作成し、TaskData という名前を付けます。この変数には、タスクの完了後に Orchestrator から取得する更新されたタスク オブジェクトが格納されます。
  5. ワークフローの再開後に実行するアクティビティがあればドラッグします。この例では、4 つの [1 行を書き込み] アクティビティを使用して、外部アクションの完了後に取得されたすべての値を [出力] パネルに渡します。[テキスト] フィールドで TaskActionInVariableOutVariableInOutVariable の各変数を渡します。

タスクを作成しユーザーに割り当てる

このスニペットは、2 つの外部アクションを作成して、それらをユーザーに割り当て、失敗したアクションの割り当てのリストを表示します。

  1. 2 つの [外部タスクを作成] アクティビティをワークフローにドラッグします。

    1. 1 番目のアクティビティで、アクションにタイトルを付け、優先度を設定します。[タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 ExternalTaskData 型の変数を作成します。この例では、「Task1PersistData」という名前を付けます。
    2. 2 番目のアクティビティで、アクションにタイトルを付け、優先度を設定します。[タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 ExternalTaskData 型の変数を作成します。この例では、「Task2PersistData」という名前を付けます。


  2. 2 つの [コレクションに追加] アクティビティをワークフローにドラッグします。

    注:

    [コレクションに追加] アクティビティはクラシック アクティビティです。

    プロジェクトで [コレクションに追加] アクティビティを使用できるようにするには、以下の手順を実行します。

    • System.Activities パッケージの 22.4.1 以下のバージョンをインストールします。
    • [アクティビティ] パネルに移動します。
    • [オプションを表示] docs image アイコンをクリックします。
    • [クラシック アクティビティを表示] をクリックします。

    このアクティビティは、[既定のアクティビティ] > [プログラミング] > [コレクション] 下にあります。

    1. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、 List<TaskUserAssignment> 型変数を作成して TaskAssignementsInput という名前を付けます。[変数] パネルに移動し、変数の [既定] フィールドを new List(Of TaskUserAssignment に設定して初期化します。
    2. [項目] プロパティ フィールドで、ExternalTaskData 変数とタスクの割り当て先ユーザーのメール アドレスを含む、TaskUserAssignment のインスタンスを作成します。

      この例では、以下を入力します。

      • 最初の [コレクションに追加] アクティビティには式 new TaskUserAssignment(Task1PersistData.Id, "emailaddress") を入力します。
      • 2 番目の [コレクションに追加] アクティビティには式 new TaskUserAssignment(Task2PersistData.Id, "emailaddress") を入力します。


    3. [TypeArgument] プロパティに System.Collections.Generic.List<UiPath.Persistence.Activities.Tasks.TaskUserAssignment> を設定します。
  3. ワークフローに [タスクを割り当て] アクティビティをドラッグします。

    1. [タスクとユーザーの割り当て (入力)] プロパティ フィールドに、List<TaskUserAssignment> 変数を渡します。この例では、TaskAssignmentsInput 変数を渡します。
    2. [タスク割り当ての種類] プロパティ フィールドに、実行する割り当て操作 ([Assign] または [Reassign]) を正確に入力します。この例では、「Assign」と入力します。
    3. [失敗したタスク割り当て (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して List<TaskAssignmentResponse> 型変数を作成し、 FailedTaskAssignmentsOutputという名前を付けます。


  4. [1 行を書き込み] アクティビティをドラッグして、割り当てに失敗したタスクの数を出力します。[テキスト] プロパティ フィールドに、List<TaskAssignmentResponse> 型変数を渡し、.Count プロパティと .ToString のプロパティを使用します。この例では、式 FailedTaskAssignemntsOutput.Count.ToString を渡します。

ジョブを開始し、完了後に再開する

無人プロセスを開始し、特定のジョブが完了するまでワークフローを中断します。

  1. ワークフローに [ジョブを開始し参照を取得] アクティビティをドラッグします。

    このアクティビティは、入力された引数に基づいて Orchestrator でジョブを開始し、対応するジョブ オブジェクトを取得します。アクティビティの詳細については、「ジョブを開始し参照を取得」をご覧ください。

    1. [プロセス名] プロパティ フィールドに、ジョブで使用するプロセスの表示名を渡します。この例では、名前を変数に格納します。キーボードの CTRL +k を押して String 型変数を作成し、ProcessName という名前を付けます。[値] フィールドに、プロセスの表示名を渡します (例: String)。
      注: 表示名は、 packageName _environment の形式で記述する必要があります。


    2. [ジョブの引数] (Collection) プロパティで、Orchestrator でジョブを呼び出すときに使用する引数を作成します。このプロパティは、Orchestrator 内のジョブから受け取った入力に基づいて Out および In/Out 型の引数を変更し、それらをワークフローに再度マップします。この例では、[方向] が [In/Out] で Test という名前の String の引数を作成します。[値] フィールドで、キーボードの CTRL + k を押して String 型の変数を作成します。この変数に Test という名前を付けます。


    3. [ジョブ オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、JobPersistenceData という名前の JobData 型の変数を作成します。この変数には Orchestrator でジョブが呼び出されたときに作成されるジョブ データ オブジェクトが格納され、[ジョブ完了まで待機して再開] アクティビティで使用できます。
  2. ワークフローが中断される前に実行される、JobData オブジェクトに関するデータを取得するための任意のアクティビティを追加します。
  3. ワークフローに [ジョブ完了まで待機し再開] アクティビティをドラッグします。

    このアクティビティは Orchestrator で特定のジョブが完了するまで、ワークフローを中断します。ジョブが完了すると、ワークフローが再開されます。

    1. [ジョブ オブジェクト (入力)] プロパティ フィールドに、[ジョブを開始し参照を取得] アクティビティ用に作成された JobData 型の変数を渡します。この例では、JobPersistenceData 変数を渡します。これにより、Robot は、ワークフローを再開するのに完了する必要のある正確なジョブを参照します。
    2. [ジョブ オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、JobData 型の変数を作成します。この例では、JobDataObject と名前を付けます。
  4. ワークフローに再度マップされた引数を出力するには、[1 行を書き込み] アクティビティをドラッグします。[テキスト] プロパティ フィールドに、[Job Arguments (Collection)] で作成された引数の [値] として使用される変数を渡します。この例では、Test 変数を渡します。

中断し 1 時間後に再開する

このスニペットは、指定されたワークフローを中断し、1 時間後に再開します。

  1. ワークフローの中断前に実行するアクティビティを追加します。
  2. ワークフローに 時間差で再開] アクティビティをドラッグします。このアクティビティは、指定されたワークフローを中断し、指定した日時に再開します。

    このアクティビティの詳細については、「時間差で再開」をご覧ください。

    1. 2.1.[変数] パネルで、 System.TimeSpan 型の変数を作成します。この例では、変数に OneHour という名前を付けます。TimeSpan 変数の [既定値]New TimeSpan(1,0,0)に設定します。
    2. 2.2.アクティビティの [再開時間] プロパティ フィールドで、DateTime.Now 式と TimeSpan 変数を渡します。この例では、式 DateTime.Now + OneHour を渡します。


  3. ワークフローの再開後に実行するアクティビティを追加します。

中断し 5 分後に再開する

このスニペットは、指定されたワークフローを中断し、5 分後に再開します。

  1. ワークフローの中断前に実行するアクティビティをドラッグします。
  2. ワークフローに 時間差で再開] アクティビティをドラッグします。このアクティビティは、指定されたワークフローを中断し、指定した日時に再開します。

    1. [変数] パネルで、 System.TimeSpan 型の変数を作成します。この例では、変数に FiveMinute という名前を付けます。TimeSpan 変数の [既定値]New TimeSpan(0,5,0)に設定します。
    2. アクティビティの [再開時間] プロパティ フィールドで、DateTime.Now 式と TimeSpan 変数を渡します。この例では、式 DateTime.Now + FiveMinute を渡します。


  3. ワークフローの再開後に実行するアクティビティをドラッグします。

中断し 90 秒後に再開する

このスニペットは、指定されたワークフローを中断し、90 秒後に再開します。

  1. ワークフローの中断前に実行するアクティビティを追加します。
  2. ワークフローに 時間差で再開] アクティビティをドラッグします。このアクティビティは、指定されたワークフローを中断し、指定した日時に再開します。

    1. [変数] パネルで、 System.TimeSpan 型の変数を作成します。この例では、変数に NinetySeconds という名前を付けます。TimeSpan 変数の [既定値]New TimeSpan(0,0,90)に設定します。
    2. アクティビティの [再開時間] プロパティ フィールドで、DateTime.Now 式と TimeSpan 変数を渡します。この例では、式 DateTime.Now + NinetySeconds を渡します。


  3. ワークフローの再開後に実行するアクティビティをドラッグします。

すべてのフォーム タスクの完了まで待機する

このスニペットは、データ テーブル内の請求書の数に基づいてループ内に複数のフォーム アクションを作成し、すべてのアクションが完了するまでワークフローを一時停止します。

  1. ワークフローに [データ テーブルを構築] アクティビティをドラッグします。

    1. [出力] プロパティ フィールドで、キーボードの CTRL + k を押して DataTable 型の変数を作成し、構築しているデータ テーブルを格納します。この例では、DataTable 変数に HighValueInvoices という名前を付けます。
    2. をクリックします。[データ テーブルを構築] ウィンドウが開きます。

    3. Column1 の名前を「InvoiceNumber」に、Column2 の名前を「InvoiceAmount」に変更します。
    4. 表の行内にデータを追加し、[OK] をクリックします。



  2. ワークフローに [代入] アクティビティをドラッグします。このアクティビティは、データ テーブルに名前を割り当て、String 変数に格納します。
    1. [左辺値 (To)] プロパティ フィールドに DataTable 変数を渡します。この例では、HighValueInvoices 変数を渡します。
    2. [値] プロパティ フィールドで、キーボードの CTRL + k を押して、String 型の変数を作成します。この例では、DataTableName と名前を付けます。DataTableName 変数の [既定値] を "invoices" に設定します。
  3. ワークフローに [繰り返し (コレクションの各要素)] アクティビティをドラッグします。[項目のリスト] プロパティ フィールドに、次の形式の式を渡します: DataTableVariable.Rows。この例では、HighValueInvoices.Rows を渡します。これにより、データ テーブルの各行が反復処理されます。
  4. [繰り返し (コレクションの各要素)] アクティビティの [本体][フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドに、[繰り返し (コレクションの各要素)] アクティビティが取得して String 変数に変換する請求書番号を入力します。この例では、式「item("InvoiceNumber").ToString」を入力します。 InvoiceNumber は、各請求書のそれぞれの番号を保持する列の名前です。
    2. [フォーム データ (コレクション)] で、フォーム アクション内の各請求書の金額を渡す引数を作成します。String の引数を作成し、[方向] を [In] に設定します。[値] フィールドで、各請求書の金額を入力し、String に変換します。 この例では、式 item("InvoiceAmount").ToString を入力します。InvoiceAmount は、各請求書の該当する金額を保持する列の名前です。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 型の変数を作成します。この例では、変数に TaskPersistData という名前を付けます。


  5. [繰り返し (コレクションの各要素)] アクティビティの [本体][コレクションに追加] アクティビティを追加します。

    1. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、List<FormTaskData> 型変数を作成して TaskList と名前を付けます。[変数] パネルに移動し、変数の [既定] フィールドを New List(Of UiPath.Persistence.Activities.FormTask.FormTaskData に設定して初期化します。
    2. [項目] プロパティ フィールドに、作成したフォーム アクションのデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData 変数を渡します。
    3. [TypeArgument] プロパティで、[UiPath.Persistence.Activities.FormTask.FormTaskData] を選択します。
  6. ワークフローに [並列繰り返し (コレクションの各要素)] アクティビティを追加します。

    1. [TypeArgument] プロパティで、[UiPath.Persistence.Activities.FormTask.FormTaskData] を選択します。
    2. [値] プロパティ フィールドに、List<FormTaskData> 変数を渡します。この例では、TaskList 変数を渡します。
  7. [並列繰り返し (コレクションの各要素)]アクティビティの [本体] に [フォーム タスク完了まで待機し再開] アクティビティをドラッグします。

    1. [タスク オブジェクト (入力)] プロパティ フィールドに、[並列繰り返し (コレクションの各要素)] アクティビティで参照される item オブジェクトを入力します。この例では、item オブジェクトは TaskList 変数に格納されているフォーム アクションを表します。
    2. [タスク アクション] プロパティ フィールドで、キーボードの CTRL + k を押して String 変数を作成します。この例では、「TaskAction」という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して FormTaskData 変数を作成します。この例では、「TaskData」という名前を付けます。


  8. [1 行を書き込み] アクティビティを、ワークフローにドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に、TaskAction 変数を入力します。

いずれかのフォーム タスクの完了まで待機する

このスニペットは複数のフォーム アクションを順番に作成し、いずれかのフォーム アクションが完了するまでワークフローを一時停止します。

  1. シーケンス ワークフローに [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle1 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 1" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver1" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData1 という名前を付けます。
  2. ワークフローに 2 つ目の [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle2 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 2" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver2" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData2 という名前を付けます。
  3. ワークフローに 3 つ目の [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle3 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 3" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver3" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData3 という名前を付けます。
  4. ワークフローに [分岐を選択] アクティビティをドラッグします。
  5. [分岐を選択] アクティビティの本体に [分岐] アクティビティをドラッグします。アクティビティの名前を「Pick Branch (Task1)」に変更します。
  6. [フォーム タスク完了まで待機し再開] アクティビティを Pick Branch (Task1) アクティビティの [トリガー] の本体にドラッグします。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData1 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。 TaskAction1という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ k を押して、 FormTaskData 変数を作成します。TaskData1 と名前を付けます。
  7. [1 行を書き込み] アクティビティを、[Pick Branch (Task1)] アクティビティの [アクション] 本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に、TaskAction1 変数を入力します。


  8. [分岐を選択] アクティビティの本体に [分岐] アクティビティをドラッグします。アクティビティの名前を「Pick Branch (Task2)」に変更します。
  9. [フォーム タスク完了まで待機し再開] アクティビティを Pick Branch (Task2) アクティビティの [トリガー] の本体にドラッグします。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData2 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。 TaskAction2という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ k を押して、 FormTaskData 変数を作成します。TaskData2 と名前を付けます。
  10. [1 行を書き込み] アクティビティを、[Pick Branch (Task2)] アクティビティの [アクション] 本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に、TaskAction2 変数を入力します。
  11. [分岐を選択] アクティビティの本体に [分岐] アクティビティをドラッグします。アクティビティの名前を「Pick Branch (Task3)」に変更します。
  12. [フォーム タスク完了まで待機し再開] アクティビティを Pick Branch (Task3) アクティビティの [トリガー] の本体にドラッグします。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData3 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。 TaskAction3という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ k を押して、 FormTaskData 変数を作成します。TaskData3 と名前を付けます。
  13. [1 行を書き込み] アクティビティを、[Pick Branch (Task3)] アクティビティの [アクション] 本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に、TaskAction3 変数を入力します。

ループで一部のフォーム タスクの完了まで待機する

このスニペットは、データ テーブルからの入力に基づいて複数のフォーム アクションを作成し、フォーム アクションの特定のセットが完了するまで、ワークフローを一時停止します。

  1. ワークフローに [データ テーブルを構築] アクティビティをドラッグします。

    1. [データ テーブル] プロパティ フィールドで、キーボードの CTRL + k を押して、 System.DataTable 変数を作成します。この例では、「CodeReviews」という名前を付けます。
    2. をクリックします。[データ テーブルを構築] ウィンドウが開きます。

    3. Column1ReviewerName に、ReviewerTypeColumn2 に名称変更します。[ReviewerType] 列の [型] を [String] に設定します。
    4. 表の行内にデータを追加します。この例では、[ReviewerType] 列で、2 種類のレビュワー ([code owners][reviewers]) を使用しています。


  2. ワークフローに [代入] アクティビティをドラッグします。これにより、作成したデータ テーブルに名前が代入されます。[左辺値 (To)] プロパティ フィールドに System.DataTable 変数を渡し、.TableName プロパティを追加します。[右辺値 (Value)] フィールドで、キーボードの CTRL + k を押して String 変数を作成します。この例では、「DataTableName」という名前を付けます。
  3. ワークフローに [並列繰り返し (コレクションの各要素)] アクティビティを追加します。この例では、Create Tasks for PR Review という名前を付けます。
    1. [右辺値 (Value)] プロパティ フィールドに System.DataTable 変数を渡し、.AsEnumerable プロパティを追加します。この例では、式「CodeReviews.AsEnumerable」を渡します。
  4. [代入] アクティビティの [本体] に [並列繰り返し (コレクションの各要素)] アクティビティを追加します。

    1. [左辺値 (To)] プロパティ フィールドで、キーボードの CTRL + k を押して、CodeReviews データ テーブルの ReviewerType 行から取得したデータを保持する String 型の変数を作成します。この例では、変数に ReviewerType という名前を付けます。
    2. [値] プロパティ フィールドに ReviewerType 列から各行項目を取得する式を渡し、[左辺値 (To)] フィールド内で作成した変数に格納します。この例では、式 ìtem("ReviewerType").toString を渡します。


  5. [並列繰り返し (コレクションの各要素)] アクティビティの本体に [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドに、式 "Code Review - " + InPullRequestName を渡します。InPullRequestNameString 型の変数で、既定値"#1" です。
    2. [フォーム データ (Collection)] プロパティで、[Type]String の引数を 4 個作成します。
    3. 'PR Number' - [方向]In[値]InPullRequestName に設定します。
    4. Reviewer Name - [方向] を[入力] に設定し、[値]item("ReviewerName").toString に設定します。
    5. Reviewer Type - [方向]In/Out[値]ReviewerType 変数に設定します。
    6. Reviewer Comment - [方向]Out に設定します。[値] フィールドで、キーボードの CTRL + k を押して、String 型変数を作成します。ReviewerComments という名前を付けます。この引数は、アクション内のコメントをすべてワークフローにマッピングします。
      5.3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して FormTaskData 変数を作成します。「TaskPersistData」という名前を付けます。


  6. [並列繰り返し (コレクションの各要素)] アクティビティの本体に [コレクションに追加] アクティビティをドラッグします。このアクティビティは、作成されるすべてのフォーム アクションをリストに保存します。

    1. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、List<FormTaskData> 変数を作成します。TaskDataList と名前を付けます。[変数] パネルに移動し、変数の [既定値]New List(of UiPath.Persistence.Activities.FormTask.FormTaskData) に設定します。
    2. [項目] プロパティ フィールドに FormTaskData 変数を渡します。この例では、TaskPersistData 変数を渡します。
    3. [TypeArgument] プロパティで、[UiPath.Persistence.Activities.FormTask.FormTaskData] を選択します。
  7. [変数] パネルで、Int32 型の変数を 2 つ (OwnersApprovalsReviewersApprovals) 作成し、[既定値]0 に設定します。
  8. [並列繰り返し (コレクションの各要素)] アクティビティをもう 1 つドラッグします。この例では、「Wait for Conditional Task(s) Completion」という名前を付けます。
    1. [条件] プロパティ フィールドに、式「OwnersApprovals>=2 Or (OwnersApprovals = 1 And ReviewersApprovals>=2)」を渡します。これにより、条件が一致した時にのみワークフローが再開されるよう条件付けされます。
    2. [TypeArgument] プロパティで、[UiPath.Persistence.Activities.FormTask.FormTaskData] を選択します。
    3. [コレクション値] プロパティ フィールドに、フォーム アクションが保存されるリストを渡します。この例では、TaskDataList 変数を渡します。


  9. [シーケンス] アクティビティを [Wait For Conditional Task(s) Completion] と名付けたアクティビティの本体にドラッグします。アクティビティの名前を Wait for Task and Resume に変更します。
  10. [フォーム タスク完了まで待機し再開] アクティビティを [タスク完了まで待機し再開] シーケンス アクティビティ内にドラッグします。

    1. [タスク オブジェクト (入力)] プロパティ フィールドに、 item 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、キーボードの CTRL + k を押して String 変数を作成します。この例では、「TaskAction」という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して FormTaskData 変数を作成します。この例では、「TaskData」という名前を付けます。
  11. [条件分岐 (if)] アクティビティを [タスク完了まで待機し再開] アクティビティ内にドラッグします。このアクティビティは、コード所有者によって承認されたフォーム アクションの数をカウントするためのものです。

    1. [条件] プロパティ フィールドに、式「TaskAction="approve" And ReviewerType="code owner"」を渡します。
    2. [Then] ブロックに [代入] アクティビティをドラッグ アンド ドロップします。[左辺の変数] プロパティ フィールドに、OwnersApprovals 変数を渡します。[値を設定] プロパティ フィールドに、式 OwnersApprovals + 1 を渡します。


  12. [条件分岐 (if)] アクティビティをもう 1 つ [タスク完了まで待機し再開] アクティビティ内にドラッグします。このアクティビティは、レビュー担当者によって承認されたフォーム アクションの数をカウントするためのものです。

    1. [条件] プロパティ フィールドに、式「TaskAction="approve" And ReviewerType="reviewer"」を渡します。
    2. [Then] ブロックに [代入] アクティビティをドラッグします。[左辺値 (To)] プロパティ フィールドに ReviewersApprovals 変数を渡します。[右辺値 (Value)] プロパティ フィールドに、式 ReviewersApprovals + 1 を渡します。


  13. [タスク完了まで待機し再開] シーケンス アクティビティ内に 3 つの [1 行を書き込み] アクティビティをドラッグします。このアクティビティは、[出力] パネルに指定された値を表示します。

    1. 最初のアクティビティで、ReviewComments 変数を渡します。
    2. 2 個目のアクティビティに、 OwnersApprovals 変数を渡し、 .toString プロパティを追加します。
    3. 3 番目のアクティビティで、ReviewersApprovals 変数を渡し .toString プロパティを追加します。

一部のフォーム タスクの完了まで待機する

このスニペットは、3 つのフォーム アクションを作成し、2 つのアクションが完了するまでワークフローを中断します。

  1. シーケンス ワークフローに [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle1 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 1" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver1" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData1 という名前を付けます。
  2. シーケンス ワークフローに [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle2 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 2" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver2" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData2 という名前を付けます。
  3. シーケンス ワークフローに [フォーム タスクを作成] アクティビティをドラッグします。

    1. [タスク タイトル] プロパティ フィールドで、キーボードの CTRL + k を押して、String 変数を作成します。TaskTitle3 と名前を付けます。[変数] パネルで、[既定値]"Task - " + "Approver 3" に設定します。
    2. [フォーム データ (Collection)] プロパティで、[型]String[方向] が [入力] の引数を作成します。引数に Approver という名前を付け、[値]"Approver3" に設定します。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL + k を押して、 FormTaskData 変数を作成します。この例では、変数に TaskPersistData3 という名前を付けます。
  4. ワークフローに [並列] アクティビティをドラッグします。

    1. [コレクション] プロパティ フィールドで、キーボードの CTRL + k を押して、Int32 変数を作成します。この例では、変数に「CompleteTasksCount」と名前を付け、[既定値]0 に設定します。
    2. [条件] プロパティ内の [式エディター] で、条件を CompleteTasksCount=2 に設定します。これにより、[並列] アクティビティは、3 個のアクションのうち 2 個が完了したときに完了します。


  5. [並列] アクティビティの本体に [シーケンス] アクティビティをドラッグします。アクティビティの名前を Sequence Task1 に変更します。
  6. [Sequence Task1] アクティビティ内に [フォーム タスク完了まで待機し再開] アクティビティをドラッグします。アクティビティの名前を Wait for Form Task and Resume(Task1) に変更します。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData1 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。 TaskAction1という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ k を押して、 FormTaskData 変数を作成します。TaskData1 と名前を付けます。


  7. [1 行を書き込み] アクティビティを Sequence Task1 アクティビティの アクションの本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に TaskAction1 変数を入力します。
  8. [フォーム タスク完了まで待機し再開] アクティビティに [代入] アクティビティをドラッグします。[左辺値 (To)] フィールドに CompleteTaskCount を渡し、[右辺値 (Value)] フィールドに式 CompleteTaskCount + 1 を追加します。アクションが完了してワークフローが再開されると、CompleteTaskCount 変数に新しいイテレーションが追加されます。


  9. [並列] アクティビティの本体に [シーケンス] アクティビティをドラッグします。アクティビティの名前を Sequence Task2 に変更します。
  10. [Sequence Task2] アクティビティ内に [フォーム タスク完了まで待機し再開] アクティビティをドラッグ アンド ドロップします。アクティビティの名前を Wait for Form Task and Resume(Task2) に変更します。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData2 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。TaskAction2 という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ K を押して、FormTaskData 変数を作成します。TaskData2 と名前を付けます。
  11. [1 行を書き込み] アクティビティを、[Sequence Task2] アクティビティの本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に、TaskAction2 変数を入力します。
  12. Wait for Form Task and Resume(Task2) アクティビティに [代入] アクティビティをドラッグします。[左辺値 (To)] フィールドに CompleteTaskCount を渡し、[右辺値 (Value)] フィールドに式 CompleteTaskCount + 1 を追加します。アクションが完了してワークフローが再開されると、CompleteTaskCount 変数に新しい反復処理が追加されます。
  13. [並列] アクティビティの本体に [シーケンス] アクティビティをドラッグします。アクティビティの名前を Sequence Task3 に変更します。
  14. [Sequence Task3] アクティビティ内に [フォーム タスク完了まで待機し再開] アクティビティをドラッグ アンド ドロップします。アクティビティの名前を Wait for Form Task and Resume(Task3) に変更します。
    1. [タスク オブジェクト (入力)] プロパティ フィールドに、フォーム アクションに関するデータを格納するために作成した FormTaskData 変数を渡します。この例では、TaskPersistData3 変数を渡します。
    2. [タスク アクション] プロパティ フィールドで、CTRL + k を押して String 変数を作成します。 TaskAction3という名前を付けます。
    3. [タスク オブジェクト (出力)] プロパティ フィールドで、キーボードの CTRL+ k を押して、 FormTaskData 変数を作成します。TaskData3 と名前を付けます。
  15. [1 行を書き込み] アクティビティを Sequence Task3 アクティビティの アクションの本体にドラッグします。このアクティビティは、ユーザーがフォーム アクションを完了するために実行したアクションを [出力] パネルに表示します。[テキスト] の値に TaskAction3 変数を入力します。
  16. [フォーム タスク完了まで待機し再開] アクティビティに [代入] アクティビティをドラッグします。[左辺値 (To)] フィールドに CompleteTaskCount を渡し、[右辺値 (Value)] フィールドに式 CompleteTaskCount + 1 を追加します。アクションが完了してワークフローが再開されると、CompleteTaskCount 変数に新しいイテレーションが追加されます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.