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

**URL:** <https://community.cybozu.dev/t/topic/851>\
**Category:** kintone 開発相談\
**Created:** [2017 年 8 月 14 日午前 5:06 UTC](https://community.cybozu.dev/t/topic/851 "2017-08-14T05:06:12Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1801](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account1801](https://community.cybozu.dev/u/Legacy_Account1801)\
**Post date:** [2017 年 8 月 14 日午前 5:06 UTC](https://community.cybozu.dev/t/topic/851/1 "2017-08-14T05:06:12Z")

</div>

保存する時に、図１のエラーが出ました、ソースはコード１です。

原因は何ですか？

図１

&nbsp;

コード１：

(function() {  
“use strict”;  
//一行目の時にはdataobjをnullする  
var dataobj=null;  
var subtableval=null;  
//‘app.record.edit.show’,  
kintone.events.on([‘app.record.detail.show’], function(event) {  
var subtablevals=event.record.小口現金.value;  
//var zankin=subtablevals[0].value.残金TBL.value;  
var cdate=subtablevals[0].value.date.value;  
var rcdid=event.recordId;  
var lastbalanceval=event.record.前月末残金.value;//前月末残金  
var advpaymentval=subtablevals[0].value.経費前渡金.value;//前月末残金  
var costval=subtablevals[0].value.cost.value;//前月末残金  
var zankinval=lastbalanceval+advpaymentval-costval;

/////////insert処理  
subtableval=  
{  
“value”:{  
‘残金TBL’:{  
value:zankinval  
},  
“date”:{  
value:“8118”  
}

}  
};

&nbsp;

actionfun(rcdid);  
return event;  
});

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*下記のソースを使っていません  
kintone.events.on([‘app.record.create.change.小口現金’,‘app.record.edit.change.小口現金’], function(event,resp) {  
var subtablevals=event.record.小口現金.value;  
// success  
console.log(resp);  
alert(“aaa”);  
}, function(error) {  
// error  
console.log(error);  
});  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

function actionfun(rtnid){  
var appid = kintone.app.getId();  
var recordid=rtnid;//  
/////////  
var subtablevals=null;  
kintone.api(‘/k/v1/record’, ‘GET’, {app: appid, id: recordid}, function(resp) {  
// レコード番号を表示する  
subtablevals =resp[‘record’][‘小口現金’][‘value’];  
//alert(1);  
save1data(recordid,dataobj,subtableval);  
//alert(2);  
}, function(resp) {  
// success  
console.log(resp);  
}, function(error) {  
// error  
console.log(error);  
});

}  
//保存する  
function save1data(recordid,dataobjtmp,subtableval){  
var appid = kintone.app.getId();  
var dataobj=[];  
if(dataobjtmp!=null){  
dataobj=dataobjtmp;  
dataobj.push(subtableval);  
}else{  
dataobj.push(subtableval);  
}  
var put\_record = {}; // レコード更新用オブジェクト  
put\_record[“小口現金”] = {  
value:dataobj//tablevals  
};

var body = {  
app: appid,  
id: recordid,  
record: put\_record  
};

// 更新処理

kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function(resp) {  
// success  
console.log(resp);  
}, function(error) {  
// error  
console.log(error);  
});  
}

})();

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account556](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account556](https://community.cybozu.dev/u/Legacy_Account556)\
**Post date:** [2017 年 8 月 14 日午前 9:51 UTC](https://community.cybozu.dev/t/topic/851/2 "2017-08-14T09:51:20Z")

</div>

**pankou様**

kintoneのchangeイベントの中でAPIでPUTをしているから、「他のユーザー」が更新をしたというメッセージが出るのではないでしょうか．

前提として，kintoneの各イベントでは，基本的には  
return event;  
とすることで，event.record への変更（ event.record[‘フィールド名’].value = “abc” など ）が反映されます．

少なくとも，app.record.detail.show や app.record.create.change.小口現金 などのイベントでは，現在表示されているレコードについては

var record=event.record;  
record[‘フィールド名’]=“aaa”;  
return event;

とすれば，APIを使わずに更新ができるはずです．&nbsp;

APIを使って更新するのは，他のレコードや，他のアプリのデータを扱うときだけだと考えて頂いた方がいいでしょう．

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1801](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account1801](https://community.cybozu.dev/u/Legacy_Account1801)\
**Post date:** [2017 年 8 月 15 日午前 7:08 UTC](https://community.cybozu.dev/t/topic/851/3 "2017-08-15T07:08:33Z")

</div>

**[milkyway0307](https://community.cybozu.dev/hc/ja/profiles/2984551363-milkyway0307)さん**

**ご返事、ありがとうございます。**

申し訳ございませんが

ソースコードが好くないです、「 app.record.create.change.小口現金」のソースコードがコメントしていますので、使っていません。

「app.record.detail.show」のreturn event;が有ります。

ですので、return eventが有るのに、このエラーが出ます、不思議です。

勘違いしない様に、要らないソースを消しました、下記のソースもエラーが出ます、 return eventもあります

* * *

(function() {  
“use strict”;  
//一行目の時にはdataobjをnullする  
var dataobj=null;  
var subtableval=null;

//‘app.record.edit.show’,  
kintone.events.on([‘app.record.detail.show’], function(event) {  
var subtablevals=event.record.小口現金.value;  
//var zankin=subtablevals[0].value.残金TBL.value;  
var cdate=subtablevals[0].value.date.value;  
var rcdid=event.recordId;  
var lastbalanceval=event.record.前月末残金.value;//前月末残金  
var advpaymentval=subtablevals[0].value.経費前渡金.value;//前月末残金  
var costval=subtablevals[0].value.cost.value;//前月末残金  
var zankinval=lastbalanceval+advpaymentval-costval;

/////////insert処理  
subtableval=  
{  
“value”:{  
‘残金TBL’:{  
value:zankinval  
},  
“date”:{  
value:“8118”  
}

}  
};

&nbsp;

actionfun(rcdid);  
return event;  
});

function actionfun(rtnid){  
var appid = kintone.app.getId();  
var recordid=rtnid;//  
/////////  
var subtablevals=null;  
kintone.api(‘/k/v1/record’, ‘GET’, {app: appid, id: recordid}, function(resp) {  
// レコード番号を表示する  
subtablevals =resp[‘record’][‘小口現金’][‘value’];  
//alert(1);  
save1data(recordid,dataobj,subtableval);  
//alert(2);  
}, function(resp) {  
// success  
console.log(resp);  
}, function(error) {  
// error  
console.log(error);  
});

}  
//保存する  
function save1data(recordid,dataobjtmp,subtableval){  
var appid = kintone.app.getId();  
var dataobj=[];  
if(dataobjtmp!=null){  
dataobj=dataobjtmp;  
dataobj.push(subtableval);  
}else{  
dataobj.push(subtableval);  
}  
var put\_record = {}; // レコード更新用オブジェクト  
put\_record[“小口現金”] = {  
value:dataobj//tablevals  
};

var body = {  
app: appid,  
id: recordid,  
record: put\_record  
};

// 更新処理

kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function(resp) {  
// success  
console.log(resp);  
}, function(error) {  
// error  
console.log(error);  
});  
}

})();

分かりやすいように、図も修正しました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account556](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account556](https://community.cybozu.dev/u/Legacy_Account556)\
**Post date:** [2017 年 8 月 15 日午前 7:24 UTC](https://community.cybozu.dev/t/topic/851/4 "2017-08-15T07:24:39Z")

</div>

pankou様

同じレコードを更新するのに、APIを使う必要はないと思うのですが、なぜAPIを使っていらっしゃるのでしょうか。

それがエラーの原因だと思いますが。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1801](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account1801](https://community.cybozu.dev/u/Legacy_Account1801)\
**Post date:** [2017 年 8 月 15 日午前 7:39 UTC](https://community.cybozu.dev/t/topic/851/5 "2017-08-15T07:39:07Z")

</div>

**[milkyway0307](https://community.cybozu.dev/hc/ja/profiles/2984551363-milkyway0307)さん**

**ご返事、ありがとうございます。**

**サブテーブルのフィールド値を更新したいです、調べますと、サブテーブルのフィールドの更新はputしか出来無さそうですので、APIを使いました。**

**もしかして、直接に修正して保存出来ますか？試してみます。**

**再度、ありがとうございます。**

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1801](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account1801](https://community.cybozu.dev/u/Legacy_Account1801)\
**Post date:** [2017 年 8 月 15 日午前 7:57 UTC](https://community.cybozu.dev/t/topic/851/6 "2017-08-15T07:57:27Z")

</div>

やっぱり駄目ですね、直接に修正する時には下記のエラーが出ます、原因はkitone.events.onには kintone.app.record.set()関数が使えないです。

ですので、APIでサブテーブルの更新をしました。

参照URL：

[https://developer.cybozu.io/hc/ja/community/posts/205549333-%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%80%A4%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B](https://community.cybozu.dev/hc/ja/community/posts/205549333-%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%80%A4%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B)

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account556](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account556](https://community.cybozu.dev/u/Legacy_Account556)\
**Post date:** [2017 年 8 月 15 日午前 9:10 UTC](https://community.cybozu.dev/t/topic/851/7 "2017-08-15T09:10:18Z")

</div>

pankou様

サブテーブルでも return event で更新できます。

event.record[‘サブテーブル名’].value[\*\*行番号\*\*].value[‘フィールド名’].value

を書き換えて return event をすれば既存の行は更新されるはずです。APIを自レコードにかけている限り、このレコードは「保存」ボタンでは保存できないのではないでしょうか。（\*\*行番号\*\* のところには数値が入ります）。

ただし、サブテーブルの行を追加するには、push して配列の要素数を増やす必要があります。もしかして、そのあたりでつまずいていらっしゃいます？

↓ が少し参考になるかも知れません。

[https://developer.cybozu.io/hc/ja/articles/202166270#step4](https://developer.cybozu.io/hc/ja/articles/202166270#step4)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account556](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account556](https://community.cybozu.dev/u/Legacy_Account556)\
**Post date:** [2017 年 8 月 15 日午後 2:02 UTC](https://community.cybozu.dev/t/topic/851/8 "2017-08-15T14:02:15Z")

</div>

pankou様

サブテーブルでも return event で更新できます。

event.record[‘サブテーブル名’].value[\*\*行番号\*\*].value[‘フィールド名’].value

を書き換えて return event をすれば既存の行は更新されるはずです。APIを自レコードにかけている限り、このレコードは「保存」ボタンでは保存できないのではないでしょうか。（\*\*行番号\*\* のところには数値が入ります）。

ただし、サブテーブルの行を追加するには、push して配列の要素数を増やす必要があります。もしかして、そのあたりでつまずいていらっしゃいます？

↓ が少し参考になるかも知れません。

[https://developer.cybozu.io/hc/ja/articles/202166270#step4](https://developer.cybozu.io/hc/ja/articles/202166270#step4)

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1801](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account1801](https://community.cybozu.dev/u/Legacy_Account1801)\
**Post date:** [2017 年 8 月 16 日午前 12:46 UTC](https://community.cybozu.dev/t/topic/851/9 "2017-08-16T00:46:04Z")

</div>

**[milkyway0307](https://community.cybozu.dev/hc/ja/profiles/2984551363-milkyway0307)さん**

**ご回答、ありがとうございました、[milkyway0307](https://community.cybozu.dev/hc/ja/profiles/2984551363-milkyway0307)さんのやり方で出来ました、ありがとうござい～(^^)**

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 8 月 21 日午前 7:59 UTC](https://community.cybozu.dev/t/topic/851/10 "2025-08-21T07:59:59Z")

</div>

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