Список критичных изменений системы версий 3.1.х

Список исправлений к версии 3.1.7 

Публичные методы и интерфейсы

1. Статические (static) методы EleWise.ELMA.Projects.Managers.CanBePrevious (IProjectTask candidate, IProjectTask task) и EleWise.ELMA.Projects.Managers.CanBePrevious (long candidateId, IProjectTask task) заменены на одноимённые виртуальные (virtual). Вместо вызова метода ProjectTaskManager.CanBePrevious (параметры) нужно использовать ProjectTaskManager.Instance.CanBePrevious(параметры). На данные методы установлен атрибут для кеширования возвращаемых результатов в текущем контексте.

2. Свойство CAServerAddressкласса EleWise.ELMA.Documents.Components.DigitalSignatureSettings перенесено в класс EleWise.ELMA.Security.Components.SecuritySettings.

Публичные классы

1. КлассEleWise.ELMA.Documents.DigitalSignature.LocalStorageManagerперенесён в модульSecurityпод именемEleWise.ELMA.Secrity.Managers.LocalStorageManager

2. КлассEleWise.ELMA.Documents.DigitalSignature.CaManager перенесён в модульSecurityпод именемEleWise.ELMA.Security.Managers.CertificationAuthorityManager

3.КлассEleWise.ELMA.Documents.Models.DigitalSignature.CertificateInfo перенесён в модуль Securityпод именем EleWise.ELMA.Security.Models.CertificateInfo

Изменение принципа работы модуля Интеграция с LDAP.

1. Изменен принцип проверки пользователя в LDAPпри входе в систему. Теперь пользователь LDAP, ассоциированный с учетной записью в ELMA, может находиться в любом месте дерева каталога, начиная с узла, указанного в настройке «Путь к пользователям». Настройка «Фильтр авторизации» больше не используется.

2. Пользователь, указанный в настройке «Пользователь», должен быть активным в LDAPне только на момент ассоциирования учетных записей ELMA с пользователями LDAP, но и на протяжении всего времени использования возможностей модуля.

Добавлена возможность убрать обязательность заполнения поля «Фамилия» в физическом лице

В случае, если у клиента в папке с конфигурацией переписано представление \Modules\EleWise.ELMA.CRM.Web\Views\Shared\ContractorIndividual\ContractorIndividualEditForm.cshtml, то поле «Фамилия» в физическом лице станет не обязательной для заполнения, чтобы вернуть обязательность нужно в замененное представление в строку (по умолчанию строка 47):

b.PropertyRow(m => m.SecondName).Order(3);
добавить до точки с запятой (‘;’):

.CaptionAttributes(a => a.Required = true).EditorAttributes(a => a.Required = true)
должна получиться следующая строка:

b.PropertyRow(m => m.SecondName).CaptionAttributes(a => a.Required = true).EditorAttributes(a => a.Required = true).Order(3);

 

Список исправлений к версии 3.1.6

Внимание!
Начиная с версии 3.1.6, некоторые свойства, объекты и интерфейсы признаны устаревшими. Это означает, что все сценарии, в которых они были использованы, работать не будут. Необходимо внести исправления и переопубликовать данные сценарии.

APIКода. Публичные методы и интерфейсы

1. Свойство EleWise.ELMA.CRM.Models.ISaleFilter.Responsible типа EleWise.ELMA.Security.Models.IUser отмечено устаревшим, вместо него нужно использовать свойствоEleWise.ELMA.CRM.Models. ISaleFilter.Responsibles типа Iesi.Collections.Generic.ISet<EleWise.ELMA.Security.Models.IUser>

2. Интерфейс EleWise.ELMA.KPI.Managers.IPeriodicityService отмечен устаревшим, вместо него нужно использовать интерфейс EleWise.ELMA.KPI.Common.Interfaces.IPeriodicityService

3. Свойство EleWise.ELMA.Documents.Models.IFolder.SubObjectsудалено. Вместо него в скриптах надо использовать метод расширения класса EleWise.ELMA.Documents.Models.IFolder - SubObjects(bool onlyDocuments = false). Чтобы он был доступен нужно прописать usingEleWise.ELMA.Documents.

Важно!
Скрипты написанные с использованием этого свойства работать не будут. Нужны исправления и перепубликация нужных версий процессов.

Модель данных

Поля в таблице User

1. Установлены следующие ограничение на поля таблицы User (Пользователь): FirstName (255), MiddleName (255), LastName (255), FullName (2000)

Поля в таблице ProjectTask

1. Установлены следующие ограничение на поле таблицы ProjectTask(Проектная задача): MSProjectID(2000)

Приведение Uid всех объектов к уникальному значению.

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

2. Имеющиеся ранее уникальные индексы на столбцах Uid некоторых таблиц базы данных удалены.

3. Для столбцов Uid таблиц базы данных, хранящих информацию о сущностях, созданы новые уникальные индексы, именованные в соответствии с названием таблицы. Любые сохраняемые объекты обязаны иметь уникальный Uid. В скриптах для создания объектов следует использовать InterfaceActivator. Либо, если используется конструктор, устанавливать новый уникальный Uid самостоятельно (при помощи метода Guid.NewGuid()).

Пример, при создании объекта Телефон (Phone):

var newPhone = EleWise.ELMA.Model.Services.InterfaceActivator.Create<IPhone>();

4. Удалены объекты типа Контекст отчета (ReportParametersContainer), не используемые ни в одном отчете.

5. Удалены объекты типа Контекст процесса (ProcessContext), не используемые ни в одном процессе.

6. В реализации интерфейса ITransformationProvider добавлены методы AddUniqueIndex, позволяющие создавать уникальные индексы.

7. Изменено клонирование объектов: системное свойство Uid объекта не клонируется.

 

Примеры ошибок при несоблюдении рекомендаций пункта 3.

Пример 1.

Рис. 1

Пример 2.

Пользовательский интерфейс

Изменений нет.