Настройки конфигурации

Изменение наименования инстанса

В файле настроек конфигурации в параметре ApplicationName вы можете указать наименование инстанса, которое будет отображаться в следующих разделах:

  • Страницы авторизации, регистрации, восстановления или задания пароля:
    • Наименование инстанса в левом верхнем углу
    • Наименование инстанса над полями для ввода логина и пароля
  • Наименование инстанса на странице с ошибкой о неудачной попытке входа в Case.one при авторизации через OpenId.
  • Заголовок Главного меню.
  • Электронные письма, уведомления и приглашения:
    • Наименование инстанса (изображение изменяется на текст)
    • Название ссылки на инстанс
    • Подпись
  • Шаблоны счетов (наименование инстанса в левом вернем углу).

При использовании параметра ApplicationName предусмотрены следующие особенности:

  • Если в наименовании инстанса присутствует точка, часть наименования до точки и сама точка выделены белым цветом, а часть после точки — серым.
  • В параметре ApplicationName отсутствует ограничение на длину наименования — если наименование длиннее отображаемой области, оно будет обрезано троеточием, поскольку число отображаемых символов наименования зависит от ширины колонки Главного меню слева и области между иконками перехода в Главное меню и Колокольчиком.

Также вы можете прописать наименование, от кого отправляется почта — укажите значение в параметре FromName в строке подключения к SMTP.


Настройки объектов в файле конфигурации

В файле настроек конфигурации вы можете определить следующие настройки для объектов:

Настройка автоматического наименования дела

Для автоматического формирования названия дела по маске: {Тип объекта} {N объекта по шаблону} в файле настроек конфигурации appsettings.json задайте параметр IsObjectNameRequired:

  • Настройка отключена по умолчанию.
  • При включенной настройке:
    • Поле Название дела (при создании дела, выделении в новый объект) не обязательно для заполнения
    • Дело будет создано с названием по умолчанию
    • Максимальная длина названия — 400 символов, если в названии указано больше символов, оно будет автоматически обрезано

Настройка не учитывается:

  • В поле Название дела карточки объекта — поле является обязательным для заполнения.
  • В методах API, предназначенных для работы с объектами.
  • В операторе Создать при создании объекта — поле Название является обязательным для заполнения.

При изменении параметра IsObjectNameRequired на true название дела будет обязательным для указания:

{
    "Custom": {
        "IsObjectNameRequired": false,
        // другие параметры...
    }
}

Включение оптимизации загрузки браузером содержимого объемных карточек объектов/дел

Поскольку при открытии карточки объекта браузер отображает сразу все блоки и их содержимое, это может приводить долгой загрузке и временному зависанию браузера, если карточка объекта содержит много данных и/или используется довольно слабый ПК.


Оптимизация предназначена для экстренных случаев, если не удается открыть большую карточку, поэтому мы не рекомендуем включать ее без крайней необходимости.


Оптимизация выключена по умолчанию, поскольку браузерный поиск по странице (клавиши CTRL+F) нужных полей или блоков по названию и/или значению будет выполняться иначе:

  • Поиск по названию блоков выполняется так же, как и раньше.
  • Поля уже не будут отображаться в результатах поиска, пока они не попадут в видимую область отрисовки, что может вызвать негатив, поскольку ориентироваться в больших карточках пользователям сложно (это одна из причин, почему мы не рекомендуем делать крупные карточки).

Для включения оптимизации (выключена по умолчанию) в файле appsettings.json в секции Custom пропишите следующие настройки:

{
    // ...
    "Custom": {
        // ...
        "LazyObjectCardInitDisabled": "false"
    }
}

При включенной оптимизации содержимое в блоках будет отображаться браузером постепенно (по мере пролистывания карточки, с запасом в пару экранов).

Включение оптимизации позволяет получить серьезный прирост в производительности при отрисовке содержимого крупных карточек — минимум в два раза быстрее на карточке с ~1000 полей (чем больше объект, тем больше прирост).

При отключенной оптимизации есть обходной путь, который позволяет частично решить проблему долгой загрузки: не следует размещать все блоки на одной вкладке — лучше поделить их между несколькими или сворачивать блоки.

Настройка количества мультиблоков и мультистрок

Для настройки рекомендуемого количества мультиблоков и мультистрок в карточке объекта дополните секцию Custom в файле настроек конфигурации appsettings.json параметрами:

  • MaxRecommendedMultiLineCount (int) — рекомендуемое количество мультистрок в карточке объекта (по умолчанию — 500).
  • MaxRecommendedMultiBlockCount (int) — рекомендуемое количество мультиблоков в карточке объекта (по умолчанию — 100).

Параметры (поддерживают переопределение) используются для предупреждения пользователей о рекомендованном количестве блоков и строк и не помешают созданию новых мультистрок/мультиблоков.

Установленное в конфигурации ограничение на количество блоков (100 по умолчанию) и строк (500 по умолчанию) в карточке объекта влияет на синхронизацию дела с EAV-моделью — если количество блоков/мультиблоков или строк/мультистрок нарушает установленное ограничение:

  • Синхронизация дела с EAV-моделью будет принудительно прервана с ошибкой в логе:

Interrupted SerializedEntityBlocksUpdated process: projectId because blocks count / lines count limit exceeded

  • Не будет работать принудительная актуализация дела.

Настройка канбан-вида объектов

Для использования оптимизации при получении сводных данных по объектам с указанием максимального количества одновременных запросов при получении объектов в канбан-виде в файл конфигурации предусмотрены следующие настройки:

{
   "Custom": {
      ...
      "UseFilterOptimizationForProjectStatisticsList": "false", // использование оптимизации при получении сводных данных по объектам. Работает только в паре с настройкой UseFilterOptimizationForProjectsList.
      "MaxDegreeOfProjectGroup": "4"// максимальное количество одновременных запросов при получении объектов в канбан-виде
      "MaxDegreeOfProjectGroupStatistic": "4"// максимальное количество одновременных запросов при получении сводных данных по объектам в канбан-виде
   }
}

Включать настройку UseFilterOptimizationForProjectStatisticsList (значение true) следует при долгом получении сводных данных по объектам в канбан-виде. Рекомендуется включать эту настройку при включении настройки UseFilterOptimizationForProjectsList.

Если наблюдается большое количество запросов в БД, что приводит к неудовлетворительной работе всего инстанса, возможно ограничить количество одновременно отправляемых запросов для получения объектов и сводных данных по ним, установив оптимальное значение в MaxDegreeOfProjectGroup и MaxDegreeOfProjectGroupStatistic соответственно.

Допустимые значения: 

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

Настройка отображения данных при просмотре объектов с разбивкой по стадиям

Для отключения отображения данных при просмотре объектов с разбивкой по стадиям (количества объектов по каждой стадии и других настроенных данных) в appsettings.json задайте настройку DisableStatisticInKanbanView:

"Custom": {
   ...
   "DisableStatisticInKanbanView": true
}

Отключение отображения настроенных данных при просмотре объектов с разбивкой по стадиям рекомендуется применять в качестве временного решения, если на инстансе наблюдаются большие задержки при открытии объектов в режиме просмотра с разбивкой по стадиям, и при этом возникает большая нагрузка на CPU SQL-сервера.


Для изменения таймаута запроса на получение статистики по выводу дел в стадии и отображению числовых значений (по умолчанию — 1 минута) укажите в файле appsettings.json в настройке StatisticInKanbanViewRequestTimeout новое значение времени:

{
   "Custom": {
      ...
      "StatisticInKanbanViewRequestTimeout": "00:01:00"
   }
}

После истечения срока запроса, если не пришел ответ от сервера:

  • Отображается уведомление: Не удалось загрузить данные. Превышено время ожидания: повторите попытку позже или попробуйте изменить фильтры.
  • Статистика не отображается.

Настройка ограничения количества объектов в календаре

Для настройки ограничения количества объектов в календаре дополните секцию Custom файла appsettings.json параметром MaxObjectsInCalendar:

  • Тип параметра — int;
  • Значение по умолчанию — 1000;
  • Параметр поддерживает переопределение.
"Custom": {
    "MaxObjectsInCalendar": 500,
}

Возможен незначительный рост потребления CPU со стороны APP-сервера при частых обращениях к календарю — рост потребления CPU может достигать 10%.   В будущих релизах мы планируем провести оптимизацию работы календаря, чтобы исключить рост потребления ресурсов при значительном увеличении объектов и/или запросов к календарю.


Включение оптимизации запросов по пересчету прав частичного просмотра для папок и проектов

Оптимизация запросов по пересчету прав частичного просмотра для папок и проектов с большим количеством вложенных дел включается через существующую настройку в файле настроек конфигурации appsettings.json (включена по умолчанию):

UsePartialViewAutosharingOptimization — включить оптимизацию автоматического совместного использования частичных представлений для папок и проектов (Enable optimization of partial view autosharing for folders and projects): тип настройки — bool, значение — true.

Включение настройки рекомендовано при следующих характеристиках:

  • Профиль данных подразумевает объемные проекты или папки с большим количеством дел внутри.
  • На указанном профиле возникают задержки на уровне обработки очереди recalculate_permissions.
  • На указанном профиле возникают избыточные задержки или затраты ресурсов на уровне БД при выполнении запросов пересчета прав.

Настройка автоматического пересчета прав по полям с типом Объект-Пользователь

Для регулирования размера пачки дел, которые отправляются на пересчет прав в файле настроек конфигурации appsettings.json доступен параметр UserFieldPermissionRecalculateBatchSize (значение по умолчанию — 100):

{
    ...,
    "Custom": {
        "UserFieldPermissionRecalculateBatchSize": 500
    },
    ...
}

Настройки правил определения дубликатов

Для реализации механизма проверки наличия дубликатов при создании или изменении карточки объекта предусмотрены следующие ограничения настроек дедупликации:

  • Настройка ограничений механизма дедупликации — введено ограничение на количество уникальных полей, участвующих в настройке дедупликации в карточке типа объекта. Для настройки максимального количества уникальных полей в файле appsettings.json в секции ObjectType добавьте или замените свойство MaxDeduplicationUniqueFields:
{
    // "Custom": { /* ... properties ... */},
    "ObjectType": {
        // Other properties
        "MaxDeduplicationUniqueFields": 20 // по умолчанию 20 полей
    }
}

Ограничение распространяется как на поля, добавленные в Базовом режиме, так и на поля, добавленные в Продвинутом режиме в формате: @Название_поля (также учитываются уникальные поля, указанные в Продвинутом режиме).


  • Настройка ограничения количества дел в списке найденных дубликатов — настройка ограничивает количество дел для формирования ссылок по ним при работе механизма поиска дубликатов. По умолчанию в списке дел отображается только 10 ссылок:
{
  "Custom": {
    "MaxSizeDuplicateObjectList": "10" // по умолчанию 10 дел
  }
}
  • Настройка ограничения количество уникальных полей фильтрации данных в отчетах — настройка регулирует количество уникальных полей, которые можно выбрать в качестве поля фильтрации отчета:
{
  "Custom": {
    "MaxAllowedFilterFields": "20" // по умолчанию 20 уникальных полей
  }
}

Ограничение распространяется как на поля, добавленные в Базовом режиме, так и на поля, добавленные в Продвинутом режиме в формате: @Название_поля (также учитываются уникальные поля, указанные в Продвинутом режиме).


Настройки реестров и Базы знаний

Поскольку начиная с 77 версии База знаний и Реестры являются объектами:

  • При наличии системных отчетов, которые ссылаются на таблицы по реестрам (например: CaseMap.RegisterObjects и CaseMap.RegisterTemplates) и по базе знаний (например, CaseMap.Resolutions и CaseMap.ResolutionGroups), адаптируйте отчет и переделайте на объекты (таблицы CaseMap.Projects, CaseMap.ProjectTypes).
  • При наличии скриптов, сценариев автоматизации или других интеграций, которые используют API по работе с базой знаний или реестрами, также адаптируйте их и перенастройте на работу с объектами.

Настройки пользователей и их доступа в файле конфигурации

В файле конфигурации appsettings.json вы можете настроить:

  • Генерацию ссылки на сброс пароля — в секции Custom в параметре PasswordResetLinkExpirationHours задайте время жизни в часах ссылки на восстановление пароля:
    • Тип параметра: int
    • Значение по умолчанию: 5

{
...,
    "Custom": {
        "PasswordResetLinkExpirationHours": 5
    },
    ...
}

  • Параметры для настройки автоматического отслеживания статуса пользователя и перевода его в offline (статус Неактивный) — параметры UserIsOfflineTimeout и PingPeriod поддерживают переопределение:
{
  "Custom": {
    "UserIsOfflineTimeout": "00:10:00", // Время бездействия пользователя, после которого пользователь будет считаться Offline. По умолчанию 10 минут.
    "CheckUserOnlineInterval ": "00:01:00" // Настройка срабатывания периодической фоновой задачи, которая переводит пользователя в Offline, если он не был активен больше чем UserIsOfflineTimeout. По  умолчанию каждую 1 минута.
    "PingPeriod": 60000 // Интервал в миллисекундах, с которым Web клиент отправляет ping запрос для продления сессии пользователя и его online статуса. По умолчанию каждую 1 минуту.
}
  • Количество выгружаемых записей о пользователях — дополните секцию Custom параметрами:
    • UsersExcelExportRowsLimit — максимальное количество строк для экспорта списка пользователей в XLSX: тип — int, значение по умолчанию — 5000
    • UsersCsvExportRowsLimit — максимальное количество строк для экспорта списка пользователей в CSV: тип — int, значение по умолчанию — 5000
"Custom": {
    "UsersExcelExportRowsLimit": 5000, // по умолчанию 5000
    "UsersCsvExportRowsLimit": 5000 // по умолчанию 5000
}
  • Фильтрацию дел/объектов по группам пользователей — в секции Custom укажите значение параметра MaxAllowedUsersCountInSelectedGroup:
    • Параметр позволяет указать максимально допустимое количество SQL параметров (идентификаторов пользователей) в одном запросе, который будет сгенерирован для фильтрации дел по ответственному (запрос включает всех выбранных пользователей и всех пользователей, состоящих в выбранных группах)
    • Параметр затрагивает:
      • Внутренний API: Фильтр — Еще фильтры — Ответственный
      • Публичный API: api/v3/objects/GetObjects и api/v3/objects/GetTableObjects
    • Значение по умолчанию — 1000
"Custom": {
"MaxAllowedUsersCountInSelectedGroups": 1000
}

Не рекомендуем превышать значение по умолчанию, поскольку при превышении максимального количества значений запрос фильтрации завершиться ошибкой с кодом 400 — BadRequest.


  • Вид списка прав со следующими параметрами:
    • Duplicate — (значение по умолчанию) список прав формируется с учетом изменений свойств записи об автоматическом предоставлении прав доступа группе пользователей к папке, проекту и/или делу в списке прав доступа на вкладке Настройки в карточке объекта и на форме общего доступа к папке и проекту
    • Legacy — список прав будет формироваться согласно прежнему алгоритму
{
"Custom" :
    {
        "PermissionsListMode" : "Legacy" | "Duplicate"
    }
}
  • Разделение элементов пересчета прав по группе пользователей на отдельные элементы в разрезе каждого пользователя — включите настройку SplitRecalculatePermissionsUserGroup (по умолчанию — false, т.е. без разделения):
    • Использовать настройку SplitRecalculatePermissionsUserGroup рекомендуется, если:
      • Происходят частые изменения в Системе, которые приводят к массовому пересчету прав по пользователям разных групп
      • Пересчет прав по группе пользователей выполняется долго или приводит к деградации по ресурсам и/или производительности Системы в целом
    • Доступно использовать индексированные поля для оптимизации некоторых сценариев автошаринга (при пересчете прав по пользователю).

Настройку SplitRecalculatePermissionsUserGroup необходимо использовать в совокупности с подключением дедупликации для очереди recalculate_permissions (RabbitMQ).


  • Запрет авторизации пользователям с определенными ролями (установка запрета возможна как для системных, так и для созданных ролей) — для настройки списка разрешенных и запрещенных ролей добавьте секцию RoleLoginRestriction с параметрами:
    • IsEnabled (тип — bool) — флаг включения настройки, по умолчанию ограничение доступа определенным ролям отключено (значение — false)
    • AllowedRoleNames (тип — IEnumerable<string>) — список наименований ролей (регистр не учитывается), которым разрешен вход, значение по умолчанию — default
"RoleLoginRestriction": {
"IsEnabled": true,
    "AllowedRoleNames" : [
        "RoleName1",
        "RoleName2"
    ]
}

Настройка недоступна при включенной интеграции с Active Directory.


Настройки отчетов в файле конфигурации

Для включения или отключения настройки (по умолчанию включена), которая позволяет выгружать гиперссылки на объект при экспорте кастомного отчета в XLSX выполните скрипт в БД инстанса:

UPDATE "CaseMap"."Settings" SET "Value" = 'true' /*'false'*/ WHERE "Key" = 'ExportExcelLinkEnabled'

Для отображения ссылок на объект в настроенных системных отчетах добавлены дополнительные настройки столбцов для отображения отчет. В таблице с метаданными столбцов отчета добавлены следующие колонки:

  • IsHidden — признак отображения столбца при предпросмотре отчета (значения: true/false).
  • LinkType — тип ссылки на объект (значение: ProjectLink).
  • EntityIdColumnId — идентификатор колонки, в которой указывается идентификатор объекта. Идентификатор необходим для формировании ссылки на объект.

Пример запроса добавления метаданных столбцов со ссылками на объект:

INSERT into "CaseMap"."FixedColumns" ("Order", "Name", "Type", "FixedReportId", "IsHidden", "LinkType")
VALUES
        (0, 'ProjectId',    'Guid',    fixedReportId, true,  null),
        (1, 'ProjectName',  'String',  fixedReportId, false, 'ProjectLink');
 UPDATE "CaseMap"."FixedColumns"
    SET "EntityIdColumnId" = (SELECT "Id" FROM "CaseMap"."FixedColumns" WHERE "Name" = 'ProjectId' AND "FixedReportId" = fixedReportId)
    WHERE "Name" = 'ProjectName' AND "FixedReportId" = fixedReportId;

Для настройки вида отображения значений полей с типом Логическое и Чекбокс в скачанном отчете в формате XLSX или CSV добавлена настройка IsExportExcelBooleanValuesEnabled (по умолчанию включена) в секцию Custom в файл appsettings.json:

  • Если настройка включена, значения полей с типом Логическое и Чекбокс будут отображаться как Да или Нет.
  • Если настройка выключена — true или false.
  • Настройка доступна для переопределения.
{"Custom": {
    "IsExportExcelBooleanValuesEnabled": true
  }
}

Для настройки ширины колонок в системных отчетах с предпросмотром в таблице CaseMap.FixedColumns в поле Size укажите ширину колонок в пределах от 1 до 6. Если значение ширины колонки для системных отчетов не задано, параметр ширины колонки будет установлен по умолчанию, в зависимости от содержимого колонки (аналогично кастомным отчетам).

Для версионирования системного отчета, если эти настройки должны переноситься с помощью модуля, измените значение в поле Version: GUID в таблице CaseMap.ReportMetatadas для записи нового идентификатора отчета:

update "CaseMap"."ReportMetadatas"
set "Version" = NEWID() -- or uuid_generate_v4() for PostgreSQL
where "Id" = 'report_id'

Контролировать и инкрементировать версию отчета в процессе разработки и при поддержке системного отчета необходимо при добавлении или изменении:

  • Самого отчета — CaseMap.ReportMetatadats.
  • Связанных сущностей — изменение или добавление новых записей в таблицах CaseMap.FixedReport, CaseMap.FixedFilters и CaseMap.FixedColumns.
  • На стороне UI — настройка прав, добавление или изменение шаблона отчета.

Настройка справочников в файле конфигурации

Для настройки интеграции справочников с другими системами/приложениями используйте дополнительные значения в пользовательских справочниках:

  • Добавьте в справочник значение в виде JSON-объекта, который содержит массив Key — Value:
    • Максимальная длина для Key: 64
    • Максимальная длина для Value: 128
    • Значения в Key – регистронезависимые
...
"Fields": {
   "Key1": "Value1",
   "Key2": "Value2",
   ...
}
  • Для изменения ограничения на максимальное количество дополнительных атрибутов в разрезе каждой записи в файле appsettings.json задайте значение параметра DictionaryItemFieldMaxCount (int), значение по умолчанию (если не указано в конфигурационного файле) — 5.
  • Добавление дополнительных значений доступно для следующих системных справочников:
    • Валюта
    • Тип документа
    • Тип события
    • Организационно-правовая форма

При запросе на просмотр значений справочника через API (GET) доступно отфильтровать получаемые значения справочника по комбинации Key-Value

  • Если указывается несколько фильтров, поиск выполняется по логическому И
  • Если по одному ключу передано несколько значение, поиск выполняется по логическому ИЛИ

При получении значений справочника Field-данные передаются только в приватном API.  Поиск доступен как и в пользовательских, так и в системных справочниках. При поиске по Key-Value ищется точное совпадение. Поиск значений по Field реализован только для приватного API (POST).


При получении значений справочника через API в ответе отображаются все JSON-объекты, если они добавлены к значениям справочника. При добавлении/редактировании значения справочника через API можно добавить дополнительный параметр в JSON (не обязательный параметр):

  • Если у значения не указаны параметры, или передан Fields: null, дополнительные атрибуты остаются прежними;
  • Если у значения передан Fields:{}, дополнительные атрибуты у значения справочника удаляются;
  • Если у значения справочника в Fields передан массив Key-Value, в результате операции остаются только переданные значения. 

Запись Field-данных доступна только для приватного API. 


Настройка почтовых уведомлений в файле конфигурации

Для включения почтовых уведомлений в файле appsettings.json параметру SendEmailNotification​ присвойте значение true.

Для доставки уведомлений и приглашения новых пользователей:

  • Настройте использование SMTP-сервера. Настройки расположены в файле appsettings.json в папке с сайтом в секции <SmtpServers>.

Минимальные настройки:

"SmtpServers": [
{
        "Id": "Corporative",
        "FromName": "Casepro",
        "Server": "ip-or-name-of-smtp-server",
        "Port": "25",
        "From": "noreply@casepro.pro"
      }
    ]
  • Укажите данные для подключения к вашему SMTP-серверу. Список всех поддерживаемых настроек:
    • FromName — имя, от которого будут приходить сообщения, например: Case.one
    • Server — адрес SMTP-сервера
    • Port — порт SMTP-сервера
    • From — служебный ящик, с которого будут отправляться письма, например: noreply@Case.one
    • Login — логин на SMTP-сервере (как правило, совпадает с ящиком)
    • Password — пароль от логина на SMTP-сервере

Формат значений для форматированных полей в файле конфигурации

Чтобы настроить получение и отправку форматированных полей для всей Системы, в настройках приложения в appsettings.json измените значение флага IsFormattedTextInPublicApiEnabled (bool):

  • true — значение форматированных полей выводятся/принимаются в формате HTML (значение по умолчанию).
  • false — значение форматированных полей выводятся/принимаются в формате PlainText.

В методах публичного API для работы с сущностями с форматированными полями за отображение форматированного поля отвечает необязательный параметр IsFormattedTextEnabled:

  • true — значение форматированных полей выводятся/принимаются в формате HTML.
  • false — значение форматированных полей выводятся/принимаются в формате PlainText.
  • null — для определения формата значения применяется общесистемный флаг IsFormattedTextInPublicApiEnabled (значение по умолчанию).

Для настройки формирования ссылки, присутствующей в значении форматированного поля при выводе ее в PlainText (в отчетах, при выводе в шаблоны документов и участвует в условиях фильтрации, условиях видимости, доступности и фильтрах сценариев автоматизации) в настройках приложения в appsettings.json укажите значение параметра LinkFormatInPlaintText

  • Text — в месте расположения ссылки в значении поля выводится заголовок ссылки (значение по умолчанию).
  • Url — в месте расположения ссылки в значении поля выводится значение атрибута href-ссылки.
  • Both — в месте расположения ссылки в значении поля выводится заголовок и значение атрибута href-ссылки в формате: [заголовок] (ссылка).

При изменении формата ссылки (значение параметра LinkFormatInPlaintText) не выполняется миграция данных — т.е. старые данные, когда в PlainText уже отображается ссылка в формате, который был установлен ранее, данные не обновятся до перезаписи сущности с форматированным полем.

При получении через публичный API данных поля, содержащего ссылку, и при выключенном форматировании (IsFormattedTextInPublicApiEnabled = false или IsFormattedTextEnabled = false) и последующей записи полученных значений допускается потеря информации о ссылке или о заголовке ссылки для форматов ссылки Text и URL соответственно.


Настройки импорта объектов и участников в файле конфигурации

В файле конфигурации appsettings.json в секции Custom вы можете определить следующие настройки импорта объектов и участников (параметры поддерживают переопределение):

  • ImportTemplateFileValueSeparator — формат разделителя значений в файле шаблона импорта дел:
    • По умолчанию — запятая
    • При изменении параметра в уже сгенерированных шаблонах импорта значение не будет пересчитано — для перегенерации шаблона необходимо пересохранить тип объекта
  • ImportObjectsRepeatableValuesSeparatorInImportFile — формат разделителя значений из мультистрок и мультиблоков (по умолчанию — точка с запятой)
  • ImportObjectsTimeout— таймаут импорта (по умолчанию не задан)
  • ImportObjectsBatchSize— максимальное количество строк, подготавливаемых к импорту, за один раз:
    • Значение параметра также используется для конфигурации с MS SQL для отправки данных на SQL-сервер
    • По умолчанию — 1 000
  • ImportObjectsMaxRowsInImportFile — максимальное количество строк в файле импорта:
    • По умолчанию — 10 000
    • Доступно отключить ограничение, указав значение 0
{
  "Custom": {
    // ... other settings
    "ImportTemplateFileValueSeparator": ",", // символ разделителя значений для шаблона импорта. По умолчанию ','
    "ImportObjectsTimeout": "00:00:00", // таймаут импорта данных из CSV файла. По умолчанию нет.
    "ImportObjectsBatchSize": 1000, // Количество строк в каждой партии. В конце каждой партии строки в партии отправляются на SQL сервер. Используется в конфигурации с MS SQL. По умолчанию 1000. Так же этот параметр используется для выборки импортированных данных по пачкам, для дальнейшей публикации их в брокере
    "ImportObjectsMaxRowsInImportFile": 10000, // Допустимое максимально количество строк в CSV файле с данными. Если в файле больше заданного количества, импорт не производиться. 0 - выключает ограничение. По умолчанию 10000
    "ImportObjectsRepeatableValuesSeparatorInImportFile": ";" // символ разделителя значений для значений мультистрок/ мультиблоков. По умолчанию ';'
  }
}

Логирование при импорте

Поскольку при импорте записываются выполняемые операции, для успешного формирования итогового файла логов в конфигурационном файле nlog.config обязательно должна быть объявлена переменная baseLogDirectory в секции nlog:

<nlog <!-- .... --> >
  <variable name="baseLogDirectory" value="${basedir}logs/${hostRender}" />

Принудительное завершение сессии импорта

В секции Custom файла настройки конфигурации доступен параметр ImportObjectsScheduledStopDelay, где вы можете указать время, по истечении которого сессия импорта будет автоматически завершена:

  • Время указывается в формате hh:mm:ss и отсчитывается с момента запуска импорта.
  • По умолчанию значение не установлено — автоматическое завершение импорта не выполняется.

При автоматическом завершении сессии импорта:

  • Статус импорта будет изменен на Остановлен.
  • Уведомление в Case.one не отображается.

Если в результате автоматического завершения сессии импорта произошла ошибка, информация об ошибке будет записана в общем логе приложения:

 "Custom": {
    "ImportObjectsScheduledStopDelay": "01:00:00" //По умолчанию параметр не задан, автоматическое завершение отключено.
}

Настройка ограничений для дашбордов в файле конфигурации

В файле настроек приложения appsettings.json вы можете задать следующие значения:

  • Включение/выключение доступности дашборда.
  • Максимальное количество блоков в дашборде.
  • Тайм-аут на загрузку блоков в дашборде.
  • Время жизни кэша.
{
    "Custom": {
        "DashboardResultCommandTimeout": "60", // Таймаут в секундах для получения значений для отчетов из дашборда. По умолчанию 60 секунд
        "DashboardReportDateCacheLiveTime": "00:01:00" // Время жизни кэшированных значений
    },
    "Dashboard": {
        "DashboardIsDisabled": "false", // Отключение отображения дашбордов как пунктов меню в основном приложении. При этом на странице администрирования настройка дашбордов и их список останется доступным
        "DashboardBlockMaxLength": "20" // Ограничение на количество блоков, которые можно добавить в дашборд. По умолчанию 20
    }
}