Interested in a ServiceNow event built for developers? Registration for now[dev]26 is officially open!

Dynamic URL according to environment

nupur_goswami
Tera Contributor

Hi

 

I have a requirement where I need to build a dynamic URL, need to use already present ('glide.servlet.uri')- system property to build the URL then append catalog item sysid, so that it will open the form according to the environment. Any suggestions how this could be implemented ?

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron

@nupur_goswami 

in notification?

if yes then simply use the relative URL in notification

AnkurBawiskar_1-1743688180370.png

 

AnkurBawiskar_0-1743688155703.png

 

if you are planning to use email script then it should be like this, please enhance it further

var baseUrl = gs.getProperty('glide.servlet.uri');

// Get the catalog item sys_id (replace 'your_catalog_item_sys_id' with the actual sys_id)
var catalogItemSysId = 'your_catalog_item_sys_id';

// Build the dynamic URL for native
var dynamicUrl = baseUrl + 'com.glideapp.servicecatalog_cat_item_view.do?sys_id=' + catalogItemSysId;

// Build it for portal
var urlPortal = baseUrl + 'esc?id=sc_cat_item&sys_id=' + catalogItemSysId

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

5 REPLIES 5

Dr Atul - LNG
Tera Patron

Hi @nupur_goswami 

But what is use case here? 

****************************************************************************************
Regards
Dr Atul G. - Learn N Grow Together ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
******************************************************************************************

nupur_goswami
Tera Contributor

@Dr Atul - LNG I have a catalog item in prod already created, I need to create a button from UI action that will redirect to that catalog item but based on the environment I am in for ex: If I am logged into dev instance it should take me to dev, if I am in test-it should take me to test and so on.

@nupur_goswami 

if the UI action is server side then do this

var baseUrl = gs.getProperty('glide.servlet.uri');

// Get the catalog item sys_id (replace 'your_catalog_item_sys_id' with the actual sys_id)
var catalogItemSysId = 'your_catalog_item_sys_id';

// Build the dynamic URL for native
var dynamicUrl = baseUrl + 'com.glideapp.servicecatalog_cat_item_view.do?sys_id=' + catalogItemSysId;

// Build it for portal
var urlPortal = baseUrl + 'esc?id=sc_cat_item&sys_id=' + catalogItemSysId;

action.setRedirectURL(urlPortal);

if it's client side then you can simply use relative URL using /

Something like this

var catalogItemSysId = 'your_catalog_item_sys_id';

// Build the dynamic URL for native
var dynamicUrl = '/com.glideapp.servicecatalog_cat_item_view.do?sys_id=' + catalogItemSysId;

// Build it for portal
var urlPortal = '/esc?id=sc_cat_item&sys_id=' + catalogItemSysId;

g_navigation.open(urlPortal);

Please share your complete UI action script and screenshots

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Ankur Bawiskar
Tera Patron

@nupur_goswami 

in notification?

if yes then simply use the relative URL in notification

AnkurBawiskar_1-1743688180370.png

 

AnkurBawiskar_0-1743688155703.png

 

if you are planning to use email script then it should be like this, please enhance it further

var baseUrl = gs.getProperty('glide.servlet.uri');

// Get the catalog item sys_id (replace 'your_catalog_item_sys_id' with the actual sys_id)
var catalogItemSysId = 'your_catalog_item_sys_id';

// Build the dynamic URL for native
var dynamicUrl = baseUrl + 'com.glideapp.servicecatalog_cat_item_view.do?sys_id=' + catalogItemSysId;

// Build it for portal
var urlPortal = baseUrl + 'esc?id=sc_cat_item&sys_id=' + catalogItemSysId

If my response helped please mark it correct and close the thread so that it benefits future readers.

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