Is there a way to define if a field is Ever Updateable, if Update access can be granted to a field by Profile or Permission Set?

Field Describe information for a field can define if permissions can be set to a field by looking into isPermissionable() function result, but it doesn't say if a field can be set Update permission.

Field Describe information for a field can define if field can by updated by the current user, but also it doesn't say if a field can be set Update permission by admin for the current user.

Is there a way to determine that some fields like Contract.EndDate or Individual.MasterRecordId is readonly and can never be set Update permission?

1 Answer 1


In my package for Bulk Object and Field permission, I decide this by the following rule.

I define field as Readonly and not available for Update permission if one of the statements holds true

  1. Describe field result isCalculated() method returns true. Which means this is a custom formula field

    Returns true if the field is a custom formula field, false otherwise. Note that custom formula fields are always read-only.

  2. Describe field result isAutoNumber() method returns true. Which means this is an auto number field.

    Returns true if the field is an Auto Number field, false otherwise.

  3. The field is EndDate for Contract or MasterRecordId for Individual.
  • What do you do with CreatedDate and CreatedBy? Or, for that matter, LastModifiedDate and LastModifiedBy? Aug 14, 2020 at 6:15
  • 1
    CreatedDate, CreatedBy, LastModifiedDate and LastModifiedBy are never updateable by User. Also, although User can change OwnerId, admin cannot remove or add update access to this field, so all system fields are never updateable, that is, update access cannot be granted or removed for them
    – Patlatus
    Aug 26, 2020 at 9:31
  • In that respect, OwnerId is actually not special. Admin cannot remove update access to any required field. Sep 3, 2020 at 17:34
  • I have been looking for something is ever updatable field for a field like it is there for object but in vain. Note the logic you outlined, doens't cover some special fields which doesn't exhibit any of these characteristics but still readonly. For ex., WorkOrderLineItem.TotalPrice
    – metasync
    Sep 13, 2022 at 3:04
  • probably the list of exception should be maintained manually, my list wasn't exhaustive
    – Patlatus
    Sep 15, 2022 at 9:12

You must log in to answer this question.

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