Версия 1.32.0
В этой версии мы доработали возможности рабочих процессов для их автоматизации, связанной с обработкой расширенных моделей записи.
Ускорили обработку конфигурационных пакетов, чтобы точнее отслеживать выполнение операций при работе с конфигурационными пакетами.
Мы также добавили новый механизм ретроспективного расчета паузы при создании индикации, время отсчета которой находится в прошлом, и улучшили обработку зависших задач в планировщике, чтобы повысить точность метрик и сократить время восстановления выполнения процессов. Помимо этого, мы исправили ряд ошибок, влияющих на корректность миграции данных, работу скриптов и стабильность системы.
Новая функциональность
Асинхронная загрузка конфигурационных пакетов
Внедрен асинхронный режим обработки импортированных пакетов и оптимизирован процесс их выполнения. Данная функциональность направлена на обеспечение стабильной работы с конфигурационными пакетами и повышение удобства импорта больших пакетов (более 100 000 записей VCS) на экземпляр.
В системном свойстве platform.vcs.sop_process_quantity вы можете указать количество конфигурационных пакетов, которые могут быть в обработке одновременно.
В новом виджете Управление конфигурационными пакетами отображается информация об импортированных пакетах, обработка которых была запущена на экземпляре. В виджете доступна информация об инициаторе и статусе обработки со ссылками на записи пакетов.
Читайте подробнее в статье Конфигурационные пакеты.
Улучшения
Расчет ретроспективного времени паузы при создании индикации
Теперь при расчете суммарного времени приостановки индикации также учитываются потенциальные паузы обработки, случившиеся в прошлом. Для этого мы добавили на форму индикаторов поле Учитывать ретроспективную паузу.
Если свойство Учитывать ретроспективную паузу активно:
- При запуске индикации система проверяет историю записи и, если находит там состояния записи, соответствующие условию паузы, то суммирует их длительность и учитывает в соответствующих параметрах индикации затраченного рабочего времени, а также времени превышения и времени паузы.
- На форме индикации в поле Время паузы отображается значение ретроспективной паузы на момент создания индикации, после создания – сумма ретроспективной и накопленной пауз, если для индикатора установлен флажок Учитывать ретроспективную паузу, а в поле Время превышения индикации выбрано Определяется длительностью.
Ввиду выполнения расчетов паузы на основе данных таблицы История (sys_history), пауза не рассчитывается для индикаторов, в условиях паузы или возобновления которых используются:
- REM-атрибуты;
- полей, к которым настроено обращение с помощью dot-walking;
- полей типа Journal Input.
так как их изменения не регистрируются для целевой записи.
Читайте подробнее в статье Индикаторы.
Поддержка рабочего процесса для моделей расширенной записи (REM)
Теперь вы можете явно связать модель расширенной записи с рабочим процессом. Например, для каждого типового запроса по услуге, для которой создана модель, запускается соответствующий рабочий процесс с нужными шагами (сбор данных, согласование, исполнение, опрос и другие).
Вы можете создать разные модели для одной и той же услуги, чтобы запускать соответствующий рабочий процесс в зависимости от условий. Например, рабочий процесс, не включающий согласование, и рабочий процесс, который будет включать действия по дополнительному согласованию и обработке данных.
Рабочий процесс запускается при создании записи по модели, а при изменении модели он останавливается и запускается новый. Для запуска рабочего процесса укажите его на форме соответствующей модели, а в свойствах рабочего процесса укажите триггер Использование REM.
Также в свойствах рабочего процесса поле Тип условия было переименовано на Триггер, и обновлены названия опций поля в соответствии с логикой, которую они реализуют: Вручную, По условию и Использование REM.
В действие рабочего процесса Switch мы добавили поле Версия процесса, в котором отражено название рабочего процесса, что позволяет быстро ориентироваться в запущенных действиях.
Читайте подробнее в статье Расширенная модель записи.
Системные улучшения
Разблокировка зависших задач в планировщике
Обновили механизм обнаружения зависших задач в планировщике. Теперь такие задачи становятся доступными для повторного выполнения через одну минуту после обнаружения проблемы. Ранее они оставались заблокированными в течение одного часа.
Читайте подробнее в эксплуатационной документации.
Исправления
DEF0022644: В рабочих процессах действие Record Generator прерывалось с ошибкой Array to string conversion из-за недостаточной строгости критериев в алгоритме определения типа колонки. В результате чего созданные и обновленные записи могли содержать ошибку в значении полей и были недоступны для дальнейшей работы.
DEF0022287: После выделения ESM-платформы (приложение Simple) в отдельное приложение было выявлено, что часть записей, например, созданных в приложении Simple, мигрировали в приложение Platform и стали недоступными для редактирования после обновления до версии 1.29.0. Причиной некорректной миграции была клиентская настройка "коробочных" таблиц, которую не учли при разработке механизма миграции. В этой версии алгоритмы миграции исправлены и все записи приложения Simple перенесены из Platform в Simple.
DEF0021494: В индикаторе отсутствовала проверка на наличие пустого значения в поле, из-за чего индикация создавалась при выборе условия НЕ РАВНО, если указанное поле в записи целевой таблицы было пустым. В этой версии доработали логику операторов в соответствии со всеми возможными их комбинациями с типами полей.
DEF0021205: При прерывании сохранения записи бизнес-процессом через метод setAbortAction нераспределенный экземпляр системы приостанавливал работу и возвращал ошибку 500. На распределенных стендах это приводило к появлению ошибки 502. В этой версии добавлены необходимые сценарии для корректной работы в случае прерывания процесса.
DEF0021010: Поля типа Template неправильно преобразовывали значение, взятое из полей типа WYSIWYG. В этой версии настроен механизм, позволяющий корректно передавать значения из WYSIWYG в Template.
DEF0020747: Система не могла обрабатывать обращение к полю типа List с помощью dot-walking в атрибуте condition. Из-за этого механизм автозаполнения не срабатывал и появлялась ошибка Server error. В этой версии поведение восстановлено.
DEF0020127: В предыдущей версии заголовки колонок смещались относительно самих колонок при группировке по ним. В этой версии верстка исправлена и заголовки не смещаются.
DEF0019650: Клиентский скрипт onChange не срабатывал при изменении поля или REM-атрибута типа Date/Time или Date. Логика определения изменений в компоненте isChanged не учитывала необходимость вызова компонента onChange при возврате к исходному значению (включая сброс до пустого значения), что приводило к некорректной работе скриптов. В этой версии логика дополнена соответственно.
DEF0018431: В настройках интеграции с LDAP можно было задать вредоносный URL. Чтобы исключить подобные случаи в новых версиях мы усилили тестирование безопасности системы.