Deploy метаданных на организацию

В этой статье мы подробно пройдёмся по всем вариантом деплоя метаданных на вашу организацию.

1. Вступление
2. Подготовительные моменты
3. Способы и инструменты деплоя
4. Change set
5. Ant migration tool
6. Workbench
7. Force.com IDE

Вступление

В первую очередь что бы понимать откуда и куда происходит деплой изменений, рекомендую перед началом ознакомиться со статьёй: Виды организаций в Force.com. После прочтения вы будете понимать какие есть организации и какие между ними существуют отношения. Что в дальнейшем вам ещё ни раз понадобится.

Подготовительные моменты

Перед тем как заносить новые изменения на production, убедитесь что ваш Apex code покрыт тестами как минимум на 75% и 100% из них должны проходить.

Способы и инструменты деплоя

Существует несколько инструментов для деплоя метаданных на организацию.

  • Change set
  • Ant migration tool
  • Workbench
  • Force.com IDE

Change set

Что такое Change set ?

Change set это инструмент для деплоя позволяющий разработчику или администратору загрузить и применить изменения c Sandbox на Production. Так же вы можете переносить изменения с одного sandbox на другой.
Необходимо понимать 3 основных момента про Change Set:

1. Outbound Change set:

Outbound change set это набор изменений которые вы сделали на Sandbox, такие, как Object, Custom Fields, Validation, Workflow, Classes, Trigger и т.д. При деплое кастомных объектов не забудьте добавить поля, потому что они по умолчанию не добавляются вместе с объектом. Пошаговое руководство для создания Outbound change set : Создание Outbound change set

2. Deployment connection:

Соединение необходимое для обмена Change Set между организациями. После создания Sandbox, на Production может быть настроен connect с этим Sandbox. Пошаговое руководство для настройки соединения: Настройка соединения между организациями(Deployment Connections)

3. Inbound Change set:

Inbound Change set создаётся автоматически после того как вы отправили Outbound Change set. Все входящие change set будут находить в разделе Inbound Change set. Пошаговое руководство по применению Inbound Change set : Применение Inbound Change set

Ant migration tool

Что такое Ant migration tool?

Ant migration tool - это утилита основанная на Java/Ant, работа с которой осуществляется через командную строку. Используется для перемещения метадаты между локальными папками и Salesforce организациями. Работать ant может с любым типом метаданных(Class, Validation rule, sObjects и т.п)

Что нужно для работы с Ant?

  1. Установить ant и создать переменную среды
  2. Установить java и создать переменную среды
  3. Скачать и добавить jre файл в ant.

Все эти шаги подробно описаны в статье: Настройка ant migration tool.

Первые шаги при работе с Ant

В целом работа с Ant заключается во взаимодействии с тремя файлами в папке вашего проекта:

  • build.properties - содержит данные для доступа к организации(credentials) и url по которому будет осуществляться подключение.

  • build.xml - содержит описание команд которые можно выполнить с помощью ant.

  • package.xml - содержит имена метаданных с которыми вы работаете.

Перед тем как перейти к практической части, давайте определим с чем, откуда, куда и как ant отправляет, получает, удаляет данные. Ant в отличие от Change Set может не только отправлять данные на организацию, но так же и получать и удалять их. Для того что бы делать CRUD операции с метаданными на организации не требуется соединение(connection). Для аутентификации на sf организацию можно использовать 1 из 3 способов:

  • username и password, и в случае если на организации используется security token то его нужно дописать сразу после пароля без отступа. В этой статье вы сможете найти как получить Security Token.

  • session id от активной Salesforce сессии.

  • OAuth access token используется в поле session id

Представьте что у вас есть Sandbox и Production. После того как вы создали Apex класс на вашем Sandbox, вам нужно получить эти данные в своё локальное хранилище, которые буду храниться в указанном вами месте в виде 3 файлов с типом .cls и .xml и package.xml. После этого вы можете отправить этот класс(полученные файлы) на production. Все настройки получения и отправки метаданных хранятся в файлах: build.xml, build.properties и package.xml. В остальном это зависит от того какие из доступных действий вы укажите в них.

Настройка проекта и примеры работы показаны в этой статье: Настройка проекта и первые шаги с Ant

Workbench

Что такое Workbench?

Workbench - это инструмент разработанный для администраторов и разработчиков, для работы с Salesforce org. Salesforce workbench предоставляет поддержку Force.com Partner, Bulk, Rest, Streaming, Metadata, и Apex APIs которые позволяют пользователю делать запросы, работать с данными, изменять метаданные.

Workbench Login URL:- https://workbench.developerforce.com/login.php

Для работы с Workbench вам нужно иметь credentials от организации. Функционал Workbench позволяет сделать многое, но мы рассмотрим только то что касается deploy. Отличие от ant migration tool и change set в том что он принимает zip файл, который должен содержать:

  • package.xml - файл в котором указываются компоненты для деплоя.

  • описание файла предназначенного для деплоя. Например: если это Apex class, то вам нужно иметь файл .cls и .xml файл с описанием метаданных.

Статья, где описывается deploy Apex класса: Deploy с помощью Workbench

Force.com IDE

Что такое Force.com IDE?

Force.com IDE - это плагин, который устанавливается в Eclipse для работы с salesforce, установка плагина описана здесь.
Этот плагин удобен при разработке и деплое тем что вам не приходиться задействовать другие сервисы. Весь процесс деплоя можно провести сразу в IDE.
Для этого вам нужны: Login, Password и Security Token.

Статья, где пошагово показан способ деплоя с помощью Force.com IDE : Деплой с помощью Force.com IDE

1 Like

@alexander.bogomaz есть варианты для деплоя использовать ci системы типо jenkins или teamcity или гитлаб и тд? (я так понимаю только ant прикрутить в ci?)

бы лобы здорово иметь возможность держать свою методату в системе контроля версий + di

1 Like

Касательно Jenkins, да, есть возможность использовать jenkins но только в сязке с Salesforce DX .
GitLab тоже можно использовать, только при условии, что выиспользуете Salesforce DX.
В случае с Teamcity всё обстоит не так хорошо, придёться выкуричиваться с помощью скрипта на ant.

1 Like