仕入アプリのサブテーブルレコードの値を在庫管理アプリの在庫に反映できない

お世話になっております。

初歩的な質問で申し訳ございません。

kintone.Promiseとは – cybozu developer network を参考にしながら仕入アプリのサブテーブルに作成した商品の数量を在庫管理アプリに反映していくカスタマイズを作成しているのですが、繰り返し処理ができなくて、サブテーブルのi=0番目の在庫しか反映されません。

申し訳ございませんが、どこが間違っているのかわかる方がおられましたら、ご教授のほどよろしくお願いいたします。

 

(function() {

    “use strict”;

    var events = [

        ‘app.record.create.submit’,

        ‘app.record.edit.submit’,

        ];

    kintone.events.on(events, function(event) {

        var record = event.record;

        var tableRecords = event.record.仕入明細.value;
//テーブルのフィールドコードは仕入明細

        for (var i = 0; i < tableRecords.length; i++) {

        // 在庫管理アプリのアプリIDと商品コードが同じレコードを取得

        var params = {

            ‘app’:134,

            ‘query’: ‘商品コード = "’ + tableRecords[i].value.商品コード.value + ‘"’

          };

          return new kintone.Promise(function(resolve, reject) {  

            kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, params , function(resp) {

               

                // 在庫から仕入数量だけ足す

                var zaiko =  resp.records[0].在庫.value + Number(tableRecords[i].value[“数量”].value);

               

                if (zaiko < 0) {

                    record.在庫連携.value = “エラー”;

                    resolve(event);

                } else {

                    var body = {

                        “id”: resp.records[0].$id.value,

                        “app”: 134,

                        “record”: {

                            “在庫”: {

                                “value”: zaiko

                            }

                        }

                    };

                    kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function() {

                        record.在庫連携.value = “連携済”;

                        resolve(event);

                    });

                }

            });

        });

        }

    });

})();

 

Promiseを繰り返しやりたい場合は、下記のようにPromise.allを利用するのが良いと思います

https://tech.nerune.co/other/kintone-promise/
※「Lv2. 複数のapi結果を待つ」の章