Список изменений в системе версии 3.11.65
Новый функционал
- Реализована совместимость плагина ELMA Plugin for Visual Studio с Visual Studio 2019.
Изменения интерфейсов пользователя
- При загрузке предпросмотра документа добавлено соответствующее сообщение: "Идет формирование предпросмотра для файла. Пожалуйста, подождите ...".
- Добавлено описание настройки "Лес" в блоке настроек интеграции с LDAP-сервером.
- Изменен принцип отображения состояния блока (отображаемые колонки, сортировка...) – состояние блока сохраняется на основе свойства объекта, т.е. для всех экземпляров объекта хранится одно состояния блока для пользователя. Изменение состояния в блоке в экземпляре объекта повлечет изменение во всех остальных экземплярах в этом блоке.
Техническая оптимизация
- Реализация точки расширения IPingDataExtension MultiUserPlanWorkExtension помечена как устаревшая.
- Добавлена возможность объявлять вызываемые методы реализаций точки расширения преобразования базы данных EleWise.ELMA.ExtensionPoints.IDbStructureExtension с модификатором internal.
Важно! Следует отказаться от использования уже имеющихся публичных методов реализаций этой точки расширения в собственном коде, так как в ближайших релизах их функционал будет упразднен.
- Клиент 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
- Добавлены методы для отправки документов на согласование и ознакомление, добавления исполнителей в задачи согласования и ознакомления, прерывания задач, выполнения задач.
- Добавлен сервис MessageFeedServiceExtension для загрузки элемента ленты сообщений по идентификатору родительского сообщения, уникальному идентификатору типа родительского сообщения и идентификатору получателя сообщения.
- Методы HasDynamicForm и HasDynamicForms теперь проверяют не только наличие скриптов динамики, но и наличие изменений на формах процессных задач.
- Добавлена точка расширения IWorkflowTaskElement для определения наличия кастомизации на форме процессной задачи.
- Изменена логика работы метода загрузки списка заголовков элементов метаданных по списку их уникальных идентификаторов: MetadataItemHeaderManager.Load(IEnumerable<Guid> uids). Раньше метод при передаче нуля или одного уникального идентификатора возвращал все заголовки, имеющиеся в базе данных. Теперь метод возвращает список заголовков, соответствующий списку переданных уникальных идентификаторов (при условии, что такие заголовки есть в базе).
Изменения в Public API
- Изменена логика добавления прав к документу при создании документа с помощью PublicApi: при создании документа и последующем изменении свойства InheritPermissions сначала к нему добавляются все права, предусмотренные настройками профиля типа документа. Затем добавляются права относительно выставленной настройки InheritPermissions.
Изменения в моделях и менеджерах
- Для реализации поиска задач на контроле добавлен уникальный фильтр TaskControlFilter (реализующий интерфейсы ITaskControlFilter и ITaskBase). Также добавлен интерфейс ITaskControlImplemantation для объектов, поддерживающих контроль.
- Фильтр поиска ITaskControlFilter нужно передавать в менеджер TaskBaseManager (ранее использовались менеджеры TaskManager и ProjectTaskManager для задач Task и ProjectTaskBase соответственно). Используются все методы, в параметрах которых может быть фильтр Find, Count.
- Все сохранённые фильтры по поиску задач на контроле обновлены. Значение свойства FilterFolder.ObjectsType заменено на значение TaskControlUniqueFilterExtension.Guidдля всех фильтров, у которых значение свойства Code было равным TaskConstants.ExecutionControlThreadCodeUidS или TaskConstants.CurrentControlThreadCodeUidS.
- КлассEleWise.ELMA.Tasks.Components.SqlQueryBuilder помечен устаревшим, вместо него используетсяEleWise.ELMA.Helpers.SqlQueryBuilde.
- КлассуAutoClassGenerator добавлена реализация интерфейсаIAutoClassGenerator, а конструктор AutoClassGenerator(Type interfaceType, params Type[] extensionTypes) и метод string GenerateCode() помечены устаревшими. Вместо них используется пустой конструктор AutoClassGenerator() и метод string GenerateCode(Type interfaceType, params Type[] extensionTypes).
- Метод string InterfaceActivator.PropertyName<T>(Expression<Func<T, object>> expr) помечен устаревшим. Вместо него рекомендуется использовать LinqUtils.NameOf<>(Expression<Func<T, object>> expr).
Остальное
- В дизайнере ELMA добавлен запрет на привязку контекстных переменных с отличающимся типом связи. Например, к переменной с типом связи Многие ко многим" нельзя привязать контекстную переменную с типом связи "Одиночная".