Список изменений в системе версии 3.15.5
Новый функционал
- Добавлена настройка для выставления случайного порта ELMA Агенту, а также отправка этого порта брокеру:
- в файле EleWise.ELMA.Agent.exe.config добавлена настройка <add key="UseRandomPortForClient" value="False">. Данная настройка определяет возможность запуска ELMA Агента со случайным портом. По умолчанию настройка имеет значение False – не использовать случайный порт. Значение True приводит к тому, что каждый запущенный агент будет запускаться на минимальном свободном порту начиная с 4665;
- добавлен брокер – консольное приложение, которое "слушает" порт 4665 и получает от агентов, запущенных на случайных портах, данные случайные порты, а также отдает их по запросу IP-телефонии с веб-страницы;
- доработана панель телефонии в ELMA для обработки коннекта к брокеру или к агенту.
- Реализована совместимость плагина 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).
- В EntityActionHistoryManager добавлен метод GetNextUnitOfWorks для получения списка единиц работы следующего пакета для постраничной загрузки истории. Также добавлен метод LoadHistoryRelated для постраничной загрузки истории по заранее выбранному списку единиц работы.
Остальные методы постраничной загрузки истории помечены устаревшими.
Остальное
- В дизайнере ELMA добавлен запрет на привязку контекстных переменных с отличающимся типом связи. Например, к переменной с типом связи Многие ко многим" нельзя привязать контекстную переменную с типом связи "Одиночная".