You need to sign in to do that
Don't have an account?
RarLopz
Show only Some Picklist Values to Certain Users in a Profile
I have a Profile with 20 users asssigned to this Profile
Custom_Picklist__c field on the Activity object has several values in it. Now, not all of these values need to be seen by all users in the profile.
e.g User 1, User 2, User 3, User 4 should only see Val78, Val79,Val80. They should be able to access all other values. I want to restrict rest of the users from accessing Val78, Val79,Val80.
Any way to achive this ?
Custom_Picklist__c field on the Activity object has several values in it. Now, not all of these values need to be seen by all users in the profile.
e.g User 1, User 2, User 3, User 4 should only see Val78, Val79,Val80. They should be able to access all other values. I want to restrict rest of the users from accessing Val78, Val79,Val80.
Any way to achive this ?
1.
You can accomplish this (by profile) with Apex and Visualforce, but if you want to use native capabilities you can do this with RecordTypes. you can have different pick-list values based on recordTypes and then have different users assigned different recordTypes based on their profile.
https://developer.salesforce.com/docs/atlas.en-us.salesforce_recordtypes_cheatsheet.meta/salesforce_recordtypes_cheatsheet/recordtypes_cheatsheet.htm
https://help.salesforce.com/articleView?id=customize_recordtype.htm&type=5
2.
Another method could be- set the default picklist value based on a hierarchy Custom Setting.
3.
Deve'sc Sarilla's Validation Rule method is great if you don't mind the users seeing (and being able to errantly select the unacceptable options), but I don't think it's user-friendly to show options that will throw errors if selected/saved. So, I solved this same issue with the following approach:
a. Copy original field "Picklist" for each profile, e.g. "Picklist_Standard_User", "Picklist_Contract_Manager", etc.
b. For each profile-specific picklist, only include options desired for that profile.
c. Use Field Accessibility and/or Field-Level Security to control the visibility and/or editability of each field.
d. Build a process that updates the other corresponding picklists when any user updates their picklist.
So, for example, when Standard User updates "Picklist_Standard_User", the process updates "Picklist_Contract_Manager" to an option appropriate for that user.
For your reference,
https://success.salesforce.com/answers?id=90630000000461kAAA
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks.
All Answers
Check this link with more information and a workaround with validation rules(but the values will be shown)
https://success.salesforce.com/answers?id=90630000000461kAAA
if it helps please mark as correct, it may help others
1.
You can accomplish this (by profile) with Apex and Visualforce, but if you want to use native capabilities you can do this with RecordTypes. you can have different pick-list values based on recordTypes and then have different users assigned different recordTypes based on their profile.
https://developer.salesforce.com/docs/atlas.en-us.salesforce_recordtypes_cheatsheet.meta/salesforce_recordtypes_cheatsheet/recordtypes_cheatsheet.htm
https://help.salesforce.com/articleView?id=customize_recordtype.htm&type=5
2.
Another method could be- set the default picklist value based on a hierarchy Custom Setting.
3.
Deve'sc Sarilla's Validation Rule method is great if you don't mind the users seeing (and being able to errantly select the unacceptable options), but I don't think it's user-friendly to show options that will throw errors if selected/saved. So, I solved this same issue with the following approach:
a. Copy original field "Picklist" for each profile, e.g. "Picklist_Standard_User", "Picklist_Contract_Manager", etc.
b. For each profile-specific picklist, only include options desired for that profile.
c. Use Field Accessibility and/or Field-Level Security to control the visibility and/or editability of each field.
d. Build a process that updates the other corresponding picklists when any user updates their picklist.
So, for example, when Standard User updates "Picklist_Standard_User", the process updates "Picklist_Contract_Manager" to an option appropriate for that user.
For your reference,
https://success.salesforce.com/answers?id=90630000000461kAAA
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks.
I made a separate record type 'Operations', and a separate page layout 'Operations Layout' for these users.
Will assign the 'Operations Layout' page to the record type 'Operations'
Will chekc if I can make the Operations record type as default for these users.
Will test and let you know.
Thanks
If it works please mark the correct answer so this question can be solved.
Good luck