Добрый день,
Как можно создать другую копию схемы процесса.
Например, есть процесс Test1, надо создать почти точно такjй же процесс Test2
Нравится
Здравствуйте!
Обычную схему напрямую скопировать нельзя, единственный доступный способ на текущий момент - выгрузить схему в файл, подправить в нем название и идентификатор, и загрузить снова. Настоятельно рекомендуется пробовать это делать на тестовой базе данных.
Как написала Анна, в файле метаданных процесса достаточно поменять имя процесса (поле "А2" в начале файла) и его уникальный UId (это должен быть GUID). Хочу только подчеркнуть, что UId процесса в файле встречается много раз, так что менять его лучше всего в режиме "Поиск и замена" в каком-нибудь текстовом редакторе. Иначе рискуете получить не открывающуюся в дизайнере процессов схему.
Аналогично копируется и схема страницы: выгужаем в md-файл. В начале файла можно увидеть старые значения Id, Name и Caption.
{ "Id": "feab5118-585f-4729-8920-587088a5b4d4", "ManagerName": "PageSchemaManager", "StateInSolution": 0, "Name": "ContractEditPage", "Caption": "Страница карточки договора", "ParentId": "85086f2a-99e3-4268-860c-d26f53ec85dc", "MetaData": "{\r \n \"MetaData\"": {\r
И последний вопрос:
Как правильно перенести разработки на тестовую базу?
Как у нас сейчас реализована архитектура:
1. База разработки
2. Тестовая база
3. Боевая
Доработки делаются на базе разработки, а потом админы каждую неделю обновляет тестовую(перенос разработки - на тест).
Но бывает, когда надо срочно перенести разработку.
Раньше делали экспорт - импорт - публикация. Но это засоряет сервер приложении при публикации и в таблице "SysSchemaInSolution" создаются 2 копии этого элемента (1- е при импорте, 2-е при публикации)
Потом стали публикавать через VS, чтобы темпы не засоряли сервер. Но изменения происходят после перезагрузки сервера приложении
Как правильно перенести изменения не затрагивая работающих пользователей???
"AlikBory" написал:
2. После создания копии проблем с оригиналом не будет? Например с уникальными гуидами элементов процесса
Если Вы не меняете оригинальный процесс, то проблем с ним не будет.
Если ошибетесь с подменой GUID-ов в копии, то можете получить копию, которую не сможет открыть Дизайнер процессов, или же она откроется, но будет иметь некорректные элементы или связи. Оригинальный процесс при этом не пострадает.
Менять в копии процесса GUID-ы элементов не обязательно, т.к. в текущей реализации важна их уникальность в пределах одной схемы процесса. Два разных процесса могут иметь элементы с одинаковыми Id. Учитывая высокую вероятность наделать ошибок при тотальной замене GUID-ов по всей схеме, я бы настоятельно не рекомендовал это делать :smile:
"AlikBory" написал:Как правильно перенести разработки на тестовую базу?
Как правильно перенести изменения не затрагивая работающих пользователей???
Штатным режимом переноса изменений как раз является "экспорт-импорт-публикация". При такой операции новые версии схем подхватываются системой незаметно для других пользователей.
В таблице "SysSchemaInSolution" хранятся все версии всех схем. В результате имеется возможность откатить некорректные изменения.
Если количество старых версий схем в "SysSchemaInSolution" для Вас критично, старые версии можно чистить из этой таблицы. Номер версии хранится в колонке Version, чем больше число - тем новее версия. Главное - чтобы для каждой конфигурации оставалась хотя бы одна запись для каждой схемы.