How do I prevent Staff users from closing Change Requests? Or from changing the status of ANY object, Incident, Task or whatever, to CLOSED or COMPLETED or any other status I don’t want them using?
The answer is Validation Rules. Validation rules are part of Incident objects, Task objects, etc. Let’s use the Change Request object to understand the basic process. Maybe I want everyone to change the status to “PENDING” and only specific users should be allowed to change it to “CLOSED” or “COMPLETED”.
How do we do that?
We create a validation rule will look for certain criteria, such as:

  1. This user does NOT have their user account “Manage Staff Users” check box checked.
  2. This user is NOT in a particular Profile, such as the Change Manager profile.

If either of those criteria match, the user will not be allowed to change the status to CLOSED or COMPLETED. Well, they can make that change, but they won’t be allowed to save it! They will receive whatever error message we define.
Here’s the process:
First let’s setup up a rule for the example from example 1. above. The validation rule creation process follows the same process for both of the above scenarios. We start by selecting “Create and Edit Objects” from “Manage Objects” in the Remedyforce Administration tab:
image 1
From there we select Change Request:
image 2
Then select Validation Rules:
image 3
When the next screen appears, select New:
image 4
Complete the following screen per below and you’re done!
image 5
Here’s the Error Condition Formula in case you would like to copy and paste into your validation rule:
$User.BMCServiceDesk__Manage_ServiceDesk_Staff_Member__c   =   FALSE && (BMCServiceDesk__Status__c   = ‘COMPLETED’ || BMCServiceDesk__Status__c   = ‘CLOSED’)
Now if you would like to use example 2. from above (This user is NOT in a particular Profile, such as the Change Manager profile whose ID is 00eo0000000nrB7), here’s the Error Condition Formula validation rule:
$User.ProfileId   <> ’00eo0000000nrB7′ && (BMCServiceDesk__Status__c   = ‘COMPLETED’ || BMCServiceDesk__Status__c   = ‘CLOSED’)
Is this second example, the only users allowed to change the status to CLOSED or COMPLETED will be users whose profile ID is 00eo0000000nrB7. By changing the <> to = the rule will ALLOW only members of this specific profile make that change.