How to convert values in a string field to clickable link?

Kevin Smith2
Giga Expert

Hi,

We have a string field (description) on certain conditions, we are populating the description field with clickable LINK via BR.

The link is getting populated in plain text.

How can we make the text clickable?

Here is my script:

(function executeRule(current, previous /*null when async*/ ) {

    var deepLinkGenerator = new global.MobileDeepLinkGenerator("agent");
    var link = deepLinkGenerator.getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id"));
    current.setValue('description', link);
    current.update();

})(current, previous);

Thanks

Kevin

1 ACCEPTED SOLUTION

Hi,

I am not sure on those 2 functions you are using from script include

but you can try this and check if it works and then debug the function

var url = '<a href="' + gs.getProperty('glide.servlet.uri') + '/nav_to.do?uri=' + current.getTableName() + '.do?sys_id=' + current.sys_id + '">' + current.getDisplayValue() + '</a>';

current.work_notes = '[code]' + url + '[/code]';

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

14 REPLIES 14

I tried using your code:

(function executeRule(current, previous /*null when async*/ ) {

    var deepLinkGenerator = new global.MobileDeepLinkGenerator("agent");
    //var link = deepLinkGenerator.getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id"));
	var url = '<a href="' + gs.getProperty('glide.servlet.uri') + deepLinkGenerator.getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id")) + '</a>';
	current.work_notes = '[code]' + url + '[/code]';
    //current.setValue('description', link);
    current.update();

})(current, previous);

I must be doing something wrong.

It didn't work.

Hi,

I am not sure on those 2 functions you are using from script include

but you can try this and check if it works and then debug the function

var url = '<a href="' + gs.getProperty('glide.servlet.uri') + '/nav_to.do?uri=' + current.getTableName() + '.do?sys_id=' + current.sys_id + '">' + current.getDisplayValue() + '</a>';

current.work_notes = '[code]' + url + '[/code]';

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Hi,

This is working fine, but when I call the script include within it. It's not working.

(function executeRule(current, previous /*null when async*/ ) {

    //     var deepLinkGenerator = new global.MobileDeepLinkGenerator("agent");
    //     //var link = deepLinkGenerator.getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id"));
    // 	var url = '<a href="' + gs.getProperty('glide.servlet.uri') + deepLinkGenerator.getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id")) + '</a>';
    var url = '<a href="' + gs.getProperty('glide.servlet.uri') + '/nav_to.do?uri=' + current.getTableName() + '.do?sys_id=' + current.sys_id + '">' + current.getDisplayValue() + '</a>';

    current.work_notes = '[code]' + url + '[/code]';
    //current.work_notes = '[code]' + url + '[/code]';
    //current.setValue('description', link);
    current.update();

})(current, previous);

Here are the logs:

find_real_file.png

Update as this

(function executeRule(current, previous /*null when async*/ ) {

	var url = '<a href="' + new global.MobileDeepLinkGenerator("agent").getFormScreenLink("472ceb7253b0330097a2ddeeff7b12f6", current.getTableName(), current.getValue("sys_id")) + '</a>';
	current.work_notes = '[code]' + url + '[/code]';
	current.update();

})(current, previous);

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader