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

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

 

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

 

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

 

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

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

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

この場合、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;

});
})();

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

アプリ設定のjavascriptの部分で

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 = {
リンク: {
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;




});
})();

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 ←ここはこのままでよろしいのでしょうか。

 

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

 

 

 

 

 

 

 

ススム様

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

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

(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";
varevents = ['app.record.edit.submit.success','app.record.create.submit.success'];
kintone.events.on(events,function(event) {
varrecord = event.record;
varrecordId = record.$id.value;
varupdate = {
**(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);
});
returnevent;
});
})();

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

Teru様

 

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

 

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

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

 

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

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

 

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

お世話になってます。

ススム様と同じくレコードにレコードのURLを表示させたくてここのコードをまねさせていただいていたのですが、パターン②の「新規レコード保存成功時、レコード編集保存成功時に機能」が動きません。症状は①保存ボタンを押しても画面が切り替わらない。でもレコードは保存されてる。②URLはフィールドに入っていない。

どこかおかしなところがないか教えていただけないでしょうか?

JAVAは初心者でキントーンも2ヵ月目なの勉強中の新米です。

質問がわかりにくかったり、意図がわからなければご指導いただければ助かります。

(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/42/show#record=” + record. レコード.value
},
};
//update by id
kintoneUtility.rest.putRecord({
app: 42,
id: recordId,
record: update,
isGuest: false
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
return event;
});
})();

太文字はフィールドコードを入力しています

URL:文字列(1行)のフィールド

レコード:レコード番号のフィールド

です。

kintoneUtilityのURLのリンクも消えてしまっているからなのか、それともどこか変換するところが間違っているのがご教授いただければ助かります。よろしくお願いします。

申し訳ありません

自己解決したので、報告させていただきます。

2021/4よりkintoneUtilityが利用停止になっていました。(詳細は下記URL)

https://developer.cybozu.io/hc/ja/articles/900003738746-kintone-Utility-for-JavaScript-%E3%81%AE-URL-%E3%81%A7%E3%81%AE%E9%85%8D%E4%BF%A1%E5%81%9C%E6%AD%A2%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

対応方法通りにプラグインを入れたら稼働しました。

ありがとうございます。

同じように止まっちゃった方がいたら参考にどうぞ・・・

 

上記のJavascript自分がやりたいと思っていたことを実現できました。がしかしもし可能であればCSVでの読み込み時にも

同じ様にURLを入れたいのですが可能でしょうか?CSV読み込みはeventがないと聞いています。もしくは現在あるデータを一括で

更新しながら入力できればいいのですが…