Automation Anywhere Client 付属の、すぐに動くサンプルコード
Automation Anywhere Enterprise や Community Edition には、Client 起動後にすぐに動作を確認できるサンプルタスクが Sample Tasks というフォルダーに入っています。
4つ目以降のFiles-Folders.atmx, List-Variable.atmx, Loops.atmx, Prompt.atmx, Variables.atmx は、メモ帳にキーストロークをリアルタイムで自動出力していくデモなので、とても直感的にRPAの動作を確認することができ、「Automation Anywhere すごいなー」というのをすぐに実感することができます。
しかし、これらのデモは、Windows 10 May 2019 Update バージョン1903 上 (以下、バージョン1903)ではテキストが1行入った後は途中停止してしまい、失敗してしまいます。
Windows 10 May 2019 Update バージョン1903 上で動作しない理由
動作しない理由を調べてみると、バージョン1903ではメモ帳に仕様変更があり、本文テキストに変更がかかると、ウィンドウタイトルの文字列の冒頭にアスタリスク (*) が追加されるようになったことが原因であることがわかりました。Automation Anywhere では、ウィンドウの判別にはウィンドウタイトルの文字列を使っていますが、ウィンドウタイトルが変更されてしまうので、後に続くコマンドを入力するためのウィンドウを見失ってしまい、そこで失敗してしまいます。
テキスト変更後 ("無題"の前にアスタリスク (*) が追加される)
解決策
これを踏まえて、元のサンプルを最小限の改変で動作させる方法ですが、各コマンドでウィンドウタイトルを参照しているところ ($WindowTitle$
、5行目でActive Window Title をこの変数に格納している)について、前方にワイルドカード (*
) をつけて、アスタリスクがあってもなくても該当ウィンドウを捕捉できるようにすればOKです。具体的には、以下の箇所をすべて変更します。(ちなみに、ここでは追加される文字がたまたまアスタリスクですが、今回追加するワイルドカードとたまたま文字が一致しているだけで、意味は違います。)
以下はLoops.atmxのアクションリストです。
アクションリストの赤枠で囲った場所で$WindowTitle$
を参照しているので、これが含まれているアクションリストをひとつずつ編集します。
アクションリストを編集すると、たとえば以下のダイアログボックスが起動するので、「ウィンドウを選択」のテキストボックスを$WindowTitle$
から*$WindowTitle$
に変更します。この「ウィンドウを選択」のテキストボックスではワイルドカードなどの正規表現が使えます。
(最初の編集では、現在起動中のウィンドウにウィンドウタイトルで一致したものがないと正しいものを選択するようにダイアログボックスが表示されることがあるので、その場合は「None of Above」ボタンを選択します。)
これでバージョン 1903 でもメモ帳デモが動作するようになります。
編集後のサンプルは、バージョン1903以前や Windows 7/8でも動作します。
編集箇所が多くて変更が面倒なので、次のリリースでは早く標準対応してほしいところです。
しかし、よく考えると、この件はサンプルコードだけに限らず、メモ帳を実行環境で使っているすべてのRPAプログラムに影響してしまいますね...Automation Anywhere に限らずすべてのRPAに影響があります。Windows 10 バージョン1903はメモ帳で何という大きな仕様変更を行ってくれちゃったんでしょう...(笑)
使用バージョン: Automation Anywhere Enterprise 11.3.2