いつもお世話になっております。
関連レコード数を取得して、取得した数値をフィールドにセットしたいのですが、ドツボにはまってしまっております。有識者の方、どうかご教授いただけませんでしょうか。
(function() {
'use strict';
// 関連レコードの絞り込みに利用するフィールドコード
var FIELDNAME_A = 'facility_name'; // Aアプリ
var FIELDNAME_B = 'facility_name'; // Bアプリ
var num = "";
kintone.events.on(['app.record.edit.show', 'app.record.detail.show'], function (event){
// var record = event.record;
// record['case_num'].value = num;
// 関連レコードで取得しているアプリの対象レコードを全件取得
function fetchRecords(opt_Field, opt_offset, opt_limit, opt_records) {
var Id = kintone.app.getRelatedRecordsTargetAppId('relation');
var offset = opt_offset || 0;
var limit = opt_limit || 100;
var allRecords = opt_records || [];
var params = {app: Id, query: opt_Field + ' order by レコード番号 asc limit ' + limit + ' offset ' + offset};
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params).then(function(resp) {
allRecords = allRecords.concat(resp.records);
if (resp.records.length === limit) {
return fetchRecords(opt_Field, offset + limit, limit, allRecords);
}
return allRecords;
});
}
// 関連レコードの「表示するレコードの条件」に合わせてクエリを作成
var CompanyNameValue = event.record[FIELDNAME_A].value;
var opt_Field = FIELDNAME_B + '=' + '"' + CompanyNameValue + '"';
fetchRecords(opt_Field).then(function(records) {
// スペースフィールドにBアプリのレコード数を反映
num = records.length;
var divTotalAmount = document.createElement('div');
divTotalAmount.style.fontWeight = 'bold';
divTotalAmount.style.textAlign = 'center';
divTotalAmount.style.fontSize = 12;
divTotalAmount.innerHTML = num;
kintone.app.record.getSpaceElement('num').appendChild(divTotalAmount);
return event;
});
var id = event.record["レコード番号"].value;
window.alert(id);
var body = {
'app': kintone.app.getId(),
'id': id,
'record': {
'case_num': {
'value': num
}
}
};
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, function(resp) {
// success
console.log(resp);
}, function(error) {
// error
console.log(error);
});
});
})();
関連レコードの数を取得し、スペースフィールドに表示するところまでは表示されたのですが、その後の処理がわかりません。
色々と調査したところ、PUTを使って更新処理を行わなければいけないとの記事を見たので、見様見真似でそのように入れてみたのですが、
「エラー
- レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。
- (GAIA_UN03 RB9vojHs6gXrTOJ18xBv)
」
という表示が出てしまいます。(データは無事に希望するフィールドに登録されていました)
また、kintone.app.record.get / set を利用するというのをよく目にするのですが、これは現在PUTを入れている場所に入れたらいいのでしょうか?
基本的な部分の質問で申し訳ございませんが、よろしくお願いいたします。