はじめに
DS1のWebロボットと違って、DA2では1ステップごとに画面の動きを一時停止することはできません。
一般的にRPAというのはロボットに合わせてアプリが動きを止めるのではなく、動き続けるアプリにタイミングを合わせてロボットが画面操作をしていくものなので、たまに足を滑らせてロボットがコケたとしても「単に足を滑らせたのか」「足場が崩れてバランスを失ったのか」エラーを検知して人が駆け付けた時には既にアプリの状態が変わっていて、 事故発生時の状況 が確認できないこともあります。
現実世界では「ドライブレコーダ」が事故の状況を録画して後からでも確認可能ですが、ロボットの場合にはエラーが発生した瞬間のPC画面やアプリケーション画面を パシャリ とスナップし、後から確認しています。
別に普通にBizRobo!でやってることなのですが(v10.7以降で可能)「えっ!できないよ」と言う反応が周辺からあったので、説明したついでにこちらでもまとめてみようと思います。
確かに標準機能として自動的にスナップを撮っているのではなく既存の機能を組み合わせて実現しているので「できないよ?」という反応が返ってくるのは無理のない部分もありますが、特別なことをやっているわけでもないので皆が使えるようになるといいなぁと思います。
スクショを撮っている処理の周辺
以下のように何らかの処理を実行するにあたり、「〇〇が見つからなかった場合」や「〇〇秒経過したとき」など異常時のパターンを設定します。
デフォルトでは「60秒経過したとき」→「TimeOutError」という処理が自動的に挿入されますが、その場合にも間に エラー画像抽出
のステップ群を挿入することで、任意のフォルダにエラー発生時のスナップを画像ファイル3として保存してくれます。
エラー画像抽出
の中身ですが、とりあえずこんな風に作ってあります。(いつもコピペで張り付けてます)
- スクショを撮る範囲を指定しています。
大体はPCの画面全体とか、Chromiumを使っているときには操作対象のウィンドウ全体を指定します。 - ロボットファイルシステムを使って指定のリモートドライブに出力したり、ローカルドライブにパス指定して出力することができます。4
デバッグ時にはローカルドライブに出力するのが楽ですが、本番環境で動かす場合にはロボットファイルシステムを使って特定のフォルダに出力するようにすれば複数のデバイスから出力されるスクショを一か所で集中管理できるのでその方が実用的だと思います。 - スクショ取得処理もロボットの処理なので、万が一失敗したときにはその旨ログに出力されるようにしています。
サンプルの説明
実物のサンプルがあった方がわかりやすいと思うので、v10.7.0.9 にて作成したものを GitHub からダウンロードできるようにしました。
ちなみに、実際のサンプルから取得したスクショのサンプルは以下。(うちはデュアルディスプレイなので2画面分取得されてますね。。まったく参考にならないと思いますが。)
まとめ
今回 DAに関するスクショについて記述しましたが、DSのWebロボットでも同じように画面イメージを取得できます。
Webロボットの場合にはどちらかというと画像よりも画面に読み込んだHTMLのソースを定期的にファイル出力していました。
というのは外部のサイトにアクセスする機会が多く、ある日突然サイトの構造が変わってロボットが動かなくなってしまった時などに非常に役立ったからです。
構造が変わっってしまったサイトと定期的に取得していたサイトのソースを比較すればどこが構造上変化したのか比較できるため、ロボットを修正する際にも変更箇所をピンポイントでとらえて調整することができるからですね。
まぁ、実はこれについてもDAでも同様にXML形式で画面の構成情報を抜き出すことができるんですね。WebサイトだけでなくWindowsアプリケーションに対しても同様に。ただ、これについては気が向いたらまた別途紹介させていただきます。
BizRobo!って結構こういうマニアックなところが便利だったりするのですが、私の知る狭い範囲では使いこなせている人があまりいなくて残念だったりします。
追記(2022.06.18)
その後、画面全体のスクショを撮る方法としてもっと簡単な方法を教えてもらったので紹介します。
[Windows] + [PrintScreen]
の同時押しで png 形式の画像が自動的に以下のフォルダに出力されます。
C:\Users\%username%\Pictures\Screenshots
出力される画像のファイル名を指定できないのがいまいちではありますが、まぁこれでも用途によっては十分かもしれませんね。
ちなみにDAでの設定方法は以下の通り。
設定例 | コメント |
---|---|
- キープレスステップ - キーコード:v0x5b v0x2c v0x2c, fu v0x5b,fu |