如何使用Eclipse删除Salesforce Enterprise Edition中的Apex类?

时间:2011-02-10 05:25:14

标签: salesforce

如何使用Eclipse删除Salesforce Enterprise Edition中的Apex类和触发器?

5 个答案:

答案 0 :(得分:3)

为了使用eclipse从生产组织中删除触发器,您需要使用以下步骤(假设您有一个沙箱组织):

  1. 通过沙盒组织中的Web界面,取消激活触发器
  2. 在eclipse中刷新沙盒项目并将非活动触发器部署到生产
  3. 在eclipse中刷新您的生产项目,右键单击触发器并选择删除
  4. 接受从服务器删除的选项
  5. 我相信上述步骤可行,但我只使用破坏性更改从生产组件中删除了组件。 Ant Migration Toolkit。

    要使用Ant Migration Toolkit进行破坏性更改,您需要将destructivechange.xml文件设置为与此类似:

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>MyTrigger</members>
            <name>ApexTrigger</name>
        </types>
        <version>21.0</version>
    </Package>
    

    有关于如何在developerforce上propogate destructive changes的完整说明。

答案 1 :(得分:3)

我有一个近乎重复的问题并落在这里。我想从我的生产组织中删除只有Force.com IDE(Eclipse)的类。 Inediger描述了如何使用Ant Migration Toolkit部署破坏性更改集,并猜测如何在Force.com IDE中执行此操作。在我使用Force.com IDE 20.0版的尝试中,Inediger的第3步和第4步将阻止您删除生产组织中的类/触发器。

以下是在Force.com IDE中删除类的自然尝试:

  • 点击课程。按删除。
  • “您确定要删除文件'myClass.cls'吗?” ......好的
  • “请求的操作只会在本地删除资源。您是否也希望从服务器中删除资源?” ......是的

此时文件将从您的项目和开发组织中删除,但它仍保留在您的生产组织中(并且管理员Web界面不允许您将其删除),因此您继续:

  • 部署到服务器。
  • 输入生产组织凭证。
  • 下一步。下一步。
  • 在部署候选人列表中查找您的课程 - 但它不在那里!

不幸的是,您的班级不会与部署候选人一起列出,因为Force.com IDE已经丢失了该文件的踪迹(因为您删除了它 - 如果您在这艘船中重新创建了您的开发组中的课程并按照我的说明)。

在我们在本地删除文件之前,我们需要在生产中删除(我认为我们通过构建其中一个破坏性变更集并为我们部署它来走Force.com IDE):

  1. 编辑类的匹配* -meta.xml文件(来自Force.com IDE)。
  2. 将状态设置为已删除:&lt; status&gt;已删除&lt; / status&gt;。保存。
  3. 右键单击您的班级,Force.com |部署到服务器。
  4. 输入您的生产组织凭据。
  5. 您应该将您的班级视为唯一的部署候选人!
  6. 选中“应用操作?”复选框?覆盖你的课程。
  7. 接下来通过向导的其余部分。
  8. 如果您在Salesforce管理网页中关注,您会注意到在第2步中保存后,该类会从您的开发组织中消失。当您在步骤7之后获得绿色复选标记时,它将从您的生产组织中消失。

    最后,我像往常一样从Force.com IDE中删除该类。当它询问我是否要从服务器删除文件时,我说不,因为我们已经处理过了。我还添加/删除元数据组件并取消选中类名以删除警告消息。

答案 2 :(得分:3)

最简单的方法是从Eclipse中删除项目中的文件(不要从服务器中删除,因为这不起作用)然后右键单击FOLDER(即触发器/类)并选择Deploy To服务器

当显示想要部署的对话框出现时,相关的类/触发器将突出显示为红色行,这意味着您可以从生产组织中检查它是否删除。

答案 3 :(得分:2)

从Eclipse执行此操作的最简单方法是编辑要删除的类的-meta.xml文件。您需要做的就是将“状态”字段从“活动”更改为“已删除”。

保存-meta.xml文件时,将立即从生产组织中删除相应的类。课程&amp; .xml文件仍然在您的本地Eclipse文件夹中 - 但是您可以在本地删除它们。

答案 4 :(得分:0)

我尝试的方法之一是:

1)进入触发器[在Force.com IDE中]的元XML文件,并将状态值设置为&#34;删除&#34;。

2)然后在保存.xml文件后,我将触发器部署到生产环境。

我知道应删除该文件的事实。我已经用类文件完成了它,但不幸的是这是一个测试类文件,我忘了删除测试文件提供测试覆盖率的其他相关文件,因此由于这个错误我丢失了显着的整体累积测试覆盖率。幸运的是,我在删除之前保存了文件,并且能够将修改后的测试类重新部署回生产环境,并且一切都还可以。