質問: ### [Blue Prism] オブジェクト作成時の操作ステージ:Terminateアクションについて Blue Prismで、オブジェクト作成において **アプリケーションモデラーのルート**に対して、 **Terminateアクション**を利用し、**アプリケーションを終了**させていますが Terminateアクションを利用していいのか迷っています。 今回の対象アプリケーションは**IE**で、 **ユーザーIDとPWを入力してログインするサイト**です。 **ログアウト**して、**Terminateアクション**を使うという手順です。 **プロセス:オブジェクト.ログアウト → オブジェクト.終了(Terminateアクション)** 例えば基幹系システムだったり、独自開発のWindowsアプリケーションであれば どこかに終了といったメニューが存在すると思うので、そちらをスパイして、 動作を設定すれば問題ないと思います。 IE(または他のブラウザ系)を終了させる場合には、 当該システムからログアウトした後に、 Terminateアクションを利用するのが ベストプラクティスなのでしょうか? 文章長くなってまとまりなくすみません。よろしくお願いいたします。 ### 試したこと 下記の記事を見て、Terminateは極力使用すべきではないことは理解しています。 https://www.ebocean.work/entry/2019/08/29/000904 **Terminateの操作ステージは極力回避し、正しくログアウト、終了するメニューを利用すること** また、下記BP内ドキュメントより、**緊急性**のある場合のみ利用することも理解しています。 Terminate Terminate the target application. For **emergency use only** This action takes no parameters The internal ID for this action is 'Terminate' Works with the following element types: Application elements ### 補足情報(FW/ツールのバージョンなど) BP6.4.2 IE11
回答: はじめまして。 私の場合ですが、EBOの記事にある通り、 **Terminate**は基本使用しないようにしています。 というのも、「Terminate」の挙動として アプリケーションのプロセスを強制的に落としているようで、 「Terminate」を使用した後再度起動すると アプリケーションによっては 挙動が変わるものがあるためです。 (Chromeの場合「前回のタブを復元しますか?」のようなポップアップが表示されるなど) そのため、アプリケーションに終了のメニューがない場合は、 **Win32モードでアプリケーションのウィンドウ全体をスパイ**して 基本的に**「ウィンドウを閉じる」** (v6.4.2の場合は「**Close Window**」だったかな?) を使用して終了するようにしています。 IEの場合、ウィンドウの左右の端の方にマウスカーソルを乗せないと ウィンドウ全体をスパイできないので、ちょっとコツが必要ですね。 !イメージ説明 ウィンドウ右上の×ボタンをUIAやAAなどでスパイしてクリック処理でもいいのですが、 以下の理由からウィンドウ全体をスパイして使っています。 ・UIAだと「Close Window」と比較して若干処理スピードが劣る ・AAだと処理スピードはそこそこだがWin32モードと比較して安定性が劣る。 ・ウィンドウ全体をスパイしておく方が汎用的。 (Global Send Keysの前のActivate Applicationなどに使える) また、「Terminate」アクションは **アプリケーションにアタッチしている**ときしか使えない (アタッチされていない状態で使用するとInternal Errorが出る) ので、強制終了する場合は **「Utility - Environment」の「Kill Process」**を使用したほうが 何かと便利、という点も補足させていただきます。