kintoneのある1アプリについて、詳細画面、編集画面それぞれにjsで以下の処理を組み込んでいます。
■詳細画面
レコード詳細画面を開いた際に「フラグ」フィールドを取得(初期値は0)
→フラグが1の場合:A処理
→フラグが1以外の場合:B処理
■編集画面
レコード編集画面を開いたときに「フラグ」フィールドを取得
→フラグが1の場合:C処理
1件のレコードを更新する - cybozu developer network
この記事を参考にフラグフィールドを2に変更し、フラグが更新されたことを確認後、location.hrefで詳細画面に遷移
ーーーーーーーーーーーーーーーーーーーーーーー
上記処理を組み込み後、実際に動かすとC処理で詳細画面に遷移後にフラグが1のままになっておりB処理が走りません。
そのまま詳細画面でブラウザの更新をすると、ちゃんとB処理が走ります。
編集画面→詳細画面への遷移後に値が更新されていない理由がわかる方おられるでしょうか?
(location.hrefでの遷移が相性悪いのでしょうか…)
編集画面ソース
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);
});
}