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

**URL:** <https://community.cybozu.dev/t/topic/9143>\
**Category:** kintone 開発相談\
**Created:** [2024 年 6 月 10 日午前 2:57 UTC](https://community.cybozu.dev/t/topic/9143 "2024-06-10T02:57:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wmiyazaki](https://avatars.discourse-cdn.com/v4/letter/w/bc79bd/32.png) [@wmiyazaki](https://community.cybozu.dev/u/wmiyazaki)\
**Post date:** [2024 年 6 月 10 日午前 2:57 UTC](https://community.cybozu.dev/t/topic/9143/1 "2024-06-10T02:57:07Z")

</div>

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

> [@テーブルから別テーブルへコピー](https://community.cybozu.dev/t/topic/8042):
>
> １つのアプリにテーブルが２つあります。 Aテーブル ・ルックアップフィールド ・数値フィールド ・ドロップダウンフィールド ↓ Bテーブル ・数値フィールド ・ドロップダウンフィールド ・数値フィールド２ ・文字列１行フィールド A→Bへ、ルックアップフィールド・数値フィールド・ドロップダウンフィールドをAテーブル編集したタイミングでコピーすることは可能でしょうか。

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

 ![テーブルA](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/2X/5/5f5f0b0c750bf9100c1c3ca9d58c650c79654ead.png)

 ![テーブルB](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/2X/f/fbd574c2e4baf5997a0b52332405c1cfbb3b83eb.png)

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

(() =\> {  
‘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;
    });

```

})();

---

<div class="post-metadata">

**Author:** ![TaroTanaka](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/tarotanaka/32/985_2.png) [@TaroTanaka](https://community.cybozu.dev/u/TaroTanaka)\
**Post date:** [2024 年 6 月 10 日午前 5:04 UTC](https://community.cybozu.dev/t/topic/9143/2 "2024-06-10T05:04:52Z")

</div>

wmiyazakiさん、こんにちは！

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

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

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

頑張ってください。

---

<div class="post-metadata">

**Author:** ![wmiyazaki](https://avatars.discourse-cdn.com/v4/letter/w/bc79bd/32.png) [@wmiyazaki](https://community.cybozu.dev/u/wmiyazaki)\
**Post date:** [2024 年 6 月 12 日午前 6:40 UTC](https://community.cybozu.dev/t/topic/9143/3 "2024-06-12T06:40:17Z")

</div>

田中太郎さん  
ご返信ありがとうございます。  
保存のタイミングでやってみようと思い、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.カウント’,]  
に変更しましたが、反応しません。特にエラーも出ていないのですが、どこか間違っているでしょうか？  
よろしくお願い致します。

---

<div class="post-metadata">

**Author:** ![TaroTanaka](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/tarotanaka/32/985_2.png) [@TaroTanaka](https://community.cybozu.dev/u/TaroTanaka)\
**Post date:** [2024 年 6 月 12 日午前 6:53 UTC](https://community.cybozu.dev/t/topic/9143/4 "2024-06-12T06:53:35Z")

</div>

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

> **[kintone JavaScript API](https://cybozu.dev/ja/kintone/docs/js-api/)**
>
> kintoneの画面上の動作や見た目を変えるAPIです。JavaScriptファイルをアプリにアップロードして適用することで、ユーザーのkintone画面上で動作します。kintoneにはさまざまなJavaScriptイベントがあり、動作を変更できます。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2024 年 6 月 15 日午前 6:54 UTC](https://community.cybozu.dev/t/topic/9143/5 "2024-06-15T06:54:05Z")

</div>

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