別アプリのテーブルに追加

お世話になっております。

以下の処理でつまずいてしまいました。

お力添えいただけないでしょうか。

===================================

■やりたいこと

アプリAにレコードを追加すると

アプリBのテーブル(複数行)からアプリCのテーブルに全行コピーしたい。

===================================

 

テストでアプリAへレコードを追加した際にアプリCへ2行分記入するコードを書いてみたのですが、上手く行きませんでした。

下記が実行されるとアプリCのテーブルの1行目の値のみが更新されます。

複数行記入する方法がわからず困っております。

よろしくお願いいたします。

 

(function() {
'use strict';

var events = ['app.record.edit.show',
];
kintone.events.on(events, function(event) {

var user = kintone.getLoginUser();

var body = {
"app": 1,
"updateKey": {
"field": "ID",
"value": user.id,
},
};

kintone.api(kintone.api.url('/k/v1/records.json', true),'GET',body,function(resp) {

var body2 = {
"app": 1,
"updateKey": {
"field": "ID",
"value": user.id,
},

"record":{
"Table":{
"value":[
{
'value': {
'フィールド1': {
'type': 'NUMBER',
'value': 1
},
'フィールド2': {
'type': 'NUMBER',
'value': 1
},
}
}
]
}
}
};

for (var i = 0; i < 2; i++) {
kintone.api(kintone.api.url('/k/v1/record.json', true),'PUT',body2,function() {
});
}
});
});
})();

Ibarakiさん

お世話になっております。

body2.record.Table.valueが要素を1つだけもつ配列になっているので、テーブルに1行分のデータだけ登録されるのかと思います。

body2.record.Table.valueの要素を増やせば、テーブルに追加される行数は増えます。

var body2 = {
  "app": 1,
  "updateKey": {
    "field": "ID",
    "value": user.id,
  },
  "record": {
    "Table": {
      "value": [
        {
          'value': {
            'フィールド1': {
              'type': 'NUMBER',
              'value': 1
            },
            'フィールド2': {
              'type': 'NUMBER',
              'value': 1
            },
          }
        },
        { // 追記ここから
          'value': {
            'フィールド1': {
              'type': 'NUMBER',
              'value': 1
            },
            'フィールド2': {
              'type': 'NUMBER',
              'value': 1
            },
          }
        } // 追記ここまで
      ]
    }
  }
};

 江田様

ご回答ありがとうございます。

その方法で複数行記載できることは認識しているのですが、行数が毎回違う場合にどのように記述すれば良いかわかりません。

何か良い方法はないでしょうか。

よろしくお願いいたします。