Платформа 3V/DataManager/Маппинг справочников: различия между версиями
< Платформа 3V | DataManager
Перейти к навигации
Перейти к поиску
Строка 60: | Строка 60: | ||
* '''isPrimary''' - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку "isPrimary": true) | * '''isPrimary''' - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку "isPrimary": true) | ||
* '''discriminator''' - здесь всегда необходимо ставить "MapperOption" | * '''discriminator''' - здесь всегда необходимо ставить "MapperOption" | ||
+ | |||
+ | === Шаг 3. Завершение настройки === | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "Destination": { | ||
+ | "discriminator": "DictionaryDataOptions", | ||
+ | "SaveMode": "Postgres", | ||
+ | "mapperOptions": [ | ||
+ | { | ||
+ | "propertyName": "name", | ||
+ | "filedName": "NAME", | ||
+ | "dataType": "String", | ||
+ | "isPrimary": false, | ||
+ | "discriminator": "MapperOption" | ||
+ | }, | ||
+ | { | ||
+ | "propertyName": "root_id", | ||
+ | "filedName": "root_id", | ||
+ | "dataType": "Int32", | ||
+ | "isPrimary": true, | ||
+ | "discriminator": "MapperOption" | ||
+ | }, | ||
+ | { | ||
+ | "propertyName": "start_date", | ||
+ | "filedName": "start_date", | ||
+ | "dataType": "DateTime", | ||
+ | "isPrimary": false, | ||
+ | "discriminator": "MapperOption" | ||
+ | } | ||
+ | ], | ||
+ | "dictionaryIdent": "New_Dictionary_5535" | ||
+ | } | ||
+ | </syntaxhighlight> |
Версия 06:07, 12 декабря 2022
Если приемник данных - справочник, то настройка выглядит следующим образом:
1 "Destination": {
2 "discriminator": "DictionaryDataOptions",
3 "SaveMode": "Postgres",
4 "mapperOptions": [ {}, {}],
5 "expressions": [{}],
6 "clearData": false,
7 "dictionaryIdent": ""
8 }
Шаг 1. Настройка самого справочника-приемника
Для начала следует создать справочник для загрузки. Чтобы корректно сработала задача загрузки, перед созданием справочника необходимо ознакомиться с атрибутами из источника и их типами данных. Например, модель источника данных выглядит так:
Из этих данных необходимо, чтобы загружались атрибуты name (тип String), root_id (тип Integer), start_date (тип DateTime):
Поэтому справочник следует настроить соответствующим образом:
Шаг 2. Настройка полей
Настройка полей выглядит следующим образом:
1 "mapperOptions": [
2 {
3 "propertyName": "name",
4 "filedName": "NAME",
5 "dataType": "String",
6 "isPrimary": false,
7 "discriminator": "MapperOption"
8 },
9 {
10 "propertyName": "root_id",
11 "filedName": "root_id",
12 "dataType": "Int32",
13 "isPrimary": true,
14 "discriminator": "MapperOption"
15 },
16 {
17 "propertyName": "start_date",
18 "filedName": "start_date",
19 "dataType": "DateTime",
20 "isPrimary": false,
21 "discriminator": "MapperOption"
22 }
23 ]
Откуда берется:
- propertyName - название атрибута из источника
- filedName - название атрибута из конструктора справочника
- dataType - тип данных, который должен совпадать в приемнике и источнике (см статью "Какие типы данных поддерживает DM")
- isPrimary - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку "isPrimary": true)
- discriminator - здесь всегда необходимо ставить "MapperOption"
Шаг 3. Завершение настройки
1 "Destination": {
2 "discriminator": "DictionaryDataOptions",
3 "SaveMode": "Postgres",
4 "mapperOptions": [
5 {
6 "propertyName": "name",
7 "filedName": "NAME",
8 "dataType": "String",
9 "isPrimary": false,
10 "discriminator": "MapperOption"
11 },
12 {
13 "propertyName": "root_id",
14 "filedName": "root_id",
15 "dataType": "Int32",
16 "isPrimary": true,
17 "discriminator": "MapperOption"
18 },
19 {
20 "propertyName": "start_date",
21 "filedName": "start_date",
22 "dataType": "DateTime",
23 "isPrimary": false,
24 "discriminator": "MapperOption"
25 }
26 ],
27 "dictionaryIdent": "New_Dictionary_5535"
28 }