アプリ連結の後の値の代入について。

プログラム初心者です。

radioボタン変更時にAアプリからBアプリの値をGETしてBアプリの情報によってAアプリのフィールドを可視化するかどうかの判断と文字列フィールドに値の代入をループ処理によって行いたいのですが、可視化の判断は上手く動いておりますが、値の代入に関しては、console.logでは代入したい値が取れているにも関わらず、どうしても、その値がフォームには入ってくれません。色々調べて、何日も頑張ってみましたが動かず困っております。

お分かりの方がおられましたら御指導頂けますように宜しくお願いします。

    const eventsSubmit = [

    'app.record.create.change.radio\_main',      //メインラジオボタン変更時の処理

        ];

        

      kintone.events.on(eventsSubmit, function(event) {

        var record = event.record;

  

  // app設定用アプリからデータ取得

  

    let body = {

     'app': 10,

    };

          

     kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body,function(resp) {

  

      //app設定用アプリのテーブルの値を変数に代入

  

        const SettingArray =resp.records[0].app設定テーブル.value;

// メインラジオボタン の値によって表示するグループフィールドを変更する操作

// ラジオボタンの値とフィールドの値が同じなら、フィールドコードで表示、非表示の切替

     const btnMainValu = record.radio\_main.value; 




   for&nbsp;(let&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\<&nbsp;SettingArray.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;   if(SettingArray[i].value.設定値2.value&nbsp;===&nbsp;btnMainValu)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;    kintone.app.record.setFieldShown(SettingArray[i].value.フィールドコード.value,&nbsp;true);

&nbsp;&nbsp;    record['moji\_bunrui'].value&nbsp;=&nbsp;record.radio\_main.value

&nbsp;     //代入はできていないが、console.logでは値がとれている。

&nbsp;     console.log(record['moji\_bunrui'].value)

&nbsp;  }

&nbsp;&nbsp;&nbsp;&nbsp;});

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;event;

&nbsp;&nbsp;});

GETリクエストの非同期処理がうまくいっていないものと思われます。

下記の記事を参考にしてみてください。

https://developer.cybozu.io/hc/ja/articles/204564604

(Promiseを必ずしも使う必要はなく、「kintone.api コールバック関数省略版」を参考にしていただくといいのかなと思います)

Taiki Tsujimoto

ありがとうございます。

 return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body).then(function(resp) {

 

こちらに書き換えたり色々試したのですが、

Uncaught Error: app.record.create.change.radio_main is not allowed to returnのエラーが出てどうしても値の代入をしてくれませんでした、もし具体的に修正が必要なコードがわかりましたら教えて頂けますと助かります。

GET処理内に

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

でレコードを取得し、処理の最後に

kintone.app.record.set(record);

でセットします。

mionixさん

record.set()することで、上手く動かせる様になりました。

本当に助かりました。

mionixさん、Taiki Tsujimotoさん

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