Начало работы с DataManager

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

Подключение 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 }

5) Открыть swagger → контроллер "Data" → метод "LoadFromFile"

В параметре вызова "optionId" прописать идентификатор настройки, загрузить нужный файл и нажать "execute"

метод файл.png

6) Обновить справочник-приемник и убедиться, что все данный выгрузились

Результат.png

Мониторинг выполнения задачи загрузки данных

Результаты загрузки данных можно посмотреть в справочнике "Результаты загрузки данных" (код DataManagerTasksResults)

  • Наименование - название задачи
  • Статус - статус загрузки (Done/Error)
  • Дата начала
  • Дата завершения
  • Результат - результат работы задачи
  • Задача - элемент связанного справочника "Задачи загрузки данных"

Результаты загрузки данных.png