- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2017 01:58 AM
Hi All,
I have the below query for a simple list widget filter on the Service Portal to show all incidents that have been raised by the users company. However I need this list to also show any incidents that have been created by a child company if the logged in users company is a parent company, how can I achieve this?
company=javascript:gs.getUser().getCompanyID()^active=true^EQ
Any help is greatly appreciated.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-28-2017 06:32 AM
Hi Sam,
I am able to retrieve the result in background script. Is the script include is in some scoped application ?
gs.print(new CDL_getParentChild().getCompanyCDL(gs.getUserID()))
Give a try with small change in the SI... it should work without parameter as well.
Filter:
companyINjavascript:newCDL_getParentChild().getCompanyCDL()^active=true^EQ^ORDERBYDESCopened_at
Script Include:
var CDL_getParentChild = Class.create();
CDL_getParentChild.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getCompanyCDL : function(user) {
if(!user){
user=gs.getUserID();
}
var sysid=[];
var company,com;
var usr = new GlideRecord('sys_user');
usr.addQuery('sys_id',user);
usr.query();
if(usr.next())
{
company = usr.company;
com = usr.email;
}
if( company != '' ) {
if(com.indexOf('@cdl.co.uk')>= 0)
{
var compani = new GlideRecord('core_company');
compani.query();
while(compani.next()) {
sysid.push(compani.sys_id.toString());
}
return sysid;
}
var company1 = new GlideRecord('core_company');
company1.addQuery('parent',company);
company1.query();
while(company1.next()) {
sysid.push(company1.sys_id.toString());
}
sysid.push(company.sys_id.toString());
return sysid.join(',');
} else {
var company2 = new GlideRecord('core_company');
company2.addEncodedQuery('vendor=false^customer=false^NQcustomer=true');
company2.query();
while(company2.next()) {
sysid.push(company2.sys_id.toString());
}
return sysid.join(',');
}
},
type:'CDL_getParentChild'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2017 02:20 AM
You need a script include for that. Create a client callable script include to return comma separated list of companies sys_ids (including requester company and child company) and then call that script include in the url.
companyINjavascript:scriptIncludeName().functionName()^active=true^EQ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2017 02:33 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2017 03:19 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2017 03:51 AM
Hi Sam,
You need to instantiate the Script include class with new keyword.
companyINjavascript:new KPMG_getDetails().getComp()^active=true^EQ^ORDERBYDESCopened_at