レコード登録時にそのURLを作成する

レコード登録時にそのレコードのURLを作成したいのですが、

どのようにすればよろしいでしょうか?

「リンク」というフィールドにURLをセットしたい。

(function() {
“use strict”;

kintone.events.on(‘app.record.create.submit.success’, function(event) {
var record = event.record;

var recordId = event.recordId;

record[“リンク”][“value”] = “https://(サブドメイン).cybozu.com/k/アプリID/show#record=”+recordId;

eturn event;
});
})();

shimaさん、こんにちは。

プロジェクト・アスノートの松田です。

 

イベントのドキュメントにあるように、保存成功後イベントでeventオブジェクトをreturnしても

フィールドは更新されません。

(※ちょっとわかりにくいですが、eventオブジェクトをreturnすると書き換えられます~という表記がありません)

 

この場合は、成功後に生成したURLを、REST APIで自レコードに更新することが必要になります。

前に作ったものがありましたので、参考に載せておきます。

フィールドコードの修正、リンクフィールドの編集不可処理等は、別途作成くださいね。

 

(function() {
"use strict";

//レコード追加画面の保存成功後イベント
kintone.events.on('app.record.create.submit.success', function(event) {

var record = event.record;
var appId = event.appId;
var recordId = event.recordId;

// レコード詳細画面のURLを生成

var subDomain = "subDomain" // サブドメイン文字列を指定してください
var url = "https://" + subDomain + ".cybozu.com/k/" + appId + "/show#record=" + recordId;

//レコードの更新API 更新先の文字列フィールドコード:URL 
var body = {
"app": appId,
"id": recordId,
"record": {
"URL": {
"value": url
}
}
};

// レコードを更新する(kintone Promise コールバック関数省略版)
return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body).then(function(resp) {
return event;
}, function(error) {
alert(error.message);
return event;
});

});
})();

松田様

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

なるほど。Windowを表示したりすることはできるけど、

更新するときはAPIで行う必要があるのですね。

サンプルソースまでご教授頂きありがとうございました。

非常にわかりやすいサンプルでした。

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