Kintone初心者ですが、レコード更新についてご教授いただきくた投稿させていただきました。
1.レコードにボタンAAAを配置し、そのボタンをクリックすることで、ログインユーザ名をテキストに更新(DBまで更新する)
2.更新したレコードを、Kintone標準機能でレコードを「編集する」
3.何も編集せずに保存を押すと、エラー発生
- レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。
上記1で更新処理を行っておりますが、2の「編集する」際に見ているリビジョンが、それより古いために起きているようです。
2の処理で、新しいリビジョンを設定する方法や、エラー無く編集できる方法を教えていただければと思います。
以下、ソースコードとなります。
function btnAAAClick(currentRow) {
// body…
var appUrl = kintone.api.url(‘/k/v1/record’);
var update_body = {
“app”: kintone.app.getId(),
“id”: parseInt(currentRow.children().eq(1).find(‘span’).text()),
“record”: {
“AAAName”: {
“value”: loginUser
},
},
// CSRF TOKEN: Needs to be set when using API (POST, PUT, DELETE) from kintone
“__REQUEST_TOKEN__”: kintone.getRequestToken()
};
if (currentRow.children().eq(8).find(‘span’).length == 1) {
currentRow.children().eq(8).find(‘span’).text(loginUser);
} else if (currentRow.children().eq(8).find(‘input’).length == 1) {
currentRow.children().eq(8).find(‘input’).val(loginUser);
}
if (currentRow.find(‘div.recordlist-edit-gaia’).length == 1) {
// 同期リクエストを行う
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“PUT”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xmlHttp.setRequestHeader(“Content-Type”, “application/json;charset=UTF-8”);
xmlHttp.send(JSON.stringify(update_body));
//取得したレコードをArrayに格納
var respdata = JSON.parse(xmlHttp.responseText);
console.log(xmlHttp.responseText);
}
}
kintone.events.on(“app.record.index.edit.submit”, function(ev) {
var record = ev.record;
alert(“The updated date time is " + record[”$revision"][“value”] + “.”);
$(‘.value-5118393’).find(‘span:empty’).append(“<button type=‘button’ class=‘btn btn-info btn-AAA’ style=‘width: 100%; padding: 0;’>AAA</button>”);
$(‘.btn-AAA’).on(‘click’, function() {
// body…
var currentRow = $(this).closest(‘tr’);
btnAAAClick(currentRow);
});
$(‘.value-5118395’).find(‘span:empty’).append(“<button type=‘button’ class=‘btn btn-info btn-guide’ style=‘width: 100%; padding: 0;’>BBB</button>”);
$(‘.btn-guide’).on(‘click’, function() {
// body…
var currentRow = $(this).closest(‘tr’);
btnAAAClick(currentRow);
});
});
以上、宜しくお願い致します。