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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Версия 13:59, 21 апреля 2021

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

Для начала формирования обновления нужно подготовить описание, для объектов которые необходимо сложить в обновление.
Для этого необходимо создать коллекцию описаний объектов
На текущий момент есть 2 типа описаний, для справочников и для всех остальных объектов.

Для простого описания объектов попадаемых в обновление достаточно указать их идентификатор и discriminator = MetaObjectCreateUpdateSettingsDto.
При этом, стоит отметить что если необходимо перенести только описание справочника, без его данных или прав на элементы, то также можно использовать MetaObjectCreateUpdateSettingsDto.

Для примера:

1 {
2   "id": 701, 
3   "discriminator": "MetaObjectCreateUpdateSettingsDto"
4 }

Для справочников есть возможность указать возможность переноса данных, прав на элементы и общих прав на все элементы справочников.

Для них используется discriminator = DictionaryCreateUpdateSettingsDto.

 1 {
 2   "id": 701, 
 3   "filter": {
 4 	"$type": "ConditionalDictionaryFilter",
 5 	"value": [
 6 	  1, 2, 3
 7 	],
 8 	"attribute": {
 9 	  "id": 1,
10 	  "discriminator": "OwnAttributeDefinitionDto"
11 	},
12 	"conditionType": "AttributeInCollection"
13   },
14   "IncludeDictionaryPermissions": true,
15   "IncludeDictionaryElementsPermissions": true,
16   "discriminator": "DictionaryCreateUpdateSettingsDto"
17 }

filter - фильтр на элементы справочника. ВНИМАНИЕ!! синтаксис немного отличается от фильтров используемых в отчетах, при этом conditionType совпадает.
Если необходимо обновить (или перенести) все элементы справочника, то необходимо оставить в value пустые квадратные скобки, а в conditionType указать значение AllElements.

IncludeDictionaryPermissions - признак необходимости включения в обновление прав на все элементы справочника (применяемые целиком ко всеми справочнику, а не к конкретным элементам).

IncludeDictionaryElementsPermissions - признак необходимости включения в обновление прав на элементы справочника.