ルックアップしたレコードから、値を取得したいが、エラーになってしまいます。

こんにちわ。
初心者ながら、こちらのコミュニティを参照しながら、勉強中です。

・【従業員一覧アプリ】に、「従業員名」と「年齢」のデータが入っている

・【年齢検索アプリ】にて、従業員の名前を入れ、取得ボタンを押すと、
【従業員一覧アプリ】を参照して、データがあれば、
「年齢」の文字列ボックスに表示したい

ということをしたいです。

下記を参照しながら、いろいろやってみたのですが、うまくいきません。


(() => {
‘use strict’;
const appId = kintone.app.getLookupTargetAppId(“従業員一覧”);
kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’

], (event) => {
    const getButton = document.createElement('button');
    getButton.id = 'get_button';
    getButton.innerText = '取得';
    getButton.onclick = function() {
        // ボタンをクリックした処理を記述する
        let updateName =`` ;
        // レコードの値を取得する
        const rec = kintone.app.record.get() ;
         // 取得したレコードの値の中から更新日時の値を取り出す
        if (rec) {
            updateName = rec.record.従業員名.value ;
            console.log(`従業員名は` + updateName) ;
            // ルックアップ先アプリID指定
            const appId = 55;
            console.log(`appIDは` + appId );
            const params = {
                app : appId,
                // ログイン名をキーにしたクエリ
                query : `名前 ="` + updateName + `"` 
            
                };
                // REST APIでルックアップ先のレコードを1件取得
            kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params, function (resp) {
                if (resp['records'].length === 1) {
                    var updateAge =`` 
                    **updateAge = resp.record.年齢.value ;**
                    console.log(`年齢は` + updateAge)
                    alert('ヒットしました');
                    // マスタに該当レコードがなかった場合のエラー表示
                } else {
                    alert('ヒットしないか、検索対象が複数あります。');
                }
            });
        }
    };
    const spaceField = kintone.app.record.getSpaceElement('space_field');
    spaceField.appendChild(getButton);
    return event;
    });
})();

の**updateAge = resp.record.年齢.value ;**で添付のような
エラーが起きているようです。
恐らく型がちがう?数値?文字列?

その他も含め、いろいろなサイトのプログラムを参考に
つぎはぎしておりますので、おかしな部分も多々あるかと思います。
初心者なので、よくわからず、ご教示いただけるとありがたいです。

'/k/v1/records'

を使ってレコード複数件を取得しようとしていますね(取得件数はクエリの指定により1件かもしれませんが)。

ですので、「×」がついている32行目のコードを

updateAge = resp.record.年齢.value;

updateAge = resp.records[0].年齢.value;

に変更してみるとどうでしょうか?

※※※また、こちらはコードと直接関係ありませんが…※※※
画像左上に、御社サブドメインの記載があります。
個別情報になるかと思いますので、削除のうえ画像を再アップした方がよさそうです。

ご回答いただきありがとうございます。
3日悩んだのですが、そういうことだったのですね!!
おかげさまで取得までうまくいきました。

updateAge = resp.records[0].年齢.value ;
console.log(年齢は + updateAge) ;
rec.record.年齢.value = updateAge ;
return event;

コンソールログでは、updateAgeまできちんと取得できているので、
あとは、それを年齢の文字列ボックスに埋め込むだけなのですが、
こちらがうまくいきません。

3行目の記載なにかおかしいでしょうか…

※画像の件ありがとうございました。全然気づきませんでした。
修正しておきました。

1 Like

色々とやってみましたが、下記にて実装できました。

                    updateAge = resp.records[0].年齢.value ;
                    rec.record.年齢.value = updateAge ;
                    kintone.app.record.set(rec) ;

ありがとうございました。

1 Like

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