Версия 75.1 (PATCH)

Мы выпустили обновление к 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 — теперь дела корректно отображаются в разделе Дела и в Ленте событий.