
Устранены утечки памяти, исправлены ошибки в компонентах группы Импорт, Калькулятор и Калькулятор (дерево), в некоторых Подключениях и в визуализаторе Профили кластеров. Данные в Хранилище Deductor Warehouse теперь загружаются быстрее.
При вызове BatchLauncher без параметров выводится справочная информация об использовании утилиты с описанием параметров. При работе на операционной системе Linux в описании не хватало символа - перед именем переменной, что могло вводить в заблуждение пользователей. Внесли исправления (#12015).
При запуске узла Экспорт в Deductor Warehouse (в интерактивном режиме и при пакетном выполнении) возникала ошибка «Не установлено соединение с Хранилищем данных». При этом если вручную активировать Подключение к Deductor Warehouse из мастера настройки через кнопку «Активировать», а затем «Выполнить», то Подключение и использующий его узел экспорта успешно выполнялись. Ошибку исправили (#12034).
Добавлено разэкранирование значений строкового типа, получаемых из JSON (#12014).
В логах Loginom Integrator в сообщении об отсутствии обязательного узла дерева имя узла было указано неверно. К имени узла добавлялся лишний суффикс «_BackingField». Ошибку исправили (#12102).
При каждом выполнении любого узла Python в лог записывалось предупреждение «Выполнение Python внутри процесса не поддерживается, Python запущен в отдельном процессе», даже если в настройках узла установлен флаг «Запускать в отдельном процессе». Исправили ситуацию, лишнее предупреждение в лог больше не записывается (#12017).
Не запускался Python, если путь к файлу пакета содержал пробел. Ошибка регрессионная и появилась в версии 7.3.0. Внесли исправления (#12057).
Исправлена ошибка Access Violation, которая возникала, если во время расчета данных на обученном узле Кластеризация вызвать визуализатор Профили кластеров, открыть детализацию, выделить ячейку, а затем вернуться в сценарий через меню Навигация и остановить или удалить узел Кластеризация (#9814).
В визуализаторе Профили кластеров, настроенном на узле Самоорганизующаяся сеть и обученном алгоритмом «Расширяющийся нейронный газ», в таблицах наблюдалось большое количество пустых кластеров, т.е. количество кластеров рассчитывалось неверно. Ошибку исправили (#10642).
Если на ранее настроенный узел с визуализатором Профили кластеров, в котором диапазон «Мощность кластеров» ограничен текущим количеством строк, подать новый набор данных, в котором число строк меньше, чем указано в верхней границе диапазона «Мощность кластеров», то при повторном входе в визуализатор Профили кластеров, пользователь увидит верхнюю границу диапазона больше, чем у него строк в данных. Добавили для таких случаев подсветку полей красным контуром, чтобы привлечь внимание пользователя (#10647).
Если в Панели «Процессы» отменить основной процесс визуализатора Профили кластеров, в котором на момент отмены выполнялись какие-то расчеты, то основной процесс ошибочно считался успешно завершенным, а последний подпроцесс оставался в активном состоянии. Ошибочное поведение исправили (#11242).
Если при настройке импорта из Excel-файла выходные поля не были определены, а автонастройка на втором шаге отключена, то при активации узла на выходном порту получалась таблица с пустыми столбцами. Внесли исправления, теперь в такой ситуации пользователь получит сообщение о том, что импортируемые поля не определены, что является более правильным поведением (#12054).
Ранее в мастере настройки узла Импорт из Excel-файла вторая страница мастера пропускалась при отсутствии импортируемых полей. Добавили отображение второй страницы мастера настройки для такой ситуации, т.к. там есть параметры, которые можно настроить (#12075).
Исправлена ошибка «…Код ошибки: 7. Сообщение: Ошибка при разборе XML-документа», которая возникала при импорте из XML-файла, содержащего атрибут переменного типа, значение которого похоже на дату/время (#12010).
При выполнении импорта игнорировалась конструкция CDATA. Если в файле содержалась конструкция CDATA: <element><![CDATA[value]]></element>, то при указании в настройках импорта корневого элемента root и <element/> в дереве импортируемых полей, в результирующем наборе должно быть value (в Loginom 6 так и работало), а получалась пустая строка. Внесли исправления (#12058).
Исправлена ошибка Access Violation, которая возникала при загрузке из ClickHouse таблицы с полем типа DateTime64(0) (#12008).
Если в мастере настройки узла Импорт из базы данных выполнить запрос вида SELECT 1, 2, 3, открыть Предпросмотр и выделить там строку, а затем выполнить запрос SELECT 1 и попытаться снова открыть Предпросмотр, то он не открывался, а интерфейс Loginom Studio не отрисовывался. Проблема также могла наблюдаться в Предпросмотрах узлов JavaScript, Python и Калькулятор. Внесли исправления (#12026).
Если при настройке узла Импорт из текстового файла перейти на вторую страницу мастера, не выбирая файл для импорта на первом шаге, и указать режим автонастройки «Все», то при переходе на следующую страницу все элементы интерфейса съезжали в верхнюю часть макета. Если в таком состоянии попытаться закрыть мастер настройки через кнопку в правом верхнем углу (крестик), то клиентское приложение становилось неработоспособным. Внесли необходимые исправления (#12077).
Исправлена ошибка «Access violation», которая возникала при работе на операционной системе Windows на второй странице мастера настройки узла Импорт из текстового файла, если на первом шаге в поле «Имя файла/URL» указан файл, заблокированный каким-либо процессом. Например, такую ошибку можно было получить, если для импорта выбрать файл app.log, в который идет запись логов текущего процесса Loginom (#12049).
При работе в режиме JavaScript использование функции getLocale могло приводить к ошибке «Access violation». В логах Loginom Server также присутствовала ошибка «A fatal error in the engine has occurred». Ошибки исправили (#12113).
Исправлено некорректное определение позиции узлов-выражений в дереве во вложенных массивах, когда часть узлов внешних массивов пропущена (#12095).
При выполнении узла Калькулятор (дерево) в редких случаях происходило аварийное завершение работы Loginom Server. Ошибочное поведение исправили (#12104).
В компоненте Калькулятор (дерево) не работала функция getLocale. При выполнении этой функции результат не возвращался, а в лог Loginom Server записывалось сообщение об ошибке Access violation. Ошибку исправили (#12112).
Исправлена ошибка «Cannot read properties of null (reading 'CheckConnected')», которая появлялась, если исключить узел в выходном порту дерева данных и попытаться выполнить команду «Загрузить из XSD/JSON» (#12084).
В настройках нормализации узлов Линейная регрессия, Логистическая регрессия, Нейросеть исходный диапазон контроля значений (минимум и максимум) не обновлялся при активации входного порта узла. Значения минимума и максимума диапазона переустанавливались только при выполнении (переобучении) узла, а после переобучения или выполнения, эти значения сохранялись и могли измениться только при следующем переобучении. Но значения исходного диапазона могут быть нужны пользователю и при ручной настройке диапазона. Теперь, если при настройке нормализации активирована опция «Ручная настройка» (в группе параметров «Контроль диапазона значений»), то появляется кнопка «Получить исходный диапазон», нажав на которую можно рассчитать минимальное и максимальное значение исходного диапазона (#6096).
Исправлена ситуация, когда, предположительно при недостатке оперативной памяти на клиенте, в процессе создания узла путём перетаскивания ошибочно создавалось множество его дубликатов (#10714).
При выполнении Предпросмотра в узле Импорт из базы данных для MySQL с сервера запрашивался весь набор данных, когда в запросе использовались параметры, поэтому Предпросмотр загружался медленно. Внесли исправления (#5023).
В некоторых случаях при формировании URL запроса в режиме Замена, URL терял часть данных. Например, при запросе https://exc.com/api/v2.0/Dataset(:id) итоговый URL формировался как https://exc.com/api/v2.0/value1%29, т.е. терялась часть сегмента со значением Dataset%28. Ошибку исправили (#12105).
Исправлена ошибка «Избыточное число разделителей "." имени объекта», которая возникала при подключении к базе данных через ODBC, если в имени таблицы содержался символ .. Ошибка регрессионная, появилась в версии 7.3.1 (#12123).
В узлах импорта с автоматическим формированием метки, находящихся внутри Подмодели, переменные, поданные через порт Подмодели и используемые в логике выполнения узла или для задания его настроек, не сохранялись после повторного открытия пакета (вместо переменной использовалось конкретное значение). Внесли исправления (#12116).
Устранили утечки памяти при закрытии вкладок Loginom Studio, в Калькуляторе из-за не удаляющихся редакторов кода, а также в редакторах SQL-запроса, в панелях «Компоненты» и «Подключения» и некоторых других местах, где использовались зоны Drag’n’Drop (#11808, #12073, #12074).
Если во входном порту узла создать переменную или поле с одинаковым значением Имени и Метки, а затем изменить Имя, а Метке вернуть прежнее значение (при изменении Имени Метка меняется автоматически), то после сохранения изменений и повторного открытия настроек порта пользователь видел, что Имя и Метка имеют одинаковое значение (значение Метки совпадает с новым значением Имени). Ошибочное поведение исправили (#11721).
Если заблокировать сессию локального пользователя или пользователя с LDAP аутентификацией (горячие клавиши Ctrl+Alt+L), то на экране блокировки оставалась кнопка «Войти через OpenID» (если такой способ аутентификации не отключен в конфигурационном файле server.json). При нажатии на нее заново производилась аутентификация на стороне OpenID провайдера и создавалась новая сессия, а старая сессия закрывалась (с предупреждением о том, что изменения не сохранены). Внесли изменения, кнопка «Войти через OpenID» не отображается на странице «Вход» в случае блокировки сессии пользователя. Это не создаст проблем для пользователей с OpenID аутентификацией, т.к. для разблокировки сессии такого пользователя не нужно вводить пароль (#11791).
Если в сценарии любым способом скопировать узел (но не вставлять его в область построения сценария), закрыть вкладку «Сценарий», а затем закрыть пакет, то возникала ошибка «СООБЩЕНИЕ: b.OnClear is not a function», а пакет не закрывался. Ошибку исправили (#12068).
При тестировании настроек OpenID возникала ошибка «Токен не содержит клейм folders», если в токене доступа клейм списка ролей или клейм списка общих папок не являлся массивом (например, "folders": "a" вместо "folders": ["a"]). Такая ошибка могла возникать при использовании Active Directory Federation Services в качестве компонента обеспечивающего единый вход (SSO). Внесли исправления (#12122).
Исправлена ошибка «Клиентский прокси-объект финализирован», которая возникала при попытке закрыть пакет, если в буфере находились скопированные узлы, которые после копирования были удалены из сценария (#12069).
Если ко второму выходу узла Фильтр строк подключено 2 узла, и они активировались одновременно, то могла возникать ситуация, когда у одного из узлов, подключенных к Фильтру строк, на выходе отсутствовали поля, а метка, показывающая количество строк в выходном порту, содержала знак ?. Ошибку исправили (#12079).
Исправлено дублирование полей в производном узле при отключении автосинхронизации. Ошибку можно было получить, выполнив следующие шаги:
В настройках порта узла Цикл все входные поля дублировались. Если активировать Цикл, то в выходном наборе данных поля тоже дублировались (#12043).
Если два узла Узел-ссылка были настроены на один и тот же узел, то при открытом мастере настройки одного из Узлов-ссылок переход в сценарий без выхода из мастера, удаление исходного узла и последующая попытка закрыть мастер настройки приводили к ошибке «Cannot read properties of null (reading 'Status')». Ошибку исправили (#12020).
Исправлена ошибка «Cannot read properties of undefined (reading 'value')», которая возникала, если после настройки Цикла с игнорированием ошибок в режиме «Заданные итерации» с количеством итераций -1 на выходном порте Цикла выбрать пункт «Настроить порт» (#12120).
В поставку Loginom Personal на Linux включен драйвер Guardant, необходимый для работы USB-ключа лицензионной защиты (#12061).
Добавили вывод в stderr текста ошибки проверки лицензии при запуске сервера (#11643).
В мастере настройки компонента Объединение автоматическое сопоставление входных полей теперь выполняется в 2 этапа: сначала сопоставление происходит по совпадению имени и типа данных и, если сопоставить поля не удалось, то по совпадению метки и типа данных.
Такой способ сопоставления полей доступен:
В случае включения чекбокса у конкретного поля сопоставление происходит в 3 этапа:
В мастере настройки Подключения SQLite увеличено поле «База данных в памяти» в случае задания этого параметра через переменную. Ранее Имя и логическое значение переменной не помещались полностью в отведенное поле (#12024).
Оптимизирован процесс экспорта данных в Хранилище Deductor Warehouse, данные теперь загружаются быстрее.