和紀Commentsこんにちは。ライジングサン・システムコンサルティングの岩佐です。おけるレコードの検索方法について解説していきます。シリーズ・認証、そしてレコード取得の内容を理解している必要があります。チュートリアル1・認証https://risingsun-system.biz/filemaker-data-api-authentication/こんにちは。ライジングサン・システムコンサルティングの岩佐です。使い方について全5回に分けてお送りします。pocketsまた、今回の学習でもPostmanを利用します。環境変数の自動更新を設定していますので、そちらも確実にできるようにしておくと、学習がよりスムーズに進みます。チュートリアル2・レコード取得そして、前の記事でご案内しているサンプルソリューションも、この先実際に手を動かして学習を進めていく上で必要となります。ホストしておいてください。(※この記事の最後にも、サンプルソリューションのダウンロードURLリクエストフォームをご用意しています。メソッドによる検索の仕組み先の学習で解説したレコードの取得は、レコードIDを指定して、もしくはAPIを実行するターゲットテーブルの全レコードを取得するといった内容でした。実際にソリューションを構築するとなると、当然ですがこれだけでは不十分で、多くのケースでは今回解説するfindメソッドを使う機会が多くを占めると思います。findメソッドのエンドポイントfindメソッドを実行するときのリクエストURIは以下のとおりです。ソリューションをホストしているFileMakerServerのホスト名をします。検索を実行したいデータが格納されているfmp12ファイル名をしています。関連付けられ、かつレスポンスとして取得したいフィールドが配置されたレイアウト名をしています。リクエストタイプはPOSTになります。findメソッドに設定可能なパラメータfindメソッドには、大きく以下のようなパラメータを設定可能です。検索条件はターゲットのテーブルに対する検索条件を設定するパラメータで、JSONによる指定となります。用いて、実際に検索APIを実行します。2-2ソート条件ソート条件は、検索結果として返されるレコードのソート順を設定するパラメータです。JSONで指定します。レコード件数の上限値とオフセット1回のリクエストで返される検索結果のレコード件数の上限値と、返してほしいレコードセット内におけるレコード開始位置を設定します。スクリプト検索メソッドの実行時に動かしたいスクリプトを指定します。スクリプトを実行できるタイミングは、検索処理の実行前、検索処理の実行後、検索処理が実行され、かつソート処理が実行された後の3つのタイミングで実行可能です。Postmanを使ったfindメソッドの実行ここからは、Postmanとサンプルソリューションを使って、実際にfindメソッドをハンズオンで動かしてみたいと思います。セットされた状態にしておいてください。パラメータには、検索条件を設定します。今回のサンプルソリューションにテストデータとして登録されているPOSの売上データから、2018年4月1日から、2018年4月3日の売上で、売上金額が12,000円を超えるデータを取得する場合は、以下のようなパラメータを設定します。標準インタフェースを通して指定できる検索条件がサポートされている点です。これはFileMaker開発者にとって非常にありがたい仕様だと思います。実際にAPIを実行するのは、普段他の開発プラットフォームで開発をしている技術者かもしれませんが、この検索条件の設定方法は極めて直感的なので、特に抵抗は無いと思います。サポートされている比較演算子は以下のとおりです。標準UIでサポートされている比較演算子はすべてサポートされています。パラメータを設定するときの注意点はいくつかあるのですが、まず我々日本の開発者として気をつけるべきことは、日付書式の設定です。書式での設定が必要です。こちらの動画は、Postmanを使って、実際にqueryパラメータを設定して、findメソッドを実行する手順を解説しています。それ以外にも、危険なクエリを実行される可能性があるなど、APIを公開する開発者としていくつか留意すべき点があります。これらの件については、この記事の最後にまとめて記述したいと思います。実際のソリューションを構築するときの検索機能では、and条件とor条件を柔軟に組み合わせて、必要なレコードセットを取り出します。and条件とor条件での検索は可能です。条件で検索をしましたが、次はこれらをor演算でつなぐような検索をしてみます。]}上記のクエリパラメータは、売上日が2018年4月1日、5月1日、6月1日で、それぞれの売上日において売上金額が12,000円以上の売上データを検索するクエリです。組み合わせをカンマで区切って指定します。or条件での検索条件指定は、JSONオブジェクトを複数設定することで対応が可能です。こちらの動画は、AND条件・OR条件を組み合わせたfindメソッドを実行する手順を解説しています。パラメータを設定することで、予め指定のソートキーで並び替えされた状態で取得することが可能です。先のqueryパラメータに、sortパラメータを追加設定した状態がこちらです。いうJSONオブジェクトで表現します。or検索と同じように、複数のJSONオブジェクトを並列指定することで実現可能です。上記の例では、取得したレコードセットに対して、売上日の昇順、かつ売上金額の降順でソートした結果をJSONで受け取ります。こちらの動画では、Sortパラメータの設定方法について解説しています。パラメータlimitパラメータは、1回のリクエストでレスポンスされるレコード件数の条件値。offsetパラメータ、レスポンスされるレコードの開始位置を指定します。Webアプリケーションではよく見かけるユーザインタフェースですが、一定以上の大きさのレコードを1ページに表示するのではなく、複数ページに分割して表示をしたい場合があります。この場合、1回のリクエストで100レコードすべてを受け取るのではなく、ページ切り替えボタンを押すたびに、表示に必要な情報だけをレスポンスとして受け取ることで、応答性能の改善が期待できます。1度のリクエストで受け取りたいレコード件数が10件で、21件目から30件目までのレコードをリクエストする場合は、以下のようなパラメータを設定します。スクリプトfindメソッドは、スクリプトも同時に実行することができます。スクリプトの実行タイミングは次の3つで、それぞれに対して個別のスクリプト、そしてスクリプトパラメータを設定することが可能です。スクリプトを実行したい場合は、以下2つのパラメータを設定します。ソート実行前に実行したいスクリプトがある場合は、以下2つのパラメータを設定します。検索が実行され、指定したソート条件での並び替えも終了した後に実行したいスクリプトがある場合は、以下2つのパラメータを設定します。スクリプトパラメータこれだけのタイミングでスクリプトを実行することができるので、FileMaker内部で実行しているビジネスロジックはほぼすべてAPIを通じて、他システムに提供可能ということになります。スクリプトの実行は、様々なノウハウや注意点があるので、別記事にてまとめてお伝えしたいとお見おます。findメソッドについて解説をしてきました。ご自身のソリューションをAPIを使って公開するときに、最も利用頻度が高いメソッドになるのではないかと思います。学習してきたとおり、AND条件とOR条件を柔軟に組み合わせできたり、APIの戻り値として返すJSONのソート順を設定できたり、Webアプリケーションではよく見かけるページネーションを意識したLIMITとOFFSETが設定できたり、更には任意のタイミングでスクリプトが実行できたりと、一般的に考えられる要求仕様に対してはほぼ対応できるかなり充実した機能が提供されています。この次の記事では、レコードの追加・編集・削除について解説をしていきます。サンプルソリューションのダウンロードサンプルソリューションはこちらからリクエストしてください。いただいたメールアドレスにダウンロードURLと、APIを実行するために必要なアカウント名とパスワードをお送りします。※認証の記事にあるサンプルソリューションと同じものなので、すでにダウンロード済みの方は必要ありません。※サンプルソリューションを動かすには、FileMakerのVer17以降が必要です。サンプルソリューションはロックフリーになっています。ダウンロードURLには、完全アクセス権のアカウント名とパスワードを記述しています。こちらでサンプルソリューションを開いていただければ、全ての中身を確認いただくことが可能です。サンプルソリューションで使われているカスタム関数やスクリプトは自由にあなたのソリューションにコピーして使っていただくことができます。それに伴って発生したあらゆる障害に関しては責任を追いかねることをご了承ください。(必須)最後までお読みいただきありがとうございました。この記事にご興味を持たれた方には、こちらの記事もおすすめです。FileMakerとDropboxの連携・7つの実践テクニックhttps://risingsun-system.biz/filemaker-dropbox-integration-technic/こんにちは。ライジングサン・システムコンサルティングの岩佐です。連携機能を組み込むにあたっての実践テクニックをご紹介します。pocketsFileMakerとクラウド会計ソフトfreeeをAPI接続する7つのステップhttps://risingsun-system.biz/filemaker-freee-api/こんにちは。ライジングサン・システムコンサルティングの岩佐です。WebAPIを用いて連携する方法を解説します。1.freeeにアカウントを開設する。BMWジャパンやDOLCE&GABBANAジャパンといった外資系企業、及び東証一部上場企業において、情報システム部門の立ち上げから基幹システムの企画・開発・運用まで幅広い経験と実績を持つ。2006年にフリーエージェントのITコンサルタントとして独立。株式会社ライジングサン・システムコンサルティングを創業する。現在はFileMakerプラットフォームとアジャイル開発を用いたシステム開発の内製化をサポートしている。