保存ボタン押下後に一覧画面に遷移しない

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

以前、こちらの記事で「レコード更新時に別アプリのレコードを更新する」コードをご教授いただいたのですが
その後、業務の運用のなかで、案件管理アプリAを介さずに契約管理アプリBに直接レコードを登録する場合がでてきました。
その際、契約管理アプリBにレコードを直接作成して保存ボタンを押すと、レコード作成自体はできているのですがレコード一覧画面に遷移してくれません。

別アプリのレコードの更新ができない場合でも、保存ボタンを押した後に一覧画面に遷移させるにはどうすればよいでしょうか?

現在のコードは以下の通りです。

(function() {
  "use strict";
  kintone.events.on(['app.record.create.submit.success',
   'app.record.edit.submit.success','app.record.index.edit.submit.success'], function(event) {
    return kintone.api('/k/v1/record', 'PUT', {
      "app": 10, //案件管理アプリAのアプリID
      "id": event.record.アプリAのレコード番号.value,
      "record": {
        "契約番号": {
            "value": event.record.契約番号.value
        },
      }
    }).then(function(){
      return event;
    });
  });
})();

kirimin様

お世話になっております。
cstapの江田です。

レコードの保存成功後のイベント(success)では、eventオブジェクトにurlプロパティを指定してeventをreturnすると、イベント処理後にそのURLに遷移します。
https://developer.cybozu.io/hc/ja/articles/201941984#success

(function(){"use strict";kintone.events.on(['app.record.create.submit.success','app.record.edit.submit.success','app.record.index.edit.submit.success'],function(event){returnkintone.api('/k/v1/record','PUT',{"app":10,//案件管理アプリAのアプリID"id":event.record.アプリAのレコード番号.value,"record":{"契約番号":{"value":event.record.契約番号.value},}}).then(function(){event.url=location.protocol+"//"+location.hostname+"/k/"+10;returnevent;});});})();

江田様

前回に引き続きありがとうございます。
ご提示いただいたコードを実装してみたのですが、やはり一覧画面に遷移しませんでした。

案件管理アプリAから、アクション機能を使って契約管理アプリBにレコードを新規作成する際は
アプリAのレコード番号もコピーしてアプリAとアプリBのレコードの紐付けをしているのですが、
アプリBに直接レコード登録する場合はアプリA側に紐づくレコードがないためか、
Chromeのデベロッパーツールで確認したところ
PUT https://***.cybozu.com/k/v1/record.json 404 (Not Found)
{code: “GAIA_RE01”, id: “OUeglwCXwHhfhjG9Vq0j”, message: “指定したレコード(id: 0)が見つかりません。”}
というエラーが出ていました。

アプリBのレコード自体はできているが、レコード追加画面の保存としては失敗しているのでしょうか?

 

kirimin様

お世話になっております。

左様でしたら、初めに例外処理を挟んでおくとよいと思います。

(function(){"use strict";kintone.events.on(['app.record.create.submit.success','app.record.edit.submit.success','app.record.index.edit.submit.success'],function(event){if(!event.record.アプリAのレコード番号.value)return;returnkintone.api('/k/v1/record','PUT',{"app":10,//案件管理アプリAのアプリID"id":event.record.アプリAのレコード番号.value,"record":{"契約番号":{"value":event.record.契約番号.value},}}).then(function(){returnevent;});});})();

江田様

重ね重ねありがとうございます!
いただいたコードで無事に動作させることができました。
お礼申し上げます。