RPAエンジニアの雑記

RPA(Blue Prism)について色々記載してます。

(BluePrism)プロセスを任意のタイミングで実行させたい~Part1/2~

ご無沙汰しております、おむおむです。
※注:長いです。

近頃神谷町のブログにてリアルタイム起動フレームワークが紹介されておりました。
www.ebocean.work
難しい

もっとお手軽に実装したい!
というわがままな方もいらっしゃるのではないでしょうか。

そこで、神谷町の方で紹介されているよりは不安定かつ拡張性に乏しいですが、
比較的簡単に実装できる方法をご提案したいと思います。

やりたいこと

・Blue PrismをインストールしていないPCからプロセスを実行したい
・バッチファイルだけでお手軽に実装・実行したい

事前準備

プロセスを実行するためのランタイムリソースを起動しておきます。
今回は、BPというリソースPCで8181番ポートを使用します。

方法

リソースPCに対してHTTPで指示を送ります。
これ、実はちょっと前に神谷町ブログの方でも紹介されていたものです。
www.ebocean.work
上の記事内ではセキュリティレベルを下げた場合の方法でしたが、
せっかくなので今回はセキュリティレベルを上げた状態での
実行方法を試してみたいと思います。

つまり、「システム」->「システム」->「設定」->
「セッション管理でユーザーを制御する許可を実行」にチェックがついた状態です。
f:id:newgraduate19:20200407000356p:plain

製品ヘルプを読んでみる

これです。
リソースPCコマンド
セキュリティレベルが高い状態の場合は、
○○asというコマンドを使用する必要があります。
その中で、トークを指定しろと書かれています。
なんじゃそりゃ。

トークンを取得する

getauthtokenコマンドでトークンが取得できます。
http://BP:8181/getauthtoken%20<ユーザID>%20<パスワード>

ここでユーザの認証が必要なのですが、
ユーザ名ではなくユーザIDを指定しなければなりません。

どうやって調べるんだ!
データベースを見ないとわからないの~!?

f:id:newgraduate19:20200404122706p:plain

userlistコマンドを使う

ご安心ください、userlistという便利なコマンドがあります。
http://BP:8181/user%20name%20<ユーザ名>&password%20<パスワード>&userlist
すると、こんな感じに表示されます。

a41c9dfe-36a6-41e6-9a2b-323bbbf164ec - admin
8ee4e81f-c247-4f7e-9b0f-88317ce4b4fe - test

<ユーザID> - <ユーザ名>という形式で表示されます。
ここから持ってきましょう。

今度こそトークンを取得する

さあ今度こそ取得できるはずだ!
今回はadminユーザでトークンを取得してみよう!

http://BP:8181/getauthtoken%20a41c9dfe-36a6-41e6-9a2b-323bbbf164ec%20<パスワード>
INVALID PARAMETERS

f:id:newgraduate19:20200406233804p:plain
お前、製品ヘルプに書いてある通りに指定したじゃないか!
どういうことなんだ!おい!

コマンドからヘルプを参照する

こうなったら最後の頼みの綱、helpコマンドで使い方を確認や。。。
http://BP:8181/help%20<コマンド>で、各種コマンドのヘルプを確認できます。
すると、、、

http://BP:8181/help%20getauthtoken
コマンド:getauthtoken
指定された認証情報を使用して承認トークンを取得します。
ネイティブ/SSO認証の'getauthtoken <processid> <userid> <password>'、
または'Active Directory認証の'getauthtoken upn <userprincipalname> <password> <processid>'を使用します。
このメソッドは、セキュアなネットワーク用に設計されたカスタムソリューションに使用できます。
通常の運用ではBlue Prismで使用されません。


なんだよ!プロセスIDが必要なんじゃないか!

f:id:newgraduate19:20200406235837p:plain

プロセスIDを取得

プロセスIDも、わざわざDBを確認しに行く必要はありません。
proclistコマンドで一覧表示できます。

http://BP:8181/user%20name%20admin&password%20<パスワード>&proclist
277e13f7-830e-4c5b-a7b3-d292f998a13b - test1
2fda4e46-5ec6-4ea9-a97e-227f6d5afce5 - test2

userlistコマンドと同様、<プロセスID> - <プロセス名>の形式で表示されます。

トークンを取得する(3度目の正直)

さあ、今度こそ!トークンを!取得するのだ!
「test1」プロセスを指定してみるよ!

http://BP:8181/getauthtoken%20277e13f7-830e-4c5b-a7b3-d292f998a13b%20a41c9dfe-36a6-41e6-9a2b-323bbbf164ec%20<パスワード>
a41c9dfe-36a6-41e6-9a2b-323bbbf164ec_17276251-2d11-4a62-8c89-81e1b7cae554

f:id:newgraduate19:20200406235223p:plain
やったぜ
今回はここまで!疲れた!

まとめ

・当然だが、リソースPCにコマンドを送信するのでランタイムリソースが起動していることが必須。
・「セッション管理でユーザーを制御する許可を実行」にチェックが入っている場合は
 「○○as」のコマンドを使用する必要がある。
・「getauthtoken」コマンドは製品ヘルプ通りだと実行できない( ゚Д゚)

次回、完結させます。