現在表示されているレコードを他アプリに登録 POST

こんにちは

javascript初心者です。

今回一覧画面にボタンを設置し、クリックした時表示されているレコード全てを他アプリに登録をしたいと考えています。他アプリのフィールドは、ボタン設置アプリと同じフィールド名、フィールド数を使っています。

ボタンを押した時POSTでレコードを追加を行いましたがレコードの空のレコードが複数登録されています。レコードの中身のサブテーブル、フィールドが登録されません。

どなたか詳しい方ご教授お願いします。

(function() {
"use strict";
// 編集画面を表示したときにテーブルを初期化する
kintone.events.on('app.record.index.show', function (event) {
if (document.getElementById('my_index') !== null) {
return;
}
var appId = 179;//コピー元アプリ
var myIndex = document.createElement('button');
myIndex.id = 'my_index';
myIndex.innerText = '現在のレコードを保存';
myIndex.style.fontSize = '20px';
myIndex.style.textAlign = 'center';
myIndex.style.color = '#3399ff';
myIndex.style.width = '60%';
myIndex.style.height = '47px';
kintone.app.getHeaderMenuSpaceElement().appendChild(myIndex);

myIndex.onclick = function() {
kintone.api('/k/v1/records', 'GET', {app: appId}, function(resp) {
var paramPut = {
"app": 185,//コピー先アプリ
   "records": ["有休取得","選択","役職","月","BirthDay","JoiningDate","経過年月","年齢","手当営業出向","住民税","所得税","経費精算","基本給調整","交通費","昨年度有休残"]
};
//有休取得はサブテーブル
for (var i = 0; i < resp['records'].length; i++) {
var a =resp['records'][i]['所得税']['value'];
alert(a);
paramPut['records'][i] = {
"id": resp['records'][i]['レコード番号']['value'],
  "record": {
   "所得税":{
  "value": resp['records'][i]['所得税']['value']
  },
},
};
}


kintone.api(kintone.api.url('/k/v1/records', true), 'POST', paramPut, function(resp) {
// success
return event;
}, function(error) {
// error
console.log(paramPut);
return event;
});
});
}
kintone.app.getHeaderMenuSpaceElement().appendChild(myIndex);
});
})();

梢さん、はじめまして。

レコードの登録(POST)と、レコードの更新(PUT)を誤って理解されていませんか?

今回のコードの問題はそこではありませんが、APIで指定しているメソッドがPOSTで、用意しているパラメータはPUTになっているように見えます。

このあたりのページが参考になるかと思います。

レコードの一括登録

レコードの一括更新

 

また、「表示されているレコード全て」に限定する必要がある場合、kintone.app.getQueryまたはkintone.app.getQueryConditionを使用された方が良いかと思います。

無事どうにかできました

ありがとうございます