Kintoneで、サブテーブルで管理している最新(最終)の値を、同一レコード内の別フィールドに抜き出したいというご要望をたまに頂きます。

そのような処理を実現するプラグインはいくつかありますが、わざわざ有料や試用版のプラグインをインストールするのもなんだかなー、という方のために、よく使用するコードのサンプルを用意いたしました。

<サンプルコードの仕様>

・テーブル内は降順で新しい行が作成されていくという前提です。
・別々のテーブルが3つ存在しており、それぞれ「電話番号」「メールアドレス」「住所」の最終行の値を最新情報用のフィールドにコピーします。

サンプルコードを環境に合わせてご変更いただければ、かなり便利なスクリプトになるかと思いますので、ご自由にお使いください!

※ご質問にはお答えできませんので予めご承知おきくださいませ。

コード

(function () {
  "use strict";

  const events = ["app.record.create.submit", "app.record.edit.submit"];

  kintone.events.on(events, function (event) {
    const rec = event.record;
    let lastRow = 0;

    if (rec.テーブル01.value[0].value.電話番号.value) {
      lastRow = rec.テーブル01.value.length - 1;
      rec.電話番号_最新.value = rec.テーブル01.value[lastRow].value.電話番号.value;
    }

    if (rec.テーブル02.value[0].value.メールアドレス.value) {
      lastRow = rec.テーブル02.value.length - 1;
      rec.メールアドレス_最新.value = rec.テーブル02.value[lastRow].value.メールアドレス.value;
    }

    if (rec.テーブル03.value[0].value.住所.value) {
      lastRow = rec.テーブル03.value.length - 1;
      rec.住所_最新.value = rec.テーブル03.value[lastRow].value.住所.value;
    }

    return event;
  });
})();