レコードの一括更新処理でidの不正になる

背景・実現したいこと

購入申請アプリの レコードを一括更新したい。

別アプリから購入申請アプリの特定の(複数の)レコードに対して、支払い完了のチェックボックスにチェックを自動で入れるようにしたいです。

更新したいレコードの取得はできています。一括更新処理に対してレコードIDを正しくないというエラーがでてしまいます。こちらを読んで正しく設定しているつもりなのですがChromのコンソールから見たらidのところに変な値"QpEb6ewnaekkIj1MRtGp"が入ってしまっています。

エラー情報

↓のエラーが出ました


show.js:1246PUT https://xxxxxxxxx.cybozu.com/k/v1/record.json 400 (Bad Request)
show.js:1251 Uncaught (in promise)
{code: “CB_VA01”, id: “QpEb6ewnaekkIj1MRtGp”, message: “入力内容が正しくありません。”, errors: {…}}
code: “CB_VA01”
errors:
id:
messages: [“更新するレコードを、「id」か「updateKey」のいずれかのパラメーターで指定する必要があります。”]
__proto__: Object
updateKey: {messages: Array(1)}
__proto__: Object
id: “QpEb6ewnaekkIj1MRtGp”
message: “入力内容が正しくありません。”


また、paramsの中身はChromeのコンソールでは下記が表示されました(問題なさそうな気がしますが)

利用したソースコード

まず、createPaymentRecords()で更新したいレコードとその更新内容のparamを作り、それをputPurhcasePaymentRecord()で一括処理のrecordsのパラメータに使っています。

const PURCHASE_APP_ID = 41;
const PURCHASE_CHECK_VAL1 = '支払い済';

function createPaymentRecords(record_list) {
var records = [];
for (var i = 0; i < record_list.length; i++){
records[i] = {
id: record_list[i],
record: {
// 書いた項目だけ☑され、それ以外は☑が外れる.
支払い完了チェック: {
'value': [
PURCHASE_CHECK_VAL1
]
}
}
};
}
return records;
}
var putPurchasePaymentRecord = function (record_list) {
var params = {
app: PURCHASE_APP_ID,
records: createPaymentRecords(record_list)
};
console.log(record_list);
console.log(params);
return kintone.api(kintone.api.url('/k/v1/record'), 'PUT', params);
};

よろしくお願いします。

こんにちは、
ぱっと見た感じですが

最後の行の
return kintone.api(kintone.api.url(‘/k/v1/record’), ‘PUT’, params);
のところ、
return kintone.api(kintone.api.url(‘/k/v1/records’), ‘PUT’, params);

recordsのsが抜けているのではないでしょうか??

こんにちは。ありがとうございます!

ご指摘の通り、recordsにしたら正常に動きました。

一括処理で更新しないプログラムをコピペで流用して書き換え忘れたのが原因でした。。。