for文内でGETをしているのですが、動作が思うように行きません。
Aアプリのサブテーブルレコード(max50件)をfor文にて、1レコードずつBアプリを検索(GET)し、該当データが存在すれば、Bアプリの該当レコードに更新します。
GET後、存在チェックを行い、function_PUTへ飛ばしたいのですが、
デバッグすると、①をレコード数分実行し、その間②はスキップされます。その後、forが終了してから、②をレコード数分実行しています。
当然、引き渡したい配列の添字i はfor文の抜けた数字となっているため、配列が該当せずがエラーとなります。
同じような質問も見受けられたのですが、この方法ではできない or イベント処理内では可能等、と回答にバラつきがありましたので、質問させていただきました。
for文は、kintone.events.onのプロセス管理の変更イベント内で記載しています。
for (var i = 0; i < length; i++) {
var Query = “コード = "” + event.record[i].value[“コード”].value + “"” ; -①
var GET_param = {‘app’: AppId,‘query’: Query};
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, GET_param).then(function(resp) {
//GET成功時 -②
if (resp.records.length > 0) {
// レコード存在時には別関数にて「PUT」する
function_PUT(event, i, resp);
} else {
//該当データなし
console.log(resp.message);
return event;
}
},function(resp) {
//GET失敗時
console.log(resp.message);
return event;
});
}