Enterprise Blue Ocean ◮

神谷町RPAブログ

  • Blue Prism 初級者向け
    • Blue Prism を 無料で利用する 方法はこちら
    • Blue Prism の Blue Prism 事始め!オンボーディングの記事はこちら
    • Blue Prism で Excelを操作 する記事はこちら
  • Blue Prism、ちょっと進んだコンテンツ☆
    • Blue Prism の ベストプラクティス 記事はこちら
    • Blue Prism の 逆引きナレッジ wiki こちら
    • Blue Prism を リアルタイムで起動する 方法はこちら
  • RPA、そもそも論!
    • Youtube で、あらためて振り返る RPA とは?・・・はこちら☆

Blue Prism と Power Platform を統合する(PA→BP編)

12/27の記事で、

ら、来年はもっと成長しちゃうんだから!!

(皆様、良いお年を☆彡)

とキッパリ言ったばかりなのに・・・

スマン ありゃ ウソだった

f:id:EnterpriseBlueOcean:20191228171638p:plain

前回の記事はこちら👇だから良しとするって事でさ・・・

www.ebocean.work

 

こ ら え て く れ 。

 

 

Power Automate から Blue Prism を呼ぶ(設計)

今回はちょっとだけ難しいポイントがあるので、

ユースケースは疎通レベルの単純なものです。

  1. Power Automate を手動で起動する
  2. Power Automate から Web API 経由で Blue Prism のプロセスを起動する

 

クラウド連携のポイント 

前回と異なり、今回はネットワーク的なことも、

少し考える必要が出てきます。

クラウド連携(Cloud Integration)だからね・・・

ここがちょっと難しいポイントのひとつめ。

 

まず、Power Automate(PA)はクラウド上、つまり

Microsoft のどっかのデータセンターのどっかの

サーバー上で動いています。

 

前回は、PA HTTP リクエストを送りましたが、

今回は PA から HTTP リクエストを Blue Prism に送る

形になります。

 

ネットワークの一般論として、HTTP リクエストを

送る側よりも受ける側の方が、セキュリティ的にハードル

が高いので、ここをちゃんと考える必要があります。

要は、Blue Prism のランタイムリソースが、パブリックな

インターネット上からアクセスできる必要がある…って

ことですね。

 

まぁ、Web API にこだわらなければ、たとえばメール

の送受信を間に挟むことでも実現は可能だと思います。

  1. PAからメールを送る
  2. メールがメールサーバーを経由して、どこかのローカルのメーラーから参照できるようになる
  3. Blue Prism がローカルでメーラーを操作して、メールを参照する

こんな感じですね。

 

でもまぁ、せっかくだし、今回は Web API

やってみようと思います☆ 

オンプレにサーバーを立てて…とかだと大変なので、

今回は Azure 上に仮想マシンを立てて、

そこに Blue Prism の AP サーバーランタイムリソース

詰め込んだ構成にしました。

 

旧石器時代の SOAP とダンスを

・・・あれ、でもちょっと待てよ。。

Blue Prism の API 公開って SOAP じゃなかったっけ??

 

こんな旧石器時代のテクノロジー、

老害がマウンティングするときにしか使われないプロトコルが、

PA から使えるわけないじゃん!!

終わった!

今年も大変、お世話になりました!!!

ぶえー(断末魔)

 

・・・

・・・・・・

・・・・・・・・・なんてくだらねーこと

言ってねぇでサクサク進めるのである。

 

SOAP、SOAP と構えすぎ。

SOAP の API を呼ぶために必要なことは、

単 に H T T P 

リ ク エ ス ト を 送 る 、

これだけだから。

 

(そりゃオプションはいろいろあるけど)

HTTP リクエストのボディ適切な XML を書いて

送れば、それで事足りる。

つまり、HTTP リクエストを送れる環境があれば、

SOAP API を使用することが可能だ。

 

さっそくやってみるゾ!

 

Power Automate から Blue Prism を呼ぶ(実装)

Blue Prism の API をパブリックなインターネットに公開する

まず、Azure 上の仮想マシンBlue Prism のランタイムリソース

を構成する上でのポイントから。

 

Azure に Blue Prism を構成するには、普通にインストール

すれば問題ない。DB は PaaS の SQL Database を使うのが

お薦めだと思う(たぶん)。

公式にガイドがあるので、詳細はこちら(v6 Data Sheet - Azure Reference Architecture (Japanese))を参照。

 

構成したら、Blue Prism の API 公開を行います。

手順は以前に書いた👇を参照

www.ebocean.work

最後にネットワーク設定をいじって、

パブリックなインターネットに公開します。

注意点としては、Azure のネットワークセキュリティグループと、

仮想マシンの中の Windows ファイアウォールの両方の

許可が必要です。

 

ネットワークセキュリティグループでは、

Blue Prism の API が公開されている

ポート番号を許可します。

ソース側も PA の IP アドレスを入れて、

お互いでしか通信できないようにすれば、

よりセキュアだと思います。

(PA の IP アドレスが変わったら通信できなくなるけど・・・)

f:id:EnterpriseBlueOcean:20191229160245p:plain

 

Windows ファイアウォール側は、

プログラム単位での許可を行えばオーケーです。

Blue Prism は Automate.exe ですね。

(スクショでは念のため、BPServer も許可しているが、たぶん意味ない💦💦)

f:id:EnterpriseBlueOcean:20191229155820p:plain

 

あと、これは一般的な事象ではないかもしれないけど、、

Blue Prism のランタイムリソースをパブリックなインターネット上に

公開しても、PA からはすぐに呼べなかった

(ローカルに入れた SoapUI からは呼べる)

何か条件があるのかも。

私の場合は30分、待ったら呼べるようになった。

 

また、この設定はあくまで検証用です。

実際に業務で使うには、セキュリティの観点で、

しっかりと検討が必要です。

暗号化の観点とか・・・)

 

PA の設定

PA 側は、以下のような簡単フローを用意しました。

f:id:EnterpriseBlueOcean:20191229160501p:plain

HTTP の中はこんな感じ。

f:id:EnterpriseBlueOcean:20191229160657p:plain

こんな感じの XML をボディに入れればオーケー。

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:blueprism:webservice:hellobpfrompa">
  <soapenv:Header/>
  <soapenv:Body>
    <urn:HelloBPfromPA soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <input xsi:type="xsd:string">Test</input>
    </urn:HelloBPfromPA>
  </soapenv:Body>
</soapenv:Envelope>

太字にしたあたりが、可変になっていくところかな。。

ユースケースを拡張する際は、PA の JSON 関数を

使って、XML を生成していくことになると思います。

(たぶん)

 

なお、Blue Prism が基本認証(Basic Authentication)

要求するので、そちらの設定も必要です。

f:id:EnterpriseBlueOcean:20191229161121p:plain

 

はい、実装終わり。

やってみよう!

 

Power Automate から Blue Prism を呼ぶ(やってみた)

PA を起動した結果はこの通り。

f:id:EnterpriseBlueOcean:20191229161250p:plain

Blue Prism のランタイムリソース側も、

きちんと HTTP リクエストを受け付け、

プロセスが実行された。 

f:id:EnterpriseBlueOcean:20191229161501p:plain

 

やったぜ。

 

まとめ

  • Power Automate から Blue PrismWeb API で呼び出した
  • ネットワークの観点で、ちょっとだけ難しいポイントがあった。なお、本番環境で、つまり業務でやるには、セキュリティの検討がしっかりと必要(厳密には前回もそうです。サーセン ^^)。
  • Blue Prism の Web API の公開は SOAP だが、HTTP リクエストに XML を詰めれば良いだけSOAP だからって思考停止するのではなく、現実に何が必要かを考えれば、実現は難しくない

 

今度こそ、、

よいお年を~☆