【RPA】UiPath Invoke CodeでHTTP通信をする

#RPA #UiPath #DX #ビジネス #ソフトウェア

RPAツールであるUiPathでは、
GUIによってアクティビティと呼ばれる処理の部品を選択して貼り付けることで、
パソコンで行うための一連の動作を組み立てることができます。

各処理ではVisualBasic言語(VB.NET)によって、原則、1行だけのコードを書く(プログラミング)ことができます、。
それだけでは収まらない処理は「コードを呼び出し(Invoke Code)」というアクティビティによって、
複数行のコードをプログラミングすることができます。

Invoke Codeアクティビティは、原則、一つのVB.NETのSUB関数としての機能でしかなく、
一つの関数を作るようなイメージです。
(Invoke Codeアクティビティ内で複数の関数を定義することは現状ではできません)

今回は、Invoke Codeアクティビティによって、
HTTP通信をするコードを作成しました。
(HTTP通信はUiPathのアクティビティを使っても実施可能ですが、Invoke Codeを使っても可能です)

HTTP通信の接続先は、郵便番号検索APIです。郵便番号を指定してHTTP接続し、住所などの検索結果をXML形式で取得します。

※以下のサイトにある利用規約に遵守し、利用するようにしてください。
 http://zip.cgis.biz/

■Invoke CodeでHTTP通信をする

郵便番号を指定してHTTPで郵便番号検索APIに接続し、HTTP通信により、
住所などの検索結果をXML形式で取得します。

Invoke Codeアクティビティの引数を定義します。

 In_ZipCode String 入力:郵便番号
 Out_Result Boolean 出力:結果(True/False)
Out_ErrorMessage String 出力:エラーメッセージ
Out_State String 出力:都道府県
Out_City String 出力:市町村
Out_Address String 出力:住所
Out_Company String 出力:事業所名
Out_State_Kana String 出力:都道府県(カナ)
Out_City_Kana String 出力:市町村(カナ)
Out_Address_Kana String 出力:住所(カナ)
Out_Company_Kana String 出力:事業所名(カナ)

画像6


HTTP通信をするInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①郵便番号検索 HTTP APIのURLを設定し、クエリ変数に郵便番号を指定
②Requestインスタンス生成(GETメソッド)
③HTTPリクエスト送信(GETメソッド)
④レスポンスストリーム取得
⑤レスポンスストリームリーダー生成
⑥XMLデータ取得
⑦XMLパーサ生成
⑧各データ取得
⑨各種ハンドルのクローズ処理を実施する
⑩正常であれば、Out_ResultにTrue、Out_ErrorMessageに空文字("")、各取得したデータを設定して終了する
 異常(例外発生)であれば、Out_ResultにFalse、Out_ErrorMessageにエラーメッセージ(例外メッセージ)を設定して終了する

画像6


◇シーケンスを作成するための準備
・UiPathのパッケージ管理からSystem.Net.Requestsパッケージをインストールします。

画像2


■UiPathでHTTP通信をするシーケンスの作成

画像3

以下の手順でシーケンスを作成します。

①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート

 System.Net

画像4

④以下の変数を定義する

 ZipCode String 郵便番号
 Result Boolean 結果(True/False)
ErrorMessage String エラーメッセージ
State String 都道府県
City String 市町村
Address String 住所
Company String 事業所名
State_Kana String 都道府県(カナ)
City_Kana String 市町村(カナ)
Address_Kana String 住所(カナ)
Company_Kana String 事業所名(カナ)

画像5

⑤代入アクティビティを追加し、ZipCode変数に郵便番号の文字列を設定する

⑥Invoke Codeアクティビティを追加し、
 コード編集で郵便番号を指定してHTTPで郵便番号検索APIに接続し、
 HTTP通信により、住所などの検索結果をXML形式で取得するコードを設定する

⑦条件分岐アクティビティを追加する
 結果(Result)が正常(True)の場合、
 都道府県、市町村、住所、事業所名、都道府県(カナ)、市町村(カナ)、住所(カナ)、事業所名(カナ)を出力する
 結果(Result)が以上(False)の場合、
エラーメッセージを出力する

⑧実行する


※本記事のサンプルコードに関しては、一切の責任を負いません。
 すべて自己責任でお願いいたします。


■上記のサンプルコードプロジェクトを提供します(著作権フリー)


①UiPathプロジェクト(UiPathPrj_InvokeCode_HTTPSendRecv)

 以下のサンプルシーケンスを準備しました。

  HTTP通信をするシーケンス

 ※UiPath Community Editionで作成
  (UiPath Studio Pro 2020.10.0 Community License)

②VBコンソールアプリケーションプロジェクト(VBPrj_InvokeCode_HTTPSendRecv)
 
 Invoke Codeアクティビティ内でデバックすることは困難なので、
 一度、VBコンソールアプリケーションとしてプログラミングし、
 デバックをしてからコピー&ペーストしたほうが効率的です。

 そのため、Invoke Codeアクティビティで動かす同じコードを
 VBプロジェクトから動作させるようにしてあります。

 ※Microsoft Visual Studio Community 2019 Version 16.7.6で作成
 (Microsoft.NET Framework Version 4.8.03752)


以下からサンプルコードをダウンロードすることが可能です。

ここから先は

24字 / 1ファイル

¥ 100

この記事が気に入ったらサポートをしてみませんか?