別アプリにテーブルデータの追加について

取得したデータを別アプリのテーブルに追加したいのですが、

下記のコードですと追加されず上書きされてしまいます。

 

改善方法をご教示頂ければ幸いです。

 

(function () {

 

    “use strict”;

  

    // 在庫アプリ操作

    var syohinDao = {};

    syohinDao.APP_ID = 373;

  

    // 新規レコードの保存イベント

    kintone.events.on(‘app.record.create.submit’, function (event) {

  

      var tabRec = event.record.入出庫.value;

      return kintone.Promise.all(tabRec.map(function(row){

        console.log(tabRec.length);

  

        var record = event.record;

        var params = {

          “app”: syohinDao.APP_ID,

          “query”: ‘部品コード ="’ + row.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 (row.value[‘入庫数’][‘value’]) {

              updQuantity = Number(syohinRecord[‘在庫数’][‘value’]) + Number(row.value[‘入庫数’][‘value’]);

            }

            // 出庫、等の場合

            if (row.value[‘出庫数’][‘value’]) {

              updQuantity = Number(syohinRecord[‘在庫数’][‘value’]) - Number(row.value[‘出庫数’][‘value’]);

            }

            if (updQuantity < 0) {

              // 更新後の在庫数がマイナスになる場合はエラーにして中断

              alert(“在庫が足りません。”);

              row.value[‘出庫数’][‘error’] = “在庫が足りません。”;

              event[‘error’] = “在庫が足りません。”;

              return event;

            }

  

            // 更新パラメータ

            var params2 = {

              // 商品アプリ番号

              “app”: syohinDao.APP_ID,

              // レコード番号

              “id”: syohinRecord[‘$id’][‘value’],

              // レビジョン

              “revision”: syohinRecord[‘$revision’][‘value’],

              // 登録データ

              “record”: {

                  “在庫数”: {

                  “value”: updQuantity

                  },

              //テーブルデータの追加

              “詳細情報”: {

                  “value”: [{

                  “value”: {

                  “日付”: {“value”: row.value[‘入出庫日’][‘value’]},

                  “入庫”: {“value”: Number(row.value[‘入庫数’][‘value’])},

                  “出庫”: {“value”: Number(row.value[‘出庫数’][‘value’])},

                  “会社名”: {“value”: record[‘会社名’][‘value’]}

                  }

                  }]

                }

              }

            };

          }

        }).catch(function (resp) {

          alert(“商品レコードを取得できません。”);

          event[‘error’] = “商品レコードを取得できません。”;

          return event;

        });

      })).then(function(){

        return event;

      });

    });

  })();

こんにちは!

 

テーブルデータを、追加したい場合は

更新パラーメータ(var param2=~~の"詳細情報"のところ)に、

追加するデータだけではなくて、もともとあるテーブルデータも一緒に書いておく必要があります!

↓こちらのページの「テーブルの最後に値を追加する」が参考になるかと思います^0^!

https://developer.cybozu.io/hc/ja/articles/200752984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF

追加するデーブルのID取得方法が分かりません。

IDを決め打ちの場合は、追加されるのですが…

var params2 = {
// 商品アプリ番号
“app”: syohinDao.APP_ID,
// レコード番号
“id”: syohinRecord[‘$id’][‘value’],
//“id”: 2,
// レビジョン
//“revision”: syohinRecord[‘$revision’][‘value’],
// 登録データ
“record”: {
“在庫数”: {
“value”: updQuantity
},
“入出庫詳細情報”: {
“value”: [{
“value”: {
“id”: 1,
“日付”: {“value”: row.value[‘入出庫日’][‘value’]},
“入庫”: {“value”: Number(row.value[‘入庫数’][‘value’])},
“出庫”: {“value”: Number(row.value[‘出庫数’][‘value’])}
}
}]
}
}
};

 

 

テーブルIDの取得方法とは、テーブルの行のIDの取得方法のことでしょうか?

追加先のテーブルの情報を取得すると、下図のように行に1つずつidがついていると思います。

参考になれば幸いです!

※下図はconsole.log(event.record);でテーブルの中身を見たものになります・・・。

juridon様 ご回答誠にありがとうございます。

説明不足で大変申し訳ありません。
テーブルAから、テーブルBにデータを追加しようとした時、
テーブルBの最終行にデータを追加する方法が知りたいです。

ソースを見た感じですが、

アプリIDが373のアプリのテーブルA

から

JavaScriptを設置しているアプリのテーブルB

に行を追加したいのですよね?

(var param2が何をするためのパラメータなのかはわからないですが:sweat_drops:

 

とすると、テーブルBは「event.record」でレコードの情報をとってこれるので

event.record.テーブルB.value.push({追加したいテーブルの中身})

みたいな感じにpushして最後return event; だと思います。

 

↓こちら、テーブル操作でとても参考になるので、試されてみてくださいね^0^

https://developer.cybozu.io/hc/ja/sections/360002613651