今回の内容
こんにちは。
前回投稿から間が空きました。
今回はWinActorでシナリオを作成する場合に疎かになりがちな、ウィンドウ名の管理について書いていきます。
これをちゃんと管理しなかったせいで、シナリオが動かないことがありましたので。
ちょっと前振り長いかもしれません…が実例が無いと実際にどういう時に必要な対処かイメージ出来ないと思いますので敢えて書かせてもらいます。
作ったシナリオが動かない?!(前振り)
対象のシステムについて
最初に書きましたがWebシステムでもクラサバ系システムでも、ログイン情報でウィンドウタイトルが変わるシステムが存在します。
(個人的には、ウィンドウタイトルよりかは画面上に表示した方がいいと思うんですが…タブブラウザとかだと表示しきれないし)
今回シナリオ作成したシステムも、正にそんなシステムでした。
動かない?!
シナリオ作成後、担当者を呼んで実際の動きを見てもらったのですが、自分でログインで実行をすると問題なく動くのに、担当者でログインするとログイン即エラーとなりました。
原因
エラーの内容を見てみると「ウィンドウ名が見つかりません。」と表示されました。
どうやらウィンドウ名がログイン情報に合わせて可変になるため、自分と担当者のログイン情報が異なるために合致するウィンドウ名が存在しないためエラーになった模様。(ウィンドウ名はこんな感じでした【ログイン[名前]】
ウィンドウ名を管理しよう!
本題
前振り長かったですが、今回のようなシステムに対してWinActorでシナリオを作成する場合、ポチポチとアクションを設置するだけだと折角作ったシナリオが動かないことがあります。
その原因になりやすいのが**「ウィンドウ名」が異なるor見つからない**ことによるエラーだと思います。
ウィンドウ名の管理はどこで行う?
ウィンドウ名は、フローチャートウィンドウにあるウィンドウ識別ルールで行います。
ちゃんとマニュアルに書いてるんですけど、チュートリアルとかじゃ取り上げてないのであまり意識しないと思います。
ウィンドウ識別ルール画面についてと使い方
これがウィンドウ識別ルールの画面です。
この画面の左にあるウィンドウ識別名から編集したい識別名をクリックし、右にあるルールで編集することが可能です。
例えば今回はウィンドウタイトルが「Lh」を含んでいる場合にアクション対象にするには、下図のようにします。
これだけでウィンドウタイトルに「Lh」が含まれていればアクションを実行させることが可能になります。
前振りで可変だった「ログイン[名前]」というウィンドウタイトルも識別方法:を含む、文字列:ログインとすることで、どのユーザでログインしても対応可能となりました。
ウィンドウ識別名はどのタイミング作成される?
作成されるタイミングは、アクションのウィンドウ識別名でウィンドウを選択した時です。(キャンセルすれば作られません)
そのためアクションを作成する度にウィンドウを選択しまくると、膨大な量のウィンドウ識別名が作られることになります。
管理とテクニック
ウィンドウ識別名については、今までの内容でわかってもらえたと思います。(わかってもらえてると嬉しいです…!)
しかし、作成タイミングの通り油断しているとあっという間にウィンドウ名が膨れ上がり、管理が出来なくなる、エラーの温床になるといったことが起こります。
なので、自分は以下のようなことを気をつけています。
ウィンドウ識別名をつける
ウィンドウ識別名は自分で分かりやすい名前に変更が可能です。(デフォルトは選択した時のウィンドウ名)
ルールに記載されているウィンドウタイトルとは、別の名前をつけることが出来るので、自分で管理しやすい名前にしましょう。
ある程度ウィンドウ名はまとめる
シナリオを作っていると似たような画面や変わらないタイトルの機能があると思います。
そういう場合は、いっそ1つのウィンドウ識別名で管理出来るように1つにまとめ、複数の画面で識別名を使いまわします。
敢えてルールを触らない
ウィンドウタイトルが完全一致している方が好都合な時もあります。
そういう場合は識別名の編集に留めておいて、ルールは触らないようにしましょう。
ウィンドウタイトル以外は触らない
「ウィンドウクラス名」「プロセス名」に関しては触らない方が無難です。
アプリが持っている特有の情報なので、下手に触ると予期せぬエラーが発生する可能性があります。
ルールでウィンドウタイトルが被っても、上記の項目で判別されます。
不要な識別名は消す
ウィンドウ識別名を整理すると、どのノードにも紐付かない識別名が残ります。
これは画面上に未使用のものを削除するボタンがあるので、こちらで削除しましょう。
まとめ
今回のウィンドウ識別名というのは、普段シナリオを作っていると管理が疎かになりやすいところです。(何せアクション設定するだけでどんどん増える…)
この辺りを意識するようにすると、メンテナンスが非常にしやすくなりますし、エラーも減ると思います。
効果測定したわけじゃないですが、シナリオ実行中もこの辺りの検索が少なくなることでスピードが上がるかもしれません。(願望)
まぁ、とにかく整理整頓は重要!ということです。
今回の記事が参考になれば幸いです。
ではでは!