あるファイルのフラグを一括で更新したいのですが、
レコードの一括更新のAPI説明には
ひとつずつ配列に記述してputとなっています
https://developer.cybozu.io/hc/ja/articles/201941784#step2
ファイルを1件読み込んで更新という方法をしたくてコードを組みましたが
結果はうまく行ったのですが、JSEdit for kintoneのワーニングエラーで
「Dont’ make functions with in a loop」
と表示されるのでダメな記述なんだろうなと思っています。
結果は全部更新されていますが、動きの順番が??です。
console.log で結果を見るとなぜこんな動きなのか。
どう書くのが正しいのでしょうか?
また、更新した件数をreturnで戻し、その値で再表示を行いたいのですが
読込みや更新の前にreturn処理が行われ、件数を受け取れません。
↓console結果
kintone.events.on(‘app.record.index.show’, function (event) {
let vButton = document.getElementById(‘button’)
//一括オフ クリック時
vButton.onclick = function () {
console.log(“onclick 1”);
vPutCnt = ApKanriAllPut(0) ;
console.log(“onclick 2”);
if (vPutCnt > 0) {
location.reload();
}
return ;
}
});
function ApKanriAllPut(vFlg){
let vPutCnt = 0 ;
//自分のアプリID
let vMyId = kintone.app.getId() ;
//パラメータ
let requestParam = {
‘app’: vMyId ,
‘query’: kintone.app.getQuery()
};
console.log(“Get Mae”);
//対象のレコードを読み込む
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, requestParam,
function(resp) {
for (let i=0 ; i < resp.records.length ; i++) {
let vRecId = resp.records[i].レコード番号.value ;
//パラメータ
let requestParam1 = {
‘app’: vMyId ,
‘id’: vRecId ,
‘record’: {
‘フラグ’: {‘value’: vFlg }
}
};
console.log(“i=” + i + " " +“id=” + vRecId) ;
//指定レコードIDを更新する
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, requestParam1,
function(resp1) {
console.log(“i=” + i + " " + “PUT OK” + " Recid=" + vRecId) ;
vPutCnt = vPutCnt + 1 ;
} ,
function(err1) {
console.log(“PUT NG”) ;
}
);
}
} ,
function(err) {
console.log(“GET NG”) ;
}
)
console.log(“Return Mae=” + vPutCnt);
return vPutCnt ;
}