fabio3
4/8/2019 - 3:30 PM

Before Query Business Rule

Before Query Business Rule

(function executeRule(current, previous /*null when async*/ ) {
  try {
    var filter_role = 'a role';
    var filter_group = 'HR';
    var rf_unique_id = 'mobileworkaround';
    var lookup_table = 'sys_user';

    var userDislayName = gs.getUserDisplayName();
    var hasRole = gs.getUser().hasRole(filter_role);
    var isMemberOf = gs.getUser().isMemberOf(filter_group);
    var deviceType = gs.getSession().getProperty('device_type');

    var query = current.getEncodedQuery();
    var table = current.getTableName();
    var recClass = current.getRecordClassName();


    if (userDislayName != 'System Administrator' &&
      userDislayName != 'System' &&
      userDislayName != 'Guest' &&
      deviceType == 'm' &&
      hasRole &&
      isMemberOf &&
      query.indexOf('CONTAINS') != -1 &&
      query.indexOf(rf_unique_id) != -1 &&
      lookup_table == table
    ) {
      var newQuery = query.replace(/CONTAINS/g, 'STARTSWITH');

      current.addQuery(newQuery);

      gs.info('MSS [by ' + userDislayName + ' ] deviceType: ' + deviceType);
      gs.info('MSS [by ' + userDislayName + ' ] hasRole: ' + hasRole);
      gs.info('MSS [by ' + userDislayName + ' ] isMemberOf: ' + isMemberOf);
      gs.info('MSS [by ' + userDislayName + ' ] query: ' + query);
      gs.info('MSS [by ' + userDislayName + ' ] on table: ' + table);
      gs.info('MSS [by ' + userDislayName + ' ] record class name: ' + recClass);
      gs.info('MSS [by ' + userDislayName + ' ] newQuery: ' + newQuery);
    }

  } catch (e) {
    gs.info('MSS [by ' + gs.getUserDisplayName() + ' ] error: ' + e.toString());
  }

})(current, previous);