レコード内のテーブルコピー

同一アプリ内に、2つのテーブルABがあります。
Aに入力した内容を、自動的にBにコピーしたいです。
フィールドはABとも同じです。

上記参考にしてやってみたのですが、AからBにコピーはできるものの、
Bに余分な行が入ってしまいます。

余計な行を削除して、単純にコピーするにはどのようにすればよいでしょうか?
コードは以下の通りです。

(() => {
‘use strict’

kintone.events.on(['app.record.create.change.申請時_相手先氏名', 'app.record.edit.change.申請時_相手先氏名',
'app.record.create.change.申請時_会社名', 'app.record.edit.change.申請時_会社名','app.record.create.change.カウント', 'app.record.edit.change.カウント',], (event) => {

        //record,changesを定義
        const record = event.record;
        const changes = event.changes;

        //報告時参加者テーブルを定義
        const b_table = record.顧客参加者情報_0.value;

        //報告時参加者テーブルの配列にpush
        b_table.push(
            {
                value:{
                    報告時_相手先氏名:{
                        value:changes.row.value.申請時_相手先氏名.value,
                        type:'SINGLE_LINE_TEXT'
                    },

                    報告時_会社名:{
                        value:changes.row.value.申請時_会社名.value,
                        type:'SINGLE_LINE_TEXT'
                    },

                    報告書_カウント:{
                        value:changes.row.value.カウント.value,
                        type:'NUMBER'
                    },
                }
            }
        )

        console.log(changes);

        //return eventをして値更新
        return event;
    });

})();

wmiyazakiさん、こんにちは!

まず、原因ですが、
おそらく、実際に動かされて気づいていると思いますが、
「申請時_相手先氏名」「申請時_会社名」「カウント」の3つのフィールドのチェンジイベントで、
毎回、行が追加されるようになっているので、そのような挙動になっております。

対応策ですが、そもそも、Aテーブルの値を変更されたタイミングで、
Bのテーブルに値を入れる必要はありますでしょうか?
もし上記のタイミングでの連携が必須ではない場合、
保存時のイベントで行われる等されると、処理を書きやすいと思います。

どうしても、Aテーブルの変更タイミングで、リアルタイムに変更したいのであれば、
Aのテーブルと、Bのテーブルの行の対応付をさせる、
自動採番のフィールドをそれぞれのテーブルに追加して、
Bの該当行を更新するような処理が必要になるかと思いますので、
可能ですが、少し処理が難しくなります。

頑張ってください。

田中太郎さん
ご返信ありがとうございます。
保存のタイミングでやってみようと思い、kintone.events.on
kintone.events.on([‘app.record.create.change.申請時_相手先氏名’, ‘app.record.edit.change.申請時_相手先氏名’,
‘app.record.create.change.申請時_会社名’, ‘app.record.edit.change.申請時_会社名’,‘app.record.create.change.カウント’, ‘app.record.edit.change.カウント’,]
の部分を
kintone.events.on([‘app.record.create.submit.申請時_相手先氏名’, ‘app.record.edit.submit.申請時_相手先氏名’,
‘app.record.create.submit.申請時_会社名’,‘app.record.edit.submit.申請時_会社名’, ‘app.record.create.submit.カウント’,‘app.record.edit.submit.カウント’,]
に変更しましたが、反応しません。特にエラーも出ていないのですが、どこか間違っているでしょうか?
よろしくお願い致します。

保存のタイミングとは、レコード保存のタイミングとなるのですが、
フィールド等を指定するイベントではないので、
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], (event) => {
等の書き方となります。

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