submit時の値更新がうまく動かない件について

お世話になります。
「ユーザ選択」項目に値更新をしたのですが、console上では値がセットされていますが画面上では保存後の値を確認しても値がセットされません。

上記の原因についてUserAPIを使用しているのでうまく動かないのかわかりません。
どなたかご教授よろしくお願いいたします。

(() => {

    // レコード新規作成時 "app.record.create.show",  
    kintone.events.on(["app.record.create.submit"], function (event) {

        let loginUser = kintone.getLoginUser();
        console.log(loginUser);
        let loginId = kintone.getLoginUser()['id'];
        console.log(loginId);

        return kintone.proxy(url, 'GET', headers, data, function (respJson) {
            let resp = JSON.parse(respJson);
            console.log('resp', resp);

            let customItemValues = resp['users'][0]['customItemValues'];
            console.log('customItemValues', customItemValues);

            let PrimaryApprover = customItemValues.filter((item) => item.code === 'PrimaryApprover');
            console.log('PrimaryApprover', PrimaryApprover);
            let PrimaryApproverValue = PrimaryApprover[0].value
            //console.log(PrimaryApprover['0']['value']);
            console.log('PrimaryApproverValue', PrimaryApproverValue);
            let second = customItemValues.filter((item) => item.code === 'second');
            console.log('second', second);
            let secondValue = second[0].value
            console.log('secondValue', secondValue);

            console.log(event);

            return kintone.proxy(url, 'GET', headers, data, function (respJson) {

                const record = kintone.app.record.get();
                console.log(record);

                let resp = JSON.parse(respJson);
                console.log('resp', resp);
                let code1 = resp['users'][0]['code'];
                let name1 = resp['users'][0]['name'];
                console.log(code1);
                console.log(name1);

                //1次承認者
                record.record['_1次承認者'].value = [
                    {
                        code: code1,
                        name: name1
                    }
                ];
                //kintone.app.record.set(record);

                return kintone.proxy(url, 'GET', headers, data, function (respJson) {
                    let resp = JSON.parse(respJson);
                    console.log('resp', resp);
                    let code2 = resp['users'][0]['code'];
                    let name2 = resp['users'][0]['name'];
                    console.log(code2);
                    console.log(name2);

                    console.log(event.record['_1次承認者']['value']);

                    //2次承認者
                    record.record['_2次承認者'].value = [
                        {
                            code: code2,
                            name: name2
                        }
                    ];
                    console.log(event.record['_2次承認者']['value']);

                    kintone.app.record.set(record);

                   

                    var body = {
                        'app': appId,
                        'id': recordId,
                        "record": {
                            "_1次承認者": {
                                "type": "USER_SELECT",
                                "value": [
                                    {
                                        code: code1,
                                        name: name1
                                    }
                                ]

                            },
                            "_2次承認者": {
                                "type": "USER_SELECT",
                                "value": [
                                    {
                                        code: code2,
                                        name: name2
                                    }
                                ]

                            }
                        }
                    };

                    console.log(body);
                    //レコードの作業者の更新
                    kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, (resp) => {
                        // location.reload(true);
                    }, function (error) {

                        // error

                        console.log(error);

                    });

                    console.log(event);
                    console.log("END");


                    return event;

                });

                return event;

            });


        });
    });

    kintone.events.on(['app.record.detail.show'], function (event) {
        console.log(event);

        return event;
    });

})();

こんにちは。
処理内に認証情報を記載しちゃうのはよくないので、
早急に認証情報を省いた処理に書き換えてください。

「いいね!」 1

kintone.proxy のコールバック関数に書いた処理はイベント終了後に実行されるのと、
ユーザー選択フィールドに設定した値を反映する処理が存在しないので、
記載いただいた処理ではフィールド値は更新されないかと思います。

フィールド値の書き換え処理については、以下のページなどが参考になるかと思いますよー

ko_ji様
ご返信ありがとうございます。
認証情報部分は削除しました。ありがとうございます。

「いいね!」 1

ko_ji様
ご回答ありがとうございます。

>>kintone.proxy のコールバック関数に書いた処理はイベント終了後に実行される
上記を踏まえると今回の場合、submit,succeessで更新する必要がある認識でよろしいでしょうか?

async/await を利用して、API のレスポンス内容を変数に代入して、
後続の処理を実行すれば、app.record.create.submit で希望の動作は可能かと思いますよ。

回答ありがとうございます。

返信頂いた内容ですが、「async/await」が自体があまり使用したことがなく、asyncはイベントハンドラーの前に追記すればいいと思うのですが、await部分が今回だとどこに該当するかが少し漠然としています。

kintone.proxy のページでも await が付いたリクエスト例の記載があるのですが、
以下のような処理で「async/await」を利用可能です。

(() => {
  "use strict";
  kintone.events.on(["app.record.create.submit"], async function (event) {
    const resp = await kintone.proxy('https://api.example.com', 'GET', {}, {});
  });
})();

上記のような処理で、resp 変数に入った値を利用して、
フィールド値の書き換え処理を実行してあげるとうまく動作するかと思います。

上記承知しました。一度試してみます。
ありがとうございます。