Платформа 3V/Обновления/Установка обновлений: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 14: Строка 14:
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
{
 
{
  "id": 701,
+
"ApplyUpdateSettings": [
  "dataOptions": 3,
+
{
  "clearDataBeforeUpdate": false,
+
"id": 701,
  "DictionaryPermissionsOptions": {
+
"dataOptions": 3,
    "AddNewPermissions": true,
+
"clearDataBeforeUpdate": false,
    "PermissionsOptions": 0,
+
"DictionaryPermissionsOptions": {
    "ClearBeforeUpdate": true
+
"AddNewPermissions": true,
  },
+
"PermissionsOptions": 0,
  "DictionaryElementsPermissionsOptions": {
+
"ClearBeforeUpdate": true
    "AddNewPermissions": true,
+
},
    "PermissionsOptions": 0,
+
"DictionaryElementsPermissionsOptions": {
    "ClearBeforeUpdate": true
+
"AddNewPermissions": true,
  },
+
"PermissionsOptions": 0,
  "discriminator": "DictionaryApplyUpdateSettingsDto"
+
"ClearBeforeUpdate": true
 +
},
 +
"discriminator": "DictionaryApplyUpdateSettingsDto"
 +
}
 +
]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Версия 10:07, 12 ноября 2020

Используется метод swagger/index.html?urls.primaryName=Updates#/Updates/Updates_ApplyUpdate

При применении обновления можно не указывать никакие настройки, тогда все объекты из обновления будут установлены с настройками по умолчанию, т.е. без данных, без прав на элементы и поиск существующих объектов будет осуществляться строго по Guid. Если на схемах объекты имеют разные Guid (для старых схем), но совпадающие идентификаторы, то можно задать опцию TryMapByKeyAndType (по умолчанию false).

1 {
2   "tryMapByKeyAndType": true
3 }

В таком случае будет происходить поиск по идентификатору + контроль на тип объекта.

Для справочников доступны расширенные настройки установки объектов:

 1 {
 2 	"ApplyUpdateSettings": [
 3 		{
 4 			"id": 701,
 5 			"dataOptions": 3,
 6 			"clearDataBeforeUpdate": false,
 7 			"DictionaryPermissionsOptions": {
 8 				"AddNewPermissions": true,
 9 				"PermissionsOptions": 0,
10 				"ClearBeforeUpdate": true
11 			},
12 			"DictionaryElementsPermissionsOptions": {
13 				"AddNewPermissions": true,
14 				"PermissionsOptions": 0,
15 				"ClearBeforeUpdate": true
16 			},
17 			"discriminator": "DictionaryApplyUpdateSettingsDto"
18 		}
19 	]
20 }

id - идентификатор объекта с исходной схемы.

dataOptions - опция применения данных. Допустимы следующие значения:

Значение Название Определение
0 None Не применять данные
1 AddNewElements Добавлять новые элементы
2 ChangeExistElements Изменять существующие элементы
3 AddNewAndChangeExistElements Добавлять новые и обновлять существующие

clearDataBeforeUpdate - очищать все существующие данные в процессе установки обновления.

DictionaryPermissionsOptions - применение прав на все элементы справочника.

DictionaryElementsPermissionsOptions - применение прав на конкретные элементы справочника.

DictionaryPermissionsOptions и DictionaryElementsPermissionsOptions имеют общую структуру:

AddNewPermissions - Признак добавления новых прав доступа ClearBeforeUpdate - Признак отчистки прав перед установкой обновления PermissionsOptions - Настройки применения прав к уже существующих правам. Допустимы следующие значения:

Значение Название Определение
0 None Не применять права
1 Merge Объединение прав доступа. Если права для субъекта были, то права объединятся с существующими.
2 ChangePermissions Изменение существующих прав.