TKC FX4クラウドでUI要素を指定する方法

TKCのFX4クラウドから、月次決算の作業時にエビデンスとして、各勘定科目残高の一覧を出力して保存します
その際、クリックする場所を現在は座標で指定している為、PCが変わるとうまく動作しないことがわかりました。
TKCに問い合わせしたところ、勘定科目コードで指定して開くことは不可能で、目で見て認識してクリックする方法しか無いとのことなのですが、
UiPathの機能で、UIの要素(よくわかりませんがコードとか??)を読取り、1111現金や1122売掛金と認識させる方法は無いでしょうか。

1 Like

こんにちは

取り急ぎ以下のようなアプローチが考えられるかと思います。

1.Click Text(テキストをクリック)アクティビティを使ってみる
(テキストに「コード」や「勘定科目名」を指定する。)

2.UiExplorerで要素を解析して、aanameなどの属性で「コード」や「勘定科目名」で指定できそうならClickアクティビティのセレクタとしてそれを試す

「コード」と「勘定科目名」が別の列なので、両者を続けた文字列はあまり良くないかもしれません。

いかがでしょうか?

1 Like

@Yoichiさん

ご回答ありがとうございます。

>1.Click Text(テキストをクリック)アクティビティを使ってみる
→こちらは、勘定科目コード、勘定科目名いずれでも動作しませんでした

>2.UiExplorerで要素を解析して、aanameなどの属性で「コード」や「勘定科目名」で指定できそうならClickアクティビティのセレクタとしてそれを試す
→こちらにつきまして、
「要素を選択」で該当箇所をクリックした結果が下記なのですが、こちらで合っていますでしょうか?

こんにちは

クラウドとあるのでWebかと思ったのですが、ローカルアプリケーション(or プラグイン?)なのですね。少し厄介そうです。

一度BasicのRecorderを立ち上げ[Text]-[Mouse]-[Click]で指定した場合どうなるか試していただけないでしょうか?Screen Scrapingの画面が出ると思いますので、そのResultのところにお目当ての文字列が出ていれば、SearchTextの部分に文字列を入力すればOKです。

ちなみにUiExplorerなどで選択できる範囲は表全体でしょうか?

ワークアラウンドとして、クリック以外の方法、たとえばキーボード操作等他の方法で目的の操作を実現可能でしょうか?もしあればそちらのアプローチも検討したほうが良いかもです。

@Yoichiさん

名前はFX4クラウドなのですが、ローカルアプリケーションです

>一度BasicのRecorderを立ち上げ[Text]-[Mouse]-[Click]で指定した場合どうなるか試していただけないでしょうか?Screen Scrapingの画面が出ると思いますので、そのResultのところにお目当ての文字列が出ていれば、SearchTextの部分に文字列を入力すればOKです。
→こちらが結果なのですが、この場合、例えば現金であれば
”1111”を指定すれば良いでしょうか?

>ちなみにUiExplorerなどで選択できる範囲は表全体でしょうか?
→選択できる範囲は表全体です

>ワークアラウンドとして、クリック以外の方法、たとえばキーボード操作等他の方法で目的の操作を実現可能でしょうか?もしあればそちらのアプローチも検討したほうが良いかもです。
→こちらについて最初に思いつきまして、TKCに問い合わせしたところ、勘定科目コードで指定して開くことは不可能で、目で見て認識してクリックする方法しか無いとのことでした。。

こんにちは

Screen Scrapingの方法がOCRになっていますので、画像→OCRとした結果のため、UI要素という観点では良くないかと思います。Nativeでは値取れなさそうでしょうか?

@Yoichiさん

ネイティブ、フルテキストで実行してみたところ、値は取れませんでした

こんにちは

残念ながらこのやり方は難しそうですね。
他の方法がないとのことですが、上下キーとか、アクティブなセルのCtrl+Cとかスペースで選択等も効かないということですよね?

精度的な課題がありますが、画像マッチングという手もあります。
Click Image(画像をクリック)等を使います。環境変化に対するロバスト性はUI要素に比べて劣りますが、手段がないときは試してみる価値はあるかもしれません。
あるいはClick OCR TextのようなOCRを併用した方法ですね。表全体ですと他の列等のノイズが多いので、TargetのClipping Regionでコードの列部分だけを切り出して数字だけOCRすればそこそこの精度が出るかもしれません。

@Yoichiさん
そういえば、上下キーを押して、エンターキーを押して開く
という方法もあります

ただ、やってみたところ
手動で操作するときは問題なく開くのですが、
ワークフローを実行してもなぜか開きません

こんにちは

Select Itemをお使いでしょうか?もしかすると以下のケースかもしれません。

@Yoichiさん

Click Activityで一番最初に、現金を指定して(そこだけはどうしても座標認識)
そこからキーボード入力で目的の項目を開くことができました。

ありがとうございます。

ただ、全科目を座標で特定 してつくったロボットに比べて、動作が非常に遅いので、悩ましいところです。。

こんにちは

以下例えばになりますが、
このようなアプリケーションの場合、画面の遷移が少ない(ない?)ので、各アクティビティの待ち時間をデフォルト値より明示的に小さくしても問題が起きる可能性が低いです。具体的にはDelayBefore/DelayAfterプロパティの値を小さく(例えば50msec等)してやることにより、見た目のパフォーマンスを向上することができます。
またTypeIntoアクティビティをDefaultモードでお使いの場合で、長い文字列入力がある場合は、文字欠け防止の意味も含めて、文字列を一旦クリップボードに移しておいてから、Ctrl+vしてやることによりパフォーマンスが向上します。

もし状況に合致しているようでしたら一度お試しいただければと思います。

@Yoichiさん

アドバイスありがとうございます。
こちらの内容もトライしてみます!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.