Платформа 3V/DataManager/Маппинг справочников: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 66: Строка 66:
 
! Тип !! Как записать в настройке !! Небольшой комментарий  
 
! Тип !! Как записать в настройке !! Небольшой комментарий  
 
|-
 
|-
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_Load /Data/Load] || Data || Метод для загрузки данных в справочник/показатель
+
|Строка || String|| Если в источнике приходит тип guid или длинное число, то лучше записать в приемник в атрибут с типом "String"
 
|-
 
|-
|[https://3v.3v-group.net/data-manager-public/swagger/index.html#/Data/Data_LoadFromFile /Data/LoadFromFile/LoadFromFile]|| Data || Метод для загрузки данных из файла
+
|Целое число (Integer)|| Int32 || Int64 не поддерживается
 +
|-
 +
|Вещественное число (Double)|| Double || Формат записи через запятую ("370,70")
 
|}
 
|}
  

Версия 06:42, 12 декабря 2022

Если приемник данных - справочник, то настройка выглядит следующим образом:

1 "Destination": {
2                  "discriminator": "DictionaryDataOptions",
3                  "SaveMode": "Postgres",
4                  "mapperOptions": [ {}, {}],
5                  "expressions": [{}],
6                  "clearData": false,
7                  "dictionaryIdent": ""
8                }

Шаг 1. Настройка самого справочника-приемника

Для начала следует создать справочник для загрузки. Чтобы корректно сработала задача загрузки, перед созданием справочника необходимо ознакомиться с атрибутами из источника и их типами данных. Например, модель источника данных выглядит так:

Атрибуты источника.png

Из этих данных необходимо, чтобы загружались атрибуты name (тип String), root_id (тип Integer), start_date (тип DateTime):

выбранные атрибуты источника.png

Поэтому справочник следует настроить соответствующим образом:

Конструктор приемника.png

Шаг 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 - тип данных, который должен совпадать в приемнике и источнике
  • isPrimary - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку "isPrimary": true)
  • discriminator - здесь всегда необходимо ставить "MapperOption"

Типы данных, которые поддерживает DataManager

Тип Как записать в настройке Небольшой комментарий
Строка String Если в источнике приходит тип guid или длинное число, то лучше записать в приемник в атрибут с типом "String"
Целое число (Integer) Int32 Int64 не поддерживается
Вещественное число (Double) Double Формат записи через запятую ("370,70")

Шаг 3. Завершение настройки

Остается добавить только верный дискриминатор (DictionaryDataOptions), dictionaryIdent (код справочника-приемника), SaveMode

 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  }

Шаг 4. Результат работы

ОБЯЗАТЕЛЬНО НЕ ЗАБЫВАЕМ ВСТАВИТЬ В НАСТРОЙКУ SOURCE И ПРОВЕРИТЬ ВСЮ НАСТРОЙКУ НА СИНТАКСИЧЕСКИЕ ОШИБКИ

Готовую настройку можно загрузить с помощью задач загрузки данных или сваггер, затем посмотреть результат

результат работы.png

В итоге, в справочник приемник выгрузились необходимые данные

сам справочник.png