ルックアップでレコードを検索する場合に、kintone基本機能で検索した時は「対象となるレコードが全て表示される」という動きになります。
ですがこの時、既に別のレコードでルックアップに使ったレコードや種別については検索をせず、使っていないものでレコードを作りたい場合があります。
上の例で具体的に言うと、既に「種別」フィールドに「梱包サービス」「手数料」という値が入ったレコードが作られていれば、「送料」でレコードを作りたい といったケースです。
●既に登録済みのレコード
●登録したいレコードのイメージ
こういった場合にカスタマインだと、「まだルックアップに使われていないレコードや種別だけを対象にルックアップを検索し、設定する」事ができます。
カスタマイズで用いるアプリ
このカスタマイズでは2つアプリを使います。次の通り設定してください。
マスタ
※フィールドコードとフィールド名は同じものを指定します
(レコード登録制御をしたい)アプリ
※フィールドコードとフィールド名は同じものを指定します
アプリの準備ができたら、カスタマイズに移りましょう。
カスタマイズについて
全部で7アクション必要となります。
大まかな流れとしては
「アプリ」のレコードを取得し既に登録済みの「種別」を取得(アクション1~3)
登録済みの「種別」は対象外として「マスタ」のレコードを取得(アクション4)
ダイアログで表示して、ルックアップに反映(アクション5~7)
という形です。
処理を動かすためのボタンを作成
やること「ボタンをフィールド名の右に配置する」、条件「追加画面・編集画面を表示した時」を使います。
今操作を行おうとしているアプリの全レコードを取得
やること「全レコードを取得する」、条件「ボタンを押した時」を使います。
アプリですでに登録済みの種別を絞り込んでおく
やること「レコードから重複を除去する」、条件「他のアクションの実行が完了した時」を使います。
マスタに対し、登録済みの種別を含まない形で検索する
やること「条件を組み立ててレコードを取得する」を使います。
取得条件の設定は、次のようにしてください。
なお、「挿入∨」で「他のアクションの結果」から、3番アクションの「種別」フィールドを挿入すると
${$3[0].種別}
となります。このうち[0]は、設定上不要なものなので削除しておいてください。
検索結果をポップアップ表示
やること「レコードの一覧をポップアップで表示する」を使います。
パラメータ「未選択を許可するかどうか」を「未選択の場合OKを押せなくする」にしておくのがポイントです。
ダイアログで選択した値をルックアップフィールドにセット
やること「フィールドに値をセットする」、条件「確認・入力ダイアログで「OK」を押した時」を使います。
値をセットしたのでルックアップ再取得
やること「ルックアップを取得しなおす」を使います。
最終的なカスタマイズ
カスタマイズの全体像は次のようになります。
うまく動かない時は見比べてみてください。
おわりに
やること「条件を組み立ててレコードを取得する」を使うと、複雑な条件でのレコード取得も簡単に実現することができます。また、やること「フィールドに値をセットする」と「ルックアップを取得しなおす」を使うとルックアップの自動再取得も簡単に実現できます。
ぜひこれらのカスタマイズで、あなたのkintoneのルックアップをより使いやすくしてみてください!
Customineドキュメントやサポートページもぜひご活用ください。
また、ご不明点等ございましたら、チャットにてご質問ください。