How to prevent from inserting into a record?

shalinikacham
Kilo Expert

I've written a business rule to prevent a user from inserting a record if priority is critical. Used setabortaction() for this. BUt it is also preventing user who perform updates and delete.

Using which method can i prevent only inserting to a record?

Business rule:

Table: incident

(function executeRule(current, previous /*null when async*/) {

if(!(gs.getUser().isMemberOf('HelpDesk') || gs.getUser().isMemberOf('Tier II Support SOI') || gs.getUser().isMemberOf('Tier II Support Passport') || gs.hasRole('admin'))){

  current.setAbortAction('true');

  gs.addErrorMessage("Users belonging to HelpDesk, Tier II Support SOI and Tier II Support Passport only can create a high priority ticket!");

}

})(current, previous);

Thanks.

1 ACCEPTED SOLUTION

Chuck Tomasi
Tera Patron

Check to make sure that the Insert checkbox is checked and the Update is NOT. Change the 'true' to true. It's a JavaScript keyword, not a string.



For readability I might suggest the following:



(function executeRule(current, previous /*null when async*/) {


var user = gs.getUser();


var isHelpDesk = user.isMemberOf('HelpDesk');


var isTier2SOI = user..isMemberOf('Tier II Support SOI');


var isTier2Passport = user.isMemberOf('Tier II Support Passport');


var isAdmin = gs.hasRole('admin');



if (!(isHelpDesk || isTier2SOI || !isTier2Passport || isAdmin)) {


  current.setAbortAction(true);


  gs.addErrorMessage("Users belonging to HelpDesk, Tier II Support SOI and Tier II Support Passport only can create a high priority ticket!");


}




})(current, previous);


View solution in original post

5 REPLIES 5

Abhinay Erra
Giga Sage

Only check the insert checkbox on this business rule. Uncheck all the other check boxes so that this business rule will only be triggered on insert.


Chuck Tomasi
Tera Patron

Check to make sure that the Insert checkbox is checked and the Update is NOT. Change the 'true' to true. It's a JavaScript keyword, not a string.



For readability I might suggest the following:



(function executeRule(current, previous /*null when async*/) {


var user = gs.getUser();


var isHelpDesk = user.isMemberOf('HelpDesk');


var isTier2SOI = user..isMemberOf('Tier II Support SOI');


var isTier2Passport = user.isMemberOf('Tier II Support Passport');


var isAdmin = gs.hasRole('admin');



if (!(isHelpDesk || isTier2SOI || !isTier2Passport || isAdmin)) {


  current.setAbortAction(true);


  gs.addErrorMessage("Users belonging to HelpDesk, Tier II Support SOI and Tier II Support Passport only can create a high priority ticket!");


}




})(current, previous);


Good catch chuck


shalinikacham
Kilo Expert

Wow thanks so much. Silly mistake on my part