レコード保存時(create.submit/edit.submit)にサブテーブルで条件を満たす行があればjavascriptで削除を行いたく考えております。
サブテーブル内にルックアップフィールドが存在する状態で、サブテーブルの行を削除すると、
ルックアップフィールドの値がズレて登録されてしまいます。
※ルックアップフィールド以外の項目では問題なく登録されます。
■例:以下のサブテーブルから1行目を削除する。
※A-文字列(1行)フィールド、B-ルックアップフィールド
サブテーブル
1行目:A-1, B-1
2行目:A-2, B-2
3行目:A-3, B-3
■期待値
サブテーブル
1行目:A-2, B-2
2行目:A-3, B-3
■実態
サブテーブル
1行目:A-2
2行目:A-3, B-2
期待値の値をボディとしてPUTすると回避(?)出来ることは確認しております。
不要にAPIをコールすることは避けたいので、APIをコールする以外の回避方法があればご教示頂けますと幸いです。
恐れ入りますが、ご確認よろしくお願いいたします。
以下、本事象が発生しているプログラムになります。
(function() {
'use strict';
kintone.events.on(['app.record.create.submit'], function (event){
try {
let temp = [];
for (let i = 0; i <= event.record.取引先情報.value.length - 1; i++) {
let companyName = event.record.取引先情報.value[i].value.取引先名.value; //文字列1行フィールド
let contactPerson = event.record.取引先情報.value[i].value.担当者.value; //ルックアップフィールド
if ((companyName) && (contactPerson)){
temp.push(Object.assign({}, JSON.parse(JSON.stringify(event.record.取引先情報.value[i]))));
}
}
event.record.取引先情報.value = [];
event.record.取引先情報.value = temp;
return event;
} catch (e) {
console.log({ e });
}
});
})();