見出し画像

Kintoneで自動ルックアップ機能

Kintoneのルックアップ機能は便利ですが、自動実行機能はありません。
例えば、顧客マスタを別アプリからルックアップした後、参照元である顧客マスタの値(例えば顧客名)が変更されても、参照先アプリのルックアップフィールドの値は、再度ルックアップを実行しない限り更新されません。

旧い記録を保存するアプリでは「その方が都合が良い」とう場合もあると思いますが、案件管理アプリの様にレコードが頻繁に更新されるアプリでは、ルックアップフィールド(例えば、顧客名、部署名、先方担当者名等)は、編集時に自動で最新の値に更新してくれたらイイのに、と思っている人も多いのではないでしょうか?

以下の画面は、案件管理アプリで参照している顧客管理アプリの顧客名を、「田中商事」から「TANAKA商事」に修正している事例です。
顧客の会社名や担当者名が変わることはよくあると思います。

顧客マスタの値変更

自動ルックアップのデモ画面

以下の画面は、顧客番号で「田中商事」をルックアップ参照している案件管理アプリですが、編集ボタンをクリックした瞬間にルックアップが自動実行されて、会社名を更新(田中商事⇒TANAKA商事)しています。
もちろんルックアップで参照している他のフィールド値も全て更新します。
今回は、この自動ルックアップ機能をJavascriptカスタマイズで実装します。

ルックアップ自動実行

自動ルックアップのJavascriptコード 

/* ルックアップフィールドの自動実行 */
(function() {
  "use strict";

  // 自動実行するルックアップフィールドコード名
  const LOOKUP_FIELD_CODE = "ルックアップ";

  // 編集モードで起動する
  kintone.events.on('app.record.edit.show', function(event) {

    // ルックアップフィールドの自動実行
    let record = event.record;
    record[LOOKUP_FIELD_CODE].lookup = true;

    return event;
  });
})();

全部で17行と非常に短いコードですが、自動実行したいルックアップのフィールドコード名を設定するだけで動作します(動作確認済)
但し、エラーチェックも省略しているので、ルックアップフィールドコード名の設定でミスするとエラーで動作しません。
以下の「設定の注意事項」をご確認下さい。

設定の注意事項

LOOKUP_FIELD_CODE = "ルックアップ" の値を、アプリ側のルックアップフィールドコードの値に合わせて変更するだけで動作します。
※フィールド名ではなく、フィールドコード名をセットして下さい。

ルックアップの設定

【運用上のご注意】
自動ルックアップするフィールドは、ユニークな値(値の重複を禁止しているフィールド)である必要が有ります。
例えば顧客名でルックアップしていると、同じ顧客名のレコードが複数ある場合は、期待通りに動きません。
自動ルックアップするフィールドは「値の重複を禁止」しているフィールド(例えば顧客番号)である必要があります。

よろしければサポートお願いします! いただいたサポートは、note記事制作の活動費に使わせていただきます!