硬删除 Salesforce 中的自定义字段

问题描述 投票:0回答:2

我在永久删除自定义字段时遇到问题。

例如 我在联系人实体中创建了一个名为“Newsletter”的自定义字段,Salesforce 内部将其存储为“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 选项,但到目前为止没有运气。

c# salesforce
2个回答
3
投票

删除时清除。如果为 true,则 virtualChanges.xml 清单文件中已删除的组件不会存储在回收站中。相反,它们会立即符合删除条件。该字段在 API 版本 22.0 及更高版本中可用。此选项仅适用于 Developer Edition 或沙盒组织;它在生产组织中不起作用。 扩展 Salesforce 迁移工具以支持 PurgeOnDelete.. 由于某些原因,Salesforce 迁移工具仍未通过 sf:deploy Ant 任务公开这一出色的功能。然而,凭借一点 Java 技能,您可以通过扩展当前任务来创建新的部署 Ant 任务,以将属性公开给您的 Ant 构建脚本,例如...

预先构建的 ant-salesforce.jar,其中包含deploypurge。您可以从 FinancialForce.com 开发人员 Github 存储库下载修改后的 ant-salesforce.jar(请注意,这是 API v22.0,但您可以使用它来部署任何版本的代码)。

构建您自己的扩展 ant-salesforce.jar。如果你想重建一个新版本,那么你需要下载这个Java类,编译它,解压ant-salesforce.jar(将.jar重命名为.zip),将其放入并再次压缩回来,一切就完成了!

参考:https://salesforce.stackexchange.com/questions/12709/hard-delete-objects-using-the-force-com-migration-tool


0
投票

您可以尝试使用AppExchange工具BOFC来删除salesforce中的多个自定义字段。

https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000000qDqqEAE

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.