21 ファインダー(天気2)

(前回からのつづき)

【お題】

気象庁のホームページから、設定ファイルに入力されている地点の、過去5年間の現在日付と同じ月日の天気情報を取得してExcelファイルに出力する。


前回は、ファインダーを使って地点を指定し、[過去の気象データ検索]ページを開くところまで作成しました。

今回もファインダーを使って、[年月の選択]のリンク一覧から過去5年間の年月をクリックして、そこから天気情報を抽出するところまで作成します。


【1】実行日付を取得する

ロボットの処理が日をまたいでも検索条件となる日付が途中で変わらないように、処理のはじめに「実行日時」を取得しておきます。そして、現在日時ではなく「実行日時」を基準に過去の日付を取得します。


(1)シンプルタイプの変数を追加します。[名前]には「実行日時」と入力、[グローバル]にチェック、[タイプと初期 / テスト値]は[Date(シンプル)]を選択します。


(2)次に、ロボット・ビューの先頭にステップを追加し、変数[実行日時]に現在日時を入力します。

 ※現在日時は関数 now()で取得できます。


【2】繰り返しを作成する(過去5年分)

(1)エンドポイントの手前に新しいステップを追加します。


(2)[アクションを選択]→[ループ]→[繰り返し]をクリックします。


(3)すると、[Repeat]ステップが追加されますので、そのステップとエンドポイントの間に、ブランチを追加します。


(4)そして、ブランチの先に新しいステップを追加します。


(5)[アクションを選択]→[ループ]→[次へ]をクリックします。


(6)この[Repeat]と[Next]のセットで、繰り返し処理を行うことができます。

 ※詳しくは、Kofaxのヘルプ「Kofax Kapow へようこそ > チュートリアル > アドバンスド チュートリアル > ループの基本 > 次を繰り返し」を参照してください。

 ※Kofaxのビデオも参考になります >>>>> https://player.vimeo.com/video/38922812


【3】西暦年をクリックする

(1)次は、西暦年をクリックするステップを作成しましょう。

上の方のエンドポイントをクリックしてから、[2019年]を右クリック→[クリック]をクリックしてください。


(2)そして、クリックステップのファインダーを変更して、過去5年間をさかのぼれるようにします。

まず、[タグパターン]で[コンバータ]を選択して、[変数を取得]の[変数]は[実行日時]を選択します。

 

(3)次に、実行日時をさかのぼるアクションを追加します。

まず、[タグパターン]の[+]→[日付処理]→[変更日]をクリックします。そして、[変更する入力日付の部分]は[年]を選択して、[量]は[エクスプレッション]で「iteration()」と入力します。さらに、[関数]は[入力日付から量を減算]を選択します。

iteration()は、直前の繰り返し回数を返してくれる関数です。つまり、繰り返し1回目は、2019年から1年を減算して2018年の日付、繰り返し2回目は、2019年から2年を減算して2017年の日付を返してくれます。


(4)ここでは、「yyyy年」形式の値が必要なので、[日付の書式設定]で[フォーマットパターン]を[yyyy年]に変更します。



(5)ステップ名はわかりやすいように、「Click 年」に変更しておきましょう。


(6)そして、エンドポイントをクリックすると、[2018年]がクリックされます。

イテレーションを進めて、[2017年]、[2016年]、[2015年]、のように、西暦年をさかのぼってクリックされることを確認してください。


【4】月をクリックする

(1)ここから、月をクリックするステップを作成していきます。さきほどの西暦年をクリックするステップと似ているので、サクサクッとできると思います。

まず、[1月]を右クリック→[クリック]をクリックしてください。


(2)[ファインダー]の[タグパターン]に、実行日時の「M月」を設定します。


(3)そして、ステップ名を「Click 月」に変更します。


【5】日ごとの値を表示する

(1)エンドポイントをクリックしてから、[20xx年x月の日ごとの値を表示]を右クリック→[クリック]をクリックします。


(2)ステップ名はわかりやすい名前に変更しておきましょう。


【6】日に名前付きタグを設定する

(1)[日ごとの値]の一覧から、どの行(日付)のデータが対象なのか、名前付きタグを設定して目印をつけます。

一覧にある[日]の[1]の部分を右クリック→[その他]→[名前付きタグ]をクリックしてください。


(2)[アクション]タブで[タグ名]に[名前付き]を選択して、[名前]に「日」を入力してください。


(3)そして、[ファインダー]の[タグパターン]に、実行日付の「d」を設定します。



(4)ステップ名は「Set Name Tag 日」に変更しておきましょう。


(5)エンドポイントをクリックすると、日付の部分に青枠と名前付きタグ[日]が表示されます。そして、この青枠を目印にして、この後の抽出処理を行うことになります。


【7】日ごとの値を抽出する

(1)ここからは、青枠の行にある値を抽出していきます。

まず、降水量を右クリック→[抽出]→[テキスト]→[過去天気情報.降水量]をクリックします。


(2)このときの[ファインダー]を確認すると、[検索範囲]は[名前付きタグと同じテーブル行内]、[右と同じテーブル行内]→[日]となっています。

つまり、青枠の名前付きタグ[日]の行から値を抽出しています。


(3)続いて、最高気温、最低気温、平均風速、日照時間の値を抽出します。


(4)そして、[過去天気情報.日付]には、実行日時をもとに[コンバータ]の[日付処理]で、年から iteration()を減算した過去日時を設定します。

 ※詳しくは >>>>> こちら

このとき、時分秒は不要なので、[フォーマットパターン]には「yyyy-MM-dd 00:00:00」と入力してください。


(5)エンドポイントをクリックすると、[過去天気情報]に入力された値が確認できます。


(6)抽出ステップの後には、値返却ステップを追加しておきましょう。


【8】ループ終了処理を追加する

(1)[Repeat]と[Next]で繰り返し処理を行うときに忘れがちなのが、ループ終了処理です。(実は、ここまで忘れてました・・・・)

今回は、「過去5年分」という要件なので、5回繰り返しが終わった時点でループを終了します。

値判定ステップを追加して、[条件]に「iteration() >= 5」と入力、[If]は[条件が満たされています]を選択して、繰り返しが5回目のときにエラー処理が行われるようにします。


(2)そして、[エラー処理]タブの[Then]で[ループ終了]を選択します。これで、繰り返しが5回目のときにループを終了することができます。


【9】ロボットを実行する

デバッグモードでロボットを実行して、処理が終了したらステータス・ビューを確認してください。


【10】ステップをグループ化する

ロボットの実行結果には影響ありませんが、ステップをグループ化して見やすくしておきましょう。


あとは、Excelファイルの出力だけですね!と言いたかったのですが、実は、[日ごとの値]ページにはレイアウトが2種類あります。レイアウトは地点によって異なり、下図左と右のパターンがあります。それぞれ項目の場所が異なるため、どちらのレイアウトなのかを判別して正しい場所の値を抽出する必要があります。

ということで、次回は、表示されているレイアウトを判別してデータを抽出し、Excelファイルに出力するという処理を作成していきます。(ゴールは目前!)