Calculated Field - Setting Field Conditions Based on User Attributes
This article will walk through how to combine the
currentUserField() function, which translates a field value on the Users module to a string value, with the
equal() function in a Sugar Logic formula. The formula is evaluated based on the currently logged-in user to conditionally set a field on the leads record to "Read Only".
For more information on Sugar Logic and Calculated Fields, please refer to the Introduction to Calculated Fields article.
As a sales leader, when an account rep enters a lead, I want the lead's Account Name field to be required because account reps are only creating leads from our existing accounts. When other users create leads, that field should not be required.
You will need to be familiar with the following actions that are not explained in this article:
- Adding fields with Studio
- Altering layouts with Studio
For additional information on adding fields and editing layouts, please refer to the Studio documentation in the Administration Guide.
This example will use the Sugar Logic function named
currentUserField(), which evaluates fields in the Users module for the currently logged-in user that are marked "Make visible for calculations". This is a special field option found only on the Users module and used solely for the
currentUserField() function. Combined with the
equal() function to evaluate field value conditions as true or false, the formula will set the calculated field as required for users with the job title "Account Rep" but not required for anyone else.
Follow the steps below to implement this solution:
- Navigate to Admin > Studio > Users > Fields and click "Add Field".
- Fill in the fields with the following values:
- Data Type: TextField
- Field Name: job_title (this field cannot contain any spaces)
- Display Label: Job Title
- Make visible for calculations: Enabled
- Click "Save".
- Add the new field to any applicable layouts.
- Navigate to Admin > Studio > Leads > Fields and select "Account Name".
- Enable the "Required Field" checkox.
- Enter the following Sugar Logic formula into the "Required if" formula builder:
- Save the formula.
- Click "Save" at the top of the field editor.
- Navigate to Admin > User Management.
- Confirm that any user who is an account rep has the exact value "Account Rep" (case sensitive) in the Job Title field for their user record.
currentUserField() function converts the value of a field in the Users module to a string of characters, comparable to the value of a Textfield, that can then be evaluated by other SugarLogic functions. We then use the
equal() function to compare the result with our desired value, "Account Rep". The function returns "true" if the two strings match or "false" if they do not. The lead's Account Name field is then required if the function returns "true".
To test this formula, log in to Sugar as a user with the Job Title value "Account Rep". Attempt to create a new lead or edit a lead without an account name. If the formula is working correctly, then you will not be able to save the lead without providing a value for the Account Name field.