- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-01-2020 11:37 PM
I want to restrict "Request For" on Order confirmation pop up to show users only based on logged-in user's organisation.
So i'm trying to call a script include in a system property "glide.sc.request_for.query" which returns a query.
But this is not working, could you please let me know how to call a script include in a system property or how can i restrict data.
I tried in the below ways to call script include in a property as such "javascript:new <si_name>().<function>();" "new <si_name>().<function>();"
Thanks in Advance!!
Solved! Go to Solution.
- Labels:
-
Service Catalog
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2020 03:22 AM
Issue is resolved. I cloned the widget and added my script in script include.
i just commented and replaced this line of code in server script "data.reqForQuery = gs.getProperty("glide.sc.request_for.query");" with the below code
data.reqForQuery = check();
function check(){
var usrQuery ;
var usrOrg ;
gs.log('inside function1');
var loggedIn_user = gs.getUserID();
var uRec = new GlideRecord('sys_user');
uRec.addQuery('sys_id',loggedIn_user);
uRec.query();
if(uRec.next()){
usrOrg = uRec.getValue('company');
}
var gr = new GlideRecord('sys_user');
gr.addQuery('active',true);
gr.addQuery('company',usrOrg);
gr.query();
if(gr.next()){
usrQuery = gr.getEncodedQuery();
gs.log('Query returning : ' + usrQuery);
}
return usrQuery;
};
I have replaced the widget ID in portal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2020 01:55 AM
I modified the script as per my req. Please find the script below
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<j:set var="jvar_use_cart_layouts" value="${new SNC.ServiceCatalogLayoutService().useSCLayout()}" />
<j:if test="${!jvar_use_cart_layouts}">
<g:include_script src="CartCheckoutFunctions.jsdbx" />
</j:if>
<j:if test="${jvar_use_cart_layouts}">
<g:include_script src="CartCheckoutFunctionsV2.jsdbx" />
</j:if>
<g:evaluate var="jvar_query">
var query = 'u_organisation=' + gs.getUser().getRecord().getValue('u_organisation');
query;
</g:evaluate>
<div data-sn-macro-sys-id="${jvar_macro_sys_id}">
<g:ui_reference table="sys_user" name="sc_cart.requested_for" value="${jvar_ref}"
displayvalue="${jvar_ref_display}" completer="AJAXTableCompleter" columns="${gs.getProperty('glide.sc.request_for.columns')}"
order_by="${gs.getProperty('glide.sc.request_for.order_by')}"
query="${jvar_query}"
onchange="catReqFor('sc_cart.requested_for');" />
</div>
</j:jelly>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2020 02:20 AM
Hi Sai,
the getRecord().getValue() won't work in scoped app if you are running in custom scope
you can query table and then form the query
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2020 03:22 AM
Issue is resolved. I cloned the widget and added my script in script include.
i just commented and replaced this line of code in server script "data.reqForQuery = gs.getProperty("glide.sc.request_for.query");" with the below code
data.reqForQuery = check();
function check(){
var usrQuery ;
var usrOrg ;
gs.log('inside function1');
var loggedIn_user = gs.getUserID();
var uRec = new GlideRecord('sys_user');
uRec.addQuery('sys_id',loggedIn_user);
uRec.query();
if(uRec.next()){
usrOrg = uRec.getValue('company');
}
var gr = new GlideRecord('sys_user');
gr.addQuery('active',true);
gr.addQuery('company',usrOrg);
gr.query();
if(gr.next()){
usrQuery = gr.getEncodedQuery();
gs.log('Query returning : ' + usrQuery);
}
return usrQuery;
};
I have replaced the widget ID in portal