BluePrismとキュー
BluePrismとはフローを作成しながら、自動化したい作業を実現していくRPAツールです。
本ツールでは、複数ロボットでの作業等を行う上で排他制御を行うキュー(Queue)という機構があります。
データベースにおける複数トランザクションに対するロック機構に近いものです。
本記事ではBluePrismにてQueueに値を追加し、取り出す流れを分かりやすく説明しました。
ちなみにキューとはコンピュータ用語で、待ち行列を扱うデータ構造を指します。
BluePrismキュー入門
キューを作成する
BluePrismのトップ画面から
System -> Workflow -> WorkQueues と進むとキューを作成/削除ができる画面が表示されます。
名前を「TestQueue」、キー名称を「Name」として作成しました。
作成が完了すると同じくトップ画面から
Control -> Queues -> Configure work queues と進むと作成したTestQueueが確認できます。
キューに値を追加する
作成したQueueに値を入れていきます。
プロセスを用意し、以下アクションを作成してください。
Business Object | Work Queues |
---|---|
Action | Add To Queue |
インプットとして以下を埋めてあげる必要があります。
Queue Name | Text |
---|---|
Data | Collection |
Queue Nameは先ほど指定した名称"TestQueue"を設定してください。また、コレクションは特に構造に指定はありませんが、キュー作成時に指定したキー名称は含む必要があります。
今回は以下のようなコレクションを用意しました。
Name | Age |
---|---|
Ken | 23 |
Yu | 18 |
Emi | 20 |
ここまで用意したら、Add To Queueのアクションをプロセスとして実行してください。
以下のようにキューの中にコレクションの値が格納されます。
3つの丸マークがついており、これは未処理を表します。
ちなみにQueueの名前が間違っていれば以下メッセージでエラーとなります。
Internal : The queue with name 'XXX' was not found
キューの値を取り出す
正常処理
以下のアクションを作成します。
Business Object | Work Queues |
---|---|
Action | Get Next Item |
インプットはQueue Nameです。
アウトプットは以下のようになっていると思います。
Item ID | Text |
---|---|
Data | Collection |
Status | Text |
Attempts | Number |
変数をStoreInで作成して用意してください。
次に、読み込んだアイテムを適切に処理したことキューに伝えるために以下アクションを作成します。
Business Object | Work Queues |
---|---|
Action | Mark Completed |
インプットはGet Next ItemのアウトプットであるItem IDです。
こちらを実行するとItem IDに文字列がDataに
Ken | 23 |
が格納されます。
そして、先ほどのコントロール画面を見ると以下のようにKenに関してチェックマークがついて最下部に移動しています。
例外処理
次に、正常処理ができなかった際に利用する旗マークをつけてみます。
以下アクションを作成し
Business Object | Work Queues |
---|---|
Action | Mark Exception |
インプットに同じくItem ID、RetryをFalseとして実行してください。
Mark CompletedをMark Exceptionに置き換えるイメージです。
リセットを行った後、プロセスを実行するとDataにYuの値が格納されており、コントロールの画面を見るとYuに旗マークがついて最下部に移動しています。
処理中
最後に、処理中を表す鍵マークをつけてみます。
今回はマークをつける処理は行わずにGet Next Itemのみを実施し、Endに結んでください。
DataにはEmiの値が格納され、コントロール画面では鍵マークが確認できます。
まとめ
整理すると以下の4パターンでキューの値の処理状況が管理されています。
- 未処理のデータには三つの丸マーク
- 処理完了のデータにはチェックマーク
- 処理が完了しなかったデータには旗マーク
- 処理中のデータには鍵マーク
キューのデータは処理状況をプロセス外で管理することができるため複数のプロセスで共有可能であるところが肝になります。
今回は、キューに値を追加し3つのパターンで取り出すことで基本的な動きを確認しましたが、別途応用編も記事にしてみたいと思います。
以上、BluePrismのキュー入門でした。