サブテーブルの行を削除するとルックアップの値がズレる

レコード保存時(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 });
    }
  });
})();

イベント処理内でテーブル行を追加・削除するとルックアップ項目と添付ファイル項目がズレて登録されます。

kintone のドキュメントにそのような記述が見当たりませんが、私も回避策が見つけておりません。

いまのところ、OY さんが試したように REST API で更新するしか無いようです。

ご回答ありがとうございます。
現状はREST APIで更新するしかないのですね。。。

添付ファイル項目もズレて登録されてしまうとは。。
貴重な情報ありがとうございます!

通りすがりで失礼します!

app.record.create.submit のイベント処理ではルックアップフィールドの書き換えは非対応と以下に書いてあります。
(添付ファイルフィールドも)

https://cybozu.dev/ja/kintone/docs/js-api/events/event-object-actions/#record-create-events

OYさんのケースでは、サブテーブルとルックアップの組み合わせの問題というより、ルックアップフィールドの書き換えが対応していないことが問題では、と思いました。

ダン吉さん
反応が遅くなり申し訳ございません。
仰る通り、ルックアップフィールドが書き換え項目でないことが原因な気がしますね。。。

イベント処理でルックアップと添付ファイルが編集出来るようになることを祈ります。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。