やること「クエリで条件を指定してレコードを取得する」を使うと、kintone APIを使って指定した条件でレコードを取得できます。


この検索条件(クエリ)の仕様自体は kintone API のクエリの書き方の基本 および 複数のレコードを取得する など、サイボウズ様のサイトをご確認ください。


ここでは、検索条件にフィールドの値をどのように書いたらよいか、ということをご説明いたします。

この記事ではkintoneアプリストア「おすすめのアプリ」にある「旅費精算申請」アプリを用いて例示しています。実際にお手元でもアプリを追加し、ぜひお試しください。


基本的な検索条件(クエリ)の書き方

kintone APIの仕様では、クエリは次のように記述します。


「フィールドコード」 「演算子」 「値」

  • フィールドコード: kintoneのフィールドコード

  • 演算子: フィールドによって利用可能な演算子が異なります。 詳しくはサイボウズ様のサイトにてご確認ください

  • 値: カスタマイン独自の記述方法により、ここにフィールドの値を記述可能です。


フィールドコードの値を記述するには、追加画面・編集画面・詳細画面のいずれかである必要があることに注意してください。一覧画面では、直接フィールドの値を取り出すことはできません。


「order by」「limit」の指定方法

SQLでいうところのORDER BYは、「条件を組み立ててレコードを取得する」では「並び順」として設定します。

次の条件ビルダーに示す例では、数値フィールドの降順で設定しています。


LIMITは各種「レコードを取得する」やることの、「最大取得件数」として設定することが可能です。

次の例では、最大50件取得という設定をしています。


これら基本を意識した上で、以下に記載した実際の例をご確認ください。



数値で検索したいとき

たとえば、日当フィールドの値を使って、同じ旅費精算申請アプリで入力された日当以上のレコードを取得するには、以下のような検索条件を入力します。


基本の「フィールドコード」 「演算子」 「値」の書き方になっていることをご確認ください。


日当 >= ${日当}


この時、実際に発行されるクエリは次のようになります。


query: 日当 >= 100 limit 500 offset 0


なお、実際にカスタマインからkintoneに対し発行されているクエリについては、コンソールログにて確認する事ができます。


文字列で検索したいとき

たとえば、行き先フィールドの値を使って、同じ旅費精算申請アプリで入力された同じ行き先のレコードを取得するには、以下のような検索条件を入力します。


行き先 = "${行き先}”


この時、実際に発行されるクエリは以下のようになります。


query: 行き先 = "大阪本社” limit 500 offset 0


日付の範囲で検索したいとき

ここでは少し複雑な例を挙げます。

日付の範囲、具体的には期間(出発)と期間(帰着)の範囲で検索するには、以下のような検索条件になります。


出発 >= "${出発}" and 帰着 <= "${帰着}"


この時、実際に発行されるクエリは以下のようになります。


query: 出発 >= "2022-05-09” and 帰着 <= "2022-05-13” limit 500 offset 0


テーブル化されたフィールドに対して検索したいとき

また別な例として、テーブル内のあるフィールドに対して検索したい場合を挙げます。
仕様としてはサイボウズ様のサイトより引用(※下部「補足」より)しますと、次の通りです。

テーブル化されたフィールドおよび、関連レコードのフィールドをクエリに含める場合、「=」、「!=」演算子の代わりに「in」、「not in」演算子を使う必要があります。


たとえば旅費テーブルの「手段」フィールドの値で検索するには、以下のような検索条件になります。


ここでは「選択肢から選択するダイアログを表示する」を使って手段を選択するダイアログを表示し、そのアクションの結果を検索条件として利用しています。


手段 in ("${$11}”)


この時、実際に発行されるクエリは以下のようになります。


query: 手段 in ("タクシー”) limit 500 offset 0


このようにアクションの結果も、フィールドの値と同じように利用できます。


さらに複雑な条件で検索したいとき

ここまでの例は絞り込むことが中心でしたが、OR条件(いずれかと等しい場合)で検索したいこともあるかと思います。


そのような例については次の記事に詳しいので、併せてご覧ください。

レコードをいずれかの条件で取得する