販売品管理アプリと在庫管理アプリがあり、販売品管理アプリのサブテーブルで利用数が入力されたら、在庫管理アプリのサブテーブルに追加する処理を行いたいです。
一通り記述したつもりなのですが、for文でうまく回らず販売品管理アプリのサブテーブル最初の1行分しか在庫管理アプリへ追加が出来ない状態です。
ソースコードのどこが不足しているのかご教授いただけないでしょうか。
■ソースコード
kintone.events.on(events5, function(event) { //作成画面と編集画面の保存後に実行
const record = event.record;
const year = record.年.value;
const month = record.月.value;
const sellItemTable = record.販売品.value
for (var o = 0; o < sellItemTable.length; o++) { //ここのfor文サブテーブルに5行分のデータが入っていたとしてもが1回で終わってしまう
const getsellItemDays = sellItemTable[o].value[“販売品_日付”].value
const getsellItemID = sellItemTable[o].value[“利用品ID_販売品”].value
const getsellItemUse = sellItemTable[o].value[“販売品利用数”].value
const getsellItemlineID = sellItemTable[o].value[“行ID_販売品”].value //販売品管理のサブテーブル1行ずつに一意のコードを割り当て済み
//在庫アプリの年・月・利用品IDが一致するレコードを探す
const paramForGetStock1 = {
‘app’: stockAPP_ID,
‘query’: ‘年 in ("’ + year + ‘“) and 月 in (”’ + month + ‘") and 利用品ID = "’ + getsellItemID + ‘" limit 500’,
}
return kintone.api(kintone.api.url(‘/k/v1/records’,true), ‘GET’, paramForGetStock1).then(function (resp) {
console.log(“GETの後:” + o);
console.log(resp);
if(!resp.records.length) return;
//在庫管理アプリ出庫テーブル取得
resp.records.forEach(function(record) {
const syukkoTable = record[“出庫”].value;
//在庫管理アプリ出庫テーブルのID(列)を取得
let syukkoTable_ID = [];
for (var m = 0; m < syukkoTable.length; m++) {
syukkoTable_ID[m] = syukkoTable[m].value[“ID”].value;
}
let appended_subtable = [];
let subtable = [];
//在庫アプリの出庫テーブルの中に利用管理のサブテーブルと同じ行IDがあるか。無ければ追加。あれば追加しない。
if (!syukkoTable_ID.includes(getsellItemlineID)) {
for (let n = 0; m < syukkoTable.length; m++) {
subtable.push(syukkoTable[m]);
}
subtable.push({
value: {
“出庫日付”: {
“value”: getsellItemDays
},
“出庫数”: {
“value”: getsellItemUse
},
“ID”: {
“value”: getsellItemlineID
}
}
});
const paramForPut1 = {
“app”: stockAPP_ID,
“id”: resp.records[0].$id.value,
“record”: {
“出庫日付”: {
“value”: getsellItemDays
},
“出庫数”: {
“value”: getsellItemUse
},
“ID”: {
“value”: getsellItemlineID
},
“出庫”: {
“value”: subtable
}
}
}
appended_subtable.push(paramForPut1);
subtable = subtable.concat(appended_subtable); // 既存と追加分のサブテーブルを結合
var put_record = {}; // レコード更新用オブジェクト
put_record[“出庫”] = {
value: subtable
}
return kintone.api(kintone.api.url(“/k/v1/record.json”, true), “PUT”, paramForPut1).then(function(resp) {
console.log(resp);
},
).catch(function(error) {
console.log(error);
});
}else {
}
})
})
}
window.alert(“在庫管理に反映しました。”);
return event;
});