Interactiveの使い分け■まず結論からUiPathには、Workflowから他のWorkflowを呼び出す機能が2つあります。Interactiveがそれです。セッションを強制します」と書かれていますが、具体的な違いはこれだけではわかりにくいかもしれません。Interactiveを使うべき」となります。その理由を理解しているとUiPathのロボットを運用する上でのトラブルを減らすことができますので、技術的な背景について記載します。対話型セッションとバックグラウンドセッションまず、前提として、「Windowsのセッション」が何かについて、端折った説明をします。「セッション」=「複数ユーザーが同時にログインできるOSで、それぞれのユーザーに割り当てられた領域」と考えてください。AさんとBさんが同時に同一PCのWindowsにログインして作業をするとき、メモリ内のデータが混ざったら大変なので、それを切り分けるための単位、ということです。RPAで気にするべき「Windowsのセッション」には、「インタラクティブ(対話型)のセッション」と「バックグラウンドで動く画面のないセッション」があるということです。「インタラクティブ(対話型)」というのは、メモリ内に画面領域がしっかりと用意され、ウインドウ等の表示を司る機能がフルに動作する状態を指します。普通にユーザー(人間)がログインして使うときは、基本的に対話型セッションになります。画面等が表示されなければ操作は困難だからです。バックグラウンドで動くだけのアプリケーションであれば、画面が表示されないセッションのほうが、処理やメモリへの負荷を節約できる、という利点もあります。ロボットはそういったセッションで起動されることがあります。Interactiveは、もし実行中のロボット(Workflow)が対話型セッションでなければ、対話型セッションを作成した上で、そちらで動作する、という挙動になります。この動作には利点と欠点があるので、それを次に順に説明します。Interactiveの利点と欠点まず、対話型セッションを強制的に立ち上げる利点は、対話型セッションを前提に作られているアプリケーションの動作精度が上がることです。Office等は、もともと対話型セッションで使用されることを前提に作られているので、バックグラウンドセッションでは動作に悪影響が出る可能性があります。Image等、画像認識等を使用する場合は、対話型セッションを使用するほうが無難です。Interactiveを一度呼び出せば、その中で行われる処理は対話型セッションであることが強制されますので、更にWorkflowを(入れ子のように)呼び出す場合、そちらはInteractiveを使用する必要はありません。Interactive、すなわち対話型セッションへの移行が行われる(かもしれない)Activityの欠点について。1つは、余分なオーバーヘッドが発生することです。Fileのみで処理するほうが効率的です。対話型セッションへの移行が行われる場合、それは別のセッション(メモリ内の作業領域)になるので、メモリ上の全てのデータが移動できるとは限らない、ということです。これは何を意味するかというと、引数(InやOutに設定する値)のうち、値として固定できないもの(もう少し専門的な用語だとSerializableでないもの)は移動できません。具体的には、「DBへの接続(Connection)」や「Browser関連のActivityにある、ブラウザオブジェクトそのもの」等です。これらはUiPathの変数には「メモリ内の位置」として記録されているので、別のセッションからは値が読めなくなります。逆に、値として書き出せるもの(Int32やString、Boolean型に代表される、一般的な変数値)は、「メモリ内の位置」ではなく「値として引き渡せる」ので問題なく引数で渡せます。Interactiveを使用する際は、使える引数の型に多少の制限がかかる、ということです。著作権・各種権利について。