# ステータス更新時にAPIを利用して自レコードを更新したい

**URL:** <https://community.cybozu.dev/t/topic/232>\
**Category:** kintone 開発相談\
**Created:** [2017 年 1 月 25 日午前 10:43 UTC](https://community.cybozu.dev/t/topic/232 "2017-01-25T10:43:02Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2076](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account2076](https://community.cybozu.dev/u/Legacy_Account2076)\
**Post date:** [2017 年 1 月 25 日午前 10:43 UTC](https://community.cybozu.dev/t/topic/232/1 "2017-01-25T10:43:02Z")

</div>

いつもお世話になっています。

&nbsp;

質問させて下さい。

やりたい事は下記の通りの事がしたいです。

&nbsp;

1. 画面UIからステータスを更新する(対応中→エスカレ)

2. エスカレボタンが押されたタイミングで別アプリにレコードを作成したのち、自レコード(ステータス更新されるレコード)の1項目、チェックボックスにチェックを入れて更新したい。

&nbsp;

現在は下記のように実装しているが、うまくいきません。

```
kintone.events.on("app.record.detail.process.proceed", function(event) {
var record = event.record;
var nStatus = event.nextStatus.value;
console.log(nStatus);
if ("エスカレ" == nStatus) {
var param = cteate_param(appId, record, null);
return kintone.api("/k/v1/record", "POST", param).then(function(resp) {
console.log("create success");
}).catch(function() {
console.log("create fail");
}).then(function() {
var update_param = update_param(record["$id"].value);
update_param.app = kintone.app.getId();
return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', update_param).then(function(update_resp) {
console.log("update success");
}).catch(function(error) {
console.log(update fail);
});
});
}
return event;
});

```

こうした場合に、レコードの作成→更新が成功してもその後に画面上部にエラーが出てしまいます。

エラー

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

&nbsp;

ご教授頂けますと幸いです。

よろしくお願いします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2076](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account2076](https://community.cybozu.dev/u/Legacy_Account2076)\
**Post date:** [2017 年 1 月 25 日午前 10:51 UTC](https://community.cybozu.dev/t/topic/232/2 "2017-01-25T10:51:28Z")

</div>

察するにステータス更新ボタン押下時に標準で更新しようとしたrevisionと実際に乖離があり(既にAPIにて更新しているので)、そのため、ほかのユーザーがレコードを更新しました。

の文言が出てると思ってます。

こういった場合は回避方法ない感じでしょうか？(というかこういう処理を組んではダメ?)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2017 年 1 月 25 日午前 11:21 UTC](https://community.cybozu.dev/t/topic/232/3 "2017-01-25T11:21:13Z")

</div>

鈴木さん

Promise 処理では、Promise オブジェクト(event) を返す必要があります。  
あとプロセス管理のアクションイベントで、eventオブジェクトをreturnすることでレコード情報を更新できます。  
切り貼りしただけですが、下記のようなコードで対応可能だと思います。  
チェックボックスのvalue は、変更してください。

```
kintone.events.on("app.record.detail.process.proceed", function(event) {
var record = event.record;
var nStatus = event.nextStatus.value;
console.log(nStatus);
if ("エスカレ" == nStatus) {
var param = cteate_param(appId, record, null);
return kintone.api("/k/v1/record", "POST", param).then(function(resp) {
console.log("create success");
record["チェックボックス"].value = ['sample1'];
return event;
}).catch(function() {
console.log("create fail");
return event;
});
}
return event;
});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2076](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account2076](https://community.cybozu.dev/u/Legacy_Account2076)\
**Post date:** [2017 年 1 月 25 日午前 11:40 UTC](https://community.cybozu.dev/t/topic/232/4 "2017-01-25T11:40:46Z")

</div>

rex0220さん

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

試してみましたが、同様のエラーが出てしまいますね。。T\_T

こちらレコード更新しないという方法で調整しようかと思います。

お時間取って頂きありがとうございました！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2017 年 1 月 25 日午前 11:45 UTC](https://community.cybozu.dev/t/topic/232/5 "2017-01-25T11:45:45Z")

</div>

自分のレコード更新処理を外したのに、revisionエラーになるのは変ですね？

レコード更新処理が残っているか、ブラウザのキャッシュで古いソースが動いていませんか？

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2076](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account2076](https://community.cybozu.dev/u/Legacy_Account2076)\
**Post date:** [2017 年 1 月 25 日午後 12:11 UTC](https://community.cybozu.dev/t/topic/232/6 "2017-01-25T12:11:48Z")

</div>

どうなんでしょうね。

実際ステータス更新(ボタン押して作業者選択した後)って、詳細画面に近いので自レコード更新するのアカンのですかね？

古いソースが動いている事はなさそうです。更新して、ソースの変更箇所が反映されているのは確認しながら動作確認してましたので。

やりようとしては、他にもあるかなーっとは思っているもののそこまでコスト掛けてやる内容じゃないので、とりあえず今回は別の方法(更新しない方法)でやることにしました。

絶対やらないといけない場合には、ステータス更新すらもAPIで行うようにして、レコード保存時などにやれば出来るのではないかっと思ってたりします、検証してませんが。。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2017 年 1 月 25 日午後 12:19 UTC](https://community.cybozu.dev/t/topic/232/7 "2017-01-25T12:19:39Z")

</div>

ご参考に。一番簡単な処理だと、下記で問題なく更新されています。

```
kintone.events.on("app.record.detail.process.proceed", function(event) {
var record = event.record;
record["チェックボックス"].value = ['sample1'];
return event;
});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2076](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account2076](https://community.cybozu.dev/u/Legacy_Account2076)\
**Post date:** [2017 年 1 月 25 日午後 12:34 UTC](https://community.cybozu.dev/t/topic/232/8 "2017-01-25T12:34:45Z")

</div>

なるほど、そうすると自レコード更新は別に出来ない事ではないのですね。。。

ちょっと私の方でも時間見つけて検証してみようと思います。

&nbsp;

ありがとうございます！

---

<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 月 25 日午前 8:24 UTC](https://community.cybozu.dev/t/topic/232/9 "2025-08-25T08:24:35Z")

</div>

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