Need assistance with Business Rule
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-08-2023 11:14 PM
We have a business rule that governs the visibility of the case to the users. Currently , it makes the case visible only to users with ITIL access . But additionally, want to make the case visible to users when they have opened the case even if they don't have any role in the system by amending the below 'else if' query .
else if (!gs.hasrole('itil') {
var query = u_catalog_item.ref_sc_cat_item_producer.u_can_read_requested_by=true^u_requested_by.employee_number='+getPersonnelNumber+'^NQu_catalog_item.ref_sc_cat_item_producer.u_can_read_requested_for=true^u_requested_for.employee_number='+getPersonnelNumber+'^NQu_catalog_itemISEMPTY^u_requested_by.employee_number='+getPersonnelNumber;
var currentQuery = current.getEncodedQuery();
if(currentQuery) {
query = query.replace(/\^NQ/g, '^' + currentQuery+ '^NQ');
query = query + '^' + currentQuery;
  }
current.addEncodedQuery(query);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-08-2023 11:58 PM
Can you try logic below :
if ( gs.hasrole('itil')) {
var query = "Query for ITL users";
current.addEncodedQuery(query);
} else if (!gs.hasrole('itil')){
var query = "Query for Non ITL users";
current.addEncodedQuery(query);
}
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-09-2023 05:16 AM
Hi Vishal, thanks for your inputs.. But removing the existing 'Else if' will remove other logic that is already implemented .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-09-2023 05:38 AM
I guess, you don't require to remove existing else-if.
If possible can you show the full line of code...??
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-09-2023 06:13 AM
var loggedInUserSYSID = gs.getUserID();
  var user = new GlideRecord('sys_user');
  user.get(loggedInUserSYSID);
  var getPersonnelNumber = user.employee_number;
  /*ITIL users should be able to see their cases raised against their groups*/
  if(gs.hasRole("ITIL") && (!gs.hasRole("admin"))){
    var agent_query = "u_workgroupLIKE";
    var new_query = "";
    var allMyWorkgroup = new global.WBUUtils().getAllMyWorkroups(gs.getUserID());
    var au = new global.ArrayUtil();
allMyWorkgroup = au.unique(allMyWorkgroup);
    if(allMyWorkgroup.length>0){
      for(var i =0;i<allMyWorkgroup.length; i++){
        new_query += agent_query+allMyWorkgroup[i] + '^OR';
      }
    }
    new_query = new_query.substring(0,new_query.length-3);
    }
  else if (!gs.hasRole('itil')) {
  var query =   u_catalog_item.ref_sc_cat_item_producer.u_can_read_requested_by=true^u_requested_by.employee_number='+getPersonnelNumber+'^NQu_catalog_item.ref_sc_c  at_item_producer.u_can_read_requested_for=true^u_requested_for.employee_number='+getPersonnelNumber+'^NQu_catalog_itemISEMPTY^u_requested_by.employe  e_number='+getPersonnelNumber;
  var currentQuery = current.getEncodedQuery();
  if(currentQuery) {
  query = query.replace(/\^NQ/g, '^' + currentQuery+ '^NQ');
  query = query + '^' + currentQuery;
  }