Blue Prism と Power Platform を統合する(PA→BP編)
12/27の記事で、
ら、来年はもっと成長しちゃうんだから!!
(皆様、良いお年を☆彡)
とキッパリ言ったばかりなのに・・・
スマン ありゃ ウソだった
前回の記事はこちら👇だから良しとするって事でさ・・・
こ ら え て く れ 。
- Power Automate から Blue Prism を呼ぶ(設計)
- Power Automate から Blue Prism を呼ぶ(実装)
- Power Automate から Blue Prism を呼ぶ(やってみた)
- まとめ
Power Automate から Blue Prism を呼ぶ(設計)
今回はちょっとだけ難しいポイントがあるので、
ユースケースは疎通レベルの単純なものです。
- Power Automate を手動で起動する
- Power Automate から Web API 経由で Blue Prism のプロセスを起動する
クラウド連携のポイント
前回と異なり、今回はネットワーク的なことも、
少し考える必要が出てきます。
クラウド連携(Cloud Integration)だからね・・・
ここがちょっと難しいポイントのひとつめ。
まず、Power Automate(PA)はクラウド上、つまり
Microsoft のどっかのデータセンターのどっかの
サーバー上で動いています。
前回は、PA に HTTP リクエストを送りましたが、
今回は PA から HTTP リクエストを Blue Prism に送る
形になります。
ネットワークの一般論として、HTTP リクエストを
送る側よりも受ける側の方が、セキュリティ的にハードル
が高いので、ここをちゃんと考える必要があります。
要は、Blue Prism のランタイムリソースが、パブリックな
インターネット上からアクセスできる必要がある…って
ことですね。
まぁ、Web API にこだわらなければ、たとえばメール
の送受信を間に挟むことでも実現は可能だと思います。
- PAからメールを送る
- メールがメールサーバーを経由して、どこかのローカルのメーラーから参照できるようになる
- 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 公開を行います。
手順は以前に書いた👇を参照
最後にネットワーク設定をいじって、
パブリックなインターネットに公開します。
注意点としては、Azure のネットワークセキュリティグループと、
仮想マシンの中の Windows ファイアウォールの両方の
許可が必要です。
ネットワークセキュリティグループでは、
Blue Prism の API が公開されている
ポート番号を許可します。
ソース側も PA の IP アドレスを入れて、
お互いでしか通信できないようにすれば、
よりセキュアだと思います。
(PA の IP アドレスが変わったら通信できなくなるけど・・・)
Windows ファイアウォール側は、
プログラム単位での許可を行えばオーケーです。
Blue Prism は Automate.exe ですね。
(スクショでは念のため、BPServer も許可しているが、たぶん意味ない💦💦)
あと、これは一般的な事象ではないかもしれないけど、、
Blue Prism のランタイムリソースをパブリックなインターネット上に
公開しても、PA からはすぐに呼べなかった。
(ローカルに入れた SoapUI からは呼べる)
何か条件があるのかも。
私の場合は30分、待ったら呼べるようになった。
また、この設定はあくまで検証用です。
実際に業務で使うには、セキュリティの観点で、
しっかりと検討が必要です。
(暗号化の観点とか・・・)
PA の設定
PA 側は、以下のような簡単フローを用意しました。
HTTP の中はこんな感じ。
こんな感じの 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)を
要求するので、そちらの設定も必要です。
はい、実装終わり。
やってみよう!
Power Automate から Blue Prism を呼ぶ(やってみた)
PA を起動した結果はこの通り。
Blue Prism のランタイムリソース側も、
きちんと HTTP リクエストを受け付け、
プロセスが実行された。
やったぜ。
まとめ
- Power Automate から Blue Prism を Web API で呼び出した
- ネットワークの観点で、ちょっとだけ難しいポイントがあった。なお、本番環境で、つまり業務でやるには、セキュリティの検討がしっかりと必要(厳密には前回もそうです。サーセン ^^)。
- Blue Prism の Web API の公開は SOAP だが、HTTP リクエストに XML を詰めれば良いだけ。SOAP だからって思考停止するのではなく、現実に何が必要かを考えれば、実現は難しくない
今度こそ、、
よいお年を~☆