関連レコード一覧の値取得について

###実現したいこと
現在、関連レコード一覧から従事時間を集計して、別フィールドに出力できており、追加で関連レコード一覧内の「契約サイクル」フィールドにおいて(定期(複数の表現あり)と不定期が表示されています)定期が1つ以上あれば、「契約サイクル判定」フィールドに「定期」と表示させたいです。
よろしくお願いいたします。

発生したエラー

定期が1つ以上あった場合、下記エラーが出ます。
Uncaught TypeError: Cannot read properties of undefined (reading ‘value’)

実行したコード

(function () {
    "use strict";
    kintone.events.on([
        'app.record.edit.show'
    ], function (event) {

        const appId = kintone.app.getRelatedRecordsTargetAppId("活動履歴");
        const query = '該当物件_物件毎集計用="' + event.record['企業名・団体名'].value + '"'; //物件APPの時のクエリ条件 「活動履歴」参照先アプリのフィールドコードが左側、JSを置くアプリのフィールドコードが右側

        const body = {
            'app': appId,
            'query': query
        };
        kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function (resp) {
            let sum = 0;
            let teiki = 0;
            resp.records.forEach((record) => {
                sum += record['従事時間'].value ? parseFloat(record['従事時間'].value) : 0;

                //関連レコード内の契約サイクルに「定期」が一つでもあれば、「契約サイクル判定」フィールドに「定期」と出力
                if (record['契約サイクル'].value != '不定期') {
                    teiki = teiki++;
                }

            });

            if (teiki > 0) {
                event.record['契約サイクル判定'].value == '定期';
            }

            event.record['合計従事時間'].value = sum;
            kintone.app.record.set(event);
        });

        return event;
    });

})();

エラーと直接関係があるかは分かりませんが、コードを拝見し気になった点は以下の通りです。

①「teiki = teiki++;」 の行は「teiki = 」の部分を削除し「teiki++;」のみで十分かと思います。

②「event.record[‘契約サイクル判定’].value == ‘定期’;」の行はイコールは1つでいいと思います。

たねまき様

お世話になっております。
ご指摘頂き、ありがとうございます。
修正した結果、今回のエラーと直結はしていませんでした。
引き続きよろしくお願いいたします。

エラーメッセージの意味としてはvalueが未定義のプロパティだということなので、各フィールドコードがソースコード記載のものと一致しているかどうかを今一度確認されてみるのが最善かと思います。

1 Like

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