Список изменений в системе версии 3.11.65

Новый функционал

  1. Реализована совместимость плагина ELMA Plugin for Visual Studio с Visual Studio 2019.

Изменения интерфейсов пользователя

  1. При загрузке предпросмотра документа добавлено соответствующее сообщение: "Идет формирование предпросмотра для файла. Пожалуйста, подождите ...".
  2. Добавлено описание настройки "Лес" в блоке настроек интеграции с LDAP-сервером.
  3. Изменен принцип отображения состояния блока (отображаемые колонки, сортировка...) – состояние блока сохраняется на основе свойства объекта, т.е. для всех экземпляров объекта хранится одно состояния блока для пользователя. Изменение состояния в блоке в экземпляре объекта повлечет изменение во всех остальных экземплярах в этом блоке.

Техническая оптимизация

  1. Реализация точки расширения IPingDataExtension MultiUserPlanWorkExtension помечена как устаревшая.
  2. Добавлена возможность объявлять вызываемые методы реализаций точки расширения преобразования базы данных EleWise.ELMA.ExtensionPoints.IDbStructureExtension с модификатором internal.

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

  1. Клиент postgresql заменен на npgsql. Включена поддержка мультикритериев в драйвере postgresql для nhibernate.

Частично были изменены настройки строки подключения:

Настройки старого провайдера

[https://www.devart.com/dotconnect/postgresql/docs/?Devart.Data.PostgreSql~Devart.Data.PostgreSql.PgSqlConnection~ConnectionString.html]

Настройки нового провайдера

[https://www.npgsql.org/doc/connection-string-parameters.html]

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

Изменения в Web API

  1. Добавлены методы для отправки документов на согласование и ознакомление, добавления исполнителей в задачи согласования и ознакомления, прерывания задач, выполнения задач.
  2. Добавлен сервис MessageFeedServiceExtension для загрузки элемента ленты сообщений по идентификатору родительского сообщения, уникальному идентификатору типа родительского сообщения и идентификатору получателя сообщения.
  3. Методы HasDynamicForm и HasDynamicForms теперь проверяют не только наличие скриптов динамики, но и наличие изменений на формах процессных задач.
  4. Добавлена точка расширения IWorkflowTaskElement для определения наличия кастомизации на форме процессной задачи.
  5. Изменена логика работы метода загрузки списка заголовков элементов метаданных по списку их уникальных идентификаторов: MetadataItemHeaderManager.Load(IEnumerable<Guid> uids). Раньше метод при передаче нуля или одного уникального идентификатора возвращал все заголовки, имеющиеся в базе данных. Теперь метод возвращает список заголовков, соответствующий списку переданных уникальных идентификаторов (при условии, что такие заголовки есть в базе).

Изменения в Public API

  1. Изменена логика добавления прав к документу при создании документа с помощью PublicApi: при создании документа и последующем изменении свойства InheritPermissions сначала к нему добавляются все права, предусмотренные настройками профиля типа документа. Затем добавляются права относительно выставленной настройки InheritPermissions.

Изменения в моделях и менеджерах

  1. Для реализации поиска задач на контроле добавлен уникальный фильтр TaskControlFilter (реализующий интерфейсы ITaskControlFilter и ITaskBase). Также добавлен интерфейс ITaskControlImplemantation для объектов, поддерживающих контроль.
  • Фильтр поиска ITaskControlFilter нужно передавать в менеджер TaskBaseManager (ранее использовались менеджеры TaskManager и ProjectTaskManager для задач Task и ProjectTaskBase соответственно). Используются все методы, в параметрах которых может быть фильтр Find, Count.
  • Все сохранённые фильтры по поиску задач на контроле обновлены. Значение свойства FilterFolder.ObjectsType заменено на значение TaskControlUniqueFilterExtension.Guidдля всех фильтров, у которых значение свойства Code было равным TaskConstants.ExecutionControlThreadCodeUidS или TaskConstants.CurrentControlThreadCodeUidS.
  1. КлассEleWise.ELMA.Tasks.Components.SqlQueryBuilder помечен устаревшим, вместо него используетсяEleWise.ELMA.Helpers.SqlQueryBuilde.
  2. КлассуAutoClassGenerator добавлена реализация интерфейсаIAutoClassGenerator, а конструктор AutoClassGenerator(Type interfaceType, params Type[] extensionTypes) и метод string GenerateCode() помечены устаревшими. Вместо них используется пустой конструктор AutoClassGenerator() и метод string GenerateCode(Type interfaceType, params Type[] extensionTypes).
  3. Метод string InterfaceActivator.PropertyName<T>(Expression<Func<T, object>> expr) помечен устаревшим. Вместо него рекомендуется использовать LinqUtils.NameOf<>(Expression<Func<T, object>> expr).

Остальное

  1. В дизайнере ELMA добавлен запрет на привязку контекстных переменных с отличающимся типом связи. Например, к переменной с типом связи Многие ко многим" нельзя привязать контекстную переменную с типом связи "Одиночная".