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 とは?・・・はこちら☆

プロセスの任意実行 <② API呼び出し実行>

どもども、ジャナイホーによるシリーズ

プロセスの任意実行。

  ~ もう、約束の時間を待つばっかりは、いやなの。私から、私のタイミングで、始めたいの。~

第二弾。APIとして公開し、実行する方法について、です。

 

プロセスの公開

Blue PrismプロセスをWeb Services APIとして呼び出せるようにするには、システムマネージャ画面でプロセスを公開してやる必要があります。

その手順については、ちょーど良い記事があります。

ebo.hatenablog.com

 

公開するプロセスは、大きくて複雑で時間がかかる処理を行うような実装になっていると、本番運用時に問題になりやすいです。

せっかくWeb Service化して、多数のリクエストを受け付けられる仕組みなのにもかかわらず、そのようなプロセスがランタイムリソースやライセンスを占有してしまい、結果、スケールできない、といったことが発生します。

そんなことにならないように、事前に是非、設計ベストプラクティスを参照して、小さいシンプルなプロセスで受け付ける設計・実装を検討してみて下さい。

 

公開されたプロセスの実行 

あとは、Blue Prismプロセスを呼び出すプログラムを作ってやる必要があります。

Javaとか、Windows .Net C#とか、curlとか、Pythonとか、PHPとかで構築します。

 

ご参考まで、Javaでの実装の仕方は、これになります。

ebo.hatenablog.com

 

Web Servicesのドキュメントに詳しくいろいろ書いてあります。VB.NETのサンプルコードもついてます。

portal.blueprism.com

 

。。。さくっと流しましたが、つまり、ですね。。。

プロセスの公開までは、ちょー簡単なのですが、それを呼び出すプログラムを作る、となると、プログラミングテクニックが必要となります。

なぜなら、コントロールルームの画面のような、ユーザが操作する画面とかをイチから作り上げることになるからです。。。。

 

。。。これだけだと、なんだか申し訳ないので、今回はこんなのも用意してみました。

 

ランタイムリソースPCへのHTTPアクセス

前述のコマンドライン実行では、Blue Prismがインストールされたマシンにログインして、AutomateCを実行してやる必要がありました。

これに対して、Blue Prismがインストールされていないマシンから、ブラウザ上でプロセスを開始する手順があります。

ちょいと複雑で、かつ、味もそっけもないインターフェースですが、試してみましょう。

 

HTTPアクセスの事前設定

 セキュリティレベルを下げる手順なので、推奨しませんが、ここでは、簡単にプロセス実行まで到達させるために、以下の設定を施します。

 

システムマネージャ画面の「設定」から、「ランタイムリソースコネクティビティ」の中にある、「セッション管理でユーザーを制御する許可を実行(推奨)」のチェックボックスをオフにします。

(英語ですと、「Session Management enforces permissions of controlling user (recommended)」になっています)

f:id:EnterpriseBlueOcean:20190828111804p:plain

 

ブラウザからHTTPでランタイムリソースにアクセスしてプロセスを実行してみる

ブラウザのURL欄に以下のような文字列を入力します。 

 

http://<ランタイムリソースホスト名>:8181/user%20name%20<ユーザ名>&password%20<パスワード>&busy

 

(上記と後述のサンプルではすべて、それぞれ、<ランタイムリソースホスト名>、<ユーザ名>、<パスワード>のところをお使いの環境に合わせます。ランタイムリソースのポート番号をデフォルトの8181と仮定して書いています。また、ブラウザ入力欄にはスペース文字は%20というコードで置き換えてやる必要があるので、そのように記載しています。)

 

ここで「busy」というコマンドは、そのランタイムリソースが他のプロセスを実行しているとか接続が出来ない状態かどうかを問い合わせるコマンドです。

プロセス実行を受け付けられる状態であれば、そっけなく「no」という言葉が返ってきます。こんな感じですね。

f:id:EnterpriseBlueOcean:20190828111910p:plain

では次に、プロセス実行用のセッションを作ってみます。「create name <プロセス名>」というコマンドを利用します。

これは、コントロールルームの画面で、プロセスを実行させたいリソース上へドラッグアンドドロップするのと同じ操作です。上手く行くと、「Pending」状態でセッション管理画面にリストアップされますよね。

 

http:// <ランタイムリソースホスト名>:8181/user%20name%20<ユーザ名>&password%20<パスワード>&create%20name%20<プロセス名>

 

セッションが作成されたら、セッションIDがブラウザの画面上に表示されます。

f:id:EnterpriseBlueOcean:20190828111937p:plain

この時点で、コントロールルームのセッション管理画面上にも表示されるはずです。見てみましょう。

f:id:EnterpriseBlueOcean:20190828111958p:plain

 

はい。では、いざ、プロセスを開始!

手っ取り早く「start last」というコマンドを使います。

 

http:// <ランタイムリソースホスト名>:8181/user%20name%20<ユーザ名>&password%20<パスワード>&start%20last

 

f:id:EnterpriseBlueOcean:20190828112015p:plain

「STARTED」だって。。。。味も素っ気もない。。。

 

はい、では、状況を見てみましょう。「status」コマンドです。

http:// <ランタイムリソースホスト名>:8181/user%20name%20<ユーザ名>&password%20<パスワード>&status

 

先ほど、セッションを作成した時点で表示されたセッションIDがステータスとともに表示されているはずです。

f:id:EnterpriseBlueOcean:20190828112042p:plain

コントロールルーム上でも、プロセスが完了したのが分かります。

f:id:EnterpriseBlueOcean:20190828112056p:plain

 

HTTPアクセスのコマンド

ここで紹介したコマンドは簡易的に手っ取り早く実行するものです。他にもいろいろありますし、事前設定で施した「非推奨」のオプションを推奨オンにした場合に指定出来るコマンドもあります。

(非推奨の設定のままだと、セキュリティリスクになります。)

詳しくは、Blue Prismソフトウェア製品のオンラインヘルプを参照してみましょう。

 Advanced Topics > Resource PC Low Level Communication

f:id:EnterpriseBlueOcean:20190828112131p:plain

 

また、リソースPC名を指定するので、このままですと、スケールし難い点は、コマンドライン実行と同じです。

そのあたりがデメリットですかね。。。

 

この機能についてのTips文書もカスタマーサポートのサイトにあります。参考にしてみて下さい。

help.blueprism.com

 

まとめ

Blue PrismのWeb Service APIを利用して、プロセスを実行するには、先ず、Blue Prismのシステムマネージャ画面で、プロセスを公開する設定を施します。

その上で、公開されたプロセスをキックする、外部プログラムを構築する必要があります。

ランタイムリソースの空き状況も確認できるようにするなど、外部プログラムや画面をがっつり作りこめば、ユーザーフレンドリーな任意実行環境を構築することが出来ます。

 

これに加えて、ここでご紹介したような、「Blue Prismをインストールしていないマシンのブラウザから、ランタイムリソースPCに直接アクセスして、簡易的にプロセスを開始する」手段もあります。

これらの方法は、ユーザに実行のタイミングを任せたい、でも、各端末にわざわざBlue Prismをインストールしたくない、といった要件を満たせます。

 

次回の本シリーズではいよいよ「トリガー受信」についてご紹介します。