Платформа 3V/DataManager/Начало работы: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 83: Строка 83:
  
 
[[Файл:Задача_файл.png|500px]]
 
[[Файл:Задача_файл.png|500px]]
 +
 +
4) Прописать в атрибуте "Настройки загрузки" маппинг полей и нажать "Сохранить"
 +
Пример настройки для загрузки данных из файла:
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
"Source": {
 +
        "discriminator": "ConstantDataManagerSource"
 +
          },
 +
"Destination": {
 +
        "discriminator": "DictionaryDataOptions",
 +
        "SaveMode": "Postgres",
 +
        "mapperOptions": [
 +
{
 +
"propertyName": "NAME",
 +
"filedName": "NAME",
 +
"dataType": "String",
 +
"isPrimary": true,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "connectiontype",
 +
"filedName": "connectiontype",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "status",
 +
"filedName": "status",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "created",
 +
"filedName": "created",
 +
"dataType": "DateTime",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "closed",
 +
"filedName": "closed",
 +
"dataType": "DateTime",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "customer",
 +
"filedName": "customer",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "email",
 +
"filedName": "email",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "theme",
 +
"filedName": "theme",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "operator",
 +
"filedName": "operator",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "amount",
 +
"filedName": "amount",
 +
"dataType": "Int32",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "implementers",
 +
"filedName": "implementers",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "categories",
 +
"filedName": "categories",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "segments",
 +
"filedName": "segments",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "system",
 +
"filedName": "system",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
},
 +
{
 +
"propertyName": "time",
 +
"filedName": "time",
 +
"dataType": "String",
 +
"isPrimary": false,
 +
"discriminator":"MapperOption"
 +
}
 +
],
 +
"clearData": false,
 +
"dictionaryIdent": "applications_test"
 +
              }
 +
}
 +
</syntaxhighlight>

Версия 11:11, 1 декабря 2022

Здесь можно найти шаги работы с дата менеджером

Подключение DataManager

При создании нового тенанта DataManager будет пытаться сам установить новые объекты в репозиторий. То есть при добавлении нового тенанта, задачи DataManager будут доступны автоматически, без перезапуска сервиса - данный функционал на тестировании Начало работы.png

ПРИ НЕОБХОДИМОСТИ:

если в приложении нет сервиса, то необходимо:

  1. Подать заявку в СТП
  2. В описании к обращению указать необходимость данного расширения

ЛИБО

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

  1. Найти контроллер "Installer" → метод "Install"
  2. Выбрать необходимый объект для установки
  3. Нажать "Execute"
  4. Проверить на стенде наличие объектов с названиями "DataManagerTasks" и "DataManagerTasksResults"

Создание задачи загрузки данных

Создать задачу можно двумя способами:

  • С помощью справочника задач загрузки данных
  • С помощью методов в swagger

Создание задачи с помощью справочника

Чтобы создать задачу, необходимо:

1) Создать атрибут в справочнике задач загрузки данных

создание задачи.png

2) Дать название для задачи

название задачи.png

3) Вставить в атрибут "Настройки загрузки" настройку маппинга

маппинг для задачи.png

4) Заполнить атрибут "Дата последнего запуска" (поставить текущую дату) - если необходимо исправить значение в атрибуте с настройкой, а дата запуска стоит, например, вчерашняя, то необходимо стереть значение из атрибута "дата запуска"

При необходимости заполнить атрибуты "Дата следующего запуска", "Периодичность запуска", "Описание"

  • Дата следующего запуска - та дата, когда будет произведена следующая загрузка
  • Периодичность - повторяемость задачи через определенные промежутки времени
  • Описание - любой комментарий по задаче

Остальные атрибуты DM.png

5) Нажать на сохранение в справочнике

сохранить.png

И на этом всё!

Создание задачи с помощью методов

Для создания задачи необходимо обратиться к следующим методам в контроллере Data:

  • Data/Load - загрузка в данных в объекты платформы
  • Data/LoadFromFile - загрузка данных в объекты платформы, если источник - файл

Пример загрузки данных с помощью Data/Load

На примере 3v.3v-group.net

  • Перейти на метод Data/Load
  • Нажать "Try it out!"
  • Вставить в Request body (тело запроса) настройку маппинга
  • Нажать "Execute"

Загрузка через методы апи.gif

Пример загрузки данных с помощью Data/LoadFromFile

1) Для успешной загрузки данных из файла через дата менеджер необходимо для начала создать справочник- приемник с нужными атрибутами.

На стенде 3V-GROUP.NET создан справочник "Заявки_тест" (код - applications_test)

атрибуты для выгрузки из файла.png

2) Проверить файл - файл должен содержать одну строку с заголовками, а не две и более

Файл, из которого необходимо грузить данные в справочник, содержит две строки заголовка: на английском и на русском. Строку с русскими заголовками необходимо удалить, так как при дальнейшей работе (маппинге полей) сервис не сможет прочитать столбец, для которого указан тип данных не string, и будет выдавать ошибку

Проверка на заголовок.png

3) Создать задачу в "DataManagerTasks" (справочник "Задачи загрузки данных")

Для данной загрузки в справочнике создана задача с идентификатором 709, где далее будет прописан маппинг полей в атрибуте "Настройки загрузки"

Задача файл.png

4) Прописать в атрибуте "Настройки загрузки" маппинг полей и нажать "Сохранить" Пример настройки для загрузки данных из файла:

  1 {
  2 "Source": {
  3         "discriminator": "ConstantDataManagerSource"
  4           },
  5 "Destination": {
  6         "discriminator": "DictionaryDataOptions",
  7         "SaveMode": "Postgres",
  8         "mapperOptions": [
  9 {
 10 "propertyName": "NAME",
 11 "filedName": "NAME",
 12 "dataType": "String",
 13 "isPrimary": true,
 14 "discriminator":"MapperOption"
 15 },
 16 {
 17 "propertyName": "connectiontype",
 18 "filedName": "connectiontype",
 19 "dataType": "String",
 20 "isPrimary": false,
 21 "discriminator":"MapperOption"
 22 },
 23 {
 24 "propertyName": "status",
 25 "filedName": "status",
 26 "dataType": "String",
 27 "isPrimary": false,
 28 "discriminator":"MapperOption"
 29 },
 30 {
 31 "propertyName": "created",
 32 "filedName": "created",
 33 "dataType": "DateTime",
 34 "isPrimary": false,
 35 "discriminator":"MapperOption"
 36 },
 37 {
 38 "propertyName": "closed",
 39 "filedName": "closed",
 40 "dataType": "DateTime",
 41 "isPrimary": false,
 42 "discriminator":"MapperOption"
 43 },
 44 {
 45 "propertyName": "customer",
 46 "filedName": "customer",
 47 "dataType": "String",
 48 "isPrimary": false,
 49 "discriminator":"MapperOption"
 50 },
 51 {
 52 "propertyName": "email",
 53 "filedName": "email",
 54 "dataType": "String",
 55 "isPrimary": false,
 56 "discriminator":"MapperOption"
 57 },
 58 {
 59 "propertyName": "theme",
 60 "filedName": "theme",
 61 "dataType": "String",
 62 "isPrimary": false,
 63 "discriminator":"MapperOption"
 64 },
 65 {
 66 "propertyName": "operator",
 67 "filedName": "operator",
 68 "dataType": "String",
 69 "isPrimary": false,
 70 "discriminator":"MapperOption"
 71 },
 72 {
 73 "propertyName": "amount",
 74 "filedName": "amount",
 75 "dataType": "Int32",
 76 "isPrimary": false,
 77 "discriminator":"MapperOption"
 78 },
 79 {
 80 "propertyName": "implementers",
 81 "filedName": "implementers",
 82 "dataType": "String",
 83 "isPrimary": false,
 84 "discriminator":"MapperOption"
 85 },
 86 {
 87 "propertyName": "categories",
 88 "filedName": "categories",
 89 "dataType": "String",
 90 "isPrimary": false,
 91 "discriminator":"MapperOption"
 92 },
 93 {
 94 "propertyName": "segments",
 95 "filedName": "segments",
 96 "dataType": "String",
 97 "isPrimary": false,
 98 "discriminator":"MapperOption"
 99 },
100 {
101 "propertyName": "system",
102 "filedName": "system",
103 "dataType": "String",
104 "isPrimary": false,
105 "discriminator":"MapperOption"
106 },
107 {
108 "propertyName": "time",
109 "filedName": "time",
110 "dataType": "String",
111 "isPrimary": false,
112 "discriminator":"MapperOption"
113 }
114 ],
115  "clearData": false,
116  "dictionaryIdent": "applications_test"
117                }
118 }