1. はじめに

こんにちは!BPTCの高橋です。今回は、Blue Prismの特徴の一つである「ワークキュー」について、お話させていただきます。

RPAが得意なもののひとつとして、繰り返し作業があげられると思います。様々なRPAで、繰り返しの作業を自動化するための機能が用意されていますが、 Blue Prismの「ワークキュー」もそのひとつです。

Blue Prismではワークキューを活用することで、繰り返し作業のひとつひとつの処理に対して、失敗したか成功したか、失敗した場合はどのような理由で失敗したか、処理にどの程度の時間が掛かったのか……などなど、処理結果に関する様々な情報を一目で見ることが出来るようになります。

今回は、そんな Blue Prism の「ワークキュー」について、基本的な使用方法をお伝えできたらなと思っています。ぜひ、お付き合いいただけると嬉しいです!

2. ワークキューの定義

プロセスでワークキューを使用する際には、まずBlue Prismの「システム」> 「ワークフロー」>「ワークキュー」より、使用するワークキューを定義する必要があります。

  • 名前:ワークキューの名称。必ず一意の名前である必要があります
  • キー名称:キーとなる項目のフィールド名称です。コントロールルームに内容が表示されます。
  • 最大の試行回数:この値が2以上の場合、キュー処理の例外発生時にアイテムのコピーを作成し、指定された回数だけ処理を試みます。
  • 状態:「Running」もしくは「Paused」の値を設定でき、「Running」の場合にのみキューからのアイテムを取得、処理が行えます。状態が「Paused」の場合、キューにアイテムが存在した場合でも、キューからアイテムを取得することが出来なくなります。
  • 暗号化:チェックを入れた場合、キューの内容が暗号化されます。

作成したワークキューは、「コントロール」>「アクティブなキュー」に追加されていきます。

3. ワークキューを利用したプロセス作成

ワークキューを利用した大まかな処理の流れは、以下のようになります。

  1. ワークキューにアイテムを追加する
  2. ワークキューからアイテムを取得する
  3. 取得したアイテムの情報をもとに処理を実行する
  4. 処理の実行結果をアイテムに追記する
  5. 2~4の処理を、すべてのアイテムに対して実行する

実際にプロセスとして落とすと、以下のようになります。

実際の業務では、設定ファイルの取得や例外時のリカバリ作業、システムへの接続、クローズダウン処理などを必要に応じて追加していくため、これよりも複雑になることが多いですが、大まかな流れはどの業務でも同じになります。

以降では、ワークキューに関する基本的な操作についてみていきたいと思います。

3.1. キューの追加

ワークキューにアイテムを追加する際は、Work Queueオブジェクトの「Add To Queue」アクションを利用します。入力パラメータとして、以下の指定が出来ます。

  • Queue Name : 追加するワークキューの名前です。ワークキューの定義時に設定した名前(今回は”Test Queue”)が入ります
  • Data:ワークキューに追加するコレクション型のデータです。Excelなどから取得したデ―タが入ることも多いです。複数行のコレクションを指定した場合、それぞれの行ごとにアイテムが作成されます。
  • Data Until:入力された日時以降に、追加したアイテムが有効になります。(任意)
  • Priority:数値が小さいほど、処理の優先順位が高くなります。デフォルトは0です。(任意)
  • Tags:追加するアイテムにタグを追加します。タグは複数指定可能で、様々な条件でフィルタリングを実施する際に役立ちます。(任意)
  • Status:追加するアイテムにステータスを設定します。(任意)

上記アクションを実行した後、コントロールルーム上のワークキューを開くと、アイテムが追加されていることを確認できます。

3.2. キューアイテムの取得

ワークキューにアイテムを追加する際は、Work Queueオブジェクトの「Get Next Item」アクションを利用します。入力パラメータとして、以下の指定が出来ます。

  • Queue Name : 追加するワークキューの名前です。ワークキューの定義時に設定した名前(今回は”Test Queue”が入ります)
  • Key Filter:取得するアイテムについて、ワークキューの定義時に設定したキー名称に対して条件付けを行うことが出来ます。(例:“00”と指定した場合、キー名称が”00”のアイテムのみ取得されます)
  • Tag Filter:取得するアイテムについて、キューアイテム追加時に設定したタグに対して条件付けを行うことが出来ます。(例:“00”と指定した場合、タグに”00”を含むアイテムのみ取得されます。セミコロン区切りでの複数指定や、”00*”のように、ワイルドガードを利用することも可能です。複数指定した場合、すべての条件が一致するアイテムのみ取得されます)

「Get Next Item」でキューアイテムを取得すると、取得したキューアイテムはロック状態となり、他のプロセスからの取得対象外となります。オブジェクトから出力されるパラメータは以下の通りです。

  • Item ID:アイテムの固有IDです。対象のキューアイテムが存在しない場合は空白となります。
  • Data:アイテムの情報です。キュー追加時に設定したコレクションの各項目の内容を取得します。
  • Attempts:該当のアイテムの現在までの試行回数です。
  • Status:アイテムのステータスです。

返却された Item ID が空か否かで、キューのアイテムが取得できたかを判断でき、 Item ID が空であった場合、キューの処理が全て完了したとしてプロセスを終了します。

コントロールルーム上では、ロック状態のキューアイテムには鍵マークがつきます。

3.3. アイテムを完了として記録

取得したキューアイテムの処理が正常に完了した場合、Work Queueオブジェクトの「Mark Completed」アクションを利用し、該当のキューアイテムを完了として記録します。

入力のパラメータとしては、以下の指定が出来ます。

  • Item ID : アイテムの固有IDです。キューアイテム取得時にオブジェクトから返却されたものを使用します。

コントロールルーム上では、完了として記録されたキューアイテムにはチェックマークがつきます。

3.4. アイテムを例外として記録

取得したキューアイテムの処理が正常に完了しなかった場合、Work Queueオブジェクトの「Mark Exception」アクションを利用し、該当のキューアイテムを例外として記録します。

入力のパラメータとしては、以下の指定が出来ます。

  • Item ID : アイテムの固有IDです。キューアイテム取得時にオブジェクトから返却されたものを使用します。
  • Exception Reason:例外の理由です。例外理由はタグに追加されます。
  • Retry:再試行の有無を指定します。Trueの場合、試行回数が最大試行回数よりも小さい場合は再試行します。
  • Keep Locked:再試行時にコピーしたアイテムをロック状態にするかを指定します。ロック状態にしない場合、「Get Next Item」を利用することで、コピーされたアイテムを取得できます。

コントロールルーム上では、例外として記録されたキューアイテムには旗マークがつきます。

3.5.  ステータスの更新

キューアイテムのステータスは、「Mark Completed」アクションで自動的に更新されますが、Work Queueオブジェクトの「Update Status」アクションを利用することでも更新が可能です。

複雑な業務を自動化する場合には、キューアイテムのステータスを適宜更新することで、現在の処理状況を正確に判断することが可能になります。

入力のパラメータとして、以下の指定が出来ます。

  • Item ID : アイテムの固有IDです。キューアイテム取得時にオブジェクトから返却されたものを使用します。
  • Status: 更新後のステータスを指定できます。

4. おわりに

さて、今回はBlue Prism のワークキューに関するお話をしてみましたが、いかがだったでしょうか。

ワークキューに関しては、上記以外にも様々な機能があります。中にはレポーティング機能などもありますので、処理結果を可視化することも可能です。

繰り返し作業の業務をより管理しやすくなるBlue Prismの「ワークキュー」、ぜひ活用してみてくださいね!