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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 25: Строка 25:
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
"mapperOptions": [
 
"mapperOptions": [
                  {
 
                    "propertyName": "name",
 
                    "filedName": "NAME",
 
                    "dataType": "String",
 
                    "isPrimary": false,
 
                    "discriminator": "MapperOption"
 
                  },
 
 
                   {
 
                   {
 
                     "propertyName": "root_id",
 
                     "propertyName": "root_id",
                     "filedName": "root_id",
+
                     "filedName": "d_416103_id",
 
                     "dataType": "Int32",
 
                     "dataType": "Int32",
 
                     "isPrimary": true,
 
                     "isPrimary": true,
Строка 40: Строка 33:
 
                   },
 
                   },
 
                   {
 
                   {
                     "propertyName": "start_date",
+
                     "ExpressionId": 1,
                     "filedName": "start_date",
+
                     "filedName": "fact",
                     "dataType": "DateTime",
+
                     "fieldDataType": "Json",
 
                     "isPrimary": false,
 
                     "isPrimary": false,
 
                     "discriminator": "MapperOption"
 
                     "discriminator": "MapperOption"
                   }
+
                   }           
 +
                ],
 +
"Expressions": [
 +
                {
 +
                  "id": 1,
 +
                  "expression": "[0]",
 +
                  "Variables": {
 +
                                "0": "geometry"
 +
                                }
 +
                  }
 
                 ]
 
                 ]
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 51: Строка 53:
 
'''Откуда берется:'''
 
'''Откуда берется:'''
 
* '''propertyName''' - название атрибута из источника
 
* '''propertyName''' - название атрибута из источника
* '''filedName''' - название атрибута из конструктора справочника
+
* '''filedName''' - название столбцов из показателя ("columns")
* '''dataType''' - тип данных, который должен совпадать в приемнике и источнике
+
* '''dataType/fieldDataType''' - тип данных, который должен совпадать в приемнике и источнике
 
* '''isPrimary''' - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку  "isPrimary": true)
 
* '''isPrimary''' - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку  "isPrimary": true)
 
* '''discriminator''' - здесь всегда необходимо ставить "MapperOption"
 
* '''discriminator''' - здесь всегда необходимо ставить "MapperOption"
Строка 71: Строка 73:
 
|Логический тип|| Boolean|| -
 
|Логический тип|| Boolean|| -
 
|-
 
|-
|Json|| Json|| Данные должны приходит в таком "кавычках", если необходимо атрибуты занести в формат json, то следует использовать выражение: "expression": "[атрибут]" и не прописывать в настройках "SaveMode"
+
|Json|| "fieldDataType": "Json"|| Данные должны приходит в таком "кавычках", если необходимо атрибуты занести в формат json, то следует использовать выражение: "expression": "[атрибут]" и не прописывать в настройках "SaveMode"
 
|}
 
|}

Версия 09:16, 12 декабря 2022

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

1 "Destination": {
2                  "discriminator": "IndicatorDataOptions",
3                  "mapperOptions": [ {}, {}],
4                  "expressions": [{}],
5                  "clearData": false,
6                  "Code": ""
7                }

Шаг 1. Настройка самого показателя-приемника

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

показатель-приемник.png

Показатель строится на основе справочнике, после его создания необходимо обратиться к конструктору показателя и обратить внимание на "columns", из данной иерархии используется название и тип данных.

конструктор показателя.png

  • "name": "fact" - будет использоваться для загрузки геометрии
  • "name": "d_416103_id" - атрибут для первичного ключа

Шаг 2. Настройка полей

Настройка полей выглядит следующим образом:

 1 "mapperOptions": [
 2                    {
 3                     "propertyName": "root_id",
 4                     "filedName": "d_416103_id",
 5                     "dataType": "Int32",
 6                     "isPrimary": true,
 7                     "discriminator": "MapperOption"
 8                    },
 9                    {
10                     "ExpressionId": 1,
11                     "filedName": "fact",
12                     "fieldDataType": "Json",
13                     "isPrimary": false,
14                     "discriminator": "MapperOption"
15                    }            
16                  ],
17  "Expressions": [
18                  {
19                    "id": 1,
20                    "expression": "[0]",
21                    "Variables": {
22                                  "0": "geometry"
23                                 }
24                   }
25                  ]

Откуда берется:

  • propertyName - название атрибута из источника
  • filedName - название столбцов из показателя ("columns")
  • dataType/fieldDataType - тип данных, который должен совпадать в приемнике и источнике
  • isPrimary - является ли данный атрибут первичным ключом (хотя бы один из атрибутов должен содержать настройку "isPrimary": true)
  • discriminator - здесь всегда необходимо ставить "MapperOption"

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

Тип Как записать в настройке Небольшой комментарий
Строка String Если в источнике приходит тип guid или длинное число, то лучше записать в приемник в атрибут с типом "String"
Целое число (Integer) Int32 Int64 не поддерживается
Вещественное число (Double) Double Формат записи через запятую ("370,70")
Дата и время DateTime Формат записи через запятую 01.01.2000 (даже, если приходят данные в формате "2020-01-01")
Логический тип Boolean -
Json "fieldDataType": "Json" Данные должны приходит в таком "кавычках", если необходимо атрибуты занести в формат json, то следует использовать выражение: "expression": "[атрибут]" и не прописывать в настройках "SaveMode"