新規投稿
フォローする

ラジオボタン変更時に値の代入が他のアプリと繋げたら動かない。サブテーブルクエリの書き方

Aアプリのラジオボタンの選択肢によって別アプリBのテーブルを参照してテーブルに書かれた名前と同じフィールド名のフィールドをAアプリで可視化するように作成しています。

そこまでは動いているのですが、同じタイミングでループ回数を数値フィールドに代入したいのですが上手く動きません。

もっと言うと値の代入を直接ループ回数など関係なく直接書いても値の代入が反応してくれなくなりました。

他のアプリを参照する作りに変更するまでは値の代入は直接記入であれば出来ていたのですが、どうしても動きません。

どなたかわかる方がおりましたら、教えて頂ければと思います。

後、フィールドがOPENになった時のループ回数の取り方

今は、Bアプリのテーブルの数値を取れているので、そのままにしておりますが、試しい書いたクエリも上手く動いてくれておりません。

そちらの書き方も教えて頂けると助かります。

どれか1つだけでもわかる方がおりましたら、ご回答を宜しくお願い致します。

const eventsSubmit = [

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

        ];

        

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

        const record = event.record;

  

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

  

    let body = {

     'app': 10,

    'query': 'フィールドID in ("001","002","003","004","005")',

     //'fields': ['フィールド名', 'フィールドタイプ']

    };

          

          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 (let i = 0; i < SettingArray.length; i++) {      

//Bアプリから設定値2の値とラジオボタン btnMainValuの比較

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

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

// ['bunrui_id'].valueに回数を記入

  ['bunrui_id'].value = [i]




 }

    });

    return event;

  });
 
0

3件のコメント

Avatar
juridon

こんにちは!

最後の方の

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

    return event;

のところですが、

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

sample.js(kintone.api コールバック関数省略版)
の23行目からのコードを参考にされるといいかもです。(kintone.apiの前にreturn&return eventはfunction(resp){}内に)

それと
// ['bunrui_id'].valueに回数を記入
  ['bunrui_id'].value = [i]

は、なんか違うと思います;;

0
Avatar
zah

こんばんはjuridonさん

見習って何度も試しましたが、Uncaught Error: app.record.create.change.radio_main is not allowed to returnのエラーが出てどうしても値の代入をしてくれませんでした。

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

then自体動いてもらえません。

プログラム初心者なので理解に乏しいかもわかりませんが、何かわかることがありましたら宜しくお願い致します。

0
Avatar
juridon

あ~!!フィールド値(ラジオボタン)変更時のイベントですね(><)よく見ていませんでした。
フィールド値変更イベントではkintone.Promiseのreturnができなくて正常に動きません。ですので、私の前回の回答は間違っていました。

混乱させてしまい申し訳ありません。


また、仕様がよく分からず、見当外れな回答かも知れないのですが(><)

もうひとつ、私が気になるのは↓ここです。

  ['bunrui_id'].value = [i]

これだとレコードに値が入らないと思います💦
record["bunrui_id"].value = i ;

のような感じになるかと思います。
また、ifを通った場合だけのカウントをしたいのでしたら、
if文のあとから{}をつけてrecord["bunrui_id"].value=i;までを括って、if文の中に入れてあげないと
繰り返した回数(SettingArray.length回分の値)になってしまうかと。

また間違っていたらゴメンナサイm(_ _)m

juridonにより編集されました
0
サインインしてコメントを残してください。