# 編集画面でapiを利用したフィールド更新→詳細画面への遷移で値が更新されていない

**URL:** <https://community.cybozu.dev/t/topic/9007>\
**Category:** kintone 開発相談\
**Created:** [2024 年 5 月 11 日午前 8:26 UTC](https://community.cybozu.dev/t/topic/9007 "2024-05-11T08:26:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![masoppu4](https://avatars.discourse-cdn.com/v4/letter/m/e19b73/32.png) [@masoppu4](https://community.cybozu.dev/u/masoppu4)\
**Post date:** [2024 年 5 月 11 日午前 8:26 UTC](https://community.cybozu.dev/t/topic/9007/1 "2024-05-11T08:26:48Z")

</div>

kintoneのある1アプリについて、詳細画面、編集画面それぞれにjsで以下の処理を組み込んでいます。  
■詳細画面  
レコード詳細画面を開いた際に「フラグ」フィールドを取得（初期値は0）  
→フラグが1の場合：A処理  
→フラグが1以外の場合：B処理

■編集画面  
レコード編集画面を開いたときに「フラグ」フィールドを取得  
→フラグが1の場合：C処理  
[1件のレコードを更新する - cybozu developer network](https://cybozu.dev/ja/kintone/docs/rest-api/records/update-record/)  
この記事を参考にフラグフィールドを2に変更し、フラグが更新されたことを確認後、location.hrefで詳細画面に遷移

ーーーーーーーーーーーーーーーーーーーーーーー  
上記処理を組み込み後、実際に動かすとC処理で詳細画面に遷移後にフラグが1のままになっておりB処理が走りません。  
そのまま詳細画面でブラウザの更新をすると、ちゃんとB処理が走ります。

編集画面→詳細画面への遷移後に値が更新されていない理由がわかる方おられるでしょうか？  
（location.hrefでの遷移が相性悪いのでしょうか…）

**編集画面ソース**

```javascript
if (record["フラグ"].value == 1) {
            const body = {
                "app": kintone.app.getId(),
                "id": record["レコード番号"].value,
                "record": {
                    "フラグ": {
                        "value": 2
                    }
                }
            }

            return kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body).then((resp) => {
                const interval = setInterval(async function () {
                    let TMP_reloadFlg = await kintone_REST_API_GET(GlobalAppId["アプリID"], `レコード番号 = ${record["レコード番号"].value}`, ["フラグ"]);
                    // フラグが2になったことを確認後遷移
                    if (TMP_reloadFlg[0]["フラグ"].value == 2) {
                        clearInterval(interval)
                        return window.location.href = `https://kajima90.cybozu.com/k/${GlobalAppId["アプリID"]}/show#record=${record["レコード番号"].value}`;
                    }
                }, 500);
            });
        }

```

---

<div class="post-metadata">

**Author:** ![mura](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mura/32/41_2.png) [@mura](https://community.cybozu.dev/u/mura)\
**Post date:** [2024 年 5 月 13 日午後 11:31 UTC](https://community.cybozu.dev/t/topic/9007/2 "2024-05-13T23:31:02Z")

</div>

なんかsetIntervalとかやってるところが気になりますね。  
処理したあと、遷移する、ということをちゃんとやるとうまくいきそうな気がしますが…

[https://cybozu.dev/ja/id/faa4f9c1ef377c0c60bb9074/#column1](https://cybozu.dev/ja/id/faa4f9c1ef377c0c60bb9074/#column1)

こちらの記事のように書くことは可能でしょうか？  
（もしくはChangeイベントとかで、そのように書くのが難しいとかありますかね）

---

<div class="post-metadata">

**Author:** ![masoppu4](https://avatars.discourse-cdn.com/v4/letter/m/e19b73/32.png) [@masoppu4](https://community.cybozu.dev/u/masoppu4)\
**Post date:** [2024 年 5 月 17 日午前 8:03 UTC](https://community.cybozu.dev/t/topic/9007/3 "2024-05-17T08:03:19Z")

</div>

ありがとうございます

以前は↓のコードで試していたのですが、画像のようなエラーが発生していました。

```javascript
await kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body);
location.href="詳細画面へのURL";

```

 ![image](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/721cf9812982bd4ec78b5ed17618b9c7efba0672.png)

> [@レコード編集画面表示時、稀に「Processing event handler exists.」というエラーが発生します](https://community.cybozu.dev/t/topic/5230/4):
>
> サポートに問い合わせ、原因の確認ができましたので共有させていただきます。 「Processing event handler exists.」の発生条件： “kintone.events.on()” で登録されたイベントハンドラが Promise を返した後、その Promise の処理が終わらない内に、 別の Promise を返すイベントハンドラが呼ばれた場合 &nbsp; 今回発生してい…

> [@レコードを再利用後の保存でエラー](https://community.cybozu.dev/t/topic/6274):
>
> レコードを再利用ボタン押下後、かなり急いで保存ボタンを押下すると、 「Uncaught Error: Processing event handler exists.」のエラーが consoleに表示されます。 &nbsp; あわてずに保存ボタンを押下すると、エラーは出ません。 &nbsp; このエラーはどのようなときに出るエラーでしょうか？ &nbsp;

こちらのページを確認したところ、あまりに遷移が早すぎるとエラーが発生すると解釈したので意図的にwaitをかける意味も込めてsetIntervalを組み込んでいました。

---

<div class="post-metadata">

**Author:** ![mura](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mura/32/41_2.png) [@mura](https://community.cybozu.dev/u/mura)\
**Post date:** [2024 年 5 月 20 日午後 3:14 UTC](https://community.cybozu.dev/t/topic/9007/4 "2024-05-20T15:14:34Z")

</div>

なるほど。理解しました。

[https://cybozu.dev/ja/id/42b1d7ce01fd5d9b53dbf4df/#methods-list-5](https://cybozu.dev/ja/id/42b1d7ce01fd5d9b53dbf4df/#methods-list-5)  
こちらにあるようにまずはネットワークタブを確認（遷移しないようにブレークポイントもはる）、がまずは先決かもですね。

---

<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:** [2024 年 6 月 12 日午前 1:56 UTC](https://community.cybozu.dev/t/topic/9007/5 "2024-06-12T01:56:54Z")

</div>

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