はじめに
レコード取得に関する「やること」は数多くの「やること」が用意されています。
この記事では複雑な条件に合ったレコードを取得する際に利用しやすく、取得と同時に並べ替えもできる、やること「クエリで条件を指定してレコードを取得する」を使って、絞り込んだ条件でレコードを取得し、その内容をポップアップ表示するカスタマイズをご紹介します。
ただし、この「やること」はレコード取得に関する「やること」の中では一番自由度が高くなる反面、クエリの記法を理解する必要があるため難易度も一番高くなります。
やること「条件を組み立ててレコードを取得する」を使うと比較的難しくない形で、自由度が高いレコード取得を実現できます。ぜひ、次の記事も併せてご覧ください。
動作イメージとしては、ボタンを押すと
次のようなポップアップが表示されます。
※「課金対象期間」が「年額」、「見込み時期」が有効期間内の製品で、「単価」が100万円未満 のレコードが表示対象となり、更に製品コードの昇順でソートされています
アプリの準備
カスタマインの歩き方 カスタマイズお試し用ファイルダウンロード
からダウンロードするか、以下の要領でアプリを作成してください。
案件管理
※フィールド名とフィールドコードは同じものを指定
製品マスタ
※フィールド名とフィールドコードは備考に注釈が無い限り同じものを指定
カスタマイズ
カスタマイズは『案件管理』アプリに適用します。
レコードを取得する「やること」の「クエリで条件を指定してレコードを取得する」はkintone APIのqueryパラメータによるレコード取得ができます。
ボタンを配置
やること「ボタンをスペースに配置する」、条件「追加画面・編集画面を表示した時」を使い、追加画面・編集画面表示時にボタンを配置するようにします。
レコードを取得
やること「クエリで条件を指定してレコードを取得する」、条件「ボタンを押した時」を使い、アクション「10」で設置したボタンを押した時に、
「課金対象期間」が「年額」のレコードのみ
かつ、「見込み時期」が有効期間内の製品のレコードのみ
かつ、「単価」が100万円未満のレコードのみ
更に製品コードの昇順でソート(並び替え)
となるレコードを取得しています。
検索条件に記載するクエリは次の通りです。
(課金対象期間 in ("年額")) and (有効期間_開始 <= "${見込み時期}") and (有効期間_終了 >= "${見込み時期}") and (単価 < 1000000)
order by 製品コード asc
レコードをポップアップ表示
やること「レコードの一覧をポップアップで表示する」、条件「他のアクションの実行が完了した時」を使い、アクション「11」が動いた後に、取得したレコードを、ポップアップ表示します。
そのため、レコードには「11」を設定します。
カスタマイズが設定できたら、「kintoneアプリへ登録」を押して、動作を確認してみましょう。
ボタンを押して、
次のようなポップアップが表示されれば完成です!
解説
やること「クエリで条件を指定してレコードを取得する」では、上の例のように複数の条件に合致するレコードを取得したり、取得すると同時に指定した項目で並べ替えを行うことができます。
やること「条件を組み立ててレコードを取得する」の条件ビルダーにてフィールド値を指定できないフィールドでも、やること「クエリで条件を指定してレコードを取得する」であれば自由にクエリを記述できるため、より複雑な条件でのレコード取得が実現できます。
「検索条件」には次のようにkintone APIのqueryパラメーターの記法に従って設定します。
なお、kintone APIのqueryパラメーターの記法はkintone API の仕様であるため、カスタマインのチャットサポートではクエリの記法についてはサポート対象外となります。
queryパラメーターの書き方がわからない場合、レコード取得については次の「やること」で代替できる事が多いので、これらの記事を参考にしてみてください。
クエリに関する参考となるページ
これらのcybozu depeloper network内のページが参考になります。併せてご覧ください。
参考:やること「クエリで条件を指定してレコードを取得する(エスケープなし)」の(エスケープなし)って?
2022年5月12日のアップデート以降、「クエリで条件を指定してレコードを取得する」は式の結果値が自動的にエスケープされるようになりました。
この記事ではクエリを固定した形でカスタマイズを実施していますが、もし関数などを使って動的にクエリを組み立てる場合は、やること「クエリで条件を指定してレコードを取得する(エスケープなし)」を利用する必要があり、注意が必要です。
なお、エスケープ処理が必要となる背景については、次のページの「エスケープ処理」の節をご覧ください。
おわりに
この記事では複雑な条件に基づいたレコードを取得する際に利用できる、やること「クエリで条件を指定してレコードを取得する」を使って、複数条件に該当するレコードを取得、ソートし、その内容をポップアップ表示するカスタマイズをご紹介しました。
最初は使いづらい印象を感じてしまうかもしれませんが、理解してしまうと一番自在にレコードを取得する事ができるのが、このやること「クエリで条件を指定してレコードを取得する」です。ぜひ挑戦してみて下さい。
また、ご不明点等ございましたら、チャットにてご質問ください!