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;
});
})();