ルックアップでレコードを検索する場合に、kintone基本機能で検索した時は「対象となるレコードが全て表示される」という動きになります。



ですがこの時、既に別のレコードでルックアップに使ったレコードや種別については検索をせず、使っていないものでレコードを作りたい場合があります。


上の例で具体的に言うと、既に「種別」フィールドに「梱包サービス」「手数料」という値が入ったレコードが作られていれば、「送料」でレコードを作りたい といったケースです。


●既に登録済みのレコード


●登録したいレコードのイメージ


こういった場合にカスタマインだと、「まだルックアップに使われていないレコードや種別だけを対象にルックアップを検索し、設定する」事ができます。


カスタマイズで用いるアプリ

このカスタマイズでは2つアプリを使います。次の通り設定してください。


マスタ

※フィールドコードとフィールド名は同じものを指定します

フィールド名

フィールドタイプ

備考

ID

数値

必須入力、値の重複を禁止

種別

文字列(1行)

必須入力

名称

文字列(1行)


金額

数値



(レコード登録制御をしたい)アプリ

※フィールドコードとフィールド名は同じものを指定します

フィールド名

フィールドタイプ

備考

ID

数値

必須入力、値の重複を禁止

マスタID

ルックアップ

関連付けるアプリはマスタ、コピー元のフィールドはIDを指定
ほかのフィールドのコピーでマスタアプリの種別 を このアプリの種別に指定

種別

文字列(1行)


名称

文字列(1行)


金額

数値



アプリの準備ができたら、カスタマイズに移りましょう。


カスタマイズについて

全部で7アクション必要となります。


大まかな流れとしては

  • 「アプリ」のレコードを取得し既に登録済みの「種別」を取得(アクション1~3)

  • 登録済みの「種別」は対象外として「マスタ」のレコードを取得(アクション4)

  • ダイアログで表示して、ルックアップに反映(アクション5~7)

という形です。


処理を動かすためのボタンを作成

やること「ボタンをフィールド名の右に配置する」、条件「追加画面・編集画面を表示した時」を使います。


今操作を行おうとしているアプリの全レコードを取得

やること「全レコードを取得する」、条件「ボタンを押した時」を使います。


アプリですでに登録済みの種別を絞り込んでおく

やること「レコードから重複を除去する」、条件「他のアクションの実行が完了した時」を使います。


マスタに対し、登録済みの種別を含まない形で検索する

やること「条件を組み立ててレコードを取得する」を使います。


取得条件の設定は、次のようにしてください。


なお、「挿入∨」で「他のアクションの結果」から、3番アクションの「種別」フィールドを挿入すると

${$3[0].種別}

となります。このうち[0]は、設定上不要なものなので削除しておいてください。


検索結果をポップアップ表示

やること「レコードの一覧をポップアップで表示する」を使います。

パラメータ「未選択を許可するかどうか」を「未選択の場合OKを押せなくする」にしておくのがポイントです。


ダイアログで選択した値をルックアップフィールドにセット

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


値をセットしたのでルックアップ再取得

やること「ルックアップを取得しなおす」を使います。


最終的なカスタマイズ

カスタマイズの全体像は次のようになります。


うまく動かない時は見比べてみてください。


おわりに

やること「条件を組み立ててレコードを取得する」を使うと、複雑な条件でのレコード取得も簡単に実現することができます。また、やること「フィールドに値をセットする」と「ルックアップを取得しなおす」を使うとルックアップの自動再取得も簡単に実現できます。


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


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

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