新規投稿
フォローする

エラー :レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。

仕様の要求:
①画面表示する時に、他のアプリのフィールドを合計して、データを保存する
②画面修正の時にも、他のアプリのフィールドを合計して、データを画面フィールドに入れる
①②のソースは図2に参考してください。
 
問題:
画面が表示する時に、図1の②のボタンを押して、修正が画面になります(③)、その時に 保存ボタン(④)を押したら、下記のエラーが出ます。
 
 
エラー:レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。(GAIA_UN03 ALSAuid77knzwNX4Uqnz)
 
図1
 
図2
0

6件のコメント

Avatar
milkyway0307

pankou様

以前のトピックスでも似たような案件がありましたが、

var ev=kintone.app.record.get();
ev["record"][setting]["value"]=tempvalue;
kintone.app.record.set(ev);

が原因だと思われます。

 

0
Avatar
pankou

milkyway0307さんご返事、有難うございます、似たような案件が分かります、自分が投稿したものです。

この案件と今回はちょっと違います、以前の案件はEventで保存できます、今回は保存イベントはrestapiの中ですので、ききました。

0
Avatar
milkyway0307

pankou様

以前の場合と、エラーの原因自体はあまり変わらないと思います。app.record.edit.show イベントの中でAPIを使い、その中で

var ev=kintone.app.record.get();
ev["record"][setting]["value"]=tempvalue;
kintone.app.record.set(ev);

として編集しようとしているレコードを裏で書き換えれば、同じエラーが起きるはずです。

一方で、以前の案件で return event で保存できたのに、今回は保存できないから kintone.app.record.set でやろうとなさっているのではないでしょうか?

だとすれば、queryotherapl という関数が終わる前に return event になってしまっている可能性が高いですね。この関数をPromise化して、変更処理が終わってから return event されるようにしたほうがよろしいかと思います。

0
Avatar
pankou

milkyway0307さん

ご返事、有難うございます、試してみます~。ちなみに、聞きたい事があります、キントンのAPIは同期で実行できますか?

jqueryの async: falseみたいな設定出来ますか?

pankouにより編集されました
0
Avatar
milkyway0307

pankou様

jQueryでasync:falseとしてAPIを使ったり、xmlhttprequestで同期通信をすることはできますが、kintone.apiなどはすべて非同期です。

とはいえ、大抵のことはPromiseで使えば同期通信を使わないでもできると思いますよ

0
Avatar
pankou

milkyway0307さん、ご返事、有難うございます。アイディア、助かりました。

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