Бизнес-процессы
1. TEAM-7600 В настройках блоков Подписать, Создание элемента и Изменение элемента в бизнес-процессах добавлена опция формирования названия задачи по шаблону. Она работает по такому же принципу, как и аналогичная опциия в настройках блока Задача.
2. TEAM-17776 В блок Задача, добавлена настройка, управляющая видимостью кнопок переходов, а также кнопки В работе. Это опция применима к задачам с несколькими исполнителями при выборе настройки Кто первый.
TS SDK и API
1. TEAM-15962 В информацию о подписи https://tssdk.elma365.com/ru/interfaces/_10_signs_.signdetails.html добавлено поле с информацией о цепочке сертификатов https://tssdk.elma365.com/ru/interfaces/_10_signs_.signdetails.html#chain.
Метод getDetails() позволяет извлечь всю цепочку сертификатов из подписи. Теперь можно получить сертификат подписанта с полями G и SN.
2. TEAM-8321 Добавлены новые методы, позволяющие с помощью сценариев сделать следующее:
- Поменять контекст бизнес-процесса.
- Поменять контекст задач.
- Добавить/изменить время выполнения задачи.
- Закрыть задачу.
Объект экземпляра процесса
export interface ProcessInstanceItem
Код:
/**
* Изменяет контекст экземпляра процесса.
*
* Если экземпляр процесса завершен или в текущий момент исполняет активный блок, то метод прерывается исключением.
* В случае успешного выполнения изменяется контекст процесса, и метод отрабатывает без исключений.
*
* В примере контекст содержит номер договора, полученный из внешнего источника, например, с помощью запроса.
* Метод позволяет установить полученный номер в контекст стороннего процесса.
*
* ```typescript
* async function updateContext(): Promise<void> {
* try {
* // Получаем номер контракта из контекста
* const contractNumber = Context.data.contructid
*
* // Запись процесса `newprocess` в переменную `processTemplate`
* const processTemplate = Global.processes.incomecontract;
* // Идентификатор экземпляра процесса берем из контекста процесса
* const instanceUUID = Context.data.instanceUUID;
*
* // Ищем экземпляр процесса
* const proccess = await processTemplate._searchInstances().where(x => x.__id.eq(instanceUUID)).first();
*
* // Комментарий для обновления получаем из контекста процесса
* const comment = Context.data.comment;
*
* // Новое значение номера договора
* const context = {contract: contractNumber};
*
* // Обновление контекста
* await process.updateContext(context, comment);
* } catch (e) {
* // Процесс уже завершен, можно обработать исключение
* }
* }
* ```
*
* @param context Новый контекст экземпляра процесса.
* @param comment Причина изменения контекста экземпляра процесса.
* Обязательный параметр. Не допускается передавать пустую строку.
*/
updateContext (context: Context, comment: string): Promise<void>;
Объект задачи процесса
export interface ProcessTaskItem<Context extends ProcessContext = ProcessContext> extends BaseItem<ProcessTaskData>, ItemRef<ProcessTaskItem<Context>>, ProcessTaskItemRef<Context>
Код:
/**
* Изменение времени выполнения задачи.
*
* Установка новой даты выполнения задачи:
* ```typescript
* try {
* // Получаем комментарий из контекста процесса
* const comment = Context.data.comment;
*
* // Получаем ID задачи из контекста процесса
* const taskUUID = Context.data.taskid;
*
* let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first();
* // Если задача не найдена, то выводим ошибку
* if (!task) {
* throw new Error('Задача не найдена');
* }
* // Получаем текущую дату
* let newDueDate = new Datetime();
*
* // Прибавляем один день
* newDueDate = newDueDate.addDate(0, 0, 1);
*
* await task.changeDueDate(newDueDate, comment);
* } catch (error) {
* // Процесс уже завершен, можно обработать исключение
* }
* ```
*
* @param dueDate Новая дата завершения задачи.
* @param comment Комментарий.
*/
changeDueDate (dueDate: TDatetime, comment?: string): Promise<void>;
/**
* Получение вариантов выхода по задаче.
*
* Поиск и завершение задачи:
* ```typescript
* try {
* // Получаем объект задачи
* let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first();
* // Если объект задачи не найден, то заканчиваем выполнение сценария
* if (!task) {
* return;
* }
* // Получаем выходы для задачи
* const exits = await task.getExits();
*
* // Завершаем задачу
* // Передаем идентификатор выхода и данные формы
* await task.submitTask(exits[0].id, {comment: 'Task completed'});
* } catch (e) {
* // Процесс уже завершен, можно обработать исключение
* }
*
* ```
*/
getExits (): Promise<TaskItemExit[]>;
/**
* Выполнение задачи.
*
* Поиск и завершение задачи:
* ```typescript
* try {
* // Получаем объект задачи
* let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first();
*
* // Получаем выходы для задачи
* const exits = await task.getExits();
*
* // Передаем идентификатор выхода и данные формы
* await task.submitTask(exits[0].id, {comment: 'Task completed'});
* } catch (e) {
* // Процесс уже завершен, можно обработать исключение
* }
*
* ```
*/
submitTask (exitID: string, data?: Context): Promise<void>;
3. TEAM-18280 Создан метод API, дающий возможность сопоставлять внутренние номера АТС и пользователей. Подробнее https://api.t-elma365.com/ru/public-api/reference/integration/updatevoipbindings/
4. TEAM-18472 Теперь метод fetch() в параметре body может принимать тип данных ArrayBuffer. Это полезно при передаче бинарных данных (или файлов) во внешние системы.
5. TEAM-18928 Добавлены методы API для получения информации о группах и ролях разделов:
- /pub/v1/scheme/namespaces/{namespace}/groups
- /pub/v1/scheme/namespaces/{namespace}/groups/{code}
- /pub/v1/scheme/groups/{id}
Подробнее в документации https://api.elma365.com/ru/public-api/reference/scheme/
Портал
1. TEAM-18478 Теперь внешний пользователь может регистрироваться на портале только по номеру телефона, без использования адреса электронной почты.
2. TEAM-18724 Текущая процедура восстановления пароля работает только через электронную почту. В этом релизе мы добавили возможность для внешних пользователей полностью работать без электронной почты, только по телефону. В том числе реализовали процедуру восстановления пароля через смс.
Документооборот
1. TEAM-16612 При согласовании или ознакомлении с элементом приложения добавлена возможность приложить файл. Файл отображается в листе согласования.
2. TEAM-17399 Были доработаны контракты:
- В меню добавлен пункт Настройки контракта. Пользователям доступны опции аналогичные настройка приложения, за исключением возможности включить массовые действия и формировать название элементов, так как у контракта нет своих элементов.
- Добавлена настройка Доступ к Контракту, которая работает аналогично настройке Доступ к Приложению.
Service
1. TEAM-7918 и TEAM-18315 При подключённом платном решении ELMA365 Service вы теперь можете блокировать учётные записи пользователей, которые отправляют сообщения в линию по внешним каналам связи, например, через мессенджер или почту.
Когда пользователь с заблокированной учётной записью отправляет сообщение, в разделе Линии создаётся новая сессия. Эта сессия автоматически помечается как Спам. Такие сессии не отображаются в общей очереди, не проверяются по правилам маршрутизации и не учитываются в отчётах. Также не запускают бизнес-процессы.
2. TEAM-15819 Добавлена возможно предварительного просмотра файлов в чате линий.
3. TEAM-17108 Добавлена возможность работы со статусами операторов линий. Стутсы можно устанавливать вручную через Настройки профиля. При статусе оффлайн оператор не может вести переписку и работать с сессией.
Отчёты
TEAM-11990 Реализован новый тип приложения Отчёт. Это дополнительный инструмент контроля, предусматривающий работу с данными приложений из разных разделов в рамках одного интерфейса. Информацию из отчета можно отображать на отдельной странице с помощью виджета График.
СRМ
1. TEAM-18464 Переработаны интерфейсы работы с дублями для повышения удобства использования. Проведена оптимизация для удобной работы со списками дублей, превышающими 10 элементов.
2. TEAM-18662 В виджет Распределение Лидов/Сделок добавлена:
- колонка Всего
- добавлена настройка Отобразить общее количество (Да/Нет), которая отображает/скрывает колонку “Всего”
3. TEAM-19006 Добавлена возможность выбора задач CRM в поиске задач.
4. TEAM-19044 Добавлена возможность изменять размер колонок в приложении Подписчики.
5. TEAM-19051 В разделе Маркетинг на странице Подписчики добавлена возможность настраивать колонки таблицы. По нажатию на текст Редактировать открывается попап, в котором есть поле Показывать свойства, где можно выбрать отображаемые колонки.
6. TEAM-19056 На странице Подписчики добавлена сорока поиска. Данная функция упрощает навигацию в приложении, а также показывает количество доступных для рассылки подписчиков в базе.
7. TEAM-17004 В ELMA365 Store добавлено решение Аудит изменений CRM. Данное решение позволяет:
- фиксировать изменения в приложениях Лиды, Сделки, Компании, Контакты, Поступления;
- отображать историю изменений;
- отображать прошлые значения в формате было/стало.
В случае изменении любого поля в приложениях Сделки, Лиды, Контакты, Компании фиксируется дата изменения, поле, состояние до и после, автор изменений.
Виджеты
1. TEAM-15658 Улучшен интерфейс виджета с ошибками валидации.
2. TEAM-17171 В дизайнере интерфейсов добавлена настройка на формах, которая управляет видимостью виджета с ошибками валидации.
Проекты
TEAM-12306 Реализована поддержка типов проектов.
Для каждого типа уникальны:
- Жизненный цикл. Настройки стадий проекта, проектный конвейер (прикрепление бизнес-процессов на переходы между стадиями проекта).
- Шаблон.
- Объектная модель. Возможность добавить нужные свойства для каждого типа проекта.
- Страницы приложений. У каждого типа проекта уникальные формы просмотра, редактирования и создания.
- Все новые типы проектов отображаются в разделе Проекты под соответствующим разделителем.
Advanced Security Pack
Advanced Security Pack — наша инициатива для обеспечения дополнительного уровня безопасности платформы для удовлетворения повышенным требованиям по безопасности.
Пакет предоставляет расширенные возможности для снижения рисков информационной безопасности, а также выполняет требования ФСТЭК по защите персональных данных.
Пакет содержит следующие функции безопасности:
- Контроль и отключение параллельных сессий пользователей при превышении настроенного числа;
- Отключение сессии пользователя при превышении заданного периода простоя. Потребуется повторный вход;
- Контроль и управление доступом к файлам в хранилище. Запрет неавторизованного доступа.
Список не ограничивается перечисленными выше механизмами. В дальнейшем планируется внедрение новых возможностей, таких как: интеграции с средствами защиты: DLP, Антивирусное ПО и пр.
Advanced Security Pack доступен для ELMA365 с релиза 2023.5 в редакциях On-premise и SaaS Enterprise при приобретении лицензии на системное решение.
Для SaaS Standard пакет активирован по умолчанию в ограниченном объёме в связи с архитектурными особенностями.
Настройки для механизмов, входящих в состав решения, реализованы в рамках стандартного интерфейса настроек системы ELMA365 (Администрирование).
Администрирование
1. TEAM-10791 В разделе Администрирование > Активные пользователи добавили возможность принудительно прервать сессии пользователей.
Для этого необходимо выбрать флажками сессии и нажать Прервать в панели кнопок.
Выбранные сессии будут прерваны сразу, т.е. пользователи увидят окно авторизации.
2. TEAM-15457 В Настройки безопасности > Сессии пользователей добавлена настройка Ограничить параллельные сессии.
Опция позволяет указать Допустимое количество параллельных сессий, т.е. количества устройств, на которых пользователь может быть авторизован одновременно.
Пример:
Допустимое количество параллельных сессий: 2
- Пользователь входит в систему в браузере Chrome — успех.
- Пользователь входит в систему в мобильном приложении — успех.
- Пользователь входит в систему в браузере Firefox — после проверки логина/пароля появляется ошибка, что пользователь превысил допустимое количество параллельных сессий. Эта ошибка появится только в том случае, если логин и пароль верные (т.е. после аутентификации).
Применимо к любым методам авторизации (логин/пароль, AD/LDAP, SAML, OAuth2).
Входит в состав лицензии Advanced Security Pack.