Как удалить класс Apex в Salesforce Enterprise Edition, используя Eclipse? - PullRequest
4 голосов
/ 10 февраля 2011

Как удалить класс Apex и запустить его в Salesforce Enterprise Edition, используя Eclipse?

Ответы [ 5 ]

3 голосов
/ 21 ноября 2011

У меня был почти дублирующий вопрос и я приземлился здесь.Я хочу удалить класс только с помощью Force.com IDE (Eclipse) из моей рабочей организации .Inediger описал, как развернуть набор деструктивных изменений с помощью Ant Migration Toolkit, и угадал, как это сделать в IDE Force.com.В моих попытках использования Force.com IDE версии 20.0 шаги 3 и 4 Inediger не позволят вам удалить класс / триггер в рабочей организации.

Вот естественная попытка удалить класс в IDE Force.com.:

  • Нажмите на класс.Нажмите delete.
  • "Вы уверены, что хотите удалить файл 'myClass.cls'?"... OK
  • "Запрошенная операция удалит ресурс только локально. Вы также хотите удалить ресурс с сервера?"... Да

На этом этапе файл удаляется из вашего проекта и вашей организации, но он остается в вашей рабочей организации (и веб-интерфейс администратора не позволит вам удалить его там)поэтому вы продолжаете:

  • Развертывание на сервере.
  • Введите учетные данные для организации.
  • Далее.Далее.
  • Найдите свой класс в списке кандидатов на развертывание - но его там нет!

К сожалению, ваш класс не будет указан в списке кандидатов на развертывание, потому что IDE Force.com уже потерял этот файл (потому что вы удалили его - если вы находитесь в этой лодке, создайте заново)класс в вашей dev-организации и следуйте моим инструкциям ниже).

Нам нужно удалить в производственном режиме, прежде чем мы удалим файл локально (я думаю, что мы идем по IDE Force.com через создание одного из этих разрушительных измененийустанавливает и развертывает его для нас):

  1. Отредактируйте соответствующий файл * -meta.xml класса (из IDE Force.com).
  2. Установите статус Удалено: Удалено .Сохранить.
  3. Щелкните правой кнопкой мыши свой класс, Force.com |Развернуть на сервере.
  4. Введите учетные данные вашей производственной организации.
  5. Вы должны видеть свой класс в качестве единственного кандидата на развертывание!
  6. Установите флажок "Применить действие?"Перезаписать ваш класс.
  7. Далее пройдитесь по остальной части мастера.

Если вы будете следовать на веб-страницах администратора Salesforce, вы заметите, что класс исчезает из вашей организации послесохранение в шаге 2. Он исчезает из вашей производственной организации, когда вы ставите зеленую галочку после шага 7.

Наконец, я удаляю класс из IDE Force.com, как обычно.Когда меня спрашивают, хочу ли я удалить файл с сервера, я отвечаю «нет», потому что мы уже позаботились об этом.Я также добавляю / удаляю компоненты метаданных и снимаю флажок с именем класса, чтобы избавиться от предупреждающего сообщения.

3 голосов
/ 22 ноября 2011

Самый простой способ сделать это - удалить файл из вашего проекта в Eclipse (не удаляя его с сервера, потому что это не работает), а затем щелкнуть правой кнопкой мыши на FOLDER (т.е. триггеры / классы) и выбрать Deploy To Сервер.

Когда появится диалоговое окно, которое показывает, что вы хотите развернуть, рассматриваемый класс / триггер будет выделен красной строкой, что означает, что вы можете проверить его на удаление из рабочей организации.

3 голосов
/ 10 февраля 2011

Чтобы удалить триггер из рабочей организации с помощью eclipse, вам нужно будет выполнить следующие шаги (при условии, что у вас есть песочница):

  1. Через веб-интерфейс в организации-песочнице отключите триггер
  2. Обновите ваш проект песочницы в eclipse и разверните неактивный триггер в рабочей среде
  3. Обновите ваш производственный проект в Eclipse, щелкните правой кнопкой мыши на триггере и выберите «Удалить»
  4. Подтвердите удаление с сервера

Я полагаю, что описанные выше шаги будут работать, однако я только когда-либо удалял компоненты из производственной организации, используя деструктивные изменения и 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.

2 голосов
/ 22 марта 2013

Самый простой способ сделать это из Eclipse - отредактировать файл -meta.xml для класса, который вы хотите удалить.Все, что вам нужно сделать, это изменить поле «Состояние» с «Активно» на «Удалено».

При сохранении файла -meta.xml соответствующий класс будет немедленно удален из вашей рабочей организации.Файлы класса & .xml по-прежнему будут находиться в вашей локальной папке Eclipse, но тогда вы можете просто удалить их локально.

0 голосов
/ 18 декабря 2014

Один из способов, которые я попробовал, был:

1) Перейдите в файл meta XML для триггера [в Force.com IDE] и установите значение состояния «Удалить».

2) Затем, после сохранения этого XML-файла, я развернул триггер в рабочей среде.

Я знаю, что должен удалить файл. Я также сделал это с файлом класса, но, к сожалению, это был файл класса теста, и я забыл удалить другие связанные файлы, для которых этот тестовый файл предоставлял покрытие теста, и поэтому я потерял значительное общее совокупное покрытие теста из-за этой ошибки. К счастью, я сохранил файл, прежде чем удалить его, и смог повторно развернуть измененный тестовый класс обратно в производство, и все снова было в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...