Утилита миграции SPToMPMigrateApp позволяет переносить папки и файлы созданные в системе Vitro SP в систему Vitro MP с сохранением даты создания, авторства, версионности и прочих кастомных атрибутов системы.


Предварительные действия

Для работы утилиты нужны решения Migration, которые надо разместить в Solutions на сервере VitroMP:
Windows - C:\Program Files\Vitro Software\Vitro\Server\Solutions\Migration
Linux - /etc/Vitro/Server/Solutions/Migration


Режимы работы утилиты

Все режимы состоят из 2 этапов - подготовка данных (Init) и обработка подготовленных данных.


Параметры утилиты

ПараметрПример значенияОписание
WebUrlhttp://sp.vitrocad.ruАдрес Vitro SP
Urlhttps://mp.vitrocad.ruАдрес Vitro MP
Loginadmin_userлогин технической учетной записи Vitro MP
Passwordadmin_passwordпароль технической учетной записи Vitro MP
ConnectionStringIntegrated Security=false;Data Source=SP2013\\SQLEXPRESS;Database=Vitro; User Id=vdbuser; Password=vdbpasswordстрока подключения к БД Sharepoint
SkipFieldMapErrortrueфлаг пропуска ошибок маппинга лукапов. Если в Vitro SP есть значения лукапов справочников, которые не получилось сопоставить в VitroMP, то они выводятся в лог утилиты. Если флаг стоит false, то утилита закончит работу в случае наличия таких записей.
SkipUserMapErrortrueфлаг пропуска ошибок маппинга пользователей. Если в Vitro SP есть пользователи, которых нет в Vitro MP, то они выводятся в лог. Если флаг = false, то утилита завершает работу. Критерий сопоставления пользователей - email
DefaultUserId00000000-0000-0000-0000-000000000001Guid пользователя, который подставляется в случае не нахождения пользователя в Vitro MP. Критерий сопоставления пользователей - email
SwitchOffIriParsingfalseфлаг отключения обработки ссылок от скрытых символов. Может быть полезен, если в Vitro SP есть файлы или папки, названия которых содержат скрытые символы, и не могут быть перенесены из-за ошибки получения файла.
ThreadNumber2количество потоков для переноса файлов в режиме File. Все остальные режимы работают в 1 поток всегда.
MigrateAllFileVersiontrueфлаг переноса всех версий файлов. Если true, то переносятся все версии, если false, то только последняя
LibraryMap{    "http://sp2013/TempLibrary/Project1": "966e62c5-a803-49a0-a1be-e680d130c481", "http://sp2013/TempLibrary/Project2": "966e62c5-a803-49a0-a1be-e680d130c481"<br>- параметр для указания переносимых папок из SP в MP. В формате
<br>{ <br>“spUrl1”: “MP guid родительской папки или списка ”,<br>“spUrl2”: “MP guid родительской папки или списка” // и т.д.<br>}<br><br>
ModeInitрежим работы утилиты. Если не указан, то утилита работает последовательно в следующих режимах Init – Folder – File – Reference.Остальные режимы запускаются вручную при необходимости. Или если нужно пропустить некоторые режимы, то нужно запускать их вручную с указанием параметра.
ContentTypeMap<br>[<br> [ "Проект", "540ff572-4a29-4d8e-8dfb-8eda093c583a" ],<br> [ "Стадия", "64a15f4c-083e-420b-b54e-fc75d44f31b7" ],<br> [ "Комплект", "28a48961-35e0-43ae-ad6b-8f159cfd7202" ],<br> [ "Файл проекта", "6065b2ae-63e3-44aa-a92d-2d414c30f808" ],<br> [ "Папка", "09ad2c16-6047-4dfb-8274-6c4a5f1edbe5" ]<br>]<br>параметр маппинга Типов Контента SP в Тип Элемента MP. От SP нужно указывать Название ТК; от MP нужно указывать Guid ТЭ. Типы элементов, которые не указаны в данном маппинге, будут передаваться как Папка – для папок, Файл проекта – для файлов, Элемент – для элементов справочников.
FieldMap<br>[<br> [ "VitroBaseDocumentRevisionNum", "approval_count" ],<br> [ "VitroBaseStatus", "document_status", “sp_id_list” ]<br>]<br>параметр маппинга Столбцов SP в Атрибуты MP. С обеих сторон используется internal name столбца или атрибута. 3-ий параметр нужен только для столбцов типа Лукап. Дефолтное значение sp_id.
ListMap<br>{<br> "url-sharepoint": "parentId - MP",<br> "http://sp2013/Lists/seStatusList": "9618f977-0447-4010-88f7-76d8edca255c"<br>}<br><br>параметр для заполнения справочников.
ListMapCriterion<br>[ "SP InternalName", "MP InternalName", "SP ID InternalName(default sp_id)" ]<br>критерий проверки для заполнения справочников. Если элемент с SP InternalName найден в справочнике, то ему проставится поле SP ID InternalName. Если не найден, то в зависимости от параметра CreateListMapItem будет ошибка или создастся новая запись в справочнике.
CreateListMapItemfalseпараметр работы режима List. Если false, то в данном режиме не будут создаваться новые записи а только пытаться проставить sp_id на текущих записях. Если true, то при отсутствии сопоставления будут создаваться новые записи (подходит для полного переноса справочников с 0). Записи создаются по маппингам ContentTypeMap и FieldMap, если нужно переносить заполненные атрибутами ТК, их необходимо указать там.

Принцип работы

  1. Определяется список ТК и Полей (столбцов) которые необходимо перенести из SP в MP.
  2. Создаются соответствующие Типы элементов и атрибуты в системе Vitro MP.
  3. Задается конфигурация утилиты по определенным маппингам ТК и полей.
  4. Создаются необходимы для лукапов справочники в Vitro MP. Каждый справочник на который ссылается файловая структура должен содержать служебное поле «sp_id». SP ID = ID (число) в системе Vitro SP, которое можно вывести в табличных или посмотреть на каждом элементе справочника. SP ID проставляется у каждой записи справочника Vitro MP для сопоставления ее с записью Vitro SP. Справочники заполняются с помощью утилиты или руками. Все отсутствующие сопоставления будут выведены в логе утилиты.
  5. С помощью утилиты создается таблица миграции, позволяющая отслеживать прогресс работы утилиты, переносимый объем, ошибки переноса
  6. Запускается утилита в режиме обработки папок Folder. Периодически отслеживается таблица миграции и лог утилиты на отсутствие ошибок. Особо критичны могут ошибки на папках, так как не перенесённая верхнеуровневая папка Проект повлечет за собой ошибки во всех дочерних элементах. При наличии они все должны быть устранены или вручную затерты в таблице миграции на усмотрение администратора системы. Утилита повторно обрабатывает все элементы с ошибками при повторном запуске
  7. Запускается утилита в режиме обработки файлов File. В данном режиме утилита может работать в несколько потоков. Но стоит учитывать, что утилита запускается на рабочей площадке Vitro SP и может замедлить работу системы. Оптимальное количество потоков настраивается индивидуально.
  8. Запускается утилита в режиме переноса связей Reference.
  9. Запускаются дополнительные режимы переноса Прав участников и Замечаний при необходимости.

Текущие ограничения


Возможные ошибки


Дополнительная информация