【WA0083】「クリップボードへの値の設定に失敗しました」について
こんにちは、NTTデータ WinActor技術支援チームです。
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
さて、本日は、クリップボードのエラーについてお話いたします。
クリップボードといえば、WinActorのシナリオの中でも活躍する頻度の高いノードのひとつではないでしょうか。
頻度が高いからいつも安定して動作して欲しいですよね。
(頻度が高くなくても安定して動いて欲しいですが…)
ところが、このクリップボード、時々こんなエラーが出ます。。。
「クリップボードへの値の設定に失敗しました」
このエラー「クリップボードへの値の設定に失敗しました」は、
他のアプリケーションがクリップボードを使用していたり様々な条件の元、発生いたします。
詳しい原因は特定できないのですが、基本的にはWinActor側で対処は難しいです。
また、クリップボードは多数のアプリケーションで共用しております。
ですから通常でも競合することがあります。
そのため WinActor内部でリトライ処理をおこなっておりますが、
一部にWinActorのリトライ限度を超えて長時間占有するアプリケーションが存在するようです。
まずは、問題となるアプリケーションがクリップボードを解放するまでの待ち時間を
スクリプトで確保するようご案内いたします。
【「クリップボードへの値の設定に失敗しました」の回避方法】
① クリップボードの前に待機時間を設ける。
※0.5秒程度ではダメ。最低2~3秒は入れる。
② クリップボードへの書き込み権限を取得するコマンドを配置する。
「クリップボード」ノードの前に「コマンド実行」ノードを配置して下記のように設定してください。
ノード「コマンド実行」
・コマンド 値 ⇒ cmd
・オプション 値 ⇒ /c echo off | clip
・「起動のみ(追加起動しない)」にチェックを入れる
※このコマンド実行は、問題となるアプリケーションにクリップボード解放を促す効果がありますが、
強制力があるものではありません。
③ クリップボードの代わりに、ノード「コマンド実行」を使用して値を設定する。
<値の場合>
・コマンド 値 ⇒ cmd
・オプション 値 ⇒ /c echo テスト| clip
・「起動のみ(追加起動しない)」にチェックを入れる
<変数の場合>
・コマンド 値 ⇒ cmd
・オプション 値 ⇒ /c echo %テスト%| clip
・「起動のみ(追加起動しない)」にチェックを入れる
【他の策】
他の方策としましては、問題となるアプリケーションがクリップボードを使用する頻度を減らす工夫があげられます。
シナリオ内で、アプリAからアプリBへのコピー、アプリBからアプリAへのコピーを交互に実施しているような箇所があると
エラーになる可能性が高まります。
一つのアプリからのデータ取得はまとめて行うなど、コピー方向の切替を減らすようご検討ください。
【動作検証環境】
OS:Windows10
WinActor:Ver7.4.1.1
<お願い>
本投稿に関しての問合せにつきましては、
恐れ入りますがコメントではなく、個別問合せにてお願いいたします。
★お問合せ方法はこちらのコラムをご参照ください
【WA0116】ユーザーフォーラムで質問を投稿するときの手順