新規投稿
フォローする

更新しようとすると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するタイミングがおかしいのでしょうか?

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

0

2件のコメント

Avatar
江田篤史

takanoさん

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

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

1
Avatar
takano

江田篤史 様

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

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

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

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

1
サインインしてコメントを残してください。