タスクスケジューラで起動するとエラーになる場合がある
お問い合わせ分類:機能
( 導入環境:Windows10(64bit SSD) )
( バージョン情報:V6.3.2 or V6.3.0 )
( ご利用中の資材: )
【事象】
シナリオ走行時、Outlookが起動しているにもかかわらず、「Outlookが起動されていません」となりシナリオが停止してしまう。
手動実行ではエラーとならないが、タスクスケジューラ起動だと起きるが、起きないときもある。
【確認させていただきたいこと】
・フォーカスの切り替え方法を教えていただきたいです。
・ノード「Outlookメーラ起動2」はタスクスケジューラからの実行では正とならないのか?また、V6.3.0への下位互換は問題ないでしょうか。
【シナリオの実施内容(簡易)】
0.タスクスケジューラよりシナリオを起動
1.1つのエクセルファイルにある2シートより値の取得
2.Outlook起動確認
3.Outlook受信トレイのメール数取得
4.Outlook受信トレイのメールを順次取得しメイン処理
メイン処理では、WinActorノートを使用
5.Outlook受信トレイのメールを別フォルダに移動
6.エクセルファイルを閉じる
※以下【確認したこと】にて、シナリオの実施内容のこと、「0」、「1」、・・・と指して記載いたします。
【確認したこと】
○ユーザーフォーラムの情報およびMicrosoftのサイトより、フォーカスを切り替えてみた。
「2」のOutlook起動確認でfalseとなったとき、以下を操作したあと、再度Outlook起動確認を実施しTrueとなるまで繰り返し処理とした。
・メモ帳をコマンド実行より、起動 ←Trueとならなかった。
・「1」のエクセルファイルの前面化 ←Trueとならなかった。
・「1」のエクセルファイルをマクロxlsmファイルに変更しボタンを実装し、画像マッチングでボタンをクリック ←Trueとならなかった。
ボタンから呼び出されたSub内には何も記載なし
・「1」のエクセルファイルのボタンクリックで、msbboxを表示させ、画像マッチングでOKボタンをクリック ←Trueとならなかった。
・デスクトップを表示させ、デスクトップ内をクリック ←Trueとならなかった。
・Outlookメーラ起動2の使用
←二重で開けないといったメッセージが表示されたり、そのまま「3」の処理を走行するがOutlookが起動されていないといってエラーとなる。
・Outlookをコマンド実行よりTaskkillし、Outlookを起動。起動後送受信中は待機とした ←Trueとならなかった。
タイミングが悪いとOutlookが起動した状態で、Outlookを起動しようとして2重で開けないといったメッセージがOutlookより表示された。
・タスクバーのOutlookアイコンをクリック ←Trueとならなかった。
・シナリオを停止させたのち、(タスクスケジューラから起動されたシナリオ)再度実行をしてもTrueとならなかった。
・RPAでOutlookを起動させ、シナリオの最後にOutlookを終了として、毎回、RPAで起動と終了を試みた。
終了は正常に走行(おそらく起動されていないと認識)しシナリオは終了したが、Outlookは起動されたままであった。そのため、次のシナリオ起動時にOutlook起動確認でFalseとなった。
○エラーとなった状態で、Outlookのウィンドウハンドルを取得したところ、取得できている。
○エラーとなった状態で、ウィンドウ識別を設定しようとしたが、ターゲット枠は選択可能状態となるが、実際に選択できない(マウスクリック後、プロパティに戻ってこない)
○「1」のエクセルファイルが起動中に再度「1」のエクセルファイルを開くと「使用中」のメッセージが表示され、キャンセルボタンを
クリックし、「1」のエクセルファイルを閉じて、再度走行させたところ、エラーとならず「3」~の処理を行い、シナリオは終了した。
再度、起動させたところ、「5」の処理で対象のフォルダが見つからないといってエラーとなった。その後、再走行をしたところ、Outlook起動確認でエラーとなった。
※ノード「ウィンドウ状態待機」での「状態取得」や、ノード「画像マッチング」の「状態チェック」機能等で状態を取得できたとしても、その後のメール数取得でOutlookが起動されていませんと同様のエラーとなることが予測できたため、確認していません。
【環境(補足)】
Office(office365ではない)
Outlookでは、GmailをIMAP/SMTPで取得 (Microsoft Outlook 32bit)
アカウントは、Outlook.comとGmail.comの2アカウントを表示
シナリオ実行前に起動済
タスクスケジューラの設定
全般:ユーザーがログオンしているときのみ実行、最上位の特権で実行
操作:プログラムの開始 WinActor exeのパス
オプション -f "シナリオ名" -r -e