エラー:レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました
エラーコード:GAIA_UN03
以下のjavascriptを有効にすると、新規作成 → アクション と進んだ時に上記のエラーが出てしまいます。自動採番のプログラムです。新規作成後にブラウザ更新など挟むとエラーは出ません。
まだそこまで自分で調べられていませんが、影響範囲が広くて少し焦っているので先に質問させていただきます。こちらで何かわかれば追記いたします。大変恐縮ですがご協力いただけると幸いです。
// 稟議の新規レコード保存後イベント
//// ・採番管理アプリのレコード、max値を取得
//// ・max +1 を 稟議に付与し、採番管理にmax値として返す
//// ・レコードが月初めである場合は、稟議と採番管理に 1 を返す
(function() {
“use strict”;
//稟議アプリのID
var ringiAppId = 226;
//採番アプリのID
var saibanAppId = 239;
// 新規保存成功後イベント
kintone.events.on(‘app.record.create.submit.success’, function(event) {
// 開いているレコードを取得
var rec = event.record;
// システム日付(年、月、日をそれぞれ取得)
var dt = new Date();
// 保存時西暦
var dt_yyyy = dt.getFullYear();
// 保存時月
var dt_mm = dt.getMonth()+1;
// 保存時日にち
var dt_dd = dt.getDate();
//保存した稟議アプリのレコード取得
console.log(rec);
var recId = rec.$id.value;
// 採番アプリのレコード取得(アプリID:239 / レコードID:226)
var paramGet = {
‘app’: saibanAppId,
‘query’: ‘アプリID = 226’
};
// 採番アプリのレコード取得を実行
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, paramGet).then(function(resp) {
// 取得したレコードをresp2に代入
var records = resp.records;
var resp2 = records[0];
function showSuccess(){
window.alert(‘受付No:’ + regNo);
}
// 採番管理の項目「最大値」を取得
var autono = resp2[‘最大値’].value;
// 「最大値」に + 1
var autononew = Number( autono ) + 1;
// 番号を2桁にする(左に0を付けて右から2文字とる)
var autono2 = ‘0’ + String( autononew );
autono2 = String(autono2).substring( String(autono2).length - 2 );
// 月を2桁にする(左に0を付けて右から2文字とる)
var dt_mm2 = ‘0’ + String(dt_mm);
dt_mm2 = String(dt_mm2).substring(String(dt_mm2).length - 2);
// 受付noを作る
var regNo = rec[‘会社区分_DD’].value + “-” +String(dt_yyyy) + String(dt_mm2) + “-” + autono2;
var regNo1 = rec[‘会社区分_DD’].value + “-” +String(dt_yyyy) + String(dt_mm2) + “-” + “01”;
// 採番管理アプリのレコード番号を取得
var saibanId = resp2.$id.value;
// レコード新規保存時の年月を取得
var saibanYm = String(dt_yyyy) + String(dt_mm);
// 「最大値」が登録された年月と、新規保存時の年月が同じである場合更新(PUT)
if(resp2[‘最大値登録年月’].value === String(dt_yyyy) + String(dt_mm)){
// 「受付No_文字列」にregNoを代入
var query = {
‘受付No_文字列’: {
value: regNo
}
};
// 新規保存したレコードを更新
var paramPut = {
‘app’: ringiAppId,
‘id’: recId,
‘record’: query
};
//「最大値登録年月」[最大値]をそれぞれ代入
var query2 = {
‘最大値登録年月’: {
value: saibanYm
},
‘最大値’: {
value: autononew
}
};
// 採番管理アプリを更新
var paramPut2 = {
‘app’: saibanAppId,
‘id’: saibanId,
‘record’: query2
};
/*
alert(‘今月パターン’ +
’ autono:’ + autono +
’ autononew:’ + autononew +
’ regNo:’ + regNo +
’ id:’ + recId +
’ ringiAppId:’ + ringiAppId); */
// 更新を実行
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, paramPut);
//alert(‘ringi’);
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, paramPut2);
//alert(‘saiban’);
}else{
// 月初めのレコードである場合、受付NOの末尾に 01 を付与
// 「受付No_文字列」にregNo1を代入
var query3 = {
‘受付No_文字列’: {
value: regNo1
}
};
// 新規保存したレコードを更新
var paramPut3 = {
‘app’: ringiAppId,
‘id’: recId,
‘record’: query3
};
//「最大値登録年月」[最大値]をそれぞれ代入
var query4 = {
‘最大値登録年月’: {
value: saibanYm
},
‘最大値’: {
value: 1
}
};
// 採番管理アプリを更新
var paramPut4 = {
‘app’: saibanAppId,
‘id’: saibanId,
‘record’: query4
};
/*
alert(‘月初めパターン’ +
’ regNo:’ + regNo +
’ id:’ + recId +
’ ringiAppId:’ + ringiAppId); */
// 更新を実行
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, paramPut3);
//alert(‘ringi’);
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, paramPut4);
//alert(‘saiban’);
}
});
});
})();