Enterprise Blue Ocean ◮

神谷町RPAブログ

  • 日本の RPA の 課題と処方箋 について寄稿しました
  • Blue Prism の Blue Prism 事始め!オンボーディングの記事はこちら
  • Blue Prism を 無料で利用する 方法はこちら
  • Blue Prism で Excelを操作 する記事はこちら
  • Blue Prism の ベストプラクティス 記事はこちら
  • Blue Prism の 逆引きナレッジ wiki こちら。ご活用ください☆

Blue Prism の1つのリソースで同時にキュー受付と業務処理を実施する

お久しぶりです、「レッドブーツ88」です。

 

最近、音楽関連にかなり疎くなっているのですが、たまたまネットでジェイコブ・コリアーさんと言う1人多重録音の天才アーティストの動画を YouTube で観てみたら、超絶絶対音感の持ち主で様々な楽器を恐ろしいレベルで操るマルチプレイヤーと言うことに凄く驚きました。昔から多くのマルチプレイヤーのアーティストが居ましたが、ジェイコブ・コリアーさんは各楽器の演奏能力が尋常ではないです。(と言ってもグラミー賞を受賞されている凄く有名な方のようで私が知らなかっただけですが…)

 

以下は私が大好きなギタリストのスティーブ・ヴァイさんか参加された曲ですが、神々しいギターイントロがカッコ良いです。


Do You Feel Love (feat. Steve Vai) / Outro - Jacob Collier [OFFICIAL AUDIO]

 

さて今回は、驚きついでに、以前、以下の投稿でも紹介された実行リクエストを蓄積する機能を用いて Blue Prism の1つランタイムリソースで同時にキュー受付と業務処理を実施する方法について紹介したいと思います。この機能を駆使すると1つのラインタイムリソース環境でも多くのことが実現できるのでかなり驚きました。

 

www.ebocean.work

 

上記の投稿でも説明しているようにプロセスが利用するオブジェクトの実行モードを [バックエンド] または [フォアグランド] に設定することで複数リクエストを受け付けることが可能なのですが、ワークキューへ登録する際に利用する内部 VBO にはそのような定義を行う画面がないため、念のため、以下のような手順で動作確認を実施してみました。

 

 

リクエストを受付けてワークキューへ登録するプロセスを用意

外部アプリから注文情報を受付け、ワークキューへ登録し、アイテムID を受付番号として呼び出し元へ戻すプロセス(リクエスト受付エンキュープロセス)を用意します。(処理が滞留するように途中で20秒スリープするようにしています)

f:id:EnterpriseBlueOcean:20191117184624p:plain

 

業務プロセスが利用するオブジェクトの実行モードを [排他的] 以外に変更

業務プロセス(ここでは Salesforce と連携するデモプロセスを活用)が利用する [Salesforce] オブジェクトの実行モードを [フォアグランド]、もしくは [バックグラウンド] へ変更します。

f:id:EnterpriseBlueOcean:20191117184739p:plain

 

その他にも業務プロセスが製品に付属する Excel VBO を利用していたため、一旦、[MS Excel VBO フォアグラウンド処理] と言う名称で別名保存しコピーを作成します。そのコピーした側の実行モードを同様に [フォアグランド]、もしくは [バックグラウンド] へ変更します。

f:id:EnterpriseBlueOcean:20191117184835p:plain

(補足)業務プロセスから呼び出す VBO 名の変更も必要です。

 

業務プロセスとリクエスト受付エンキュープロセスを同時に実行

業務プロセスを実行中にリクエスト受付エンキュープロセスを複数回実行します。ここでは SoapUI を用いて5回実行しています。その際に異なる注文情報をリクエストするようにしています。

f:id:EnterpriseBlueOcean:20191117185022p:plain

 

1つのランタイムリソースで複数セッションが動作することを確認

実行モードに [バックエンド] または [フォアグランド] が設定されたオブジェクトだけを利用しているプロセスなら1つのランタイムリソースで複数セッションが実行可能なため、ここでは業務プロセス(Salesforce Demo)とリクエスト受付エンキュープロセス x 5 の合計6セッションが動作しています。これは Blue Prism を良くご存知の方だとかなり驚きのある画面だと思います。

f:id:EnterpriseBlueOcean:20191117185828p:plain

 

リクエスト受付キューの確認

全てのリクエスト受付エンキュープロセスの実行が完了した後にリクエスト受付キューのタグを確認するとリクエストごとに異なる注文情報が登録されていることが分かります。

f:id:EnterpriseBlueOcean:20191117185946p:plain

 

外部アプリへユニークな受付番号が戻されていることを確認

外部アプリ(SoapUI) にはリクエストごとにユニークな受付番号が戻されていることが確認できます。

f:id:EnterpriseBlueOcean:20191117190106p:plain

 

P0001:
<受付番号 xsi:type="xs:string">de3a06e7-d9ab-4b18-854e-a12dd5e8d3d6</受付番号>

P0002:
<受付番号 xsi:type="xs:string">f6f2ac87-2a46-40e1-98de-358062358933</受付番号>

P0003:
<受付番号 xsi:type="xs:string">fbbbddda-e6ae-417b-95b2-d5e346e28ef7</受付番号>

P0004:
<受付番号 xsi:type="xs:string">c8871dcf-8c88-400c-867f-f4dd72345acc</受付番号>

P0005:
<受付番号 xsi:type="xs:string">e70dddc1-e958-40ba-bc3f-d7eab70f50cc</受付番号>

  

まとめ

  • 使い方次第で1つのランタイムリソース上で複数の処理が実行可能です
  • その場合、オブジェクトの実行モードに注意が必要です

 

実際のプロジェクトでは、後段のプロセス(ここでは Salesforce Demo)は、画面操作が入ることが多く実行モードが [排他的] になることも考えられるため、上記対応が実施出来ないケースもあるかも知れませんが、自動化対象のアプリケーション側の制約と Blue Prism 側のプロセスの実装次第によって上記のように1つランタイムリソースで同時に複数のプロセスを実行することも可能なことをご理解いただければ幸いです。

 

個人的にはこの機能を上手く活用すると Blue Prism を Enterprise Service Bus 製品のように使うことが出来そうなのでとてもワクワクします。