新規投稿
フォローする

アプリ内のサブテーブルをJavaScriptで入力したときに取得できない

JSEditを使いkintoneのアプリをカスタマイズしています。
どうしてもうまくいかないところがあり質問させてください。

実現したいこと

アプリ内のサブテーブルをJavaScriptで入力したい。

問題:
一部のルックアップ要素がうまく設定できない。

 

エラー情報

コンソールにエラーは表示されていません。

詳細:
カスタマイズしているアプリにサブテーブル「テーブル_1」があり、
そのサブテーブルは各列に下記のような3要素あります。
・「Time1」というTIME項目
・「名前1」という文字列項目
・「場所1」という文字列項目

これを下記のようなJavaScriptでボタン押下時に一斉にデータ入力できるようにしました。

 

利用したソースコード

for(var i=0; i<infoData.length; i++){
event.record["テーブル_1"].value.push(
{value:{
"Time1":{value:'', type:'TIME'},
"利用者名":{value:infoData[i]["名前"], type:'SINGLE_LINE_TEXT', lookup:true},
"場所":{value:infoData[i]["場所"], type:'SINGLE_LINE_TEXT', lookup:true}
}}
);
}

同様のテーブルを複数配置してるのですが、どれも3要素目は取得されるのですが、2要素目のみ取得されません。
取得されていない様子をキャプチャして添付します。

上図のように"場所"のルックアップ取得は問題なく実行されますが、
"利用者名"のルックアップが実行されません。
"利用者名"の値自体は問題なく設定されていますので、この後「取得」ボタンをクリックすると問題なく取得できます。(このことで設定している値は問題ないことがわかります)

0

3件のコメント

Avatar
sics

山田さん

似たような形式のテーブルを作成し、以下のコードで試したのですが、
2列目も問題なく、ルックアップ先から値を取得することができました。

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

record.Table.value.push({
  value: {
    'ルックアップ_0': { value: 1, type: 'NUMBER', lookup: true },
    'ルックアップ_1': { value: 1, type: 'NUMBER', lookup: true },
    '文字列__1行__0': { type: 'SINGLE_LINE_TEXT', value: 'a'}
  }
})

kintone.app.record.set({record: record})

ボタン押下時に何か非同期で処理を実行等しているでしょうか?
全体のコードがあると解決できるかもしれません。

1
Avatar
山田宏道

sicsさん、ご確認いただきありがとうございます。
どこに問題があるのか、アプリを分割したり新規作成して試してみます。

意図的に非同期処理を入れてはいないつもりですが、他のコードが影響している可能性もあるとのこと、こちらも調査してみます。

0
Avatar
山田宏道

sicsさん、わかりました!

ルックアップ先にvalueに相当するデータが複数あり、決定できない時にこのような現象になる、ということでした。。

データが少ない初期段階では発生しない上、consoleにエラーが出ないのではまりました。。

valueがユニークなものを使えばよかったのですが、設計ミスでした。

他の方法を使って実装しなおしたいと思います。

早々にお返事いただきありがとうございました!

1
サインインしてコメントを残してください。