新規投稿
フォローする

別アプリに登録されたレコードを全て削除したい

背景・実現したいこと

画面に配置したボタンを押すと、別アプリに登録されたレコードを全て削除する機能を実装したいのですが、エラーで動かない状態になっています。レコード数は10~20件ほどです。

deleteのパラメータ(param2)を見てみると、0:{ids: "1"},1:{ids: "2"}...の形で渡されているようです。
この部分を修正できれば動きそうなのですが、どのようにしたら良いかご教授をお願い致します。

参考にしたページ

レコードIDの取得
https://developer.cybozu.io/hc/ja/articles/204537310

レコード削除(DELETE)
https://developer.cybozu.io/hc/ja/articles/201941794-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E5%89%8A%E9%99%A4-DELETE-

エラー情報

ブラウザの開発者ツールのコンソールから下記エラーが出ています。

DELETE https://kintone.cybozu.com/k/v1/records.json 400 (Bad Request)

利用したソースコード

(function() {
"use strict";
var App_Id1 = 270;
kintone.events.on(['app.record.edit.show', 'app.record.index.edit.show'], function(event) {

var btn = document.createElement('button');
btn.id = 'my_space_field_button';
btn.innerHTML = 'Delete';
btn.onclick = function () {

function DeleteRecords(records) {
var deleteRecords = [];
for (var i = 0, l = records.length; i < l; i++) {
var record = records[i];
deleteRecords[i] = {
ids: record.$id.value
};
}
return deleteRecords;
}

var param1 = {
'app': App_Id1
};

return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', param1).then(function(resp) {

var records = resp.records;
var param2 = {
'app': App_Id1,
'ids': DeleteRecords(records)
};

console.log(param2);

return kintone.api(kintone.api.url('/k/v1/records', true), 'DELETE', param2).then(function(resp2) {

// success
console.log(resp2);
}, function(error) {
// error
console.log(error);
});
});
}
kintone.app.record.getSpaceElement('my_space_field').appendChild(btn);
});
})();
0

2件のコメント

Avatar
村濱一樹

> deleteのパラメータ(param2)を見てみると、0:{ids: "1"},1:{ids: "2"}...の形で渡されているようです。

deleteRecords[i] = {
ids: record.$id.value
};

ここでそういうふうに渡してしまってるからのようにみえますね

deleteRecords.push(record.$id.value);

としたら正しいパラメタになるかとおもいます。

0
Avatar
Taishi

村濱一樹 様

ご指摘いただいた部分を訂正し、正しく動くことを確認できました。

大変助かりました。ありがとうございました。

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