やること「クエリで条件を指定してレコードを取得する」を使うと、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条件(いずれかと等しい場合)で検索したいこともあるかと思います。
そのような例については次の記事に詳しいので、併せてご覧ください。