Enterprise Blue Ocean ◮

神谷町RPAブログ

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

Blue Prism を Web API から呼ぶときのアレコレ(マニア向け)①

君の言いたいことはわかる。

「どこに需要があるのか?」

・・・だろ。

 

だがなぁ、そもそものところを考えてみろよ。

神谷町RPAブログは 2018/4 の開設以来、

需要を考えた記事なんか、

ほんの気まぐれ程度にしか存在していない。

 

このブログに誰得?なんて疑問は存在しない。

・・・存在するのは冒険者だけだッ!

f:id:EnterpriseBlueOcean:20200124150104p:plain

 

起動リクエストは蓄積されるのか

まずはこいつを見てほしい。

こいつをどう思う?


SoapUIから複数リクエストを送る

 

SoapUI を使って、HTTPリクエストを量産し、

Blue Prism に送っている様子だ。

 

SoapUI 側の呼び出しが完了しても、

Blue Prism 側の処理は、しばらく続いているが、

エラーにはなっていない。

 

 ※ エラーになってない、つまり、ちょっと待たされはするが、

   きちんとHTTPレスポンスが返ってる、ということです。

 

Web API 経由のリクエストは、タイムアウトまで待ってくれる

これは Blue Prism がHTTPリクエストをキューイングしている

・・・というより、HTTP通信の基本的な仕組みが

適用されているからだと思われる。

(たぶん)

 

つまり、Blue Prism が処理可能になるまで、

HTTPリクエストはしばらく待機してくれるのである。

(今回のケースでは、ひとつのセッションでシリアルに処理をしている)

 

もちろん、待機時間には限界があり、

処理能力を超えるHTTPリクエストを送り続けると

HTTPリクエストはタイムアウトしてエラーになります。

 

タイムアウト値は、Blue Prism 側は設定がなく、

呼び出し側で制御する必要があるようです。

(たぶん)

 

キューイングっちゃあ、キューイングですけど、

ワークキューとは、また別の話ですね。

 

(参考)コントロールルームでの起動

コントロールルームでドラッグ&ドロップをした場合、

起動リクエストを待ってくれることはない。

ランタイムリソースがビジーの場合は、

即座にエラーが返される。

 

(参考)スケジューラーでの起動

スケジューラーも即時にエラーが返ったはず。

(たぶん)

 

(参考)AutomateC.exe での起動

加筆予定。 

 

まとめ

  • Webサービスで Blue Prism に起動リクエストを送った場合、リソースがビジーでも、しばらく待機してくれる 

 

次回の記事はセッションの消費に関する、

プロセスとオブジェクトの違いについて書きたいと思います☆

 

さっきの動画を見て気づいた方もいらっしゃると思いますが、

複数のリクエストを送っているのに、セッションがひとつしかできていない。

これは、オブジェクトをWebサービスとして公開しているからです。

 

その次の記事は、手動初期化かな。。

 

Web サービス呼び出しについては、

Blue Prism Dispatch Framework で細かく語られており、

大変、参考になるので興味のある方はご一読を!

www.linkedin.com

Blue Prism から Webhook 経由で MS Teams へ通知する

こんにちは、「レッドブーツ88」です。

 

個人的に少し前に Twitter で流れていたドラムセンサーが気になります。昔、真面目にドラムを練習していた頃にこれが有ればなと思いました。ドラムの打ち込みにも活用できそうなのも良いです。

www.axismag.jp

 

さて、今回は、Blue Prism から Webhook 経由で MS Teams へメッセージを送信するための手順を紹介いたします。(実はあるお客様の方が先に実現されていたので、それに影響されて私も VBO を用意してみました)

 

 

MS Teams 側でチームを作成

チームを作成後、チャネルを追加します。ここではデフォルトで作成されてる [一般] チャネルを利用しています。

f:id:EnterpriseBlueOcean:20200114112654p:plain

  

Webhook コネクタを追加

追加したチャネルへ新しいコネクタとして Incoming Webhook を追加します。
f:id:EnterpriseBlueOcean:20200114113019p:plain

(補足) 私の環境ではチーム作成後のチャネルメニューへ [コネクタ] が表示されるまでに時間が掛かりました。(10分くらい)

 

f:id:EnterpriseBlueOcean:20200114113058p:plain

f:id:EnterpriseBlueOcean:20200114113111p:plain

 

Webhook への URL をコピー

Incoming Webhook コネクタ管理画面にある URL をコピーします。

f:id:EnterpriseBlueOcean:20200114113309p:plain

 

Teams オブジェクトを用意

Blue Prism 上で以下のような Teams オブジェクトを用意します。

f:id:EnterpriseBlueOcean:20200114113441p:plain

 

なお、今回用意した Teams オブジェクトでは Utility - HTTP VBO を利用してベタで HTTP リクエストを呼び出していますが、今風な定義にするなら以下のブログで紹介している Web API 機能を用いるのが良いと思います。

www.ebocean.work

 

(解説)コレクション型で送信するメッセージデータを用意

Teams へ送信する JSON データに対応するコレクション型のデータを用意します。

f:id:EnterpriseBlueOcean:20200114113932p:plain

  

(解説)コレクションから JSON データへ変換

Utility - JSON VBO の [Collection to JSON] アクションを用いてコレクションから JSON データへ変換します。

f:id:EnterpriseBlueOcean:20200114114055p:plain

f:id:EnterpriseBlueOcean:20200114114103p:plain

f:id:EnterpriseBlueOcean:20200114114911p:plain

(解説)MS Teams が期待する JSON データへ変換

留意する点として、変換した JSON データと MS Teams が期待する JSON データで差異があるため、AVO.Regex VBO の [Regex Replace] アクションなどを用いて先頭の "[" と最後の "]" を削除する必要があります。

f:id:EnterpriseBlueOcean:20200114115342p:plain

(補足)正規表現としては "[\[\]]" な感じで対応できました。

 

f:id:EnterpriseBlueOcean:20200114115543p:plain

 

(補足) Utility - JSON VBO が変換した JSON データ

[{"title":"テスト","text":"テストメッセージ"}] 

(補足) MS Teams が期待する JSON データ

{"title":"テスト","text":"テストメッセージ"}


なお、AVO.Regex VBO は以下のページなどで紹介されております。

www.ebocean.work

 

(解説)URL、Body、Context Type などを指定し実行

あとは適宜、Utility - HTTP VBO の [HTTP Request] アクションの [Address URL] へ Incoming Webhook コネクタへ URL、[Body] へ用意した JSON データ、[Context Type] へ "application/json"、[Method] へ "POST" などを指定し実行します。

f:id:EnterpriseBlueOcean:20200114115353p:plain

f:id:EnterpriseBlueOcean:20200114120746p:plain

 

ちなみに、モバイル版 Teams アプリからも確認可能ですので、以下のように Blue Prism からの通知を iPhone 上で確認するようなことも可能です。

f:id:EnterpriseBlueOcean:20200114120854p:plain

まとめ

  • Utility - HTTP VBO を活用すると Webhook 経由で Teams への通知が可能です
  • Web API 機能から Webhook を呼び出す方が今風でカッコ良いです
  • サンプル定義をユーザーコミュニティ上で共有しました (ログインが必要です)

 

昨年末から対応しようと思ってましたが、やっと投稿することができました。このような感じで様々なシステムと Webhook 経由による連携が可能となるため、Blue Prism をシステム連携製品のように活用するのも面白いと思います。