Loginom 7.0.2 — описание изменений

27 марта 2023
1 комментарий

В новой версии большое количество исправлений в визуализаторах, компонентах импорта и экспорта. Исправлены ошибки, появившиеся в Loginom 7.0. В импорте из текстового файла появилась поддержка импорта многострочных значений и разбора дат в формате ISO 8601 со смещением времени.

Внимание: При обновлении на версию Loginom 7.0 (и выше) с любых версий 6.хх необходимо провести обновление лицензии. Для SP-ключей — это активация нового файла лицензии, для USB-ключей — это обновление прошивки. Новые лицензионные ключи необходимо получить до начала запуска процедуры обновления.

Исправление ошибок

ARIMAX: В выходном порту «Коэффициенты модели» неправильно отображалось название полей при использовании нормализатора с опорной категорией (например, Индикатор). Ошибку исправили (#9693).

Loginom Desktop: При загрузке окна приложения в максимальном состоянии, из-за ошибки во внешней библиотеке, заголовок окна выходил за верхний край экрана. Чтобы избежать такой ситуации, приложение всегда запускается в режиме обычного окна.

Loginom Desktop: Второй и последующие экземпляры приложения запускались с некоторой задержкой. Ситуацию исправили.

Loginom Integrator: Исправлена ошибка "Object reference not set to an instance of an object", которая возникала, если в Интегратор через REST-запрос в порт типа Таблица передавался массив Rows, содержащий элемент, равный null (#9795).

Loginom Integrator: Из Loginom Integrator в Loginom Server неверно передавалось значение параметра типа Дата/Время, если в запросе с помощью постфикса Z указан часовой пояс. Например, для GET запроса со значением параметра 2015-07-31T18:30:00Z, в ответ для UTC+03:00 приходило значение 2015-07-31T18:30:00, вместо ожидаемого 2015-07-31T21:30:00 (#9650).

Python: При подготовке выходной таблицы по pandas.DataFrame столбцы получали вид данных «Неопределённый», тогда как вид данных должен инициализироваться в соответствии с типом данных. Ошибку исправили (#9775).

Python: Значения целого типа неправильно записывались в выходной столбец переменного типа при выполнении кода в отдельном процессе. А при выполнении аналогичного кода внутри процесса Loginom, пользователь получал сообщение: "LoginomError: Преобразование переданного объекта Python в значение переменного типа не поддерживается". Ошибки исправили (#9692, #9689).

Workflow: При наведении курсора на элемент выбора стиля Заметки элемент выделятся рамкой (#9718).

Визуализатор Диаграмма: Для столбчатой диаграммы в режиме накопления серии отображались в обратном порядке. Ошибка наблюдалась в пакетах, подготовленных в более ранних версиях Loginom и открытых в Loginom 6.5.1 и старше. Внесли исправления (#9244).

Визуализатор Качество данных: В гистограмме категориальных данных в поле Метка отображалось слово «Пробелы» вместо значений. Проблема наблюдалась не для всех текстовых полей и не на всех версиях. Ошибку исправили (#9772).

Визуализатор Качество данных: Исправлена ошибка в детализации данных для выбросов в полях с непрерывным видом значений. Ранее при наличии среди значений поля с непрерывными данными как выбросов, так и экстремальных значений, в детализации выбросов в списке могли оказаться и экстремальные значения (#9780).

Визуализатор Качество данных: Если минимальное строковое значение содержало символы кириллицы, то в визуализаторе при отображении статистик для дискретных данных, открытие окна с гистограммой приводило к полному зависанию Loginom (#9682).

Визуализатор Качество данных: Не обновлялись значения показателей при изменении набора данных. Ситуацию исправили (#9227, #9680).

Визуализатор Качество бинарной классификации: Исправлено построение графиков NPV (Точность отрицательного прогноза) и OPR (Усредненная точность прогноза) для граничных случаев: для NPV, когда есть только «события», а для OPR — когда есть только «события» или только «не-события».

Визуализатор Куб: Исправлена ошибка Access violation, которая возникала при добавлении большого количества полей в область измерений, после получения сообщения «Выбрано слишком много измерений» и при дальнейшей попытке развернуть измерение (#9238) .

Визуализатор Куб: Когда в область измерения Куба последовательно добавляется большое количество полей, пользователь может получить сообщение «Выбрано слишком много измерений». После этого последнее добавленное в область измерений поле отскакивало в список полей, но при этом выглядело, как поле которое находится в области измерений (выделялось жирным шрифтом). Исправили ошибочную отмену перетаскивания поля. После предупреждения «Выбрано слишком много измерений» поле остается в списке измерений (#9655).

Визуализатор Куб: При сортировке в Кубе по отображениям «Процент по вертикали» и «Процент по горизонтали» порядок ячеек в некоторых случаях мог быть некорректным. Ситуацию исправили (#9468).

Визуализатор Куб: Если деактивировать узел, на котором настроен Куб, находящийся в режиме «Приостановить автовычисление», а затем снова активировать Куб и открыть фильтр измерений, то пользователь видел в окне фильтра измерений пустой или неверный список измерений, кроме того, могла возникнуть ошибка Access violation. Ошибочное поведение исправили (#9660).

Визуализатор Куб: Значение факта 9223372036854775807 при агрегации Максимум ошибочно отображалось как -1. Ситуацию исправили (#9779).

Визуализатор Куб: При форматировании значений измерений целого типа большие значения (более 9007199254740991) отображались с потерей точности. Ошибку исправили (#9778).

Визуализатор Куб: При тестировании формата в окне Форматирование не учитывалась локаль пакета. Ситуацию исправили (#9777).

Визуализатор Куб: В окне Настройка измерений в качестве свободных полей, которые можно добавить в измерения, не учитывались поля, которые ранее использовались как факты и были скрытые в кросс-таблице. Ошибку исправили (#9727).

Визуализатор Статистика: Если отменить процесс «Рассчитать порядковые статистики» после 50% процентов выполнения, то кнопка, запускающая этот процесс, оставалась в неактивном состоянии. Ошибочное поведение исправили (#8662).

Визуализатор Статистика: Исправлена ошибка в алгоритме расчета медианы, верхнего и нижнего квартилей. При вычислении индекса порядковой статистики допущена ошибка на единицу. Ошибочные расчеты были для наборов данных, в которых больше 1000 строк (#9786).

Визуализатор Статистика: Исправлено отображение значения метки для непрерывного поля в гистограмме визуализатора. Если поменять локаль пакета (например, на английскую) и отобразить гистограмму для непрерывного Вещественного или Дата/Время поля, можно было заметить, что значение отображается в локали по умолчанию, а не в выставленной для пакета.

Визуализатор Таблица: После настройки форматирования для колонки с целыми числами, числа больше 2^57 отображались в экспоненциальном формате. Ошибочное поведение исправили (#6528).

Визуализатор Таблица: Убрали лишнюю подготовку данных при повторной активации Таблицы, деактивированной во время сортировки или фильтрации (#9702).

Визуализаторы (Таблица, Статистика и Диаграмма): Исправлены различные ошибки, в том числе ошибки Access violation, которые возникали, если деактивировать узел во время выполнения в визуализаторе асинхронных вычислений, выполняемых в отдельном потоке. Ошибки возникали, например, если на workflow деактивировать узел с большим набором данных, при открытом в отдельной вкладке настроенном на этом узле визуализаторе:

  • Таблица, в которой запущена фильтрация и сортировка данных.
  • Статистика, в котором идет расчет порядковых статистик и уникальных значений, запущенный через команду на панели инструментов.
  • Диаграмма, в котором в область построения диаграммы перетащили новое поле (#5766).

Визуализаторы: Возникали различные ошибки, в том числе ошибки Access violation, при деактивации визуализатора с открытой детализацией, когда визуализатор детализации активируется (#9746).

Выполнение узла: Исправлена ошибка Access violation, которая возникала при одновременном восстановлении конфигурации двух узлов Выполнение узла на одном workflow. Такая ситуация могла возникнуть, например, если два узла Выполнение, в которых снят флаг «Сохранять конфигурацию выбранного узла», выполняют одну и ту же Подмодель и их выходные порты подключены ко входу одного и того же узла Объединение. Вероятность получения ошибки сильно зависела от операционной системы и аппаратного обеспечения (#9563).

Выполнение узлаЦикл: Исправлена ошибка Access violation, которая возникала при удалении узлов Выполнение и Цикл с открытым инспектором свойств (#9751).

ГруппировкаТаблица в переменныеВизуализатор Статистика: Исправлена ошибка Access violation, которая возникала при расчете медианы для поля, значения которого таковы, что в диапазон [среднее - СКО; среднее + СКО] не попадало ни одно значение. Такая ситуация возможна, например, из-за потери точности при вычислении среднеквадратического отклонения (#8721, #9774).

Дерево в таблицу: Мастер настройки игнорировал выбор узла, который является массивом, но не является контейнером. После внесенных исправлений узел массива, который не является контейнером, и «Глобальный индекс узла» можно выбирать отдельно (т.е. флаг выбора у одного из этих узлов не влияет на флаг выбора другого). Мастер настройки сохраняет флаг выбора узла, который является массивом, но не контейнером, и этот флаг не сбрасывается при завершении настройки (#9263).

Замена: При добавлении новой строки в таблицу замен, только что добавленная замена не отображалась. Чтобы данные отобразились, нужно было переключиться на другое поле, а затем вернуться обратно. Ошибочное поведение исправили (#9675).

Замена: Исправлена ошибка "Cannot read properties of null (reading '1')", которая могла возникнуть при изменении ширины столбца «Способ Замены» в мастере настройки. Ошибка воспроизводилась редко. В некоторых случаях при изменении ширины столбца «Способ Замены» полностью блокировалось окно мастера настройки. Ошибку исправили (#9453).

Замена: Колонки таблицы замен меняли свои размеры при добавлении большого количества замен, при прокрутке списка полей (если список полей большой), после многократного нажатия на кнопку «Сортировать» при наличии более 2-х полей точного совпадения. Ошибочное поведение исправили (#6139).

Импорт из базы данных: В редакторе SQL-запросов мастера настройки импорта из БД при повторном открытии мастера настройки удалялись символы перевода строки в тексте SQL-запроса. В результате запуск узла заканчивался ошибкой выполнения запроса к БД. Регрессионную ошибку, которая появилась в версии 7.0.0, исправили (#9652).

Импорт из базы данных: Исправлена ошибка Access violation, которая иногда возникала при определении назначения управляющей переменной узла Импорт из базы данных внутри Цикла (#8685, #9467).

Импорт из XML-файла: Исправлена ошибка "Невозможно определить соответствующий схеме сиблинг", которая возникала при импорте XML с необязательными группами элементов. Если XSD схема содержала группу выбора (choice), у которой есть необязательные элементы (с minOccurs="0"), но сама группа не была отмечена как необязательная, то xml, содержащие пропуски такой группы, выдавали ошибку при импорте. Такую ошибку можно было получить, например, при разборе XML ответа сервиса Пенсионного фонда России (#9643).

Импорт из XML-файла: Если XML документ содержал элементы, которые в схеме были обозначены как any, то при импорте возникала ошибка: "Превышение максимального количества появлений элемента "/person{}/any" (разрешено 0)". Ошибка появилась в версии 7.0.0. Внесли необходимые исправления (#9679).

Импорт из XML-файла: Не работал импорт Даты/Времени без смещения, если задано смещение временной зоны по умолчанию, а также импорт Даты/Времени со смещением. Ситуацию исправили (#9748).

Импорт из Текстового файла: Числа до 12 включительно менялись местами с месяцами при указании в мастере настройки формата даты yyyy/mm/dd (#9676).

Квантование: Исправлено неправильное формирование меток интервалов квантования при использовании подстроки из метки поля, заданной кириллицей. Если для набора данных, в котором метки полей заданы на русском языке, в узле Квантование на этапе настройки компонентов квантования был задан шаблон меток интервалов, содержащий ключ FD (например %FD[5] — метка интервала содержит первые 5 символов метки поля), то на выходе узла в столбце меток интервалов, вместо ожидаемых символов из метки поля, была другая подстрока. Ошибка появилась в версии 7.0.0 (#9719).

Конфигурация: В пакетах, созданных в Loginom 6 и открытых в Loginom 7, в редакторе Калькулятора отступы в выражениях, заданные Tab'ом, заменялись на единичный пробел. Ситуацию исправили (#9661).

Нейросеть (классификация): В повторно открытом пакете с настроенной нейросетью попытка переобучить узел приводила к появлению сообщения об ошибке: "В валидационном наборе данных должна быть как минимум одна строка". А в мастере настройки узла размер валидационного множества равнялся 0. С такой же проблемой можно было столкнуться при переобучении клонированного узла Нейросеть (классификация). Потерю размера валидационного множества после загрузки конфигурации нейросети исправили (#9739).

Подключение MS AccessПодключение ODBC: Устранили потерю данных при экспорте в базу данных строковых параметров, содержащих символы Unicode, которая появилась в версии 7.0.0 (#9669, #9668).

Подключение SOAP-сервиса: Не работали подключения, в которых указан источник WSDL по протоколу HTTP и WSDL-файл содержал импорты с относительным расположением файлов: <xsd:import schemaLocation="path1/xsd0.xsd" namespace="..."/>. Ошибку исправили (#9768).

Подмодель: Исправлена ошибка Access violation, которая возникала при выполнении пакета через Loginom Integrator, если метаданные не соответствовали текущей версии пакета. Ошибку можно было получить, например, если опубликовать пакет (Package1.lgp), после этого добавить опубликованной Подмодели несколько выходных портов, в которые приходят данные, и сохранить пакет под другим именем через меню «Сохранить как» (Package2.lgp). Затем удалить Package1.lgp, а Package2.lgp переименовать в Package1.lgp и выполнить через Loginom Integrator (#9584).

Приложение: Исправлена ошибка в функции преобразования даты/времени к строке. После внесенных исправлений для даты 30.12.1899 в строку выводится только время, а при преобразовании к OLE Automation Date в целой части получается 0. Изменения коснулись Быстрого просмотра, предпросмотров в компонентах импорта, Калькулятор и Фильтр строк, а также всех редакторов значений для типов данных Дата/Время и Переменный (настройка переменных, компоненты Фильтр строкЗамена и др.) (#9715).

Цикл: При выполнении цикла вида Групповая обработка с большим количеством групп, настроенного на узел, для которого рассчитывается статистика по входному набору данных (например, Редактирование выбросов) наблюдалась длительная блокировка workflow маской с надписью «Загрузка». Маска оставалась на workflow даже поле завершения работы цикла. Приложение при этом оставалось работоспособным, можно было перейти к другому разделу (через адресную строку или меню), после чего блокировка workflow исчезала. Проблему решили, при выполнении цикла workflow не блокируется (#9796).

Экспорт в Excel-файл: Даты 30.12.1899 и 31.12.1899 экспортировались в Excel в виде числа с целой частью равной 0. При дальнейшем импорте этих данных в Loginom обе даты выглядели как 31.12.1899. Ошибку исправили (#9763).

Экспорт в Excel-файл: В файле, который был создан в результате экспорта данных из Loginom в Excel, даты отображались некорректно (порядок дней и месяцев не соответствовал формату). Проблема наблюдалась в пакетах, подготовленных в более ранних версиях и открытых в Loginom 7.0.1. Ошибку исправили (#9694).

Экспорт в Excel-файл: Исправили ошибку "Имя листа excel не может быть длиннее 31 символа", которая возникала в мастере настройки экспорта в Excel, в случае, если в поле «Имя листа» была строка длиннее 17 символов (#9665).

Экспорт в XML-файл: Не работала настройка «Наличие временной зоны». Вне зависимости от того, какой вариант настройки «Наличие временной зоны» выбран, всегда работало, как при варианте «Не указывать». Ситуацию исправили (#9758).

Экспорт в базу данных: Исправлена ошибка "Invalid precision value", которая возникала при попытке экспорта в MS Access таблицы с текстовым полем длиной более 255 символов (#9500).

Улучшения

Loginom Integrator: В инсталляторе Loginom Integrator на странице настроек поле UnixSocket теперь располагается выше поля host. Если значение поля host установить отличным от localhost или 127.0.0.1 и, если Unix Socket равен значению по умолчанию, то поле Unix Socket очищается (#9657).

Loginom Server: После остановки сервера Loginom на ОС Linux с активным соединением по веб-сокету, его перезапуск был возможен по истечении ~ 60 с. Произвели необходимые доработки, чтобы перезапуск службы Loginom на Linux мог выполняться без предварительного ожидания, в том числе в автоматическом режиме (#9691).

Workflow: Реализовано сохранение позиций и размера блока комментария к узлу при его перемещении, изменении размеров, раскрытии и закрытии, а также при сохранении пакета (#335).

Визуализатор Куб: Сокращено время перестройки Куба, убрана задержка при добавлении/удалении измерения или факта в режиме «Приостановить автовычисление», кэширование фактов стало избирательным (неиспользуемые факты не кэшируются) (#6763, #6816, #7139).

Визуализатор Таблица: Оптимизирована загрузка данных в визуализаторе после нажатии кнопки «Отмена» в окне Форматирование. Ранее после отмены действий в окне Форматирование обновление Таблицы происходило с задержкой (#8051).

Визуализаторы: Большие целые числа (больше 2^53-1) отображаются без потери точности (#7953).

Зашифрованный пакет: В случае, если возникали проблемы с расшифровкой зашифрованного пакета, пользователь получал сообщение с текстом: "Неверный пароль". Заменили сообщение на более информативное: "Текущая версия приложения не может расшифровать пакет...: неподдерживаемый способ шифрования пакета" (#7834).

Импорт из текстового файла: Появилась поддержка разбора дат в формате ISO 8601 со смещением времени. Если в импортируемых данных указано только время (дата 30.12.1899) с указанием смещения относительно UTC, то при преобразовании в тип Дата/Время применяется смещение во временной зоне приложения, а также учитывается история переводов времени (#9747).

Импорт из текстового файла: Добавлена поддержка импорта многострочных значений. При импорте из текстового файла значения, в т.ч. строки, могут быть обрамлены кавычками. Если внутри строки обнаружено нечетное число кавычек или других ограничителей строк, строки будут считываться дальше до нахождения парной кавычки, и будут соединены в одну. Символы перевода строк, находящиеся внутри кавычек, войдут в итоговую строку. Подсчет числа кавычек в строке производится таким образом, чтобы разбор плохо сформированных пользовательских строк был максимально корректным (как в Excel). В случае, если парную кавычку не удалось найти, работа импорта из текстового файла продолжится, а в общий лог будет записано предупреждение (#100).

Импорт из текстового файла: Добавлена поддержка разбора дат, в которых месяц записан как в именительном, так и в родительном падеже. Оптимизирован алгоритм разбора дат, что положительно отразилось на производительности – в некоторых случаях даты разбираются в 10 раз быстрее (#9627).

Калькулятор: Упростили «шаблон» функций Find, Replace, Round, который задается при их вставке в выражение Калькулятора:

  • Find — убрана запятая, отделяющая последний необязательный параметр Порядок, т.к. он используется редко.
  • Round — убрана запятая, отделяющая последний необязательный параметр Аргумент2 (количество цифр после запятой), т.к. он используется нечасто.
  • Replace — убраны 2 запятые, по умолчанию параметры Заменять_все и Игнорировать_регистр не предлагается указывать.

Калькулятор: Функция StrZero стала зависимой от локали. При нестандартном использовании функции с вещественными числами (стандартное использование — с целым аргументом), десятичный разделитель будет взят из настроек локали пакета или сервера Loginom.

Калькулятор: Оптимизирована работа функций LeftRightSubstrStuff (#9724).

Подключение SQLite: имя файла для базы данных в памяти может содержать любые символы, кроме: # ? ; ' ". Ранее идентификатор БД in memory мог состоять из: символов латинского алфавита, цифр, и символов / _ . (#9688).

Подключение набора XSD-схемы: Поддерживается импорт схем, в которых schemaLocation и namespace указаны на кириллице. Ранее разбор прерывался при обнаружении не ASCII символа и, если вся строка не была разобрана до конца, то завершался с ошибкой (#9651).

Приложение: Преобразование некоторых вещественных чисел в строки происходит с потерей точности. Это связано с особенностями хранения дробных десятичных чисел в двоичной системе счисления. Внесли доработки, чтобы преобразование вещественных десятичных числе в строки производилось с меньшими потерями точности. Изменения коснулись работы компонентов Экспорт в текстовый файлЭкспорт в ExcelКалькулятор и др.

Приложение: При задании значения переменной или поля переменного типа (например, при задании условия в Фильтре строк) убрана возможность выбрать для этого значения переменный тип данных, т.к. для задаваемого значения можно однозначно указать тип данных (#9357).

Экспорт в XML-файлФормирование XMLSOAP-запрос: При преобразовании Даты/Времени в строку XML используется не фиксированное смещение времени, а смещение времени с учётом исторических временных поправок — переходов на летнее/зимнее время (#9755).

Элемент Фильтр/Поиск: При выполнении поиска с помощью элемента Фильтр/Поиск пропускаются пустые ячейки (ячейки, содержащие только неразрывный пробел).

#release notes#7.0#loginom

Смотрите также