FileMakerでJSONを使ってみた
FileMakerでの規模が大きくなってきたこととログ管理をFileMakerでは使えないので、調べながらJSONを使ってみました。
参考文献は下記の二つとあとはYouTubeのものたちです。
このような形でログ収集をしていきます。
テストの条件としては、「スクリプトが起動する」または「変数を取得する」際に動くようにしています。
スクリプトの内容と引数について示します。
起点に対して、それぞれスクリプトを実行してログを取得するようにしています。
この書き方については、スプラッシュさんのを参考にしています。
https://youtu.be/wc6ehcI3FV4
□1つ目のスクリプト引数の項
JSONSetElement ( "" ;
["アクション" ; "■------スクリプト名:" & $JSONCode & "を開始" ; JSONString] ;
/*["結果" ; $JSONCode ; JSONString] ;*/
["エラー" ; Get ( 最終エラー ) ; JSONNumber]
)
□2つ目のスクリプト引数の項
JSONSetElement ( "" ;
["アクション" ; "変数$JSONCodeを設定" ; JSONString] ;
["結果" ; $JSONCode ; JSONString] ;
["エラー" ; Get ( 最終エラー ) ; JSONNumber]
)
スクリプト引数から下記のスクリプトへ渡して、それぞれデータを取得できるようにしています。まとめることによってスクリプト引数を少し変えるだけで同じようにデータを取得ができるので、非常に便利でした。
上記のスクリト引数を少し変えておくだけであとは幾らでもデータの取得ができます。
では、連続したデータの取得はできるのだろうか。その場合も下記のように試してみました。
□変数を設定での値登録
JSONSetElement ( "" ;
[ "JSONTest[" & $cnt2 & "].アクション" & $cnt ; JSONログ管理::アクション ; JSONString ] ;
[ "JSONTest[" & $cnt2 & "].結果" & $cnt ; JSONログ管理::結果 ; JSONString ] )
□Loop内での変数を設定
JSONSetElement ( $JSON ;
[ "JSONTest[" & $cnt2 & "].アクション" & $cnt ; JSONログ管理::アクション ; JSONString ] ;
[ "JSONTest[" & $cnt2 & "].結果" & $cnt ; JSONログ管理::結果 ; JSONString ] )
ただ、上記の場合ですと得た結果を吐き出す機能がないのですが。
得た結果をまた改めてLoopで組めば可能になろうとは思いますが、果たしてそれはやる意味があるのだろうか。と自問したところで諦めました。
ただ、同じようにデータさえ取得してしまえば後から幾らでもそれを抜き出す方法があることを理解はできたので、今回のところはこれで十分かなと思っています。
と、言うことでまとめとして。
・JSONを利用してデータを取得していくと複数の情報をまとめて吐き出せるので便利になる。
・スクリプト実行(またはサーバー実行)を行って別にスクリプトとして登録することにより、基本的なスクリプトは変更しなくていい
・組み方さえ変えれば幾つでもデータを取得できる
ですね。まだ使いこなしている訳でもありませんので引き続き調べていきますが、現状としてはここまでです。
ありがとうございました。