![見出し画像](https://assets.st-note.com/production/uploads/images/70987238/rectangle_large_type_2_fee4cdd228b8e3e57c0154eb0936bbbe.png?width=1200)
Vinyl Collections (レコード情報管理アプリを作る 2.5/5)
前回から時間が経ってしまいましたが、取得したデータを元に、収録曲の取得について説明したいと思います。今回は名盤「A Long Vacation」で説明を。
で、久しぶりにスクリプトの中身をみたところ、とても丁寧にコメントを記載されていてとても「びっくり!」な状態です。まずは処理の流れを確認してみましょう。
処理の流れ
1. discogsのidを変数
2. 曲のデータが保存済みかどうかの確認
3-1. 有る場合:何もしない
3-2. 無い場合:リリース情報から収録曲の情報を取得。
3-3. 取得したJSONデータから収録曲を1曲づつレコードとして保存
ここでのポイントは収録曲を探すためのキーとなるidを保存させておくこと。このidによって、保存されたアルバム等の曲を取得することが可能になっています。
そして、下記が「A Logn Vacation」の収録曲を取得した場合の結果になります。表示用に整形された状態で記述しています。
処理の記述例:
JSONGetElement ( $$JSON;"tracklist")
/* A面の収録曲が表示 */
[
{
"duration" : "5:02",
"position" : "A1",
"title" : "君は天然色",
"type_" : "track"
},
{
"duration" : "3:42",
"position" : "A2",
"title" : "Velvet Motel",
"type_" : "track"
},
・
・
・
/* B面の収録曲が表示 */
{
"duration" : "4:24",
"position" : "B1",
"title" : "雨のウェンズデイ",
"type_" : "track"
},
{
"duration" : "3:55",
"position" : "B2",
"title" : "スピーチ・バルーン",
"type_" : "track"
},
・
・
・
]
実際のスクリプトを見てみましょう。
① リリース情報の取得。その際にdiscogsのidで検索を実行。
② 取得した収録曲のデータの取得と、件数の確認
③ FileMaker特有のレイアウト外にポータルを配置して追記する処理
③の処理は、レイアウトでいうとここになります。関連レコードへ移動して書き込みでも良いのですが、レイアウトを遷移させずに書き込みができるので、とても便利です。
あと、このポータルがあることで、収録曲の有無も確認もできるので、重宝される処理方法です。
スクリプトだと下記が該当箇所になります。DiscogsのJSONデータは、要素の指定がシンプルなので、とても楽です。
リレーションシップグラフの処理も確認すると、こうなっています。リレーションを成立させるための外部キーの処理も忘れずに。
収録曲を下記の記述でLoopさせながら保存していきます。
処理の記述例:
JSONGetElement ( $JSON_tracklist;"[" & $i & "]position" )
JSONGetElement ( $JSON_tracklist;"[" & $i & "]type_" )
JSONGetElement ( $JSON_tracklist;"[" & $i & "]title" )
JSONGetElement ( $JSON_tracklist;"[" & $i & "]duration" )
/* 処理方法と記述例 */
[
{
"duration" : "5:02", → JSONGetElement ( $JSON_tracklist;"[" & $i & "]duration" )
"position" : "A1", → JSONGetElement ( $JSON_tracklist;"[" & $i & "]duration" )
"title" : "君は天然色", → JSONGetElement ( $JSON_tracklist;"[" & $i & "]title" )
"type_" : "track" → JSONGetElement ( $JSON_tracklist;"[" & $i & "]track" )
},
レイアウトの外にあるポータルに書き込みしてから、カードで新規のウィンドウを表示させて、取得した収録曲を表示。
APIって便利。そして、情報を書き込んでいる方々に感謝!!
で、記載を忘れてましたが、このアプリは無料でダウンロードできます。気になった方は下記のレビューを確認していただき、是非使ってみてください。
次は、お気に入り機能の解説をしようかと思っています。作って満足でも良いのですが、その中身の処理を説明するのも大切なことなので、続けて行こうと思っています。
いいなと思ったら応援しよう!
![セキグチマサハル](https://assets.st-note.com/production/uploads/images/47094107/profile_8936bc8b9c27bf6f2618cdfe35066c0a.png?width=600&crop=1:1,smart)