Several custom fields was added to standard SF object User and included in managed package.
As I understood, they can't be deleted from new version of package, only marked as 'deprecated'.
Can anyone say, how it may be done?
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It only takes a minute to sign up.Sign up to join this community
Deleting components from a managed package is currently in pilot. Log a case to request this feature be turned on in your packaging org:
The deletion of managed custom fields and tabs was not supported previously, to avoid the risk of data loss or integration failures in subscriber organizations. However, for complex packages, the number of custom fields and tabs can grow very large over multiple release cycles. The ability to delete custom fields and tabs can be very useful in such cases. It provides ISVs greater flexibility in maintaining and upgrading their apps
You will then be able to delete the fields as long as there is no reference to them in the code (same as regular orgs)....
When the fields are deleted and the package upgraded, the fields are not deleted from the customers org but they do become available for the customer to delete. This allows the customer to archive any data they may want to keep.
All new installs will have no references to the fields at all.
Keep in mind that once a field is deleted you can never use the api name again for another field.
Generally people do it as:
You can not delete fields from managed package so it the most used way to keep tracking of deprecated fields.
Salesforce has pilot program where you can request Salesforce to enable deleting managed package fields so try to contact with Salesforce if it is very necessary (matter of life) to delete fields. If You are an ISV partner then you have other options as well. Contact Salesforce.