Брендирование системы
TEAM-6102 Мы добавили возможность создавать пользовательские шаблоны для системных email-сообщений. В ходе работы с ELMA365 пользователи получают на почту различные системные сообщения: приглашения, письма для восстановления пароля, уведомление о задачах, код второго фактора авторизации и так далее. Для всех видов писем используется один шаблон, различается только тело письма, заполняемое соответствующим сервисом в момент отправки. Теперь шаблон можно отредактировать в разделе Администрирование> Настройки компании.
Двухфакторная авторизация
TEAM-5857 Чтобы избежать потенциальных ошибок авторизации из-за неверно настроенного модуля интеграции SMS или SMTP сервера, мы добавили проверку при сохранении настроек двухфакторной авторизации.
Чаты
TEAM-249 В личных и групповых чатах теперь проставляются отметки о доставке и прочтении сообщений. В групповых чатах сообщение отмечается прочитанным, если хотя бы один участник чата прочитал сообщение.
Виджеты
TEAM-6308 Добавлена кнопка Обновить в виджеты Связанные элементы и Таблица.
EAM-5043 В списке свойств в конструкторе пользовательских виджетов добавлены опции Входное и Выходное. С их помощью показывать/скрывать свойства на форме настройки виджета, если он размещается в шаблоне других виджетов.
Интеграция с AD
TEAM-6295 До последнего релиза при импорте нового пользователя обновлялись существующие данные, если адрес электронной почты импортируемого пользователя совпадал с адресом существующего, но при этом их DN различались. В результате если у пользователя изменялся логин, то он терял возможность авторизоваться со старыми данными.
Теперь существующие пользователи обновляются только при совпадении их DN с DN импортируемого пользователя, в противном случае возвращается ошибка, указывающая на то, что пользователь с таким адресом электронной почты уже существует.
CRM
1. TEAM-2414 В информации о пропущенных звонках помимо номера телефона, даты и времени звонка теперь отображается контакт. Нажав на название контакта, вы сможете перейти в его карточку.
2. TEAM-3917 В виджет Дубли добавлен информационный блок, отображающий все дублирующие элементы и дополнительную информацию по ним.
3. TEAM-6366 Был оптимизирован поиск дублей. Это позволило повысить скорость работы и снизить нагрузку на сервисы.
- Для каждого элемента создается отдельная запись, в которой хранятся все его дубли в виде массива id и правила, по которому они были найдены.
- При запланированных операциях, если элемент уже есть в таблице, он только перезаписывает информацию о дублях.
- Количество показываемых потенциальных дублей элемента по всем правилам не превышает 10. При этом дубли определяются по уменьшению веса совпадения.
4. TEAM-6832 Для улучшения пользовательского опыта в случае, если проверка создаваемого/редактируемого элемента длится более 5 секунд, показывается предупреждение о том, что осуществляется поиск дублей текущего элемента.
5.TEAM-6146 Добавлена возможность получить ссылку на вебхук из скриптов пользовательского модуля, который реализует контракт телефонии. Для этого нужно вызывать функцию VoipOnWebhookUpdated, которую пользователь сам определяет в скрипте:
Код:
async function VoipOnWebhookUpdated(webhookUrl: string): Promise<void> {
}
Модули
1. TEAM-2597 Теперь в Методах API можно указывать поддержку нескольких HTTP методов одновременно. Мы так же расширили список поддерживаемых методов:
- поддерживаются методы GET / POST / PUT / PATCH / DELETE;
- методы OPTIONS / HEAD нельзя реализовать явно, но они тоже будут работать.
2. TEAM-2827 Реализован вложенный роутинг в Методах API в модулях. Некоторые внешние сервисы для интеграции требуют указания одной корневой ссылки и реализации вложенных методов. Например:
- <www_my_site_prefix>/root — мы указываем путь до корневого расположения API для интеграции;
- <www_my_site_prefix>/root/method1, <www_my_site_prefix>/root/method2 — сервис интеграции может потребовать реализовать такие вложенные пути в соответствии со своим протоколом обмена.
Теперь в методах API можно указывать такие пути с любым количеством разделителей вложенности “/”.
3. TEAM-5688 Теперь можно возвращать файл из хранилища, при этом не загружая всё тело файла в сценарий:
Код:
async function downloadFile(req: FetchRequest): Promise<HttpResponse | void> {
const file = await System.files.search().first();
const resp = new HttpResponse();
resp.setFile(file!);
return resp;
}
5. TEAM-6449 Добавлена возможность работать с временными файлами в сценариях, как с обычными.
Ранее вы не могли работать со свойством типа Файл в сценариях виджетов, страниц или форм задач в процессе, если свойство разрешалось редактировать. Так происходило потому, что файл ещё не был сохранен и сценарий прерывался с ошибкой.
Теперь в сценариях можно получать ссылку на временный файл или само тело файла.
Код:
if (ViewContext.data.page_file_field) {
const file = await ViewContext.data.page_file_field.fetch(); // Можно загружать данные файла
const createdby = file.data.__createdBy; // Вернет текущего пользователя
const link = await _file.getDownloadUrl(); // Ссылка на прямое скачивание файла
const hash = await _file.getFileMD5Hash(); // Посчитает хеш временного файла
const getPermissions = await _file.getPermissions(); // Вернет пустой массив
}
6. TEAM-5222 Добавлена возможность изменять ответственного за процесс через пользовательский интерфейс или через программный код.
Код:
const inst = await Global.processes._searchInstances().first();
const user = await System.users.search().where(x=> x.email.eq("myuser@example.com")).first();
if(inst && user) {
await inst.setResponsible(user);
}
Типы данных
1. TEAM-6804 Добавлен новый элемент ввода для типа данных Телефон. Теперь при вводе номера телефона автоматически определяется страна и добавляются проверки длины и формата номера.
2. TEAM-6866 Добавлен новый тип валюты «Швейцарский франк». Для отображения валюты используется формат с суффиксом «CHF», например, 1 234.56 CHF