【実現したいこと】
他アプリにある「部屋工事進捗」テーブル内の「部屋番号」フィールドの情報を、ボタンを押下し同じIDの値が入ってる場合、その部屋番号の情報をすべてダイアログに表示させ、取得できるようにしたい。
【問題】
テーブルの情報が取得できない。
const table = event.record[‘部屋工事進捗’].value; この部分で「Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘value’)」とエラーが出ています。
コンソールにはテーブルの情報は出力されています。ですが、このエラーがでて、ボタンが押下できません。
フィールドコードが誤っているわけでもないと思います。。
var dialog = new Kuc.Dialog({
title: ‘部屋を選択してください’
});
(function () {
‘use strict’;
kintone.events.on([‘app.record.create.show’, ‘app.record.edit.show’], async function (event) {
var roomgetbtn = new Kuc.Button({
text: ‘部屋番号取得’,
type: ‘normal’
});
kintone.app.record.getSpaceElement(‘button’).appendChild(roomgetbtn);
roomgetbtn.addEventListener('click', async clickevent => {
try {
var bukkenID = document.querySelector('[id*="8231965"]').value;
} catch (error) {
var bukkenID = "";
}
var query = '物件ID = "' + bukkenID + '"';
console.log(query);
var body = {
'app': 1246,
'query': query
};
if (bukkenID == "") {
var msg = "物件に該当する部屋番号がありません";
var footer = document.createElement('div');
var closebtn = new Kuc.Button({
text: '閉じる',
type: 'nomal',
id: 'my_index_button'
});
footer.appendChild(closebtn);
dialog = new Kuc.Dialog({
title: '部屋を選択してください',
content: msg,
footer: footer
});
dialog.open();
closebtn.onclick = function () {
dialog.close();
};
} else {
const resp = await kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body);
var records = resp.records;
var rooms = "";
console.log(records);
if (records.length === 0) {
rooms = "物件に該当する部屋番号がありません";
} else {
const table = event.record['部屋工事進捗'].value;
table.forEach(function (row) {
var roomNumberField = row.value['部屋番号'].value;
rooms += "<p><a onclick='roomNoInput(\"" + roomNumberField + "\")'>" + roomNumberField + "</a></p>";
});
}
console.log(rooms);
var footer = document.createElement('div');
var closebtn = new Kuc.Button({
text: '閉じる',
type: 'nomal',
id: 'my_index_button'
});
footer.appendChild(closebtn);
dialog = new Kuc.Dialog({
title: '部屋を選択してください',
content: rooms,
footer: footer
});
dialog.open();
closebtn.onclick = function () {
dialog.close();
};
(error) => {
return event;
};
}
});
});
})();
function roomNoInput(no) {
var roomNo = document.querySelector(‘[id*=“8231962”]’);
roomNo.value = no;
dialog.close();
}
他アプリにあるテーブル内のフィールド情報を取得するには、他の書き方があるのでしょうか?
色々調べ参考にしながら書いてみましたが、他アプリのテーブル情報を持ってくる方法がいまいちよくわかりません。
どなたかご教授いただければと思います。
よろしくお願いいたします。