カスタマイズ

検索用文字列を作成する

概要

kintone では、文字列フィールドの値で検索を行う場合「日本語の1文字検索」や「英数字の部分一致」ができません。これに対処するために、検索したい元のフィールドの値から、「日本語の1文字検索」や「英数字の部分一致」にも対応した検索用のフィールドを作成します。

使い方

事前に、kintoneのフォームに、検索したいフィールドとは別に、そのフィールドの検索専用ダミーフィールドを作成しておきます。例えば検索したいフィールドが「顧客コード」だったら「顧客コード(検索用)」といったフィールドを作成しておきます。

Customine のカスタマイズで、「レコードを保存する直前(削除時は除く)」や「フィールドの値を編集して値が変わった時」といったお好きなタイミングで「検索用文字列を作成する」ように設定します。この時、上の例であれば「元のフィールド」に「顧客コード」、「検索用文字列をセットするフィールド」に「顧客コード(検索用)」を指定します。

作成した検索フィールドで実際に検索を行うには、例えば「一覧画面にキーワードで検索する検索フォームを設置する」を設置します。上の例の場合は、検索条件フィールドとしては「顧客コード(検索用)」の方を指定します。

※ 「一覧画面に簡易検索フォームを設置する」は完全一致で検索するため、この方法は使えません。

設定するパラメーター

「元のフィールド」「検索用文字列をセットするフィールド」を設定します。

元のフィールド

本来検索したい値が入っているフィールドを指定します。

「検索用文字列を作成する」を実行しても、元のフィールドの値は変更されません。

選択可能なフィールドタイプは以下の通りです。

  • 文字列(1行)
  • 文字列(複数行)

テーブル内のフィールドを指定した場合、特別な場合(*1)を除き、テーブル内のすべての行に対して処理されます。

(*1) 条件側で、「フィールドの値を編集して値が変わった時」のように、テーブル行を限定するように条件が入っている場合は、対象の行だけ処理されます。

検索用文字列をセットするフィールド

元のフィールドの値に対して、日本語の1文字検索や英数字の部分一致に対応した値をセットする先のフィールドを指定します。

「検索用文字列を作成する」を実行すると、このフィールドの値は上書きされます。

選択可能なフィールドタイプは以下の通りです。

  • 文字列(1行)

「元のフィールド」がテーブル内のフィールドの場合、「検索用文字列をセットするフィールド」も同じテーブルから選択する必要があります。

制限事項

「元のフィールド」に入ってる値の文字数が64文字以内である必要があります。65文字以上の長さの値が入っていると、カスタマイズの実行時にエラーが表示されます。

(2019/9/5バージョン1.61以降)「元のフィールド」と「検索用文字列をセットするフィールド」に同じフィールドをセットすることはできません。

krewSheet 対応状況

対応しています。

ただし、「検索用文字列をセットするフィールド」に以下の制限があります。

  • ルックアップでコピーされるフィールドにはセットできません。
  • 以下のフィールドは「レコードを保存する直前(削除時は除く)」のようにレコード保存のタイミングのみでセット可能です。やや専門的になりますが、より詳しく知りたい方は krewSheet のドキュメント も参考にしてください。
    • krewSheet の表示列に含まれていないフィールド
    • krewSheet で読み取り専用に設定されているフィールド

関連記事