Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Illegal Access to global script include from scoped app

IndianaJones
Tera Expert

I am trying to use the "group type" filtering on the assignment group for Incidents and Cases. The script include works fine for Incidents but I cannot get it to work for Cases. Does anyone know what I am doing wrong? I saw in a post to not use gs.log so I changed that line to gs.info for scoped applications. The script include shows to be accessible from all application scopes. 

 

Error I am getting on the case table:

IndianaJones_0-1722000248642.png

 

Here is how I am calling the global script include:

IndianaJones_1-1722000277908.png

 

Here is my script include:

IndianaJones_2-1722000299633.png

 

Script include code:

 

//
// this will do a lookup on the group type display values and return
// a query condition that will query on the group type sys_id values
// on entry
//    reference = the table that is being referenced
//    source = the table that contains the reference
//
function GetGroupFilter(types) {
   //
   // By default only use for service_catalog requests
   //
   //if (source != 'sc_request' && source != 'sc_req_item')
   //    return "type=null";

   //
   // turn a non specification into a null request
   //
   if (types == null)
      return "type=null";

   gs.info("GetGroupFilter: Translating '"+types+"' into sys_id values");
   var gt = new GlideRecord("sys_user_group_type");  
   var filters = types.split(",");
   var qc = null;
   for (var i = 0; i < filters.length; i++) {
      if (qc == null)
         qc = gt.addQuery("name", filters[i]);
      else
         qc.addOrCondition("name", filters[i]);
   }
   var gtr = new GlideRecord("sys_user_group");
   gt.query();
   qc = null;
   while (gt.next()) {
      if (qc == null)
         qc = gtr.addQuery("type", gt.sys_id);
      else
         qc.addOrCondition("type", "CONTAINS", gt.sys_id);
     
   }
   return qc;
}

 

 

 

 

1 REPLY 1

onwork1948
Tera Contributor

When working with ServiceNow scoped applications, accessing a global script include from within a scoped app directly is restricted to ensure encapsulation and security.