我在永久删除自定义字段时遇到问题。
例如 我在Contact实体中创建了一个名为“Newsletter”的自定义字段,Salesforce internaly将其作为“Newsletter__c”存储为自定义字段。
然后我使用以下代码删除自定义联系人字段。
var cstField = new CustomField
{
type = FieldType.Checkbox,
fullName = "Contact.Newsletter__c"
};
// Delete the object
var r = metaService.delete(new Metadata[] { cstField })[0];
上面的代码会删除自定义字段,但会将其保留在“DeletedFields”类别下,您可以再次“删除”或“取消删除”自定义字段。这些自定义字段会在15天后自动删除。
我想从这些类别中删除自定义字段,就像我再次使用相同名称创建cf一样,SF会出现“已存在”之类的错误。
我在部署时也尝试了purgeOnDelete选项但到目前为止没有运气。
答案 0 :(得分:3)
<强> purgeOnDelete 即可。如果为true,则destructiveChanges.xml清单文件中的已删除组件不会存储在回收站中。相反,他们立即有资格删除。此字段在API 22.0及更高版本中可用。此选项仅适用于Developer Edition或沙盒组织;它在生产组织中不起作用。 扩展Salesforce Migration Tool以支持PurgeOnDelete ..由于某些原因,Salesforce Migration Tools尚未通过sf:deploy Ant Task公开这一出色的功能。但是,通过一些Java技能,您可以通过扩展当前的部署来创建新的部署Ant任务,以将属性公开给Ant构建脚本,例如......
其中包含deploypurge的prebuilt ant-salesforce.jar。您可以从FinancialForce.com Developers Github repo下载修改后的ant-salesforce.jar(请注意,这是API v22.0,尽管您可以使用它在任何版本部署代码)。
构建自己的扩展ant-salesforce.jar。如果你想重建一个新版本,那么你需要下载这个Java类,编译它,解压缩ant-salesforce.jar(将.jar重命名为.zip),把它放进去并再次拉回来并完成所有设置!
答案 1 :(得分:-1)
要满足大量字段删除要求,有一个Salesforce AppExchange应用程序
Salesforce BULK对象字段创建程序 - 节省时间的应用程序.... !!!
帮助管理员和开发人员创建多个字段,删除多个字段&amp;单击即可为多个字段分配FLS 拖放包含要创建的新字段列表的csv或xls文件 应用程序将限制用户创建系统中已存在的字段。
优点:
AppExchange链接:
https://appexchange.salesforce.com/listingDetail?listingId=a0N30000000qDqqEAE