はじめに

ルックアップでキーとなる「コピー元のフィールド」に商品コードを設定している場合、商品コードではなく商品名で検索したくなる事があります。

こういった場合、どう解決すればよいのでしょうか。


kintone基本機能だけで実現しようとすると……

その時には「商品コード 商品名」というキーをセットするフィールドを追加作成し「コピー元のフィールド」に指定すると、商品コードだけでなく、商品名でもルックアップによる検索が可能になります。(入力された文字で部分一致して検索されるため)

具体的な例を挙げると、


商品コード:A0001 商品名:サラダセット


という値のレコードがある場合に、


キー:A0001 サラダセット

という値が入ったキーを予め設定しておくイメージです。

この場合「サラダセット」と入力して「取得」ボタンを押すと「A0001 サラダセット」とルックアップフィールド内の値が変わります。


ただしこの方式は、商品名が変わる場合はキーも値が変わるため、その都度それぞれのアプリでキーの更新が必要になります。

この場合、更新には変更前の値で更新対象レコードを取得し、変更後の値で更新していくという処理になり、更新処理が非常に大変となるため現実的ではありません。


画面のカスタマイズで実現してみよう

そこで、今回のカスタマイズでは商品コードをキーとしたまま、ルックアップ検索用の文字列フィールドを追加して、そちらからルックアップを更新する仕組みを作成します。


具体的には

  1. 文字列にキーワードを入力してチェックボックスにチェックを入れる

  2. キーワードに一致するレコードをポップアップ表示する

  3. レコードを選択するとルックアップにキーをセット

  4. 自動でルックアップ更新

という操作の流れに対応したカスタマイズを作成してみます。


このカスタマイズは、既存のルックアップはそのままでキーワード検索が追加できることがポイントです。


アプリ構成

アプリは2つ必要になります。それぞれ以下の記載に従って準備してください。

※それぞれのアプリでフィールド名とフィールドコードは同じものを指定してください。


商品マスタ

フィールド名

フィールドタイプ

備考

商品コード

文字列(1行)

重複禁止、入力必須

商品名

文字列(1行)

入力必須



キーワード検索アプリ

フィールド名

フィールドタイプ

備考

キーワード

文字列(1行)


検索

チェックボックス


ルックアップ

ルックアップ

商品マスタの商品コード指定

商品名

文字列(1行)

ルックアップで商品名をコピー指定



カスタマイズ

エラーチェックとエラー時のクリア処理

検索チェックボックスのチェックを入れてONにした時にキーワードが空欄の場合はエラーダイアログを表示します。

また、エラーダイアログを閉じたときに検索のチェックもクリアします。


やること「エラーダイアログを表示する」、条件「フィールドの値を編集して値が変わった時」、「フィールド値が空ならば」、「フィールド値が空でないならば」を使うと、検索にチェックがあってキーワードが空欄の時にエラーダイアログが表示されます。


その後、やること「フィールド値をクリアする」、条件「他のアクションの実行が完了した時」を使い、エラー時の検索チェックボックスのチェックもクリアします。


レコードを取得した結果をポップアップ表示し1レコード選択する

ここでは、ルックアップの対象となるレコードを取得し、その内容をポップアップ表示して1レコードを選択します。


ここではまず、やること「条件を組み立ててレコードを取得する」、条件「フィールドの値を編集して値が変わった時」、「複数フィールドの全てが空でないならば」を設定します。


やること「条件を組み立ててレコードを取得する」では、商品コードか商品名にキーワードが含まれるレコードを検索します。
次の画像のように指定してください。なお右上を「いずれかの条件を満たす」に変えるのがポイントです。


また、条件「複数フィールドの全てが空でないならば」のフィールドパラメーターには「キーワード,検索」の2つを指定し、両フィールドに値がある時だけレコード取得するようにします。


その後、「レコードの一覧をポップアップで表示する」でポップアップ表示します。この時にパラメーター「単一選択(ラジオボタン)」「未選択の場合OKを押せなくする」と設定し、OKを押した時は必ずレコードを選択している状態となるようにします。


選択したレコードを元にルックアップを取得

選択したレコードの商品コードをルックアップにセットし、改めてルックアップを取得しなおします。


やること「フィールドに値をセットする」、条件「確認・入力ダイアログで「OK」を押した時」を設定し、


その後、やること「ルックアップを取得しなおす」でルックアップを再取得します。


終了時のクリア処理

処理が終わった後、フィールドのクリア処理を行います。


ルックアップの取得が実行できた時は、やること「フィールド値をクリアする」でキーワードと検索のチェックをクリアします。

なお、今回は存在するレコードの値をセットしている事からルックアップがエラーになる可能性がない為、「ルックアップで取得が成功した時」は用いていません。


また、レコード選択ダイアログをキャンセルした場合にもクリア処理を行います。
この場合に一番想定されるのは、キーワードの入力間違いなので、やること「フィールド値をクリアする」、条件「確認・入力ダイアログで「キャンセル」を押した時」で検索のチェックのみクリアしています。


全体のカスタマイズ例

全体のカスタマイズ例は次のようになります。上手く動かなかった時は見比べてみて下さい。


アクショングラフは次のようになります。


おわりに

この記事では、チェックボックスと文字列1行フィールドを使い、ルックアップにキーワード検索を追加するカスタマイズをご紹介しました。

なお、こういった処理は、ボタンをつくる「やること」(例:やること「ボタンをフィールド名の右に配置する 」)などでも実現することができます。


ぜひこれらのカスタマイズで、あなたのkintoneのルックアップをより使いやすくしてみてください!


Customineドキュメントサポートページもぜひご活用ください。

また、ご不明点等ございましたら、チャットにてご質問ください。