I'm building an app that will display three sets of information based on the value of a pick list. It'll display the Definition of the value, a list of activities (Text not objects) to complete and a list of Evidence.

The definition, activities, and evidence will likely change as values are added, remove or things just change normally.

So I'm building a "settings" option within the App. What I want to do is to be able to pull from a query or custom objects what the definition, activities list, and evidence list are for the provided value.

Which would be better for this? Custom settings or an Object?

I was going to the custom settings route, but there's no "Related" option in custom settings. You can't have a "Name" of a CS duplicated within the set. So if I want to pull everything for the value of "Test Me" I couldn't reference a single setting.

A text area on the custom settings wouldn't provide enough flexibility.

An object would allow me to create a "Pick List value" record and related "Evidence" and "Activities" for nice SoQL - but I run the risk of this getting exposed to the end user.

What's the best method for my use case? Am I missing a option for Custom Settings that would give me the List capability for a single value?

  • Can we not use security rules on the object?Can you elaborate the question please. Commented Oct 8, 2012 at 21:37

3 Answers 3


This is remarkably similar to a requirement I worked on recently.

It sounds like you are going to need a custom object, I base this on the fact that is sounds like the lists of activities and evidence are dependent on the definition. Something that we could not solve with Custom Settings alone.

The other thing you may need to consider is, as you say over time the list changes. but what happens to the existing values that use an old value? are they migrated to a new value, or does the old value need to remain for reporting purposes?

Something else we investigated and almost ended up doing was still using a custom object but having 3 levels of dependent picklists on the object, it's a nightmare to manage if there are more than 20 or so values to choose from, but it is very flexible in terms of being able to delegate the maintenance of the list to a system admin.


It seems like you've explained why Custom Settings won't work for you. Considering the complexity of what you're describing, a Custom Setting will be hard to make work.

If the only negative you have about a Custom Object is that it is at risk of being exposed, it seems like you just need to configure security on your Setting object so that no users have access. Is there some reason that this is not possible?

  • I was thinking of deployment concerns. I"m not the only Admin and sadly there's lots of "security setup" concerns. The other item is if I decide to package this and package deployment security Commented Oct 8, 2012 at 23:36
  • The other advantage of custom settings is that reading them does not cost you against SOQL and DML Records limits.
    – kibitzer
    Commented Oct 9, 2012 at 21:32

You could either In a custom setting hold the lists as comma or semi colon separated values and use a string tokenizer to display (not great however - although this is how values are held natively in multipicklist fields)

or A Custom object (Seemingly a more elegant solution) Where the Picklist value is the Record Name (if Length of Standard Name field permits) or an External Id and then possibly have picklist fields, one each for Evidence and Activities.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .