Academy Level3 課題② 「GetTransactionData.xaml」プロジェクト

academy Level3(Advancedコース)の課題②に取り組んでいます。
ディスパッチャーのフローチャート作成にてこずっています。

簡略版PDF(全31ページ)の4ページ目について質問です。

***引用ここから***
● Framework フォルダーの「GetTransactionData.xaml」プロジェクトを開きます。
o キューへのアップロードにはディスパッチャーのプロセスを使用するため、Get Transaction Item アクティビティを削除します。
o 「Write Transaction info in Logging Fields」シーケンスの前に、Attach Browser アクティビティを追加し、「WorkItems」ページをスクリーンで指定します。
o “次のページ” が利用可能かどうかをチェックする Element Exists アクティビティを 追加します。ページ番号を示し、そのページ番号に関連する属性を使用するようにセ レクターを編集します(注:前述の説明の通り、in_TransactionNumber 引 数はディスパッチャープロセス用のページ番号となります。)
***引用ここまで***

「Write Transaction info in Logging Fields」シーケンスの前 とありますが、
該当シーケンスは、添付画像3枚目の「If a new Item is fetched Grab it’s significant data for logging」
(Condition「out_TransactionItem isNot Nothing」)のThenでしょうか?
その場合、このシーケンスの前、とはつまり、
ウィンドウにアタッチし、要素の有無検出
→次のページの有無(「NextPageExists」)が一番最初に来る
という、流れで合っているでしょうか?

Hello,
Now I try to Lv3 assignment2.
But I can not make flowchart for dispatcher.

About PDF 4page. (For Japanese text ver. and simple ver.)
They said…
Before “Write Transaction info in Logging Fields” Sequence,Add “Attach Browser” actibity, and designate “WorkItems” page as screen.

Where is the before “Write Transaction info in Logging Fields” Sequence?
I put 3 photos I think this roote is PDF saying.
Firstly, attached Windows and element exists, then Boolean for NextPage.

Please help me…



@Akane

こんにちわ!

「If a new Item is fetched Grab it’s significant data for logging」
の上です。
今から押す番号の要素有無を検出し、
あったらout_Transactionitemにin_TransactionNumberの値を入れ、
なかったら、out_TransactionitemにNothingを入れます。
これで下の処理が流れますよね。

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

とのことですが、次のページの数字(今いるページ番号+1)をクリックする、ということでしょうか?

まずWorkItemページに移動済の前提です。
(ここまでは、NavigateToWorkItem.xamlという別ファイルでルート確保済)
1ページ目は、まず全体をDataTable化し、WI4のみ抽出 ※1
次のページに進む=「2」をクリック
次のページに進んだか確認 =が、UiElementAppear(要素の有無を検出)
2ページ目の全体をDataTable化し、WI4のみ抽出
次のページに進む
…を、最終ページ(今回は10ページ目まで)繰り返す、という流れだと思うのですが、
※1部分でも、現状のページ番号を「要素の有無を検出」するのが良いのでしょうか?

@Akane

正常系だけですが、ざっくり簡単に言うと下記の動きです。

「Get Transaction Data」では
・押せる頁番号がなかった場合はNo Dataで「End Process」に移ります。
・押せる頁番号がある場合は「Process Transaction」に移ります。

「Process Transaction」では
・頁番号を押して、頁移動します。(1頁目の時に①を押しますので頁移動はないです)
・DataTable化し、WI4のみ抽出
・キューにデータを上げます。
・SetTransactionStatusを呼び出し、この中で頁番号をインクリメントしてます。
・「Get Transaction Data」に戻ります。

1 Like

Jun1様
回答ありがとうございます。
何度も申し訳ないです…。
「Process.xaml」の「Process Transaction」シーケンスは、以下の手順で合っているでしょうか?

1.「Click」アクティビティを呼び、セレクターを変更
selector1
(簡略版PDFより)

2.「OnUiElementAppear」アクティビティを呼び、セレクターを下記に変更
selector2
(簡略版PDFより)

3.OnUiElementAppear」アクティビティ下の「Do」シーケンスには、データスクレイピングを配置
ブラウザーにアタッチ(WorkItemページ1ページ目)し、DataTableを作成(変数「dt_WorkItems」に出力)

4.「繰り返し(各行)」アクティビティを配置
要素:row コレクション:dt_WorkItems (=DataTable変数)

5.Bodyに「条件分岐」アクティビティを配置
Conditionには、下記WI4のみ抽出する構文を入力
「row(“Type”).Equals(“WI4”) and row(“Status”).Equals(“Open”)」

6.Thenシーケンスに「Add.QueueItem」アクティビティを配置
アイテム情報は下記のとおり。
名前→WIID
入力/String型
値→row(“WIID”).ToString
キュー名→in_Config(“OrchestratorQueueName”).ToString
※Configファイルと連動させる

7.Elsesシーケンスは空欄 (EndProcessに移る)

以上。

また、手順1、手順2の参照スクリーンショットは、どのあたりをスクショしておくと、分かりやすいのでしょうか?
セレクターの内容で実行する(=あくまでも参照)ので、実行内容には関係しないと認識しているのですが、より分かりやすいところを選択したいと考えています。
他のスクリーンショットは、セレクター変更しないで使用しているので、そのままでセレクターの内容と一致する、という認識です。
手順1が、赤線で囲んだ辺り(現在のページ番号と次のページ番号を含める)で、
手順2は、青線で囲んだ辺り(移動後のページ番号のみ)とかでしょうか?
(下記画像参照)

%E3%83%9A%E3%83%BC%E3%82%B8%E9%81%B8%E6%8A%9E

@Akane

手順はあってますね。

スクリーンショットについては、
これがベストと言う訳ではありませんが、
個人的には手引書同様に1です。
「画面上で指定」でセレクタを構築しても1ですし、
そこから、セレクタに変数を埋め込んだ後に、
2にするために、わざわざスクリーンショットを
取り直す作業が発生するのは手間。
もう一つの理由は、
番号が並んでいた方が、視覚的に、どの部分なのか、
すぐにわかりそうなので他の人が見てわかりやすい
と思う方でよろしいかと。