お世話になっております。
今回、レコードの一括更新を行いたいのですが、エラー番号400が発生してしまい、正常に動作しません。
詳細を記しますので、ご教授いただければ幸いです。
・目的
製造番号「AAA」で購入していた部品を製造番号「BBB」に変更する際に、レコード数が多いため、レコード一覧から変更したいものだけ選んで一括で変更したい
・できていること
レコード一覧にチェックボックスを設置する
一括更新用のボタンを配置し、押したときにチェックを入れたレコードのレコード番号を取得する
入力欄を配置し、変更先の製造番号を入力できるようにする
・発生するエラー
レコード一括更新の命令実行時にエラー400が発生
ディベロッパーツールで見ると、idにでたらめな文字列が入っており、入力内容が正しくありませんと表示されます
・エラーの発生する箇所のソースコード
一覧画面に追加したボタンを押した処理だけを記述します
// ボタンクリック時の処理
IndexButton.onclick = () => {
var recordIndexes = document.getElementsByName('checked-records');
var checked_index;
var count = 0; //チェックを入れた数
var changelist = Array(20); //チェックを入れたレコードのレコード番号の受け皿
var NewSeiban; //新しい製造番号
for(let i=0; i<recordIndexes.length; i++){
if(recordIndexes[i].checked){
//どこにチェックされてるか取得
checked_index = recordIndexes[i].id.split('-')[2];
// チェックの入った数と、チェックを入れたレコード番号を取得
count++;
changelist[i] = records[checked_index]['レコード番号']['value'];
}
}
//チェック数が0なら処理しない
if(count === 0){
alert('変更するデータが選択されていません');
return;
}
//新しい製造番号が入力されていない、または0なら処理しない
if(InputText.value === '' | InputText.value === '0'){
alert('変更する製造番号を先に入力してください');
return;
}else{
//変更先の製造番号を取得
NewSeiban = InputText.value;
}
//操作確認
var result = confirm(count +' 件のデータの製番を変更します。よろしいですか?');
if(result === true){
var list = [];
var check;
//書き換えデータ作り
for (let i = 0; i < count; i++) {
var obj = {};
obj["id"] = changelist[i];
obj["製番"] = NewSeiban;
list.push(obj);
}
var requestObj = {
"app": kintone.app.getId(),
"records": list
};
kintone.api(kintone.api.url("/k/v1/records/status", true), "PUT", requestObj, function() {
alert('製造番号を変更しました')
});
}else{
alert('操作を中断します');
}
};
恐らく配列を用いて書き換えデータを作るところに問題があるのでしょうが、どのように修正すればいいか分かりません。
ご教授お願い致します。