別アプリから取得したテーブルデータがフィールドに入らない。エラーを返される。

kintone REST API を使って、別アプリから必要なデータを取得しました。
取得はどうにか完了したのですが、肝心のデータが目的のフィールドに入りません。
厳密に言うと、入れようとするデータ数が文字列フィールドの数よりも少ない場合、
エラーを返されてしまいます。
コンソールで確認すると、入れようとしているデータ自体は正常に表示されているので、あと1歩(のはず)なのですが…。

実装したい機能は、別アプリから取得したテーブルデータの一部を文字列フィールドに各々コピーしたいというものです。取得までは、出来ていると思います。

以下、エラー文です。
Uncaught TypeError: Cannot read properties of undefined (reading ‘別アプリのテーブルコード’)

記述コードは以下になります。

kintone.api(kintone.api.url('/k/v1/records', true),'GET', Getbody,(Resp)=>{

            const Get = kintone.app.record.get();

            //別アプリから取得したデータを格納
            const TableData = Resp.records[0].別アプリのテーブルコード.value;

    // データを入れたい文字列フィールドが10個あります。
            const Result_Names =[
                Get.record.Result_Name01.value,Get.record.Result_Name02.value,Get.record.Result_Name03.value,
                Get.record.Result_Name04.value,Get.record.Result_Name05.value,Get.record.Result_Name06.value,
                Get.record.Result_Name07.value,Get.record.Result_Name08.value,Get.record.Result_Name09.value,
                Get.record.Result_Name10.value
            ];

    // エラーで「undefined」を入れるなと言われるため、取得したデータの数だけ処理します。
            for (let i = 0; i < TableData.length; i++){

                Result_Names[i] = TableData[i].value.Name.value;
            }

            kintone.app.record.set(Get);

        }, (Error)=>{
            console.log(Error);
});

情報不足の場合は追記しますので、教えてください。
まだまだ駆け出しの初心者なため、及ばない点が多いですが、何卒ご教授のほど
宜しくお願い致します。

厳密に言うと、入れようとするデータ数が文字列フィールドの数よりも少ない場合、
エラーを返されてしまいます。

ということは、入れようとするデータ数が文字列フィールドの数より多い場合はうまくいくんでしょうか?
この書き方だと逆に入れようとするデータ数(別アプリのテーブルのデータの数)を超えても、自アプリのフィールドの数がたらずに(配列がたりずに)エラーになってしまいそうですがどうでしょうか。

テーブルの行が10より多い場合、無視することになりますが、自分ならこうしますかねぇ…
padStart関数と
optional chaningをつかってみました
※動作確認はしてません

kintone.api(kintone.api.url('/k/v1/records', true),'GET', Getbody,(Resp)=>{

            const Get = kintone.app.record.get();

            //別アプリから取得したデータを格納
            const TableData = Resp.records[0].別アプリのテーブルコード.value;

            for (let i = 1; i < 11; i++){
                // i.toString().padStart... iをtoStringで文字列にしてpadStartで0うめ
                // TableData[i]?.value.Name.value... ?をいれることでテーブルの行数が足りない場合は無視する
                Get.record["Result_Name"+i.toString().padStart(2, '0')].value = TableData[i]?.value.Name.value ?? '';
            }

            kintone.app.record.set(Get);

        }, (Error)=>{
            console.log(Error);
});
「いいね!」 2

ご返信ありがとうございます。
確認しましたところ、入れるデータ数の方が多い場合でも、同様のエラーが表示されました。

また、頂いたコードを動かしてみたところ、TableData[0]?.value.Name.value のみが
フィールドにコピーされなかったため、アプリのフィールドコードと記述コードを以下のように調整することにより、無事に値が入りました!

for (let i = 0; i < 10; i++)

オプショナルチェーンや Null 合体演算子など、大変勉強になりました。
本当にありがとうございました!!

このトピックは最後の返信から 60 分が経過したので自動的にクローズされました。新たに返信することはできません。