### 何を実現したいのかを書きましょう
任意のフィールド(今回はルックアップフィールドです)に値を入力したときに、
同じアプリの中でで同じ値が入力されたレコードの数を取得する方法を教えていただきたいです。
今回の設定は、見積依頼書アプリ(ID:123)のの中に登録工事番号というルックアップフィールドがあります。
取得ボタンから登録工事番号を入力したら、今、見積依頼書には同じ登録工事番号を持つレコードが何件あるのかを取得します。
取得した数は業者番号というフィールドに入れます。
### 発生した問題やエラーメッセージを具体的に書きましょう
下記のコードを試してみましたが業者番号に数字がはいりません。
コンソールの方ではDELETE https://(サブドメイン名).cybozu.com/k/v1/records/cursor.json 404 (Not Found)
というエラーが出てきます。
REST APIのURLの記述方法が間違っているのでしょうか?
他にも修正すべき箇所があればご教授ください。
ちなみにコードはChatGPTで作ったものを部分的に私の方で訂正したものです。
### 実行したコードをコピー&ペーストしましょう
(function() {
“use strict”;
// アプリID
const appId = 123;
// フィールドコード
const registrationNumberFieldCode = '登録工事番号';
const vendorNumberFieldCode = '業者番号';
// kintoneレコードの検索を行う関数
async function countRecordsByRegistrationNumber(registrationNumber) {
try {
// レコード検索用のクエリ
const query = `${registrationNumberFieldCode} = "${registrationNumber}"`;
// APIトークン(レコード閲覧用) - 必要に応じて設定
const apiToken = 'BU91agBsOYUYQIGB1JgXJwHk5nl12abhivrsAJtH';
// kintone REST APIエンドポイントのURL
const url = `https://(サブドメイン名).cybozu.com/k/v1/records.json?app=${appId}&query=${encodeURIComponent(query)}`;
// APIリクエストを送信
const response = await fetch(url, {
method: 'GET',
headers: {
'X-Cybozu-API-Token': apiToken,
'Content-Type': 'application/json'
}
});
// レスポンスをJSON形式で取得
const responseData = await response.json();
// レコード数を取得
const recordCount = responseData.records.length;
return recordCount;
} catch (error) {
console.error('レコードの取得中にエラーが発生しました:', error);
throw error;
}
}
// レコードが作成されたときのイベント
kintone.events.on('app.record.create.change.' + registrationNumberFieldCode, async function(event) {
const registrationNumber = event.record[registrationNumberFieldCode].value;
try {
// 同じ登録工事番号を持つレコードの数を取得
const count = await countRecordsByRegistrationNumber(registrationNumber);
// 業者番号フィールドに個数を設定
event.record[vendorNumberFieldCode].value = count;
return event;
} catch (error) {
// エラーが発生した場合は、コンソールにエラーメッセージを表示してイベントを返す
console.error('業者番号の設定中にエラーが発生しました:', error);
return event;
}
});
})();