新規投稿
フォローする

文字列フィールドにレコードのURLを表示させたいです

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

 

教えていただきたいことがございます。

 

文字列(1行)フィールドに、そのレコードのURLが表示されるようにしたいのですが、自動計算?で、どのような形式にすればよいか教えてください。

 

たとえばですが、文字列(1行)フィールドに"https://サブドメイン/k/アプリID/show#record="&[番号]と設定すると、&の前にあるURLと[番号]フィールドに表示されている数字が合体できるのですが、レコード番号(自動入力)だと形式エラーとなってしまいます。

0

5件のコメント

Avatar
Teru

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

標準機能の自動計算では、レコード番号は指定できないようです。

この場合、javascriptを用いたカスタマイズが必要です。

編集後に自動的にリンクを追加する場合は以下のコードで実装できます。

リンクの部分は実際のフィールドコードに変更してください。

新規レコードの保存時にリンクの追加が必要であれば…もう少し工夫が必要です。

 

 (function() {
"use strict";
var events = ['app.record.edit.submit'];
kintone.events.on(events, function(event) {
var record = event.record;
record.リンク.value = "https://サブドメイン.cybozu.com/k/アプリID/show#record=" + record.レコード番号.value;

return event;

});
})();
0
Avatar
Teru

kintoneUtilityを用いて新規追加時も反映されるように実現してみました。

アプリ設定のjavascriptの部分で

 
 (function() {
"use strict";
var events = ['app.record.edit.submit.success','app.record.create.submit.success'];
kintone.events.on(events, function(event) {
var record = event.record;
var recordId = record.$id.value;
var update = {
リンク: {
value: "https://サブドメイン.cybozu.com/k/アプリID/show#record=" + record.レコード番号.value
},
};
//update by id
kintoneUtility.rest.putRecord({
app: アプリID,
id: recordId,
record: update,
isGuest: false
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
return event;




});
})();
0
Avatar
ススム

Teru様

 

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

Javascriptを教えていただきまして、ありがとうございます。

 

2通りのJavascriptを試してみましたが、動作されませんでした。

変更する箇所等が間違っていましたらご指摘お願いします。

------------------------------------------------------------------

(function() {
"use strict";
var events = ['app.record.edit.submit'];
kintone.events.on(events, function(event) {
var record = event.record;
record.リンク.value = "https://サブドメイン.cybozu.com/k/アプリID/show#record=" + record.レコード番号.value;
return event;
});
})();

------------------------------------------------------------------

record.リンク.value = ←リンクというところをURLというフィールドコードに変更しました。

https://サブドメイン.cybozu.com/ ←該当するサブドメイン名に変更しました。

/k/アプリID/show#record= ←アプリIDは該当アプリのIDに変更しました。

record.レコード番号.value ←このレコード番号はレコード番号(自動入力)のフィールドコードでよろしいでしょうか。

変更した箇所は以上です。

------------------------------------------------------------------

(function() {
"use strict";
var events = ['app.record.edit.submit.success','app.record.create.submit.success'];
kintone.events.on(events, function(event) {
var record = event.record;
var recordId = record.$id.value;
var update = {
リンク: {
value: "https://サブドメイン.cybozu.com/k/アプリID/show#record=" + record.レコード番号.value
},
};
//update by id
kintoneUtility.rest.putRecord({
app: アプリID,
id: recordId,
record: update,
isGuest: false
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
return event;
});
})();

------------------------------------------------------------------

リンク: { ←リンクというところをURLというフィールドコードに変更しました。

https://サブドメイン.cybozu.com ←該当するサブドメイン名に変更しました。

/k/アプリID/show#record= ←アプリIDは該当アプリのIDに変更しました。

record.レコード番号.value ←このレコード番号はレコード番号(自動入力)のフィールドコードでよろしいでしょうか。

app: アプリID ←ここは該当するアプリIDに変更するのでしょうか。

id: recordId ←ここはこのままでよろしいのでしょうか。

record: update ←ここはこのままでよろしいのでしょうか。

 

お忙しところ申し訳ございませんが、宜しくお願い致します。

 

 

 

 

 

 

 

0
Avatar
Teru

ススム様

お世話になっております。
読みづらいコードで失礼いたしました。
概ねご指摘の通りです。変更が必要な箇所を()付けしましたのでご確認ください。

①パターン - レコードがすでに作成された状態で、編集→保存を行うと機能します。

(function() {
"use strict";
var events = ['app.record.edit.submit'];
kintone.events.on(events, function(event{
var record = event.record;
record.(URLのフィールドコード).value = "https://(サブドメイン).cybozu.com/k/(アプリID)/show#record=" + record.(レコード番号のフィールドコード).value;
return event;
});
})();

②パターン - 新規レコード保存成功時、レコード編集保存成功時に機能します。
別途、kintoneUtilityのURLを指定する必要があります。

https://kintone.github.io/kintoneUtility/kintoneUtility.min.js

 (function() {
"use strict";
var events = ['app.record.edit.submit.success','app.record.create.submit.success'];
kintone.events.on(events, function(event) {
var record = event.record;
var recordId = record.$id.value;
var update = {
(URLのフィールドコード): {
value: "https://(サブドメイン).cybozu.com/k/(アプリID)/show#record=" + record.(レコード番号のフィールドコード).value
},
};
//update by id
kintoneUtility.rest.putRecord({
app: (アプリID),
id: recordId,
record: update,
isGuest: false
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
return event;
});
})();

再度動かない場合はサブドメイン以外は実際のものでコードをお見せいただけないでしょうか。
0
Avatar
ススム

Teru様

 

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

 

ご丁寧にコードを教えていただきまして、ありがとうございます。

読みづらいコードではなく、私の勉強不足でご迷惑をおかけしてしまい申し訳ございません。

 

教えていただきました①パターン、②パターンともに正常に動作することができました。

本当にありがごうございます!

 

また、なにかありましたら宜しくお願い致します。

1
ログインしてコメントを残してください。