RPAエンジニアの雑記

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

(BluePrism)ポケモン図鑑を作る ~Part12 プロセスのAPI公開と呼び出し編~

どうも、おむおむです。

大学時代のバイト先の店長から
大量のハイボールが送られてきました。
ステイホーム太りが加速しそう(´ω`)

さて、今回はGASの続き、、、
と思いましたが、その前に大事なことが。

タイトルの通り、作成したプロセスを
APIとして公開します!

プロセスのAPIを公開

まず、これまでで作成したプロセスを
APIとして公開します。
newgraduate19-rpa.hatenablog.com
システム」→「プロセス」→
公開」→「プロセスを公開」を選択します。
f:id:newgraduate19:20200707203746p:plain

次の画面では、
APIとして公開するプロセスの名前を選択します。
f:id:newgraduate19:20200707210437p:plain
こういうのは、エンコードで問題が出そうなので
何となく英語の方がいい気がしますね。
そしてオプションについては、
リリースノート以外に記述を見つけられなかったので
詳しい説明は省きます。
知りたい方はBPサポートへ☆(ぶん投げ)
もしくは、ドキュメント読んでね☆(ぶん投げ)
portal.blueprism.com

で、「終了」をクリックして完了です。

WSDLを読んでみる

ご存じの通り、
硬派で勤勉なBlue Prismは、
プロセスを古の技術SOAP APIとして公開します。

APIとしてプロセスを公開すると、
SOAP APIの要である
WSDLを自動的に作成してくれます。
bpdocs.blueprism.com

WSDLは、アプリケーションサーバ.....
ではなく、なぜかランタイムリソース
エンドポイントになって公開されます。

これはマジで謎仕様です。。。
完全にLAN内でのみのデプロイを想定している気が。。。


今回はGASから起動指示をPOSTするので、
グローバルIPを取ってあげる必要があります。
AWS上にサーバを立ててElastic IPを割り与えようと思いますが、
この辺は今後の記事で書きます。

で、本題に戻ります。
WSDLの確認方法は、ブラウザのアドレスバーに

http://<ホスト名>:<RRのポート番号>/ws/

とアクセスすると見れます。
f:id:newgraduate19:20200709202943p:plain

WSDLが何か、については
これを読めば何となくわかります。
何となくで大丈夫です。
www.atmarkit.co.jp
では実際にPOSTするときに
リクエストのbodyをどうすればよいか、
具体的に調べていきましょう。

SoapUIで調べよう

SOAP APIのテストツールといえば、
やはりSoapUIでしょう。

以下のリンクからダウンロードできます。
www.soapui.org
この記事を書いた日(2020/07/09)の段階では
バージョン5.5.0でした。

インストール、起動したら
New SOAP Projectをクリックします。
f:id:newgraduate19:20200709205724p:plain

次に、テキトーなプロジェクト名をつけて、
Initial WSDL」には先ほどブラウザに表示されていた
WSDLのURLを入力します。
f:id:newgraduate19:20200709205954p:plain

すると、画面左ペインにWSDLを良い感じに読み取って
階層が表示されます。
f:id:newgraduate19:20200709210510p:plain

そして、右クリックメニューからNew Requestを選択して
テキトーなリクエスト名を付けます。

すると、SOAPメッセージのやり取りに必要な
エンベロープがまるっと自動的に作成されます。
f:id:newgraduate19:20200709211300p:plain

SOAP Message Envelopeについてはこちら↓
www.atmarkit.co.jp
あとは、Nameの中に
ポケモンの名前を入力してPOSTしたら、
上手いこと動いてくれるはず・・・

と思うじゃん?
f:id:newgraduate19:20200709214002p:plain

f:id:newgraduate19:20200621143527p:plain

レスポンス(右ペイン)のRawを見てみると...
f:id:newgraduate19:20200709214347p:plain

下の方は文字化けして読めませんが、
HTTPステータスコード401になっている、
ということは認証が必要というわけですね。

この辺上に貼ったドキュメントにも
しっかりと記載されているわけではないんですが、
どうやらBasic認証を使って
Blue Prismのユーザ名とパスワードで認証をする必要があるみたいです。

SoapUIでBasic認証を使用するには、
画面下部の「Auth」を選択して、
f:id:newgraduate19:20200709214852p:plain

Add New Authorization」を選択して、
f:id:newgraduate19:20200709215105p:plain

Basic」を選択します。
f:id:newgraduate19:20200709215318p:plain

あとはそれぞれBlue Prismのユーザ名とパスワードを入れます。
f:id:newgraduate19:20200709215558p:plain

この状態で再度実行すると・・・
f:id:newgraduate19:20200709220104p:plain

やったぜ☆

あとは、GASでこれを実行するようなスクリプトを書いていきます!

まとめ

・SoapUIマジ便利☆
SOAP APIBasic認証という素敵な()技術!

今日誕生日です!
16進数で表すと18歳になりました☆
永遠の18歳です、ご主人様☆
www3.nhk.or.jp