業務ハックLab -とある情シスの備忘録-

とある情シスの備忘録的なものです。

【スポンサーリンク】

地震発生状況蓄積フローの改善

皆さん、こんにちは。
業務ハックLabのようです。

今回はPower Automateで使用する日付関数について解説していきたいと思います。

この記事は、Power Automate Advent Calendar 2022 12月24日担当分の記事です!

qiita.com

今回は以前投稿した地震発生状況蓄積フローの改善をしていきたいと思います。
前のフローはRSSフィードから30分ごとに情報を取得してくるように設定をしていました。
また取得してくるデータもXMLデータだったのでxml関数やらxpath関数やらを使っていて分かりにくかったかなと思います。
今回は過去一か月分の地震情報がJSON形式でアップされているところが気象庁のHPにあったのでそちらを利用していきたいと思います。

 

地震情報の取得

ではまず地震情報を取得するところから説明していきたいと思います。
前回記事から色々調べてみた結果、下記URLより直近1か月の地震情報を入手できることがわかりました。

https://www.jma.go.jp/bosai/quake/data/list.json

これをHTMLコネクタで取得してみます。
image.png
そうするとこんな感じで本文の部分に結果が取得できました。
image.png

HTTPコネクタのHTTPアクションは非常に使えます。
使えるのですが・・・

有償コネクタなんですよね。
そりゃそうです。
こんなに使いやすいコネクタ無償で提供するのはもったいないですもんね。
でもできれば無償コネクタで何とかしたいという方。
OneDrive for Businessコネクタの「URLからのファイルアップロードアクション」と「パスによるファイル コンテンツの取得」を組み合わせればHTTPアクションのGETと同じことができます。
この方法はMicrosoft MVPのHiroさんのQiitaの記事でで詳しく書いてあるのでそちらを参照してみてください!

qiita.com

はい、ということで上記のアクションを使用して取得してみました。
image.png
ちゃんと出力のところを見ると取得できてますね。
でも出力の結果を見てみるとこのままでは使いにくそうです。

配列に変換する

ということで後工程で操作しやすくするためのjson関数を使用して配列にしてしまいましょう。

そうするとこんな感じ。
image.png
今度は配列として出力されましたね。
ちなみに取得したデータは降順になってますので、最新データは一番最初にあります。
なのでとりあえず一番最初の配列を取得してみましょう。
ちなみに関数は下記のような形で設定しています。

そうするとこんな感じで結果が返ってきました。
image.png

返ってきたデータの分析

先程返ってきたデータですが下記のようなJSONが返ってきています。

取得した情報を分析すると各項目こんな感じでしょうか?

タイトル 詳細
01 ctt 発表ID
02 eid 地震ID
03 rdt 発表時刻
04 ttl タイトル
05 ift 発表種別
06 ser ?
07 at 発生時刻
08 anm 震源
09 acd 震源地コード
10 cod 緯度、経度、震源の深さ
11 mag マグニチュード
12 maxi 最大震度
13 int 地域ごとの最大震度他
14 int-code 地域コード
15 int-city 地域ごとの最大震度情報
16 json 詳細情報のjson

先日作成した蓄積フローでは発生日、発生時刻、震源地、緯度、経度、震源の深さ、マグニチュード、最大震度を取得していたのでどうやらこのデータでも問題なく取得できそうですね。

改善結果

ということで最終的にこんな感じになりました。

前回の記事を見ていただいた方は一目瞭然だと思いますがアクション数が圧倒的に少なくなりました!
やはりJSON形式で取得できると加工しやすいので良いですね。
また配列の扱い方を覚えることで、ずらずらと多くなっていた変数の部分もカットできました!
配列の扱い方についてはMiyake Mito(@MiTo60448639)さんのこの資料を見るとめちゃくちゃ勉強になるのでおすすめです。

speakerdeck.com

はい、今回は以前作った地震状況蓄積フローの改善をしてみました。
細かい作り方などはそのうちYouTubeで配信しようかなと思っていますので気長にお待ちいただければと思います!
それでは皆さん、良い業務ハックライフを~

 

免責事項