Список исправлений к версии 3.9.22
Свойство Connection класса EleWise.ELMA.Extensions.Oracle.OracleTransformationProvider вместо connection провайдера Oracle возвращает EleWise.ELMA.Runtime.Db.Proxies.DbConnectionProxy.
PublicAPI
Список исправлений к версии 3.9.21
API кода и публичных классов
Округление чисел с использование сценариевПри наличии сценария при изменении значения для целых и дробных чисел, если ввести значение в поле с большей точностью, чем указано в настройках свойства (ввести дробное значение для целого числа), то в сценарий придет уже округленное значение согласно настроек.
Пользовательский интерфейс
Уведомление участникам о создании периодического событияВ отправленном в ленту сообщении о создании периодического события теперь корректная ссылка на шаблон события
Дизайнер, Модель данных, Процессы Workflow
Сделана проверка введённых пользователем имён классов и таблиц в БД на форме создания нового процесса в дизайнере. Вводимые в эти поля идентификаторы должны начинаться с латинской буквы, далее могут использоваться цифры, латинские буквы или знаки подчёркивания "_". Дополнительно, для имён классов запрещено использование ключевых слов языка C#, а для имён таблиц БД - ключевых слов языка запросов используемой СУБД.
При создании процесса в имени класса и имени таблицы в БД различных структур процесса можно было указать любые символы, и кириллицу в том числе. Проверки на корректность и сообщения об ошибке не выводилось, а сам процесс сохранялся. Однако такой процесс потом не публиковался, а имя класса в дизайнере поменять уже было нельзя.
Сделана проверка введённых пользователем имён классов и таблиц в БД на форме создания нового процесса в дизайнере с выводом сообщений об ошибках.
PublicAPI
Список исправлений к версии 3.9.20
API Кода. Публичные методы и интерфейсы
Представления для типов Email и ТелефонДобавлены представления для отображения отдельных Email и Телефона (не списком). Переработаны представления для отображения списков Email и Телефонов.
Представление Site.cshtmlПредставление DisplayTemplates/Site.cshtml было удалено из системы, его логика перенесена в представление DisplayTemplates/Uri.cshtml
Изменение функций генератора шаблонов- Изменено наименование следующих функций:
- RemindTime изменено на GetReminderTimeSpan
- TransformFile изменено на TransformFileToSignedText
- IsProjectTemplate изменено на IsProjectTaskTemplate
- GetObject изменено на LoadEntityByWorkLogItem
- ObjectDisplayName изменено на GetEntityDisplayNameByWorkLogItem
Пользовательский интерфейс
Доработка прав доступа к страницамПри настройке портлетных страниц у пользователей, имеющих права на редактирование, появилась возможность переключиться на редактирование общих настроек.
Настройка прав доступа к странице возможна только с полными правами к странице и в режиме редактирования общих настроек.
ПроектыВыбор пользователей (исполнитель/соисполнитель/контролер) для проектных задач при публикации плана проекта. В случае если в задаче плана установлена проектная роль с количеством участников более 1, система предлагала при каждой публикации плана выбрать конкретного пользователя/пользователей из списка доступных. Теперь выбор пользователей не осуществляется для закрытых задач и для задач, в которых уже выбран пользователь в ходе одной из прошлых публикаций плана.
ДизайнерВ конфигурационный файл дизайнера (EleWise.ELMA.BPM.Designer.exe.config) добавлено два параметра:
- SvcUtilPath (путь до утилиты SvcUtil) будет использоваться чаще всего. В файле должен быть локальный путь до SvcUtil.exe.
- SvcUtilAdditionalParams (дополнительные параметры для запуска SvcUtil) практически не будет использоваться, но может понадобиться в редких случаях. Необходимо передавать параметры для запуска, про которые можно прочитать на сайте https://msdn.microsoft.com/ru-ru/library/aa347733(v=vs.110).aspx
Данные поля следует заполнять только в том случае, когда поставляемая версия SvcUtil отказывается работать. Если параметр SvcUtil не заполнен, или файл по данному пути не найден, запускается поставляемая версия SvcUtil.
PublicAPI
PublicAPI.CRM.Objects.Category.Filter() - есть изменения в фильтре:
IsDeleted(Boolean isDeleted) - Добавлен
PublicAPI.KPI.Objects.SMART.SMARTTask.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
PublicAPI.KPI.Objects.KpiTask.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
PublicAPI.Docflow.Tasks.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
PublicAPI.Projects.ProjectTaskBase.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
PublicAPI.Projects.ProjectTaskBase.Milestone.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.Filter() - есть изменения в фильтре:
UnderControl(Boolean underControl) - Удалён
UnderControl(Nullable<Boolean> underControl) - Добавлен
Список исправлений к версии 3.9.19
Публичные методы и интерфейсы
- В классе EleWise.ELMA.Documents.Managers.AcquaintanceTaskGroupManager методы AddExecutors помечены как устаревшие , вместо них использовать AddSwimlaneExecutors.
- В классе EleWise.ELMA.Documents.Managers.ApprovementTaskGroupManager методы AddExecutors помечены как устаревшие , вместо них использовать AddSwimlaneExecutors.
- В классе EleWise.ELMA.Security.Managers.ReplacementManager методы AddUserToList и GetExecutor помечены как устаревшие , вместо них использовать AddUserToList<T> и GetExecutor<T>.
- В классе EleWise.ELMA.Workflow.BPMN.Diagrams.Activities.BPMNActivity<TElement> методы Pair<IUser,IUser>[]GetExecutors помечены как устаревшие , вместо них использовать методы IUser[]GetSwimlaneExecutors. Методы AddUserToList помечены как устаревшие , вместо них использовать методы AddSwimlaneUserToList с другими наборами параметров. Метод Pair<IUser,IUser>[]IActivityWithExceptionFlowsImpl.GetExecutors помечен как устаревший , вместо него использовать метод IUser[]IActivityWithExceptionFlowsImpl.GetSwimlaneExecutors.
- В интерфейсе EleWise.ELMA.Workflow.BPMN.Diagrams.Activities.IBPMNActivity методы Pair<IUser,IUser>[]GetExecutors помечены как устаревшие . Добавлены методы IUser[] GetSwimlaneExecutors(IWorkflowInstance instance) и IUser[] GetSwimlaneExecutors(IWorkflowInstance instance, out bool assignedToResponsible).
- В интерфейсе EleWise.ELMA.Workflow.Diagrams.Activities.IActivityWithExceptionFlowsImpl метод Pair<IUser, IUser>[] GetExecutors помечен как устаревший . Добавлен метод IUser[] GetSwimlaneExecutors(NativeActivityContext context, out bool assignedToResponsible).
- Точка расширения ISwimlaneChangedHandler помечена как устаревшая , вместо неё используется ISwimlaneChangedExecHandler.
Пользовательский интерфейс
Сортировка по умолчанию в списке связанных объектовДля списка связанных объектов введена настройка сортировки по умолчанию. При настройке данного элемента в конструкторе форм можно выбрать одну из выбранных для отображения колонок и указать для нее направление сортировки. После публикации объекта (процесса/типа документа/проекта), в котором используется форма с измененными настройками списка связанных объектов, в веб-части пользователь увидит новые настройки (при этом все его настройки, которые он делал с данным списком, будут сброшены на те, которые задали в дизайнере в конструкторе форм).
Прочее- В блоке процесса "Создание документа" убрана галочка "Не проверять обязательность заполнения контекстных переменных"
- Добавлен отдельный лог-файл для хранения информации по выполнению сценариев. Новые лог-файлы находятся по пути web\logs\ScriptLog.
PublicAPI
Раздел Docflow:
Void PublicAPI.Docflow.Document.AddComment(Document document, Comment comment, IEnumerable<Attachment> attachments, IEnumerable<DocumentAttachment> documentAttachments)
Раздел Portal:
Добавленные менеджеры объектов:
PublicAPI.Portal.Objects.Security.ReplacementRule.Filter() - есть изменения в фильтре:
Replacement(Replacement replacement) - Добавлен
TargetUser(User targetUser) - Добавлен
PropertyUid(Guid propertyUid) - Добавлен
SearchString(String searchstring) - Добавлен
Id(Int64 id) - Добавлен
Query(String query) - Добавлен
Список исправлений к версии 3.9.18
API Кода. Публичные методы и интерфейсы
В классе BinaryFile добавлено новое свойство:
Данное свойство указывает, что после сохранения файла в базу, физический файл-исходник необходимо удалить, для этого свойства автоматические ставится значение true , когда вызывается метод InitializeContentFilePath , и ставится значение false , когда присваивается в свойство ContentFilePath новое значение. Также добавлена очистка папки для хранения временных файлов ELMA, все файлы, созданные больше 24 часов назад, будут автоматически удаляться.
Изменение работы фильтров объектов
- В интерфейсе EleWise.ELMA.BPM.Web.Common.Controllers. IFilterController изменен метод FilterFields: добавлен параметр string filterGridId = "".
- В html-разметке формы фильтров введены уникальные id объектов и скриптов.
Пользовательский интерфейс
Переназначение задач по бизнес-процессамТолько исполнитель задачи и его начальники могут переназначить задачу (при отсутствии запрета на переназначение в процессе). Инициатор процесса, являющийся автором задачи, лишен такой привилегии.
PublicAPI
Список исправлений к версии 3.9.17
API Кода. Публичные методы и интерфейсы
Точка расширения IPreBindResolver отмечена устаревшей, вместо нее необходимо использовать точку расширения
Пользовательский интерфейс
Доработки модуля LDAPРеализованы ручная и автоматическая синхронизации импортированных из LDAP пользователей с автоматической блокировкой пользователя в ELMA. (по условию, указанному в фильтре импорта/синхронизации)
Включение/выключение автоматической синхронизации, а также запуск ручной синхронизации осуществляется через настройки модуля LDAP.
Отображение родительских задач на диаграмме ГанттаРодительские задачи теперь отображаются по-разному (в зависимости от того, фазовая задача, или нет).
Общие доработки
- Исправлено форматирование текста в поле Описание задачи.
- Добавлено объединение ячеек в колонке для одиночных объектов (только заголовок, только поле для редактирования и т.п.).
- Добавлена возможность скрывать заголовок блока, грида для таблиц с настраиваемой шириной колонок.
ELMA плагин для Visual Studio
В окно «О программе» добавлен пункт «Версия плагина», оповещающая пользователя о текущей версии плагина. Если версии плагина и сервера не совпадают, при открытии окна «О программе» пользователь получит соответствующее предупреждение.
Реализована возможность смены папки дизайнера/веб сервера/менеджера пакетов. Для активации соответствующих кнопок, необходимо запустить Visual Studio от имени администратора.
PublicAPI
Список исправлений к версии 3.9.16
API Кода. Публичные методы и интерфейсы
В ComplexCacheService появились новые методы для размещения и освобождения данных по регионам:
Изменение экспорта-импорта
1. Для экспорта-импорта типов документов добавлен перенос простых настроек:
- Шаблон названия документа
- Разрешать менять названия документа
- Загрузка версии из файла
- Кнопка сканирования версии
- Генерация версии по шаблону
- Контроль отправки
- Разрешать регистрировать документы этого типа несколько раз
- Ограничить работу с документом через веб-интерфейс
- Использовать жизненный цикл для документов этого типа
2. Для экспорта-импорта типов документов добавлен перенос групп документов.
Привилегии в CRM
В CRM возвращена служебная категория « Без категорий » для Контрагентов и Возможностей. Алгоритм работы: если у Контрагента (Возможности) в правах стоит флаг «Наследовать из категорий» и отсутствует назначенная категория, то в раздел «Наследуемые права» автоматически добавляются права из категории « Без категорий ».
Пользовательский интерфейс
Настройка форм в процессахВ конструкторе форм для задач процессов появились для добавления все элементы, доступные для задач, в том числе Вкладка журнала трудозатрат по задаче и Список трудозатрат по задаче.
При этом в конструкторе форм для запуска процесса были убраны лишние элементы, такие как Кнопки переходов по процессу, Информация о процессе и Контейнер свойств контекста процесса.
Экспорт карты диаграммыУбрано наложение текста в логотипе экспортированных в виде изображения диаграмм, текст стал локализуемым.
Задачи- При создании подзадачи с несколькими исполнителями в историю пишется одна запись со всеми созданными задачами.
- Добавлен запрет на создание просроченных подзадач.
Настройки
В файле Settings.config добавлено описание для параметров, позволяющих настраивать приложение. Добавлено описание как для параметров по умолчанию, так и для параметров, которые являются ситуационными (скрытыми).
PublicAPI
Раздел Docflow:
Boolean PublicAPI.Docflow.Document.ChangeStatus(Document document, LifeCycleStatus status)
Boolean PublicAPI.Docflow.Document.ChangeStatus(Document document, LifeCycleStatus status, String comment)
Boolean PublicAPI.Docflow.Document.CanChangeStatus(Document document, LifeCycleStatus status)
IEnumerable<LifeCycleStatus> PublicAPI.Docflow.Document.GetEnableStatuses(Document document)
PublicAPI.Projects.Objects.MaterialResource.Filter() - есть изменения в фильтре:
NotIds(Int64[] notIds) - Добавлен
NotIds(List<Int64> notIds) - Добавлен
Список исправлений к версии 3.9.15
Публичные методы и интерфейсы
1. Метод EleWise.ELMA.KPI.Managers.SmartTaskManager.CheckTaskExpiration(DateTime checkTime) помечен как устаревший.
2. Точка расширения EleWise.ELMA.BPM.Web.Common.ExtensionPoints. IFilterPortletGridId помечена как устаревшая.
Пользовательский интерфейс
Настройки исходящей почтыВ настройках исходящей почты в разделе администрирования вместо свойства «Использовать ли SSL» введено новое свойство «Защита соединения», которая имеет 3 варианта значения: «Нет», «SSL», «TLS». При загрузке настроек из базы старые параметры автоматически конвертируются в новые: если в свойстве «Использовать ли SSL» было введено значение «Нет», тогда «Защита соединения» примет значение «Нет», в противном случае в зависимости от значения поля «Порт для отправки сообщений» будет выбрано соответствующее значение для поля «Защита соединения».
Конструктор формДобавлена возможность скрывать иконку создания объектов на формах объектов/процессных задач.
Настройка происходит в диалоговом окне свойства:
После выбора данной настройки на форме (в дизайнере) скроется иконка, а также скроется иконка на форму объекта в веб-части после его публикации. Важный момент: иконка создания объекта скроется у всех дочерних объектов, но изменить у дочерних объектов возможно индивидуально.
Экспорт карты диаграммыТеперь изображение экспортированной карты диаграммы содержит наименование диаграммы в заголовке.
ПроцессыДобавлены настройки прерывания дочерних процессов при множественном запуске операции.
Добавлено отображение подписчиков на тип документаТеперь подписчики на тип документа отображаются во всплывающем окне в меню документа: «Действия» – «Просмотр подписок»
PublicAPI
Раздел Docflow:
Void PublicAPI.Docflow.Objects.Tasks.AcquaintanceTaskGroup.Terminate(AcquaintanceTaskGroup group, String comment, Boolean sendNotification)
Void PublicAPI.Docflow.Objects.Tasks.AcquaintanceTaskGroup.Terminate(AcquaintanceTaskGroup group, Boolean sendNotification)
Void PublicAPI.Docflow.Objects.Tasks.ApprovementTaskGroup.Terminate(ApprovementTaskGroup group, String comment, Boolean sendNotification)
Список исправлений к версии 3.9.14
API Кода. Публичные методы и интерфейсы
Добавлена точка расширения IElementWithViewTransformation, отвечающая за получение необходимого представления для определенного типа задачи. Имеет следующие методы:
- bool AcceptableElement(IElementWithView element) - для какого типа задачи используется точка расширения;
- FormView GetFormView(IElementWithView element, IWorkflowTaskBase task) - получить форму для элемента.
Реализована базовая реализация данной точки расширения – BaseFormViewTransformation, которая выполняется для всех типов процессных задач и возвращает element.View, если не было найдено другой реализации. Реализованы два наследника от данного класса: UserTaskViewTransformation и DocflowViewTaskTransformation для пользовательских задач по процессу и для документных задач по процессу.
ДокументыУбрана возможность создавать в сценарии документ без указания конкретного типа
Пользовательский интерфейс
Добавлена настройка использования модуля интеграции LDAP в лесу- Добавлена настройка «Использовать лес»
- Добавлены настройка импорта по шаблону для леса
Добавлена отладка пользовательских расширений (по аналогии с отладкой скриптов процессов). Отладка доступна только после публикации пользовательского расширения.
PublicAPI
Раздел Docflow:
Document PublicAPI.Docflow.Document.Create(BinaryFile file, Folder folder, String name) (Этот метод устарел)
Document PublicAPI.Docflow.Document.Create(Folder folder, String name) (Этот метод устарел)
Document PublicAPI.Docflow.Document.Create() (Этот метод устарел)
Список исправлений к версии 3.9.13
API Кода. Публичные методы и интерфейсы
- Добавлен метод LoadMetadata(string filename, bool throwEx) в MetadataSerializer. Если метаданные не были найдены в файле, то в зависимости от throwEx будет возвращено null (throwEx == false) или возвратится ошибка (throwEx == true).
- В интерфейсе IElementWithExceptionFlows добавлено 3 метода: CanHandleException, QueueExecutionTimeoutSupported и GetQueueExecutionTimeout.
- В классе ActivityExceptionFlowHelper метод Execute помечен как [Obsolete].
- Для того, чтобы в собственных реализациях операций бизнес-процессов реализовать автоматическую эскалацию по ошибке и по таймеру, требуется реализовать интерфейс IElementWithExceptionFlows (либо при наследовании от BPMNFlowElement переопределить методы CanHandleExceptionByEscalation и QueueExecutionTimeoutSupported)
Пользовательский интерфейс
Конвертация возможностиПри конвертации возможности появился вариант не создавать ни сделку, ни взаимоотношение. При выборе создания сделки или взаимоотношения теперь проверяется обязательность заполнения полей на соответствующей форме.
ТелефонияДобавлена возможность настройки CallerId, при использовании Asterisk, для каждого пользователя.
ELMA плагин для Visual StudioУбрана возможность создавать ELMA Entity в плагине ELMA для Visual Studio. Возможность редактировать существующие ELMA Entity осталась.
PublicAPI
Список исправлений к версии 3.9.12
ELMA плагин для Visual Studio
Добавлена поддержка Visual Studio 2015 плагином ELMA.
Добавлены новые функции в генератор документов по шаблону:
Функция отображения даты и времени в заданном формате - DateTimeFormatПолный аналог DateTime.ToString("тут ваш формат")
[0]*: Дата\время (DateTime)
[1]: Формат отображения
Функция отображения числа в заданном формате - NumberFormat
Принимаются как стандартные форматы, так и формат ввиде числа количества знаков после запятой
[0]*: Число (все числовые типы, кроме byte)
[1]: Один из стандартных или кастомых форматов отображения (string)
[1]: Число количества знаков после запятой (все числовые типы, кроме byte)
-Примечание: если в качестве второго параметра будет передано число с плавающей запятой, то количество знаков будет равно целой части этого числа с учётом округления
Функция отображения числа в виде денег. Отображается только в формате русской культуры - MoneyFormat
Разделителем порядком числа является символ « » (пробел)
Так же принимает формат в виде количества знаков после запятой
[0]*: Число (все числовые типы, кроме byte)
[1]: Число количества знаков после запятой (все числовые типы, кроме byte)
-Примечание: если в качестве второго параметра будет передано число с плавающей запятой,
то количество знаков будет равно целой части этого числа с учётом округления
Пользовательский интерфейс
1. Добавлена возможность вставки изображений в подпись Email-письма. В настройках возможно выбрать какая подпись будет использоваться для базовых писем системы простая или HTML подпись. В HTML подпись можно добавить разметку и использовать изображения
2. На карту экземпляра процесса добавлены ссылки на карту внешних и внутренних экземпляров подпроцессов. На карту экземпляра подпроцесса добавлены ссылки на родительский экземпляр процесса
Публичные интерфейсы API
Криптопровайдеры- Интерфейс ICryptoProvider расширен: добавлены свойства IsAttributesSupported и IsContentSupported
- Добавлен абстрактный класс AbstractCryptoProvider, реализующий интерфейс ICryptoProvider
- Все криптопровайдеры наследуются от AbstractCryptoProvider, вместо ICryptoProvider
В классе EleWise.ELMA.Web.Mvc.Controllers. BinaryFilesController методы:
- HasPermissionOnFile(BinaryFile file)
- HasPermissionOnFile(BinaryFile file, out string errorMessage)
- PrepareBinaryFile(BinaryFile file)
- GetRanges(string rangesHeader, long fileLength, out long[] RangesStartIndexes, out long[] RangesEndIndexes)
помечены как Obsolete, код данных методов перенес в класс EleWise.ELMA.Web.Service.FileUpDownHelper.
В классе EleWise.ELMA.Web.Service.FileUpDownHelper дополнительно реализованы следующие методы:
- GetContentRange(string rangeHeader, out long fileLength, out long startPos, out long endPos)
- BinaryFile GetStorableBinaryFile(string id, out string errMessage)
- GetCachedBinaryFile(string id, out string fileName, out string filePath, out string contentType)
- Stream GetPartialFileStream(string filePath, out long fileLength, out long startOffset, out long endOffset, out bool isPartial, out string errMessage)
- bool CreateOrAppendIncrementFile(ref Guid fileGuid, string fileName, Stream inputStream, long startPos, long endPos)
Из версии 3.10 перенес класс EleWise.ELMA.Files.RangeStreamWrapper
PublicAPI
Раздел Docflow:DocumentApprovementTask PublicAPI.Docflow.Tasks.CreateTask(ApprovementTaskGroup group, ApprovementListItem item, Nullable<WorkTime> planWorkLog, Boolean forceEndDateFromTask, SwimlaneElement swimlane, User author, Nullable<DateTime> endDateFromTask, String customName)
DocumentApprovementTask PublicAPI.Docflow.Tasks.CreateTask(ApprovementTaskGroup group, ApprovementListItem item, Nullable<WorkTime> planWorkLog, SwimlaneElement swimlane, User author, Nullable<DateTime> endDateFromTask, String customName)
DocumentApprovementTask PublicAPI.Docflow.Tasks.CreateTask(ApprovementTaskGroup group, ApprovementListItem item, Boolean forceEndDateFromTask, SwimlaneElement swimlane, User author, Nullable<DateTime> endDateFromTask, String customName)
PublicAPI.Docflow.Objects.DocumentAssignUser.Filter() - есть изменения в фильтре:
User(User user) - Добавлен
Раздел Enums:Список исправлений к версии 3.9.11
Пользовательский интерфейс
- Добавлена комбинация клавиш Ctrl+S для форм (представлений).
- Изменено поведение флага "Не проверять обязательность заполнений контекстных переменных" - валидация отключается только для контекстых переменных, для остальных переменных на форме валидация остается прежней.Данное поведение работает только для элементов, указанных ниже:
- Отправка на согласование
- Отправка на ознакомление
- Вынесение резолюции
- Формирование задач по резолюции
- Подписание
- Согласование
- Регистрация документа
- Создание документа
- Отправка документа
- Вынесение резолюции
- Формирование задач по резолюции
- Подписание
- Согласование
- Регистрация документа
- Создание документа
PublicAPI
Раздел Docflow:
Добавленные менеджеры объектов:
Раздел Processes:
Добавленные менеджеры объектов:
Раздел Portal:
Добавленные менеджеры объектов:
Раздел Projects:
Добавленные менеджеры объектов:
Список исправлений к версии 3.9.10
Пользовательский интерфейс
Дополнительный фильтр EQL на документахНаложенный дополнительный фильтр EQL на свойство с документами фильтрует в том числе последние использованные документы
Заблокированные пользователи в пользовательской группеПри выборе пользователей из пользовательской группы заблокированные пользователи исключаются.
Поиск пользователей по элементу оргструктурыЕсли в поиске пользователей в поле оргструктуры выбрать отдел, то в результаты поиска попадут все сотрудники отдела и подчиненных подразделений. В администрировании в фильтре пользователей есть параметр, указывающий, что нужно искать пользователей, которые непосредственно включены в отдел (без учета подчиненных подразделений).
Привязка процесса к смене стадий сделки в активной воронке продажПри настройке процессов в воронке продаж можно выбирать, в том числе, процессы, которые недоступны для запуска текущему пользователю.
Динамическое текстовое полеТекстовые поля в веб-интерфейсе можно изменять по высоте при вводе данных.
Вложенные свойства объекта в блокеВ блоках можно настроить вывод вложенных свойств объекта, они будут отображаться в списке записей.
Работа с клиентами
Возможности переведены на конструктор форм
Изменение работы отчетов
- Убранкэш отчетов FastReport EleWise.ELMA.Reports.Services. FastReportRunCache.
- Системные отчеты после импорта публикуются автоматически .
Изменение работы метаданных
- Введено ограничение на именование колонок таблиц для пользовательских свойств метаданных (Uid и TypeUid).
Редактор сценариев
- В модуле сценариев отчетов добавлен автокомплит по PublicAPI
- Изменён механизм генерации ссылки на веб-сервис. Новый механизм аналогичен добавлению веб-сервисов в Visual Studio. Генерация по старому способу так же доступна
Пользовательский интерфейс
- Появилась возможность группового назначения контроля в плане проекта
2. На вкладке подзадачи Проектных задач подзадачи из устаревших и производных от них неопубликованных версий плана отображаются с пометкой “(устаревший план)”
3. В дизайнере в конструкторе форм для строковых полей появилась возможность указать текст внутри строкового поля, для любых атрибутов объекта - добавление всплывающей подсказки
4. Для объекта Оргструктура:
4.1. Выпадающий список. Добавлено отображение пользователей, назначенных на должность, или их количество, в случае, если их больше одного (опционально в настройках свойства).
4.2 Форма поиска. При нажатии на иконку оргструктуры реализовано иерархическое отображение.
Модель данных
1. В интерфейс EleWise.ELMA.Projects.Models.IProjectTaskBase добавлено свойство Obsolete, указывающее, что данная задача не относится к текущей версии плана.
Изменения в экспорте-импорте
1. Запрещен экспорт данных из справочников, помеченных не участвующими в экспорте-импорте данных2. Запрещен импорт данных, метаданные которых, помечены как не участвующие в экспорте-импорте
Пользовательский интерфейс
Изменено окно выбора справочников при экспортеТеперь, в случае если экспорт данных для справочника запрещен, галка заменяется на картинку с подсказкой.
Поддержка нового плагина Рутокен
В связи с отключением NPAPI в Chrome, код интеграции с Рутокен был переписан на асинхронные вызовы.
Портал
Добавлена настройка цветового решения веб интерфейса ELMA
PublicAPI
Раздел CRM:
PublicAPI.CRM.Objects.LeadPersonPermission.Filter() - есть изменения в фильтре:
User(User user) - Добавлен
PermissionRole(Nullable<Guid> permissionRole) - Добавлен
Lead(Lead lead) - Добавлен
SearchString(String searchstring) - Добавлен
Id(Int64 id) - Добавлен
Query(String query) - Добавлен
Раздел Projects:
PublicAPI.Projects.ProjectTaskBase.Filter() - есть изменения в фильтре:
Obsolete(Boolean obsolete) - Добавлен
PublicAPI.Projects.ProjectTaskBase.Milestone.Filter() - есть изменения в фильтре:
Obsolete(Boolean obsolete) - Добавлен
PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.Filter() - есть изменения в фильтре:
Obsolete(Boolean obsolete) - Добавлен
Список критичных изменений в версии 3.9.5
Пользовательский интерфейс
Настройка таймаута сессий для именованных лицензийПри варианте активации с конкурентными лицензиями в Администрировании добавлена отдельная настройка таймаута для именованных лицензий.
Данная настройка суммирует время таймаута с основной настройкой. Если таймаут не установлен, то сессии именных лицензий не будут закрываться.
Выбор пользователя в фильтреПри выборе пользователя в фильтре заблокированные пользователи выводятся в отдельной группе в конце списка, в окне поиска пользователей они выводятся в алфавитном порядке со значком блокирования на фотографии.
Конструктор форм для объекта КонтактВ модуле «Работа с клиентами» для объекта Контакт реализован конструктор форм. Можно настроить форму просмотра, создания, редактирования и детальную информацию о контакте в юридическом лице.
Возможность выбор группы или элемент орг. структуры в этапе согласованияПри заполнении объекта «Маршрут согласования» в этапе согласования в качестве согласующих теперь можно выбрать группу пользователей или орг. структуру. Появилась галочка «Кто первый».
Телефония
Открытие карточки звонка при бриджинге каналов в AsteriskТ.е., если при бриджинге в качестве одного из каналов используется какой-то отличный от sip или pjsip, а второй канал принадлежит пользователю Элма, то у данного пользователя откроется карточка звонка с номера, находящегося в callerId первого канала.
Ситуация может возникнуть если звонок сначала проходит через секретаря.
API Кода. Публичные методы и интерфейсы
Добавлена перегрузка для метода GetEntityActions(EntityMetadata metadata, bool inherit, bool onlyBase, bool loadextensions) в MetadataLoader, с помощью которой можно получить действия сущности с учетом расширений.
PublicAPI
Раздел Docflow:
PublicAPI.Docflow.Objects.Nomenclature.NomenclatureCache.Filter() - есть изменения в фильтре:
UseRegistrationPlacePermissions(Nullable<Boolean> useRegistrationPlacePermissions) - Добавлен
Раздел Portal:
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment, User commentAuthor)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, CommentActionModel model)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, TaskPriority priority, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetTaskEndDate(Int64 taskId, DateTime newEndDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.CompleteTask(Int64 taskId, CompleteTaskModel model)
Список критичных изменений в версии 3.9.4
Пользовательский интерфейс
Фильтрация по типу Файл (бинарный файл)При добавлении в фильтр сущности поля типа Файл (бинарный файл) в веб части можно ввести только в текстовом поле идентификатор искомого файла, в случае указания не правильного идентификатора поиск не выдаст результаты.
Представления razor при копировании форм в конструкторе формПри копировании форм в конструкторе форм все представления разор, которые используются в данной форме, копируются локально для объекта в новую форму. При копировании дочерней формы в другую дочернюю форму, копируются только те представления, которые настроены в копируемой форме.
API Кода. Публичные методы и интерфейсы- При невозможности выполнить действие сервер возвращает ошибку HTTP с кодом 409 Conflict
- Изменёнметод передачи данных из POST в GET модуля «Сообщения» для метода /Posts/GetMyFavorite
PublicAPI
Раздел CRM:
Void PublicAPI.CRM.Contractor.AddComment(Contractor contractor, String comment, User commentAuthor)
Void PublicAPI.CRM.Contact.AddComment(Contact contact, String comment, User commentAuthor)
Void PublicAPI.CRM.Lead.AddComment(Lead lead, String comment, User commentAuthor)
Void PublicAPI.CRM.Sale.AddComment(Sale sale, String comment, User commentAuthor)
Void PublicAPI.CRM.Inpayment.AddComment(Inpayment inpayment, String comment, User commentAuthor)
Void PublicAPI.CRM.Relationship.AddComment(Relationship relationship, String comment, User commentAuthor)
Раздел KPI:
Void PublicAPI.KPI.Objects.KpiTask.AddComment(KpiTask task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.AddComment(SMARTTask task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.AddComment(SMARTTask task, String comment, User commentAuthor)
Раздел Docflow:
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.AddComment(SendDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.AddComment(SendDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.AddComment(DocumentAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.AddComment(DocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.AddComment(ResolutionTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.AddComment(DocumentApprovementTask task, String comment, User commentAuthor)
Раздел Processes:
Void PublicAPI.Processes.WorkflowInstance.AddComment(WorkflowInstance instance, String comment, User commentAuthor)
Void PublicAPI.Processes.WorkflowTaskBase.AddComment(TaskBase task, String comment, User commentAuthor)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.AddComment(WorkflowTask task, String comment, User commentAuthor)
Раздел Portal:
Void PublicAPI.Portal.TaskBase.AddComment(TaskBase task, String comment, User commentAuthor)
Void PublicAPI.Portal.TaskBase.Task.AddComment(Task task, String comment, User commentAuthor)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.AddComment(ApprovalTask task, String comment, User commentAuthor)
PublicAPI.Portal.CalendarEvent.Filter() - есть изменения в фильтре:
ConfirmParticipation(Boolean confirmParticipation) - Добавлен
PublicAPI.Portal.Objects.Calendar.CalendarEventPeriodical.Filter() - есть изменения в фильтре:
ConfirmParticipation(Boolean confirmParticipation) - Добавлен
Раздел Projects:
Void PublicAPI.Projects.ProjectTaskBase.AddComment(ProjectTaskBase task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTask.AddComment(ProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Tasks.AddComment(ProjectTaskBase task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.AddComment(ProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.AddComment(Milestone task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.AddComment(WorkflowProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.ProjectComplexTask.AddComment(ProjectComplexTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.CreateProjectTask.AddComment(CreateProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.AddComment(ProjectPlanApprovalTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.AddComment(ProjectBudgetApprovalTask task, String comment, User commentAuthor)
Список критичных изменений в версии 3.9.3
Пользовательский интерфейс
Добавлена возможность удаления мероприятий Добавлена возможность поворота страницы в предпросмотр PDF -файла Портлет «Решение задач»При переназначении задачи с документом в случае недостаточности прав на документ выводится окно с предоставлением прав, аналогично работе переназначения с карточки задачи.
ELMA Plugin для Visual StudioЛокализация шаблона портлета. При создании портлета в собственном модуле через плагин, весь текст (комментарии, отображаемый текст на представлении), используемый в данном шаблоне портлета, будет на языке, который использует Visual Studio. Шаблон портлета реализован на английском и русском языках. При переключении языка Visual Studio созданный портлет автоматически не переведется, необходимо создавать новый.
Изменение логирования- Убрано прямое использования log4net для собственных логов. Для них следует использовать код вида: private static readonly EleWise.ELMA.Logging.ILogger ImportLog = EleWise.ELMA.Logging.Logger.GetLogger("ElmaImport");
- Изменен логгер класса EleWise.ELMA.CRM.Telephony.Managers.TelephonyManager. Вместо public static log4net.ILog telephonyLog используется public static readonly EleWise.ELMA.Logging.ILogger TelephonyLog.
- Изменен логгер класса EleWise.ELMA.Integration1C.Data.CProvider. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Изменен логгер класса EleWise.ELMA.Integration1C.Listeners.Connection1CScheduler. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Изменен логгер класса EleWise.ELMA.Integration1C.V77.CDocument77. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Измененлоггер класса EleWise.ELMA.Integration1C.V77.CHelper77. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Измененлоггер класса EleWise.ELMA.Integration1C.V81.CDocument81. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Удаленлоггер класса EleWise.ELMA.Integration1C.V81.CProvider81. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog его базового класса EleWise.ELMA.Integration1C.Data.CProvider.
- Измененлоггер класса EleWise.ELMA.Integration1C.Integration1CService. Вместо protected static log4net.ILog integrationLog используется protected static readonly EleWise.ELMA.Logging.ILogger IntegrationLog.
- Измененлоггер класса EleWise.ELMA.Messages.Impl.TransactionalMessageManager. Вместо public static log4net.ILog MessagesLog используется public static readonly EleWise.ELMA.Logging.ILogger MessagesLog.
- Измененлоггер класса EleWise.ELMA.Tasks.Managers. SolveTaskHelper. Вместо public static log4net.ILog SolveTaskLog используется public static readonly EleWise.ELMA.Logging.ILogger SolveTaskLog.
Список критичных изменений в версии 3.9.2
API Кода. Публичные методы и интерфейсы
Вывод логов из скриптов в отдельный файлВ базовом классе для скриптов объектов (в том числе типах документов и проектов) и процессов появилось новое свойство Logger, с его помощью можно выводить логи в отдельный лог-файл (logs\scripts\sc-log-*).
Вне класса со скриптами к объектам и процессам (например в глобальных модулях, и при необходимости в отдельных модулях в VS) можно воспользоваться классом EleWise.ELMA.Logging.ScriptLogger.
После перепубликации какого-либо объекта, во всех классах скриптов объектов, конструкция Logger.Log.Error(. ) будет использовать свойство Logger вместо класса EleWise.ELMA.Logging.Logger, тем самым логи автоматически вместо лога ошибок будут писаться в лог скриптов. Для того же эффекта в процессах требуется перекомпиляция скриптов процессов (соответствующей версии) или публикация новой версии процесса для вновь запущенных экземпляров.
Для записи логов в общий файл (например, с ошибками) необходимо использовать конструкцию Logging.Logger.Log (Logging.Logger.Log.Error(. )).
В лог скриптов выводится следующая информация: Дата/время [поток] класс.метод(:номер строки) - сообщение. Пример: 2016-07-21 14:46:42,157 [7] EleWise.ELMA.ConfigurationModel.Scripts.SpravochnikScripts.FormLoad(:26) - FormLoad1.
Для корректного вывода номера строки для скриптов объектов добавлена запись файла отладочной информации Web\App_Data\CompiledModel\EleWise.ELMA.ConfigurationModel.Scripts.pdb (для скриптов процессов файл отладочной информации уже давно пишется).
Формы системных объектовДобавлены базовые формы к объекту «Взаимоотношение». Текущие формы наследников «Взаимоотношения» переделаны на базовые формы.
Изменения в экспорте-импорте объектов- Реализован алгоритм по переносу локальных сборок (которые подключены в скрип-модуле объекта) с сервера-источника на сервер-приёмник.
- При импорте объектов, содержащих глобальные модули, будет выскакивать окно с оповещением. Импорт глобальных модулей следует проводить ОТДЕЛЬНО. Если импортировать объекты с глобальными модулями на сервер-приемник, где таковых глобальных модулей нет, импорт будет отменён с соответствующей ошибкой.
Пользовательский интерфейс
Доработан элемент для выбора объектаДобавлена иконка «Выбрать», отображающаяся внутри контрола. Свойства AutocompleteComboBox: ShowComboBoxSelectIcon, ComboBoxSelectImageUrl, ComboBoxSelectOnClick.
Добавлена иконка «Добавить», отображающаяся внутри контрола. Свойства AutocompleteComboBox: ShowComboBoxAddIcon, ComboBoxAddImageUrl, ComboBoxAddOnClick.
Добавлена иконка «Очистить поле». Свойства AutocompleteComboBox: ShowComboBoxDeleteIcon, ComboBoxDeleteImageUrl, ComboBoxDeleteOnClick.
Для Single Select:
Добавлена возможность использовать для отображения внутри контрола шаблон. Свойства AutocompleteComboBox : UseTemplate , Template , TemplateJs , TemplateOnLoad . Для этого необходимо установить UseTemplate = True, и передать шаблоны в свойства Template (отображение при рендере контрола), TemplateJs (отрисовка шаблона при выборе объекта).
Добавлена иконка «Редактировать поле». Свойства AutocompleteComboBox : ShowEditTemplateIcon , Template , EditTemplateImageUrl , EditTemplateOnClick .
По умолчанию в режиме использования пользовательского шаблона (UseTemplate) отображается ссылка на объект, при условии, что системе удалось получить ссылку, в противном случае отображается текст.
Все контролы выбора объектов настроены в режим отображения шаблона. Внешние иконки «Выбрать», «Добавить» не отображаются – отображаются внутренние.
Выбор даты завершения для задачи при переназначенииПри переназначении задач по бизнес-процессам, документообороту и др. появилась возможность не указывать сроки задачи (если они не были установлены, то поля останутся пустыми). В некоторых типах задач (например, SMART-задача) при переназначении сроки вообще нельзя менять: поля не доступны в данной форме.
Портлет «Решение задач»В портлет «Решение задач» было добавлено отображение задач подписания документа. Если в процессной задаче выбрано «Требовать ЭЦП», тогда кнопки будут скрыты и выполнять задачу необходимо с карточки задачи. Аналогичное поведение будет наблюдаться, если в Администрировании при подписании документов выбрано «Требовать ЭЦП». Если в процессной задаче выбрано «Подписывать текущую версию», тогда в окне будет выбрана сразу текущая версия документа. Если у пользователя не будет хватать прав доступа, то в popup-окне появится соответствующая ошибка.
В портлете «Решение задач» изменен дизайн popup-окна для вынесения резолюции по задаче рассмотрения документа.
ПроектыПоявилась возможность ввести наименование при создании/копировании версий плана проекта и бюджета.
Дизайнер
При добавлении конфигурации в дизайнере теперь доступно только удаленное подключение к серверу. Локальное подключение к конфигурации больше не поддерживается.
PublicAPI
PublicAPI.CRM.Objects.CategoryAssignMethod.Filter() - есть изменения в фильтре:
ContainerContractorPermission(ContContractorPermission containercontractorPermission) - Добавлен
Раздел KPI:
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Раздел Docflow:
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.RouteApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.RouteApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.RouteApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Раздел Processes:
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Раздел Portal:
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.ReplacementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.Objects.Tasks.ReplacementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.Objects.Tasks.ReplacementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Раздел Projects:
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Budget PublicAPI.Projects.Budgets.BudgetBudgets.Create(Project project, Action<IBudget> preSave)
Budget PublicAPI.Projects.Budgets.BudgetBudgets.CreateFrom(Budget oldBudget, Boolean cloneItems, Project newProject, Action<IBudget> preSave)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Список критичных изменений в версии 3.9.1
Редизайн дизайнера
В этой версии обновлен графический дизайн Дизайнера ELMA.
Публичные методы API
Добавлены методы вычислений с учетом календаря проекта:
Изменение работы экспорта-импорта
1. Добавлен перенос регламентов для процессов .
2. Добавлен перенос папок пользовательских расширений .
3. Изменен интерфейс действий с объектами при импорте EleWise.ELMA.Deploy.Import.ExtensionPoints. IEntityImportSaveActions:
- метод ExecPostSaveActions(IEntity entity, Type type, Dictionary<string, object> values, Dictionary<string, string> serviceData, List<LinksDictionaryItem> links) заменен методом ExecPostSaveActions(IEntity entity, Type type, Dictionary<string, object> values, Dictionary<string, string> serviceData, LinksDictionary links).
4. Изменен класс сериализатора экспорта-импорта EleWise.ELMA.Deploy.Serialization.EntityXmlSerializer :
- типвозвращаемогозначенияфункции Deserialize(object obj, Dictionary<string, object> serObj) изменен на EleWise.ELMA.Deploy.Import.Links. LinksDictionary;
- убранафункция ConvertFromSerializable(Dictionary<string, object> serObj, Type entityType, out IEntity tpItem);
- убранафункция ConvertFromSerializable(object obj, Dictionary<string, object> serObj);
Общие доработки
1. Массовое вложение документов в задачу
2. Заполнение темы задачи при вложении документа.
3. Обработка пробелов в телефонном номере. При попытке звонка на телефонный номер с пробелами, содержащийся в системе, пробелы пропускаются
4. Появилась возможность в портлете "Задачи от меня по проекту" показывать задачи за более обширное количество дней (даипазон показа настраивается в портлете), а также отображать выполненные задачи.
Модуль Сообщения
Изменения в WEB API- Методы: boolEleWise.ELMA.Messages.API.IMessageFeedService.GetSettingsPostCommentEnterKey(), boolEleWise.ELMA.Messages.API.MessageFeedService.GetSettingsPostCommentEnterKey()помечены как устаревшие . Вместо них используются методы: FeedSettingsEleWise.ELMA.Messages.API.IMessageFeedService.GetFeedSettings () и FeedSettingsEleWise.ELMA.Messages.API.MessageFeedService.GetFeedSettings () соответственно.
В некоторых случаях может быть сброшена настройка “Клавиши для отправки комментария”.
Портлет «Решение задач»
В портлет «Решение задач» было добавлено отображение задач предварительного согласования задач с возможностью быстрого согласования/отказе в согласовании задач или согласования/отказе в согласовании задачи через popup-окно.