むか~しむかし、UiPath Studio 19.10が出回っていた頃。
とある小さな村に住むryokoという者が、RPAツールのUiPathを使って、細々とワークフローを作って暮らしておった。
作られたワークフロー達はそれはもう大切に大切に育てられたおかげで、エラーも出さずによう働くようになり、実行ツールのUiPath robotに登録され、毎日、ryokoと楽しく暮らしておった。
そんなある日、とうとうryokoの住む村にも、Studio 20.10と、UiPath Assistantがやってきた。
ryokoはたいそう喜んだ。
UiPath robotから進化したUiPath Assistantには、PiP(ピクチャ イン ピクチャ)機能という、それはまぁとてつもなく、便利な機能があったからじゃ。
RPAっちゅーもんは、だいたいはwindowsの画面と操作を占領しちまう。
だが、UiPathのPiP機能は、Windouwsの中にもう1つWindowsが開いて、そん中でRPAを実行してくれる。
同じデスクトップ画面の中で、RPAと自分が別々の作業をしていられるというわけじゃ。
ryokoは19.10で作ったワークフロー達を全員デバック実行し、Assistantでも実行し、皆が元気に働く姿をその目でちゃぁんと確認した。
そしてとうとう、PiP機能で実行した時。恐ろしい事が起こったんじゃ…
SelectRange使ってExcelシートをアクティブにし条件合致ならショートカットキー使ってうにうにっと処理するワークフロー。
— ryoko (@RPA_Journey) July 14, 2021
デバッグと通常実行なら問題ないのだけど、PiP実行するとシートがアクティブになってくれない…なんでや〜ん😗
仕方ないのでGUIクリック操作に修正かな、これは。#UiPath
PiP機能でも問題なく働くワークフロー達の中で一人だけ、『Send Hot Key』アクティビティを使っている子がおって、その子はExcelブックの各シート名を見て、使わないシートはAlt+hdsでシート削除をする仕事をしていた。
その子が何でか、PiP機能を使った時だけ、使わないシートを削除せんようになってしまったんじゃ。
ryokoは悩んだ。
なんせデバッグだと問題ない、Assistant実行も問題ない子じゃ。
原因がとんと掴めず、ただただPiP実行とデバック実行の間をおろおろとするばかりじゃった。
そんなことを何度か繰り返していたryokoだったが、ふと、アクティビティの待機時間を使えば、ちゃあんとキー入力出来ているかを見れるのではないかと思いついた。
デバック実行でもない限り、そりゃもう、つむじ風みたいに仕事をしちまう子だから、おちついて仕事の様子を確認するには、ryokoでも分かるよう、ゆっくりと入力してもらう必要があったんじゃ。
そこでryokoは、『Send hot key』アクティビティの実行前と、キー入力間それぞれに、限界ぎりぎりの1000ミリ秒を設定したワークフローにし、それをPiPで実行した。
実行前にシートが選択できているか、そしてキー入力間ではそれぞれのキーをちゃんと叩けているかが、これでryokoでも分かった。
違うな、シートはアクティブになってる。
— ryoko (@RPA_Journey) July 14, 2021
ショートカットキーが効いてないんだ🤔🤔🤔
ふむ〜ん…
Alt+hの時点でExcelはこんな感じでずらずらとショートカットが表示されるはずなんじゃが…
PiP実行した時だけ、Excelはシートを移動するだけで、Alt+hdsキーが入力されてないことが分かった。
だが、PiP実行した時だけキー入力されない理由が分からない。
ryokoはこれまたうんうんと悩み、『デバック実行とAssistant実行』と『PiP実行』で何が違うかを考え、そしてはたと思い当たった。
そう、PiP機能は『Windouwsの中にもう1つWindowsが開いて、そん中でRPAを実行してくれる。同じデスクトップ画面の中で、RPAと自分が別々の作業をしていられる』。
それに気づいたryokoは、慌てて『Send hot key』アクティビティのセレクター設定を覗き込んだ。
なんと驚いたことに、『何の要素に対して操作するか』を指定するセレクターが、なあんもなかったんじゃ。
セレクターが空白だと、今触っているアプリに向かってキーを入力する。
デバック実行やAssistant実行だと『今触っている(アクティブ)アプリ』は1つしかないので、Excelの『Select Range』アクティビティを使ってシートを選択した時にExcelが『今触っている』になるので、セレクタを設定しなくても何も問題なく働いてくれとった。
だが、PiP実行だとryokoが触っているアプリとRPAが触っているアプリ、2つある状態になる。
そんで、キー入力はryokoが触っているアプリの方に向かって入力されておった、と言うわけじゃ。
本当だったら、セレクターは面倒臭がらず、ちゃんと設定しておかねばならん。
さもないともしかしたら、偶然全く別のアプリのショートカットが動き、とんでもない騒動になるかもしれんしの。
ぞおっとするそんな騒動を思い浮かべたryokoは、冷や汗を流しつつ、セレクターにExcelを指定した。
こうして『Send hot key』アクティビティを使ったワークフローはPiP機能でも元気に仕事をするようになり、ryokoともっともっと、楽しく暮らすようになりましたとさ。
めでたしめでたし。
解決!
— ryoko (@RPA_Journey) July 14, 2021
セレクターを指定してあげたらうまく行った。
(今まではsend hot keyのセレクタが空白だった)
PiPの場合は画面が2つになっちゃうから、ちゃんとセレクタで「これを操作ね!」と指定してあげないと駄目みたいだね。
#…という昔話は、2019.xxまでの作り方(クラシックデザイン)で作った場合の話。
2010.4以降のStudioですと『Send hot key』アクティビティはクラシック扱い(モダンデザインだとデフォルト表示されない、古いアクティビティ)なので、代わりに登場した『Keyboard Short Cut』アクティビティ使うことになると思うのですが。
こちらは『アプリケーション/ブラウザーを使用』アクティビティ(『要素スコープ』アクティビティと似た感覚の新アクティビティ)とセットで使わざるをえないので、本件のような事態には陥らないかと思います( ー`дー´)キリッ
これにて本当に、めでたしめでたし。