# 別アプリへ入力、登録したレコードから計算後のフィールド値を取得したい

**URL:** <https://community.cybozu.dev/t/topic/5794>\
**Category:** kintone 開発相談\
**Created:** [2022 年 3 月 11 日午前 7:22 UTC](https://community.cybozu.dev/t/topic/5794 "2022-03-11T07:22:13Z")\
**Posts on this page:** 6\
**Page:** 2

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 3 月 29 日午前 2:15 UTC](https://community.cybozu.dev/t/topic/5794/21 "2022-03-29T02:15:15Z")

</div>

G.Qさん

PUTは不要ですが、GETは要りますね。

async/awaitを使うと、もう少しシンプルな書き方になります。

```
(function() {

"use strict";

  kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], async function(event) {

    try {

      // アプリIDの取得
      // レコード番号の取得
      console.log(event);

      // リクエストプロパティ(JSON)
      var params = {
        "app": 420,
        "record": {
          "日付": { "value": event.record.日付.value },
          "計量機No": { "value": event.record.計量機No.value },
          "連番": { "value": event.record.receipts.value[0].value.no.value },
          "担当者1": { "value": event.record.担当者1.value },
          "担当者2": { "value": event.record.担当者2.value },
          "サイズ名": { "value": event.record.receipts.value[0].value.サイズ名.value },
          "めっき種類": { "value": event.record.receipts.value[0].value.めっき種類.value },
          "単重1A": { "value": event.record.receipts.value[0].value.単重1.value },
          "単重2B": { "value": event.record.receipts.value[0].value.単重2.value },
          "個数1A": { "value": event.record.receipts.value[0].value.個数.value },
          "形態": { "value": event.record.receipts.value[0].value.形態.value },
        }
      };

      // kintone REST API リクエスト ～ レコードの登録（POST）
      const postResp = await kintone.api(kintone.api.url('/k/v1/record', true), 'POST', params);

      // GETリクエストプロパティ(JSON)
      var params = {
        "app": 420,
        "id": postResp.id // POSTした結果のレコード番号
    };

      // kintone REST API リクエスト ～ レコードの取得（GET）
      const getResp = await kintone.api(kintone.api.url('/k/v1/record', true), 'GET', params);

      event.record.receipts.value[0].value.単重計算後.value = getResp.record.単重計算後.value;
      return event;

    } catch (e) {
      // エラー
      return event;
  }

  });

})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2879](https://avatars.discourse-cdn.com/v4/letter/l/7bcc69/32.png) [@Legacy\_Account2879](https://community.cybozu.dev/u/Legacy_Account2879)\
**Post date:** [2022 年 3 月 29 日午前 4:54 UTC](https://community.cybozu.dev/t/topic/5794/22 "2022-03-29T04:54:00Z")

</div>

koichiさん

上記で実装できました!

何から何まで本当にありがとうございました‼

この延長にはなるのですが、

①行追加した場合などサブテーブル行ごとに同じように実装は可能でしょうか。

②サブテーブル行追加の「⊕」ボタンを押したタイミングで起動、プログラム処理し保存させることは可能でしょうか。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 3 月 29 日午前 6:45 UTC](https://community.cybozu.dev/t/topic/5794/23 "2022-03-29T06:45:35Z")

</div>

G.Qさん

まずは解決されて何よりです。

&nbsp;

行追加時にも実装は可能ですが、いくつか問題があります。

&nbsp;

①行追加時に、どの行が追加されたかが、標準イベントでは取れないため

それを識別する方法を考える必要があります。

&nbsp;

②行追加で発火させると、＋を押す度に毎回POST処理になるため

不要なレコードが登録される可能性があります。

&nbsp;

例えば、今と同じくsubmitイベント内で

テーブル全行をまとめてPOSTして、各行を更新するといったことも可能ではあります。

これについても、既にPOSTした行は何もしない、といった処理が必要だったりします。

&nbsp;

POST先のアプリとの連携も考慮いただいた上で

どのタイミングでAPIを発火させると最適か、検討してみてください。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2879](https://avatars.discourse-cdn.com/v4/letter/l/7bcc69/32.png) [@Legacy\_Account2879](https://community.cybozu.dev/u/Legacy_Account2879)\
**Post date:** [2022 年 3 月 30 日午前 12:31 UTC](https://community.cybozu.dev/t/topic/5794/24 "2022-03-30T00:31:21Z")

</div>

koichiさん

返信ありがとうございます。

運用的には保存時に、すでにPOSTしている行を省き、テーブル全行をまとめてPOSTし更新させる

方法が最適だと考えています。コード的には、どの辺を追記・修正する必要がありますか？

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 3 月 30 日午前 1:30 UTC](https://community.cybozu.dev/t/topic/5794/25 "2022-03-30T01:30:48Z")

</div>

G.Qさん

まずは以下のような修正が必要でしょう。

&nbsp;

①テーブル構成について

既にPOSTしたかどうかを判定するために、POST完了した際のレコード番号を格納する列フィールドが必要です。

↓ テーブル列（例）

レコード番号 ｜ めっき種類 ｜ 形態 ｜ ケース数 ｜ ・・・

レコード番号の位置はどこでも良いです。

&nbsp;

②POST・GETについて

テーブルをforループしながら、レコード番号が無い行（POSTしていない行）に対して

上記のPOST・GET処理をすれば実装できます。

単重計算後に加えて、POST完了のレコード番号もテーブルに格納します。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 5 月 27 日午前 6:27 UTC](https://community.cybozu.dev/t/topic/5794/26 "2025-05-27T06:27:39Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。

[前のページ](https://community.cybozu.dev/t/topic/5794.md?page=1)
