Мы выпустили обновление к 75 версии Case.one, где добавили возможность загружать в Case.one дела из других систем с помощью Инструмента миграции данных.
Инструмент миграции данных
Мы реализовали Инструмент миграции данных, который позволяет переносить в Case.one данные дел и объектов из других систем, не тратя время на ручной ввод, и автоматически создавать карточки объектов и дел определенного типа из заполненного шаблона:
- Шаблон миграции данных формируется автоматически для каждого типа объекта в формате *.csv — скачайте шаблон на вкладке Настройки в конструкторе типа объекта.
- В шаблоне содержится информация о системных и кастомных полях, которые настроены для выбранного типа объекта на вкладке Основное и на созданных вкладках (вне зависимости от настроек видимости вкладок):
- Данные полей выгружаются отдельной строкой и формируются по маске: "<Наименование поля> (<Тег>)", где:
- <Наименование поля> — зависит от типа поля:
- Для системных полей — наименование поля в отчетах
- Для кастомных полей — наименование поля в конструкторе объекта
- <Тег> — зависит от типа поля:
- Для системных полей — системные имена полей в механизме отчетов
- Для кастомных полей — тег поля или идентификатор поля в блоке (если тег не присвоен полю)
- <Наименование поля> — зависит от типа поля:
- Данные каждого поля отделены друг от друга разделителем без пробела (вид разделителя можно указать в настройках конфигурации, по умолчанию — ",")
- Сначала отображаются все системные поля (без учета настроек видимости на вкладке Настройки в блоке Системные поля) типа объекта слева направо:
- Стадия объекта
- Проект
- Название объекта
- Ответственный;
- Клиент
- Описание
- После системных полей отображаются все кастомные поля (без учета их настроек в типе объекта), начиная с первой строки первого блока вкладки Основное построчно сверху вниз, и далее в том же порядке с созданных вкладок
- В шаблон загружаются данные полей с форматом:
- Гиперссылка
- Дата
- Дата и время
- Логический
- Справочник
- Текст
- Текстовое расширяемое
- Формула расчета
- Чекбокс
- Число
- Шаблон номера дела
- Объект—Дело
- Объект—Объект
- Объект—Участник
- Объект—Пользователь
- Данные полей выгружаются отдельной строкой и формируются по маске: "<Наименование поля> (<Тег>)", где:
- Внесите в скачанный файл шаблона данные ваших дел, указывая информацию о каждом деле с новой строки и соблюдая определенные правила заполнения полей (подробнее см. в разделе Импорт данных).
- Загрузите заполненный файл шаблона импорта данных для автоматического создания карточек дел и объектов в новом разделе Администрирование — Импорт:
- В разделе отображается список всех сессий импорта данных со следующей информацией:
- Название импорта
- Тип — тип объекта для импорта
- Дата начала — дата загрузки файла импорта
- Статус:
- В процессе – Х% — статус с процентом выполнения загрузки отображается во время выполнения импорта
- Завершен — статус отображается после завершения загрузки файла импорта
- Загрузка файла импорта выполняется на отдельной форме со следующими полями:
- Название — название сессии импорта (максимальное количество символов — 450)
- Тип — выбор типа объекта из списка, шаблон импорта которого был заполнен:
- В списке отображаются все типы объектов с указанием класса объекта
- Возможен поиск типа объекта
- Доступно выбрать только одно значение
- Поле для прикрепления заполненного файла импорта
- В разделе отображается список всех сессий импорта данных со следующей информацией:
Одновременный запуск нескольких импортов невозможен. Если импорт данных еще не завершен, добавить новый импорт будет недоступно, как текущему пользователю, так и другим.
- После запуска импорта (кнопка Импортировать на форме добавления сессии импорта) выполняются:
- Проверки целостности файла импорта — если хотя бы одна из проверок целостности файла завершилась с ошибкой, импорт будет прекращен:
- Проверка формата файла импорта — если загружаемый файл не соответствует формату *.csv, отобразится ошибка: «Недопустимый формат файла. Разрешенный формат: csv»
- Проверка корректно заполненного файла в формате *.csv (подробнее см. описание валидного формата *.csv), включая проверку количества выгруженных полей типа объекта с количеством значений полей в каждой строке с заполненными данными дел
- Проверка размера загружаемого файла — если размер файла превышает 100 Мб, отобразится ошибка: «Превышен максимальный размер файла. Максимальный размер файла не должен превышать 100 MB»
- Проверка количества строк в файле — если количество строк превышает максимально разрешенное значение, которое указано в настройках конфигурации one (по умолчанию — 10000 строк), отобразится ошибка: «Произошла ошибка. Превышено максимальное количество строк в файле: N» (N — максимальное количество строк)
- Проверки настроек Case.one:
- Проверка наличия дубликатов объектов или дел:
- В файл лога будет записана ошибка при выявлении хотя бы одного дубликата объекта, если в типе объекта, для которого загружается файл импорта, установлен запрет на создание дубликатов
- Объект создан не будет
- Проверка на максимальное количество объектов по подписке — если в процессе импорта было достигнуто максимальное количество дел по подписке:
- В лог будет записана ошибка
- Импорт будет прерван
- Остальные объекты (превышающие разрешенное количество по подписке) созданы не будут
- Проверка наличия дубликатов объектов или дел:
- Импорт данных объектов из файла — выполняется сопоставление значений полей данных объектов в файле импорта с полями в типе объекта по следующей логике:
- Сопоставление содержания строк — каждая строка в файле импорта после строки с выгруженными полями типа объекта должна содержать данные одного объекта
- Сопоставление формата разделителя и разграничения значений полей:
- Параметры разделителей полей, указанные для шаблона импорта в настройках конфигурации Case.one и в файле импорта, должны совпадать
- Каждое значение в строке должно быть заключено в кавычки
- Наличие лишних пробелов — в значении поля будут удалены начальный и конечный пробел (при их наличии)
- Сопоставление полей в строках для заполнения полей в создаваемых карточках объекта — значения полей каждой строки файла импорта будут сопоставлены с полями в типе объекта по тегу или идентификатору поля:
- Если значения поля нет в файле, но поле есть в типе объекта — поле в карточке объекта останется пустым или будет указано значение по умолчанию (исключение: значение поля Название объекта должно присутствовать в файле импорта обязательно)
- Если значение поля есть в файле, но соответствующего поля нет в типе объекта:
- Значение поля не будет перенесено в карточку объекта
- Создание карточки объекта будет продолжено
- Если значение поля есть в файле, и соответствующее поле есть в типе объекта, системные и кастомные поля будут заполнены в создаваемых карточках согласно настроенной логике и с учетом предусмотренных проверок.
- Проверки целостности файла импорта — если хотя бы одна из проверок целостности файла завершилась с ошибкой, импорт будет прекращен:
- Если успешно пройдены все проверки и импорт выполнен:
- Статус импорта изменится на Завершен
- В разделе Администрирование — Действия в системе и в Ленте событий будут добавлены записи о создании карточек объектов от имени системного пользователя Service Workflow
- В созданных объектах и делах будет заполнена информация из файла импорта
- Доступно скачать файл лога импорта, где записывается основная информация о состоянии настроек на момент запуска импорта, а также информация о результате создания или обновления каждого объекта
Улучшения и исправления
- В рамках унификации настроек RabbitMQ изменили значение по умолчанию для параметра AddHostToQueueName на true, чтобы не прописывать это значение вручную для клиентов.
- Удалили nlog-logger для конфигурации Windows, чтобы снизить рост потребления CPU со стороны APP-сервера в следующих версиях Case.one.
- Для возможности установки модуля, в котором содержится до 1000 файлов, изменили значение по умолчанию (1000) для параметров: MaxExtractingFileCount и Package::EntitiesMaxCount.
- Исправили отображение отступа у блока Итоги на вкладках Затраты, Активности и Счета карточки объекта и в разделе Биллинг на вкладке Счета.
- Поправили ошибку, возникающую при установке или обновлении модуля со сценарием, который использует новое поле блока в операторах Ожидать, Создать и Изменить или в качестве объекта условия срабатывания.
- В разделе OldRabbitMq:Topology изменили значение параметра AddHostToQueueName по умолчанию на true:
- Если в название очередей в RabbitMQ не указан хост (%host%), необходимо изменить значение AddHostToQueueName на false
- Если %host% используется, параметр AddHostToQueueName можно удалить из файла настроек конфигурации appsettings.json
- Исправили ошибку отображения дел после выполнения миграции данных при переходе на конфигурацию Linux (с Windows), если была включена интеграция с ElasticSearch — теперь дела корректно отображаются в разделе Дела и в Ленте событий.