FileMaker Data API 3
さて、前回は FileMaker の [ URL から挿入 ] スクリプトステップを利用して、ログイン、ログアウトができるようになりました。
今回は、データを取得してみましょう。
下準備
データを取りたいファイルに、Data API 用のレイアウト ( フォーム形式 )を作成しておきましょう。
今回は、process_management_system.fmp12 というファイルに t002_user というレイアウトを用意しました。
このレイアウトの情報を取得してみましょう。
スクリプト作成
ログイン用の [ URL から挿入 ]スクリプトステップで得られた結果を以下のようにすれば token を取得できます。
JSONGetElement ( $結果 ; "response.token" )
これを利用して、データを取得していきます。
まず手始めに、1 レコード目のデータを取得したいと思います。
取得用の[ URL から挿入 ]スクリプトステップを作成します。Server のアドレス、ファイル名、レイアウト名などは適宜変更してください。
URL
"https://Server.local/fmi/data/vLatest/databases/process_management_system/layouts/t002_user/records/1"
cURL
"curl https://Server.local/fmi/data/vLatest/databases/process_management_system/layouts/t002_user/records/1
-X GET
-H \"Authorization: Bearer " & $response.token & "\""
上記のスクリプトを実行してみます。以下のような結果が得られました。
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"account" : "admin",
"changeTrigger" : "10/31/2019 18:25:57",
"creationAccountName" : "admin",
"creationPersistentID" : "****************",
"creationTimestamp" : "08/28/2019 12:53:56",
"creationUser" : "test",
"hash" : "******************************",
"id" : "C1FD8756-B7A3-4F80-82F9-141B480C4201",
"img" : "https://server.local/Streaming/MainDB/***********************.png?RCType=EmbeddedRCFileProcessor",
"isActive" : 1,
"isCommit" : 1,
"isDeleted" : 0,
"modificationAccountName" : "admin",
"modificationPersistentID" : "****************",
"modificationTimestamp" : "10/31/2019 18:25:57",
"modificationUser" : "test",
"name" : "管理者",
"one" : 1,
"sort" : 1
},
"modId" : "33",
"portalData" : {},
"recordId" : "1"
}
],
"dataInfo" :
{
"database" : "process_management_system",
"foundCount" : 1,
"layout" : "t002_user",
"returnedCount" : 1,
"table" : "t002_user",
"totalRecordCount" : 3
}
}
}
オブジェクトフィールドに格納されたデータは、URL という形で取得できました。この URL にアクセスすると、格納されたデータを確認することができました。データを変更すると、URL も変わります。
何に利用できるか?
今回は、データを閲覧するだけでしたが、書き込み権限を与えて、データを追加することができたり、スクリプトを実行することもできるので、色々な場面で利用できそうです。
例えば、不特定多数の人にアンケートを入力してもらって、そのデータを一元管理したり、必要な時だけ、サーバーからデータを持ち出して、ネットワークが繋がらないところで入力作業して、終わったらサーバーにアップロードしてもらったり・・・
1 人あたり年間 24 GB割り当てられ、1 レコードのデータを取得するのに、1 KB 消費するとしても、2500 万レコード / 年 も取得するシチュエーションはあまり思いつきません。
もし、そういう場面になったら、オブジェクトフィールドにデータを入れてあげれば、容量の問題は回避できるかもしれません。
今後の FileMaker Data API 活用事例に注目していきたいと思います。
この記事が気に入ったらサポートをしてみませんか?