6

こんにちは、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】ユーザーフォーラムで質問を投稿するときの手順

技術支援チーム53 質問の編集
回答とコメントは、会員登録(無料)で閲覧できるようになります。