Утилита миграции 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) и обработка подготовленных данных.
Scripts\init.sql. Создает таблицу Migration используемую в режимах Folder, File, Reference.issue_init.sql. Создает таблицу IssueMigration используемую в режиме Issue.member_init.sql. Создает таблицу MemberMigration используемую в режиме Member.| Параметр | Пример значения | Описание |
|---|---|---|
| WebUrl | http://sp.vitrocad.ru | Адрес Vitro SP |
| Url | https://mp.vitrocad.ru | Адрес Vitro MP |
| Login | admin_user | логин технической учетной записи Vitro MP |
| Password | admin_password | пароль технической учетной записи Vitro MP |
| ConnectionString | Integrated Security=false;Data Source=SP2013\\SQLEXPRESS;Database=Vitro; User Id=vdbuser; Password=vdbpassword | строка подключения к БД Sharepoint |
| SkipFieldMapError | true | флаг пропуска ошибок маппинга лукапов. Если в Vitro SP есть значения лукапов справочников, которые не получилось сопоставить в VitroMP, то они выводятся в лог утилиты. Если флаг стоит false, то утилита закончит работу в случае наличия таких записей. |
| SkipUserMapError | true | флаг пропуска ошибок маппинга пользователей. Если в Vitro SP есть пользователи, которых нет в Vitro MP, то они выводятся в лог. Если флаг = false, то утилита завершает работу. Критерий сопоставления пользователей - email |
| DefaultUserId | 00000000-0000-0000-0000-000000000001 | Guid пользователя, который подставляется в случае не нахождения пользователя в Vitro MP. Критерий сопоставления пользователей - email |
| SwitchOffIriParsing | false | флаг отключения обработки ссылок от скрытых символов. Может быть полезен, если в Vitro SP есть файлы или папки, названия которых содержат скрытые символы, и не могут быть перенесены из-за ошибки получения файла. |
| ThreadNumber | 2 | количество потоков для переноса файлов в режиме File. Все остальные режимы работают в 1 поток всегда. |
| MigrateAllFileVersion | true | флаг переноса всех версий файлов. Если 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> |
| Mode | Init | режим работы утилиты. Если не указан, то утилита работает последовательно в следующих режимах 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 будет ошибка или создастся новая запись в справочнике. |
| CreateListMapItem | false | параметр работы режима List. Если false, то в данном режиме не будут создаваться новые записи а только пытаться проставить sp_id на текущих записях. Если true, то при отсутствии сопоставления будут создаваться новые записи (подходит для полного переноса справочников с 0). Записи создаются по маппингам ContentTypeMap и FieldMap, если нужно переносить заполненные атрибутами ТК, их необходимо указать там. |
/item/{uniqueId}init.exclude_root_folder.sql. Если нужно переносить только внутреннюю структуру без верхнеуровневой папки, то нужно переименовать в init.sql и подменить.