- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-11-2022 10:53 PM
I would like to automatically change Views between Portal and internal platform using View Rule. The condition is like below:
If
- Short description is "1"
AND
- Accessed from Service Portal
Then
Apply "u_1_portal" View
Else if
- Short description is "1"
AND
- Accessed from internal platform (NOT portal)
Then
Apply "u_1" View
I created a View Rule as per the advice in the following thread, but it doesn't work properly.
Could someone please modify the script to ​make it work?
https://community.servicenow.com/community?id=community_question&sys_id=63545a6bdbbe6700d6a102d5ca961937
(function overrideView(view, is_list) {
//get URL details
var url = gs.action.getGlideURI().getMap();
//Determine if in portal view
var isPortal = url.get('portal_id');
var gr = new GlideRecord('u_target_table');
if(gr.short_description == '1' && isPortal){
answer = 'u_1_portal';
}
if(gr.short_description == '1' && !isPortal ){
answer = 'u_1';
}
})(view, is_list);
Best Regards,
Aki
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 01:42 AM
Hi Aki,
Try the below code. Its working for me.
(function overrideView(view, is_list) {
//get URL details
var url = gs.action.getGlideURI().getMap();
//Determine if in portal view
var isPortal = url.get('id');
var sys_id = url.get('sys_id');
if(sys_id){
var gr = new GlideRecord('u_target_table');
if(gr.get(sys_id)){
if(gr.short_description == '1' && isPortal){
answer = 'u_1_portal';
}
if(gr.short_description == '1' && !isPortal ){
answer = 'u_1';
}
}
}else{
answer=null;
}
})(view, is_list);
Please mark it as helpful/correct If my answer is helpful in any way,
Best regards,
Thameem

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 03:04 AM
Hi Aki,
Can you do one thing. At the end of the script before the last line
})(view, is_list);
Try adding the below info message as shown below directly to locate the issue.
gs.addInfoMessage(answer);
})(view, is_list);
and share the info message you get
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 03:38 AM
Hi Thameem,
I got "u_1_portal" message in the Portal, while no message in the internal platform...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 04:05 AM
Please clear you cache in your instance. using cache.do in application navigator.
and try refreshing the page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 04:11 AM
Hi Thameem,
I tried "cache.do" and log in/log out, but got NO message for internal platform ("u_1" View)...
Is there any possibility of what prevents the View Rule from working for it?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2022 04:15 AM
could you please share the latest screenshot of your code.
Also add info message at the beginning of your code. just to be sure whether or not the view rule is getting executed in the first place or not