IM-RPA 利用ガイド 第7版 2023-10-01

IM-RPA 利用ガイド 第7版 2023-10-01

5.6. WinActor連携チュートリアル

5.6.1. チュートリアルの概要

本章では、IM-RPAのWinActor連携機能を使用して、 WinActorのロボットを実行する方法をチュートリアル形式でご説明します。
このチュートリアルに沿って設定を行うことで、以下のような機能を実現できます。
  • intra-mart Accel PlatformからIM-LogicDesignerを介してWinActorのロボットを実行します。
  • WinActorのロボットに対してパラメータを渡し、計算した結果を受け取ります。
本章では、説明を簡単にするために、ロボットのシナリオはシンプルなものにしております。
WinActor連携においては、ロボット実行時に、intra-mart Accel Platformからロボット実行端末へシナリオファイルを送付します。
また、ロボットとのパラメータのやりとりには「データファイル」というCSVファイルを使用します。
シナリオの実行イメージは以下の通りです。
../../../_images/winactor_tutorial_0_1_1.png
図:本チュートリアルシナリオ実行イメージ

コラム

シナリオ、およびデータファイルの扱いについて
WinActor連携に使用するシナリオファイル、およびデータファイルは、intra-mart Accel Platformのパブリックストレージ上から「ストレージ取得」タスク使用して取得する必要があります。
また、本チュートリアルでは、ロボットに動的なパラメータを連携するために、データファイルの書出を読込前に実行しています。
../../../_images/winactor_tutorial_0_1_2.png
図:ストレージサービスへの書き込みについて

5.6.2. 準備・環境設定

5.6.2.1. WinActor環境の確認

WinActorのロボット実行端末上にIM-RPAの提供しているWinActorエージェントをセットアップした環境を用意してください。
あらかじめ、 WinActorのロボット実行端末上で単体のロボットが実行できることをご確認ください。
WinActorのロボット実行端末はintra-martサーバとhttpポートで通信できる必要があります。
../../../_images/winactor_tutorial_1_1_1.png
図:構成イメージ

コラム

WinActor連携のセットアップでは、intra-mart Accel Platformのセットアップ、 WinActorエージェント、および設定ファイルを記載します。
詳細は、「セットアップ」を参照してください。

5.6.2.2. WinActor設定の確認

「サイトマップ」→「RPA」→「WinActor連携設定」をクリックして「WinActor連携 設定編集」画面を開きます。
「接続確認」アイコンをクリックし、 接続に成功しました。 というメッセージが表示されることを確認します。
../../../_images/winactor_tutorial_1_2.png
図:「WinActor連携 設定編集」画面

5.6.2.3. 確認ポイント

よくある接続ミスを事前に確認するポイントを記載します。
確認ポイントのチェックが確認できない場合、WinActor連携の実行時にエラーが発生します。
セットアップ」を再度確認し、セットアップを行ってください。

5.6.2.3.1. 確認ポイント1

WinActorのロボット実行端末上でWinActorエージェントが起動していることを確認してください。
../../../_images/winactor_tutorial_1_4_1.png
図:確認ポイント1

5.6.2.3.2. 確認ポイント2

WinActorエージェントが指定したポート(デフォルト値は 8088 )でLISTENING状態になっていることを確認してください。
../../../_images/winactor_tutorial_1_4_2.png
図:確認ポイント2

5.6.2.3.3. 確認ポイント3

WinActorエージェントが指定したプログラム名(デフォルト値は WinActor7.exe )で、パスが通っていることを確認してください。
../../../_images/winactor_tutorial_1_4_3.png
図:確認ポイント3

5.6.3. シナリオの作成

WinActorにてロボットのシナリオを作成します。
以下は、ロボットのシナリオ例です。
../../../_images/winactor_tutorial_2_1_1.png
図:WinActorシナリオ設定例

コラム

WinActorを使用したロボットの作成方法については、 詳細は、「WinActorマニュアルページ」を参照してください。

5.6.3.1. パラメータの設定

上記「①シナリオで使用するIN/OUTパラメータを設定します。」部分でパラメータ設定を行います。
変数にIN/OUTの区別はありません。
../../../_images/winactor_tutorial_2_1_2.png
図:WinActorパラメータの設定

コラム

WinActorでは変数は全て文字列型として扱われます。
なお、IM-LogicDesigner側でパラメータを受け取る際に別のデータ型を指定した場合、自動的に型変換をします。
具体的な対応表は、 「IM-LogicDesigner仕様書」 - 「IM-LogicDesigner データ型変換 仕様書」を参照してください。

5.6.3.2. データファイルの用意

前項で設定した変数について、下記のように相対するデータファイルを用意します。
../../../_images/winactor_tutorial_2_1_3.png
図:WinActorデータファイルの用意
作成したデータファイルについて、「変数名インポート」をして同じ結果となることを確認してください。
../../../_images/winactor_tutorial_2_1_4.png
図:WinActor「変数名インポート」

5.6.3.3. ノードの設定

上記「②取得したパラメータ同士の計算をするノードを追加します。」部分でノードの設定を行います。
「ライブラリ」より「文字列の連携(2つ)」を選択し、ノードに追加します。
../../../_images/winactor_tutorial_2_1_5.png
図:WinActor「文字列の連携(2つ)」をノードに追加

5.6.3.4. シナリオの保存

作成したシナリオを保存します。
シナリオファイルとデータファイルは後ほど使用するため、保存場所をあらかじめ確認してください。
../../../_images/winactor_tutorial_2_1_6.png
図:シナリオファイルとデータファイルを保存
WinActorシナリオの作成から保存までの具体的な操作の流れについては、動画にてご覧いただけます。

5.6.4. シナリオのアップロード

WinActorにて作成したシナリオファイル、およびデータファイルをIM-RPAのパブリックストレージにアップロードします。
ここでは、テナント管理者機能の「ファイル操作」を利用した方法を説明します。
ファイル操作の利用方法については、「テナント管理者操作ガイド」 - 「ファイル操作を使用する」を参照してください。
ファイル操作にて、「default」ディレクトリの配下に任意のディレクトリを作成します。
ここではディレクト名を「RPA」とします。
作成したディレクトリ配下に、シナリオファイル、およびデータファイルをアップロードします。
../../../_images/winactor_tutorial_3_1_1.png
図:「ファイル操作」を使用してシナリオをアップロード
アップロードの具体的な操作の流れについては、動画にてご覧いただけます。

5.6.5. IM-LogicDesignerユーザ定義タスクの準備

IM-LogicDesignerユーザ定義タスクとは、IM-LogicDesignerにおいて作成可能な、各種機能を持つ独自タスクです。
本チュートリアルにおいては、IM-LogicDesignerで作成したWinActor用のデータファイルをintra-mart Accel Platformのストレージに保存する時と、ロボットから返却されたデータファイルを参照する際に、この独自タスクを使用します。
../../../_images/winactor_tutorial_4_1_0.png
図:ユーザ定義タスクの使用箇所
ユーザ定義タスクの具体的な説明については、「IM-LogicDesigner仕様書」 - 「ユーザ定義タスク」を参照してください。
本チュートリアルでは、 2つのユーザ定義タスクを用意いたします。
ユーザタスク種別 内容
テンプレート定義
IM-LogicDesignerへの入力値を使って、データファイルの内容を作成します。
データファイルは、WinActor連携においてロボットとパラメータの入出力を行うためのCSVファイルです。
CSV Fetch定義 WinActorのロボット実行後、返却されたデータファイルの内容をIM-LogicDesignerに読み込みます。

5.6.5.1. ユーザ定義作成(テンプレート定義)

「サイトマップ」→「LogicDesigner」→「ユーザ定義」→「テンプレート定義新規作成」をクリックします。
テンプレート定義を下記のように編集します。
入力パラメータで動的にWinActorに渡すデータファイルのテキストを作成します。
../../../_images/winactor_tutorial_4_1_1.png
図:「テンプレート定義新規作成」 - 「標準」
テンプレート入力例は以下の通りです。
<#setting url_escaping_charset="SJIS">
"param1","param2","result"
"${param1}","${param2}","dummy"
ユーザ定義タスク(テンプレート定義)の具体的な説明については、「IM-LogicDesigner仕様書」 - 「ユーザ定義タスク-テンプレート」を参照してください。
返却値について、今回使用するデータファイルに合わせてキー項目を設定してください。
../../../_images/winactor_tutorial_4_1_2.png
図:「テンプレート定義新規作成」 - 「入力値/出力値」
「ユーザ定義名」など適宜設定し、テンプレート定義を完了します。

注意

記載のコードはサンプルです。
本チュートリアルのシナリオ上では動作しますが、最低限の記載となっており、文字列内の改行などに対応しておりません。
実際に運用する際には、要件に合わせて必要な表現を追加してください。

5.6.5.2. ユーザ定義作成(CSV Fetch定義)

「サイトマップ」→「LogicDesigner」→「ユーザ定義」→「CSV Fetch定義新規作成」をクリックします。
今回使用するデータファイルの形式に合わせて「CSV Fetch定義」カテゴリを設定します。
../../../_images/winactor_tutorial_4_2_1.png
図:「CSV Fetch定義新規作成」 - 「CSV Fetch定義」
ユーザ定義タスク(テンプレート定義)の具体的な説明については、「IM-LogicDesigner仕様書」 - 「ユーザ定義タスク-CSV Fetch」を参照してください。
返却値について、今回使用するデータファイルに合わせてキー項目を設定してください。
../../../_images/winactor_tutorial_4_2_2.png
図:「CSV Fetch定義新規作成」 - 「入力値/出力値」
「ユーザ定義名」など適宜設定し、CSV Fetch定義を完了します。

5.6.6. LDフローの呼び出し

「サイトマップ」→「LogicDesigner」→「フロー定義一覧」→「ロジックフロー新規作成」をクリックします。
以下は、WinActor連携(パラメータ使用)を行うための最もシンプルなLDフローです。
../../../_images/winactor_tutorial_5_1_1.png
図:完成イメージ(ロジックフロー)
具体的な手順は以下の通りです。

5.6.6.1. タスクとフローを設定します

パレットから各タスクを選択し、今回使用するタスクをキャンパスに配置します。
前項で作成したユーザ定義は、パレット内の「前項で設定したユーザカテゴリ>作成したユーザ定義名」にあります。
../../../_images/winactor_tutorial_5_1_3.png
図:IM-LogicDesignerタスク選択
配置する各タスクは、以下の通りです。
../../../_images/winactor_tutorial_5_1_4.png
図:IM-LogicDesigner配置タスク
次に、配置したタスク同士をフローで繋ぎます。

5.6.6.2. ロボットに連携するパラメータを設定します

IM-LogicDesignerの「入出力設定」を行います。
設定値の説明(入出力設定)
カテゴリ 設定値 説明
入力 param1 ロボットに渡す引数1
入力 param2 ロボットに渡す引数2
出力 result ロボットからの返り値
../../../_images/winactor_tutorial_5_2_1.png
図:IM-LogicDesigner- 「入出力設定」
次に、IM-LogicDesignerの「定数設定」を行います。
設定値の説明(定数設定)
カテゴリ 設定値 説明
定数 DATA_PATH パブリックストレージ上のデータファイルのパス
定数 GROUP_ID 呼び出すエージェントのグループID
定数 SCENARIO_PATH パブリックストレージ上のシナリオファイルのパス
../../../_images/winactor_tutorial_5_2_2.png
図:IM-LogicDesigner- 「定数設定」

5.6.6.3. データマッピングをします

各タスクをダブルクリックして、「データマッピング」の設定を行います。
各図を参考にマッピングをしてください。
シナリオ取得タスク(「ストレージ操作」-「パブリックストレージ取得」)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_1.png
図:データマッピングの設定 - シナリオ取得タスク
データファイル取得タスク(「ストレージ操作」-「パブリックストレージ取得」)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_2.png
図:データマッピングの設定 - データファイル取得タスク
データファイル作成タスク(作成したユーザ定義テンプレート)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_3.png
図:データマッピングの設定 - データファイル作成タスク
ストレージ出力(「ストレージ操作」 - 「ストレージ出力(文字列)」)のデータマッピングを行います。「ストレージ出力(文字列)」のプロパティには「SJIS」を指定してください。
../../../_images/winactor_tutorial_5_3_4.png
図:データマッピングの設定 - ストレージ出力
エージェント呼び出し(「WinActor」 - 「エージェント呼び出し」)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_5.png
図:データマッピングの設定 - エージェント呼び出し
ストレージ出力(「ストレージ操作」 - 「ストレージ出力(バイナリ)」)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_6.png
図:データマッピングの設定 - ストレージ出力
データファイル読込タスク「作成したユーザ定義 CSV Fetch定義」のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_7.png
図:データマッピングの設定 - データファイル読込タスク
ログ出力(「汎用タスク」 - 「ログ出力」)のデータマッピングを行います。
../../../_images/winactor_tutorial_5_3_8.png
図:データマッピングの設定 - ログ出力
ロボットの実行結果を、フローの出力用変数にマッピングします。
../../../_images/winactor_tutorial_5_3_9.png
図:データマッピングの設定 - 終了タスク

5.6.6.4. デバッグ実行で動作を確認します

ロジックフロー定義編集画面の「デバッグ」をクリックし、作成しているロジックフローをデバッグ実行します。
../../../_images/winactor_tutorial_5_4_1.png
図:IM-LogicDesigner- 「デバッグ実行」
デバッグ画面にて、「実行」をクリックします。
../../../_images/winactor_tutorial_5_4_2.png
図:IM-LogicDesigner- 「デバッグ実行」 - 「実行」
デバッグ実行時の入力値の設定を行います。ロボットに引き渡すパラメータとなる、param1とparam2を設定してください。
../../../_images/winactor_tutorial_5_4_3.png
図:IM-LogicDesigner - 「デバッグ実行」 - 「実行」- 「入出力値の設定」
デバッグ実行をし、 WinActor連携の入出力が正しく行えていることを確認します。
../../../_images/winactor_tutorial_5_4_4.png
図:IM-LogicDesigner- デバッグ実行実行の成功
ロボットからの返却値となる、resultが正しく表示されていることを確認します。
../../../_images/winactor_tutorial_5_4_5.png
図:IM-LogicDesigner- 「フローの変数情報(デバッグ実行後)」

コラム

デバッグ実行時にエラーが発生した場合、デバッグ実行を「ステップ実行」にすることで、フローのどこでエラーとなったか確認することができます。

コラム

エラーが発生した場合、WinActorエージェント、WinActor連携設定を確認します。
[よくあるエラー]
・WinActor7.exeのパスは通っていますか?
・WinActor端末で、すでにWinActorが起動していませんか?
../../../_images/winactor_tutorial_5_4_6.png
図:IM-LogicDesigner- 「デバッグ実行」 - エラー例
入力値: null
フローの実行を開始しました。flowId=winactor0001,version=1
パブリックストレージ取得 タスクを実行します。executeId=im_publicStorageScenario,taskId=ApplicationElementKey(elementId=im_publicStorage)
パブリックストレージ取得 タスクを実行します。executeId=im_publicStorageData,taskId=ApplicationElementKey(elementId=im_publicStorage)
エージェント呼び出し タスクを実行します。executeId=im_winactorCallAgent1,taskId=ApplicationElementKey(elementId=im_winactorCallAgent)
jp.co.intra_mart.foundation.logic.exception.FlowExecutionException: [E.IWP.WINACTOR.TASK.00008] エージェントがエラーレスポンスを返しました。 title="Abnormal termination", detail="Process terminated with code 1056"

5.6.7. フロールーティングの設定

作成したIM-LogicDesignerのフローを、intra-mart Accel Platform他機能やREST経由で実行するため、フロールーティングの設定を行います。
「サイトマップ」→「LogicDesigner」→「ルーティング定義一覧」→「新規作成」をクリックします。
フロールーティングの設定については、「IM-LogicDesigner仕様書」 - 「フロールーティングの認可設定」を参照してください。
../../../_images/winactor_tutorial_5_6_1.png
図:フロールーティングの設定

コラム

メソッドには「POST」を選択してください。
ロジックフロールーティング定義一覧より「認可」をクリックして、認可設定を行います。
「認証済みユーザ」へ実行権限を付与します。
../../../_images/winactor_tutorial_5_6_2.png
図:認可設定

コラム

実運用をする際は適切な権限付与を検討してください。

5.6.8. swaggerで動作確認

ロジックフロールーティング定義一覧より「SPEC」をクリックしてswaggerを表示します。
swaggerの設定については、「IM-LogicDesigner仕様書」 - 「Swaggerの利用」を参照してください。
リクエストbodyを適宜設定し、「Try it out!」をクリックします。
../../../_images/winactor_tutorial_5_7_1.png
図:swaggerでリクエストを設定
リクエストの実行後、レスポンスコードが200で返ること、およびレスポンス内のパラメータresultが想定通りであることを確認してください。
../../../_images/winactor_tutorial_5_7_2.png
図:swaggerでレスポンスを確認
フロールーティングの設定からswaggerでの動作確認の具体的な操作の流れについては、動画にてご覧いただけます。