Kintone REST API Clientを使用して、アプリからデータを抽出し、ユーザーごとに処理を行いたいと考えています。
Kintone REST API Clientで取得した選択ユーザーの情報を取得するため、
const resp = await client.record.getAllRecords(params);
for (let i = 0; i < resp.length; i++) {
user_nm[i] = resp[i].選択ユーザー.value[0].name;
}
としましたが、
undefined (reading ‘name’)
のエラーとなりました。
文字列や、数値のデータは取得できているため、Kintone REST API Client によるデータの抽出自体は成功していると考えています。
選択ユーザ―の情報取得について、ご教授頂けると幸いです。
tenso
(てんそ)
2
選択ユーザーとなっていますが、ユーザー選択のことで、下図のようなログが取得できればいいでしょうか。
// レコード一覧画面が表示されたときのイベント
kintone.events.on([
'app.record.index.show'
], async event => {
try {
// Kintone APIクライアントを初期化
const kintoneClient = new KintoneRestAPIClient({
auth: { apiToken: '実際のAPIトークンに置換' } // APIトークンで認証
});
// 指定したIDのアプリから全レコードを取得
const allRecords = await kintoneClient.record.getAllRecords({
app: 実際のアプリIDに置換,
fields: ['ユーザー選択'], // 取得するフィールド
condition: '' // 条件なしで全レコードを取得
});
console.log(allRecords); // 取得したフィールドの情報をログに出力
} catch (error) {
// エラーが発生した場合の処理
console.error('Error fetching staff records:', error); // エラーメッセージをログに出力
event.error = 'ユーザー選択フィールドの取得中にエラーが発生しました。'; // ユーザーに表示するエラーメッセージを設定
} finally {
return event; // イベントを返す
}
});
参考にしたページ
ご回答ありがとうございます。
ご指摘の通り、ユーザー選択のことです。
配列で取得したユーザー選択の情報から、nameを取得したいのですが
エラーとなってしまいます。
resp[i].選択ユーザー.value[0].name
この部分の書き方が間違っているのだと推測しているのですが。
user_nm[i] = resp[i].選択ユーザー.value[0].name;
の
undefined (reading ‘name’)
nameがreadingエラーになるということは、その手前に問題があると考えると良いです。今回の場合だと、
user_nm[i] = resp[i].選択ユーザー.value[0];
の[0]の時点で値がnullやundefined等、それ以上参照することができない値になっているにも関わらず、更に.nameとそれ以上を参照しようとしたことでエラーになっています。
一度「resp[i].選択ユーザー.value[0];」をコンソールに出すなど、ユーザー選択フィールドの中身を見てみると良いでしょう。おそらくは空配列とかかなと思います。
「いいね!」 2
ご回答ありがとうございます。
確認したところ、空欄になっているデータがありました。
このデータを除いたところ、問題なく取得できました。
対象の項目を必須とすることで対応したいと思います。
system
(system)
クローズされました:
6
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。