(O+P)ut

ITエンジニアのアウトプット録



(O+P)ut

OutPut Log by SE

【BluePrism入門】キューを利用する

スポンサーリンク

BluePrismとキュー

BluePrismとはフローを作成しながら、自動化したい作業を実現していくRPAツールです。

本ツールでは、複数ロボットでの作業等を行う上で排他制御を行うキュー(Queue)という機構があります。
データベースにおける複数トランザクションに対するロック機構に近いものです。

本記事ではBluePrismにてQueueに値を追加し、取り出す流れを分かりやすく説明しました。

ちなみにキューとはコンピュータ用語で、待ち行列を扱うデータ構造を指します。

BluePrismキュー入門

キューを作成する

BluePrismのトップ画面から
System -> Workflow -> WorkQueues と進むとキューを作成/削除ができる画面が表示されます。
f:id:mtiit:20190306165826p:plain
名前を「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のアクションをプロセスとして実行してください。
以下のようにキューの中にコレクションの値が格納されます。
つの丸マークがついており、これは未処理を表します。
f:id:mtiit:20190306183925p:plain

ちなみに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です。
f:id:mtiit:20190306182118p:plain

こちらを実行するとItem IDに文字列がData

Ken 23

が格納されます。

そして、先ほどのコントロール画面を見ると以下のようにKenに関してチェックマークがついて最下部に移動しています。
f:id:mtiit:20190306184022p:plain

例外処理

次に、正常処理ができなかった際に利用する旗マークをつけてみます。

以下アクションを作成し

Business Object Work Queues
Action Mark Exception

インプットに同じくItem IDRetryFalseとして実行してください。
Mark CompletedをMark Exceptionに置き換えるイメージです。

リセットを行った後、プロセスを実行するとDataにYuの値が格納されており、コントロールの画面を見るとYuに旗マークがついて最下部に移動しています。
f:id:mtiit:20190306184138p:plain

処理中

最後に、処理中を表す鍵マークをつけてみます。

今回はマークをつける処理は行わずGet Next Itemのみを実施し、Endに結んでください。
DataにはEmiの値が格納され、コントロール画面では鍵マークが確認できます。
f:id:mtiit:20190306184342p:plain

まとめ

整理すると以下の4パターンでキューの値の処理状況が管理されています。

  • 未処理のデータには三つの丸マーク
  • 処理完了のデータにはチェックマーク
  • 処理が完了しなかったデータには旗マーク
  • 処理中のデータには鍵マーク


キューのデータは処理状況をプロセス外で管理することができるため複数のプロセスで共有可能であるところが肝になります。

今回は、キューに値を追加し3つのパターンで取り出すことで基本的な動きを確認しましたが、別途応用編も記事にしてみたいと思います。

以上、BluePrismのキュー入門でした。