I'm implementing the code below, but it quits all at once without looping
(function() {
“use strict”;
// 在庫アプリ操作
var syohinDao = {};
syohinDao.APP_ID = 373;
// 新規レコードの保存イベント
kintone.events.on(‘app.record.create.submit’, function(event) {
var tabRec = event.record.入出庫.value;
for (var i = 0; i < tabRec.length; i++) {
console.log(tabRec.length);
var record = event.record;
var params = {
“app”: syohinDao.APP_ID,
“query”: ‘部品コード ="’ + tabRec[i].value[‘部品コード’][‘value’] + ‘"’,
“fields”: [’$id’, ‘$revision’, ‘在庫数’]
};
console.log(params);
return kintone.api(’/k/v1/records’, ‘GET’, params).then(function(resp) {
var syohinRecord = resp[‘records’][0];
if (syohinRecord.length !== 0) {
var updQuantity = 0;
// 入庫、等の場合
if (tabRec[i].value[‘入庫数’][‘value’]) {
updQuantity = Number(syohinRecord[‘在庫数’][‘value’]) + Number(tabRec[i].value[‘入庫数’][‘value’]);
}
// 出庫、等の場合
if (tabRec[i].value[‘出庫数’][‘value’]) {
updQuantity = Number(syohinRecord[‘在庫数’][‘value’]) - Number(tabRec[i].value[‘出庫数’][‘value’]);
}
if (updQuantity < 0) {
// 更新後の在庫数がマイナスになる場合はエラーにして中断
alert(“在庫が足りません。”);
tabRec[i].value[‘出庫数’][‘error’] = “在庫が足りません。”;
event[‘error’] = “在庫が足りません。”;
return event;
}
// 更新パラメータ
var params2 = {
// 商品アプリ番号
“app”: syohinDao.APP_ID,
// レコード番号
“id”: syohinRecord[’$id’][‘value’],
// レビジョン
“revision”: syohinRecord[’$revision’][‘value’],
// 登録データ
“record”: {
“在庫数”: {
“value”: updQuantity
}
}
};
// 商品レコードを更新
return kintone.api(kintone.api.url(’/k/v1/record’, true), ‘PUT’, params2).then(function(resp2) {
alert(“商品レコードを更新しました。”);
}, function(resp2) {
alert(“商品レコードを取得できません。”);
});
}
}, function(resp) {
alert(“商品レコードを取得できません。”);
event[‘error’] = “商品レコードを取得できません。”;
return event;
});
}
});
});