背景・実現したいこと
上記コードを応用して、複数アプリのデータ削除を実現したい。
deleteRecords 関数は、1度の処理で app パラメータに設定できる
アプリ数は1つとのことですので、for文などで複数アプリを指定してみましたが、削除ができない状態です。
どのようにしたら実現可能かご教授をお願い致します。
参考記事
1つのアプリでは、データ削除ができることは確認できました。
背景・実現したいこと
上記コードを応用して、複数アプリのデータ削除を実現したい。
deleteRecords 関数は、1度の処理で app パラメータに設定できる
アプリ数は1つとのことですので、for文などで複数アプリを指定してみましたが、削除ができない状態です。
どのようにしたら実現可能かご教授をお願い致します。
参考記事
1つのアプリでは、データ削除ができることは確認できました。
forなどのループで複数アプリのデータは問題なく削除できると思います、
Promiseの書き方の問題などがありそうです。
コードを提示すると有志の方が答えやすいかと思います。
ご回答ありがとうございます。
forを使用して複数アプリのデータ削除を実現したいのですが、
削除できなく、困っております。
以下コードとなります。よろしくお願いします。
(function () {
“use strict”;
// レコード詳細画面
kintone.events.on([‘app.record.detail.show’], function (event) {
var btn = document.createElement(‘button’);
btn.id = ‘my_index_button’;
btn.innerHTML = ‘複数アプリ削除’;
// ボタンクリック時の処理
btn.onclick = function () {
function DeleteRecords(records) {
var deleteRecords = [];
for (var i = 0, l = records.length; i < l; i++) {
var record = records[i];
deleteRecords.push(record.$id.value);
}
return deleteRecords;
}
var App_Id1 = [488, 500];
for (var i = 0; i < App_Id1.length; i++) {
var param1 = {
‘app’: App_Id1[i]
};
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, param1).then(function (resp) {
var records = resp.records;
console.log(records);
var param2 = {
‘app’: App_Id1[i],
‘ids’: DeleteRecords(records)
};
console.log(param2);
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘DELETE’, param2).then(function (resp2) {
console.log(resp2);
// 処理成功
alert(‘正常処理削除完了しました’);
}, function (error) {
// error
console.log(error);
// 処理成功
alert(‘正常処理削除対象データはありませんでした’);
});
});
}
}
kintone.app.record.getSpaceElement(‘my_space_field100’).appendChild(btn);
});
})();
たしかにforの中でkintone.api()を利用してますが、returnいているので1回目でおわってそうですね。
ためしてませんが、まずはreturnを削除するといいとおもいます。
別のトピックからですが、イメージは下記のようになります。(for文でやる場合。Promise.allを使う方法などもあります。
https://developer.cybozu.io/hc/ja/community/posts/204669873/comments/206656136
ご回答ありがとうございます。
ご提供いただきました情報を参考に確認してみます。