gusuku Customineを使ったkintoneアプリのカスタマイズは、アイデア次第でとてもシンプルに書くことが出来ます。今回はルックアップを使うとよくぶつかる問題を解決してみようと思います。
kintoneのルックアップを更新するのは、以下のパターンが考えられます。用途に応じてそれぞれのカスタマイズをご利用ください。
- マスタ側を更新したら、それを参照している全てのレコードを更新する → こちらの記事
- ルックアップを参照している側で、常にルックアップを更新する → 【ルックアップしているフィールドの自動更新をするkintoneのカスタマイズ】
- ルックアップを参照しているレコードの中で、条件を指定して更新する → 【条件を指定してルックアップの更新をするkintoneのカスタマイズ】
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
追記:2019年2月
新しくリリースされた「やること」により、よりシンプルに、迷わず設定することが出来るようになりましたので更新しました。
利用想定シーン
製品マスタのアプリで、商品の名前が変わったときにそれをルックアップしているレコードを更新したい、というようなシーンを想定しています。
kintoneのルックアップは値のコピーですので、コピーした後の更新は反映されません。
ですので、このカスタマイズでやりたいことは、、、
ルックアップのコピー元レコードを更新したら、コピー先のレコードを更新したい
ということになります。kintoneアプリでルックアップを頻繁に利用しだすと、必ず遭遇するのがこの問題ですね。今回はこの問題をCustomineで解決してみようと思います。
まず、アプリの構造の説明をします。
製品マスタを案件管理アプリが製品コードでルックアップしている形になります。
具体的なアプリの設定はこのようになります。
まず、製品マスタ側の、ルックアップに利用する製品コードの設定をこのようにしておきます。「必須項目」と「値の重複を禁止する」にチェックをします。
また、この製品コードの値は基本的に変更してはいけません!
Customineで編集不可にしておきましょう。このカスタマイズはまた別の機会にご紹介いたします。
続いてルックアップする側の設定です。
製品マスタの製品コードをコピー元のフィールドとして設定しています。
Customineの設定
このような状態のアプリに対して、製品マスタのレコードが更新されたら、参照している案件管理のレコードを更新するカスタマイズを作成します。「+」ボタンをクリックして「製品マスタ」のアプリを選択してから、カスタマイズの作成を始めます。
手順は以下のとおりです。
- 「やること」にカテゴリー:フィールドの中から、「他アプリのルックアップを取得しなおす」を選択します
- 「アプリ」はもちろん「案件管理」を選択します
- 「ルックアップフィールド」はルックアップで使用しているフィールドコード「製品コード」を選択します
- 「ルックアップの値」は製品コードでルックアップしているので、「=製品コード」となります。
やることの設定は以上です。
「条件」側には、「レコードを保存した直後(削除後は除く)」を選択しておきます。
最終的には以下のようになります。
ルックアップ先の自動更新のカスタマイズは、たったこれだけです!
黄色の「kintoneアプリへ登録」をクリックして、kintoneアプリに反映させて見てください。
ブラウザをリロードした後、製品マスタのレコードを更新して動作を確認してみてください。
一覧画面のインライン編集でも、通常の編集画面のどちらでも、案件管理側のレコードが更新されていることが確認できると思います。
まとめ
ルックアップ先の自動更新カスタマイズは以上になります。今回は条件を「レコードを保存した直後」として、保存したら即座に更新していますが、例えばボタンで実行したり、ステータスの条件と絡めたりとアイデア次第で色々とカスタマイズできると思います。ぜひお試しください。