新規投稿
フォローする

REST API POSTメソッドにおける400エラー

別アプリのデータを更新または登録する処理なのですが、

登録処理が自分なりに調べているのですが400エラーで上手くいきません。

原因・対処法などご教示頂けると幸いです。

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

function createtotalData(){
console.log("ファンクションを呼び出した");
var appId = kintone.app.getId();
var jutyuu = [];
var nyuukin = [];
//書き換え用
var paramsAdd = {
"app" : 3806,
"records" : []
};
var paramsUpdate = {
"app" : 3806,
"records" : []
};
fetchRecords(appId,"",['kokyakucode','kokyakumei','kokyakumeikana','yubinbango','jusyo1','mailadress','tel']).then(function (records1) {
console.log("顧客台帳取得");
jutyuu['顧客'] = records1;
console.log(jutyuu['顧客'].length);
//家族員から施主のデータ取得
//アプリidの設定
var kazokuppid = 3806;
//TODO 施主のデータのみ抽出すること
var code_of_key1 = 'family_type';
var value_of_key1 = "施主";
var code_of_key2 = 'family_state';
var value_of_key2 = "存命";
var query = code_of_key1 + ' in(' + '"' + value_of_key1 + '") and ';
query = query + code_of_key2 + ' in(' + '"' + value_of_key2 + '")';
console.log("query:" + query);
return fetchRecords(kazokuppid,query,['$id','C_code','C_name']).then(function (records2) {
console.log("家族員取得");
nyuukin['家族員'] = records2;

console.log(nyuukin['家族員'].length);
//顧客と施主情報をマッチングし、家族員を追加(更新)する
var insertCnt = 0;
var updateCnt = 0;
for (var i = 0; i < jutyuu['顧客'].length; i++) {
//var id;
var kokyakucode;
var kokyakumei;
var kokyakumeikana;
var yubinbango;
var jusyo1;
var mailadress;
var tel;

var id = 0;

kokyakucode = jutyuu['顧客'][i]['kokyakucode']['value'];
kokyakumei = jutyuu['顧客'][i]['kokyakumei']['value'];
kokyakumeikana = jutyuu['顧客'][i]['kokyakumeikana']['value'];
yubinbango = jutyuu['顧客'][i]['yubinbango']['value'];
jusyo1 = jutyuu['顧客'][i]['jusyo1']['value'];
mailadress = jutyuu['顧客'][i]['mailadress']['value'];
tel = jutyuu['顧客'][i]['tel']['value'];
//家族員とのマッチング処理
for (var k = 0; k < nyuukin['家族員'].length; k++) {
if(kokyakucode == nyuukin['家族員'][k]['C_code']['value']){
id = nyuukin['家族員'][k]['$id']['value'];
console.log("id:" + id);
//パラメータ編集
paramsUpdate["records"][updateCnt] = {
"id" : id,
"record" : {
"C_code" : {
"value" : kokyakucode
},
"C_name" : {
"value" : kokyakumei
},
"C_kana" : {
"value" : kokyakumeikana
},
"family_name" : {
"value" : kokyakumei
},
"family_kana" : {
"value" : kokyakumeikana
},
"family_Pcode" : {
"value" : yubinbango
},
"family_address" : {
"value" : jusyo1
},
"family_mail" : {
"value" : mailadress
},
"family_tel" : {
"value" : tel
}
}
}; //paramsUpdate
updateCnt++;
break;
}
} //家族員とのマッチング処理for
//新規登録の場合
if(id == 0){
paramsAdd["records"][insertCnt] = {
"record" : {
"C_code" : {
"value" : kokyakucode
},
"C_name" : {
"value" : kokyakumei
},
"C_kana" : {
"value" : kokyakumeikana
},
"family_type" : {
"type": "DROP_DOWN",
"value" : "施主"
},
"family_name" : {
"value" : kokyakumei
},
"family_kana" : {
"value" : kokyakumeikana
},
"family_Pcode" : {
"value" : yubinbango
},
"family_address" : {
"value" : jusyo1
},
"family_mail" : {
"value" : mailadress
},
"family_tel" : {
"value" : tel
},
"family_state" : {
"type": "RADIO_BUTTON",
"value" : "存命"
}
}
}; //paramsAdd
insertCnt++;
};
} //顧客for
//家族員登録
//console.log("update");
//console.log(paramsUpdate["records"]);
//console.log("insert");
//console.log(paramsAdd["records"]);
if(insertCnt > 0){
return kintone.api(kintone.api.url('/k/v1/records', true),'POST', paramsAdd).then(function(resp) {       ←ここで400エラー
//location.reload(); // 成功したら画面を更新
//hideSpinner();
alert("登録処理が完了しました");
return event;
}, function(resp) {
// 失敗時
//hideSpinner();
console.log(resp);
alert("登録処理に失敗しました");
}); //更新処理
}
if(updateCnt > 0){
return kintone.api(kintone.api.url('/k/v1/records', true),'PUT', paramsUpdate).then(function(resp) {
//location.reload(); // 成功したら画面を更新
//hideSpinner();
alert("更新処理が完了しました");
return event;
}, function(resp) {
// 失敗時
//hideSpinner();
alert("更新処理に失敗しました");
}); //更新処理
}
}); //家族員取得
// }); //売上金額取得
}); //顧客台帳取得
//売上管理更新処理
};

0

2件のコメント

Avatar
Ryu Yamashita

recordsの配列の要素になっている record のオブジェクトの形が異なるためだと思います。ドキュメントを確認されると良いと思いますが、{record : {fieldcode: {value: value}}} の形ではなくて、{fieldcode: {value: value}} (recordプロパティのキー指定は不要)の配列です。

コメントアウトされてる console.log(paramsAdd["records"]); もしくは console.log(paramsAdd); といったリクエスト内容とドキュメントが合っているかやこちらにあるように意図したリクエスト内容になっているか、ドキュメント・仕様通りになっているか、エラーメッセージから探れることはないか、確認するようにされると、原因に気付きやすくなると思います。

Ryu Yamashitaにより編集されました
1
Avatar
安原潤一

Ryu Yamashita 様

ご指摘の箇所を直した所、上手くいきました。

ありがとうございました。

0
サインインしてコメントを残してください。