更新しようとすると520エラーになり更新できない

お世話になります。

現在kintoneにて商品マスタを作成しております。

各商品ごとに条件に応じて、商品番号を割り振っております。

ex)商品A:1111+403(連番)

商品B:2222+404

商品C:9999+404

割り振られた商品番号をレコードに登録したく、javascriptにて作成しましたが、520エラーが表示され、登録することができませんでした。

下記、作成しているコードになります。


(function() {
“use strict”;

var events = [‘app.record.create.show’,
‘app.record.create.submit’,
‘app.record.edit.submit.success’,
‘app.record.create.submit.success’];

//更新フラグ
var updated = false;

kintone.events.on(events, function(event) {

var record = event.record;

var record = event.record;  
var appId = event.appId;  
var recordId = event.recordId;

var hikiotoshi = record['item']['value'];  
var kouhuri = record['item2']['value'];  
var masterNo = record['item3']['value'];  
var shohinNo = "";  
if(kubun == 'XXXX') {  
  shohinNo  = '1111' + masterNo;  
} else if(kubun == '商品区分A') {  
  shohinNo = '2222' + masterNo;  
} else if(kubun == '商品区分B') {  
  shohinNo  = '';  
} else if(subKubun = '未設定') {  
  shohinNo = '3333' + masterNo;  
} else if(subKubun = '商品区分C') {  
  shohinNo = '9999' + masterNo;  
} else {  
  shohinNo = ' ';  
}  
  
// レコードの更新API  
var body = {  
 "app": appId,  
 "id": recordId,  
 "record": {  
  "item4": {  
   "value": shohinNo  
  }  
 }  
};  
  
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, function(resp) {  
 updated = true;  
 // success  
 console.log(resp);  
}, function(error) {  
 // error  
 console.log(error);  
});  
return event;  

});

kintone.events.on(‘app.record.detail.show’, function (event) {
if(updated){
updated = false;
location.reload();
}
});

})();


上記をアプリに反映させると、編集しようとした際に、「レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。」と表示され、更新処理が終了できません。

reloadするタイミングがおかしいのでしょうか?

よろしくお願いいたします。

takanoさん

お世話になっております.

今回の例ですと,REST APIを利用せずともフィールドコードが’item4’のフィールドの値は変更できるかと思います.
レコードの保存実行前イベント(‘app.record.create.show’, ‘app.record.create.submit’)では,eventオブジェクトを書き換えてreturnすることで,フィールドの値を書き換えることができます.
https://developer.cybozu.io/hc/ja/articles/201941984#step2

江田篤史

お世話になっております。

ご回答ありがとうございます。

いただいたご回答を元にコードを修正し、無事想定した更新処理が行えるようになりました。

ありがとうございました!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。