同期PUTでサブテーブルを更新する時に with a status of 400 (Bad Request) 入力内容が正しくありません エラーが出ました
図1のJSONで「kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘PUT’, body, function(resp)」うまく出来ますが、同期PUT通信で図2のエラーが出ました。エラー中に更新するレコードIDがないとかいていますが、僕のJSON中に書いていますけど、ID:230は更新するレコードIDです。
分かる方が教えて頂ければ助かります。ありがとうございます。
(function() {
“use strict”;
//レコードの編集、詳細画面で適用する
var events = [
‘app.record.edit.submit’,
‘app.record.create.submit’
];
kintone.events.on(events, function(event) {
var record = event.record;
var subtabledata=record.売上計上明細テーブル;
//
var token = kintone.getRequestToken();
updatek22subtable(230,token);
return event;
});
////
function updatek22subtable(rid,token){
var subtable={ // テーブルへの追加行
“value” : {
“売上合計_売上計上” : {
“value” : “888”
}
}
};
var strsubtable=JSON.stringify(subtable);
var body2 = ‘{ “app”: 22,“id”: 230, “record” : { “注文書一覧_売上” : { “value” :[’ + strsubtable + ‘]}},“REQUEST_TOKEN”:"’ + kintone.getRequestToken() + ‘" }’;
var subtableobj=JSON.parse(body2);
var body3 ={“app”: 22,
“records”: [
{
“id”: 230,
“record”: {
“注文書一覧_売上”: {
“value”:[{“value” : {“売上合計_売上計上” :{ “value” : “888” }}}]
}
}
}
]
};
var appid=22;
var query = ‘レコード番号="’ + rid+‘"’;//
query = encodeURIComponent(query);
var appUrl = kintone.api.url(‘/k/v1/records’) + ‘?app=’+ appid + ‘&query=’ + query;
var resp_data=req(appUrl);
if(resp_data.records.length > 0){
for(var i = 0; resp_data.records.length > i; i++){
//k22サブテーブルに更新
var strJSON =body3;// ‘{ “app”: “22”,“id”: ‘+rid+’, “record” : { “注文書一覧_売上” : { “value” : [{“value” : {“売上合計_売上計上” :{ “value” : “888” }}}]}},“__REQUEST_TOKEN__”:"’ + token + ‘" }’;
putreq(strJSON);
}
}
}
function req(reqUri) {
// 同期リクエストを行う
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, reqUri, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);
//取得したレコードをArrayに格納
var resp_data = JSON.parse(xmlHttp.responseText);
return resp_data;
}
function putreq(strJSON){
// 登録先アプリの設定
var appURL = kintone.api.url(‘/k/v1/record’);
var xmlhttp = false;
var xhr = new XMLHttpRequest();
xhr.open(‘PUT’, appURL);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.setRequestHeader(‘Content-Type’, ‘application/json’);
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(strJSON));
}
})();
図1
図2