関連レコードの集計結果を他の項目へ一括セットする方法

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

こちらのサイトなどを参考に関連レコードを集計し、レコード編集時に[合計]という項目にセットするまでは実装できたのですが、

これだと1件ずつ編集→保存する必要があります。

レコード一覧画面などで一括更新ボタンなどを設置し、一括で登録できる方法はありますでしょうか?

[合計]までのセットは下記で実装しております。

(function() {
    'use strict';

    var events = [
          'app.record.edit.show'
    ];
    kintone.events.on(events, function(event) {
        var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('扶養計算用');
    var query = 'KEY="' + event.record['KEY'].value + '"';
        var outputFields = ['課税支給額合計'];
        var appUrl = kintone.api.url('/k/v1/records');

        var params = {
            'app': relatedAppId,
            'query': query,
            'fields': outputFields
        };

        var elementId = 'totalAmount';

        kintone.api(appUrl, 'GET', params, function(resp) {
            var amount = 0;
            for (var i = 0; i < resp.records.length; i++) {
                amount += parseFloat(resp.records[i].課税支給額合計.value);
            }

            
            var record = kintone.app.record.get().record;


          //var divTotalAmount = document.createElement('div');
          //var wString = String(amount.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'));
          //divTotalAmount.style.fontWeight = 'bold';
          //divTotalAmount.style.textAlign = 'right';
          //divTotalAmount.style.fontSize = 12;
          //divTotalAmount.innerHTML = '\\' + wString + '-';
          //kintone.app.record.getSpaceElement(elementId).appendChild(divTotalAmount);

            
           record['合計'].value = amount;
           kintone.app.record.set({record: record});


           return event;
        });
    });
})();

 

QG.Kさん

こんにちは。

 

レコード操作の流れとしては

①:レコードを全件取得(GET API)

取得した各レコードに対して以下②③を全件ループ

②:レコード番号Nをもとに関連レコードを全件取得(GET API)

③:レコード番号Nと②の集計結果を配列に格納

④:③の配列をリクエストパラメータとして全件更新(PUT API)

 

ボタンの設置はチュートリアルをご覧ください。

第2回 レコード一覧画面にボタンを置いてみよう!

 

趣旨は異なりますが、各レコードに対して関連レコードを取得する方法が以下にあります。

関連レコードのデータをCSV出力する方法

記事がだいぶ前のものですので全件処理するAPIは

「fetchRelatedRecords」のような書き方ではなく「kintone JavaScript Client」を使うとシンプルに書けます。

kintone JavaScript Client (@kintone/rest-api-client)

koichi様

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

レコード操作の流れをご提示いただきありがとうございます!

提示いただいた流れで進めてみたいと思います。

 

また関連レコードの取得方法やkintone JavaScript Clientのご紹介ありがとうございます。

js初心者でいろいろなサイトを参考にしながら構築しておりましたので、非常に有益な情報でした。

ありがとうございます!!