レコード登録時にそのレコードの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で行う必要があるのですね。
サンプルソースまでご教授頂きありがとうございました。
非常にわかりやすいサンプルでした。
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。