gusuku Customineを使ったkintoneアプリのカスタマイズは、アイデア次第でとてもシンプルに書くことが出来ます。今回はルックアップを使うとよくぶつかる問題を解決してみようと思います。


Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。


利用想定シーン

製品マスタのアプリで、商品の名前が変わったときにそれをルックアップしているレコードを更新したい、というようなシーンを想定しています。

kintoneのルックアップは値のコピーですので、コピーした後の更新は反映されません。


ですので、このカスタマイズでやりたいことは、、、


ルックアップのコピー元レコードを更新したら、コピー先のレコードを更新したい

ということになります。kintoneアプリでルックアップを頻繁に利用しだすと、必ず遭遇するのがこの問題ですね。今回はこの問題をCustomineで解決してみようと思います。


まず、アプリの構造の説明をします。

製品マスタを案件管理アプリが製品コードでルックアップしている形になります。



具体的なアプリの設定はこのようになります。


まず、製品マスタ側の、ルックアップに利用する製品コードの設定をこのようにしておきます。「必須項目」と「値の重複を禁止する」にチェックをします。

また、この製品コードの値は基本的に変更してはいけません!

Customineで編集不可にしておきましょう。このカスタマイズはまた別の機会にご紹介いたします。

続いてルックアップする側の設定です。

製品マスタの製品コードをコピー元のフィールドとして設定しています。


Customineの設定

このような状態のアプリに対して、製品マスタのレコードが更新されたら、参照している案件管理のレコードを更新するカスタマイズを作成します。「+」ボタンをクリックして「製品マスタ」のアプリを選択してから、カスタマイズの作成を始めます。


手順は以下のとおりです。

  • 「やること」にカテゴリー:レコードの中から、「レコードを更新する」を選択します
  • 「更新先アプリ」はもちろん「案件管理」を選択します
  • 「キーとなるフィールド」は、ルックアップで使用しているフィールドコード「製品コード」を選択します
  • 「キーの値」は「=製品コード」となりますね。これは、「製品マスタアプリのフィールドコード:製品コード」をキーの値として利用する、と言う設定になります
  • 「マッピング」は以下で別途ご説明します。
  • 「更新の競合をチェックする」は、デフォルトの「チェックする」を選択しておいてください。


フィールドマッピングについては、以下を参考に製品マスタの製品コードを、案件管理の製品コードにセットしています。


やることの設定は以上です。


「条件」側には、「レコードを保存した直後」を選択しておきます。

最終的には以下のようになります。


ルックアップ先の自動更新のカスタマイズは、たったこれだけです!


黄色の「kintoneアプリへ登録」をクリックして、kintoneアプリに反映させて見てください。


ブラウザをリロードした後、製品マスタのレコードを更新して動作を確認してみてください。

一覧画面のインライン編集でも、通常の編集画面のどちらでも、案件管理側のレコードが更新されていることが確認できると思います。


まとめ

ルックアップ先の自動更新カスタマイズは以上になります。今回は条件を「レコードを保存した直後」として、保存したら即座に更新していますが、例えばボタンで実行したり、ステータスの条件と絡めたりとアイデア次第で色々とカスタマイズできると思います。ぜひお試しください。


もし分からないことがありましたら、フォーラムの方でご質問ください。