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

18 августа 2021
0 комментариев

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

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

Loginom Server: при одновременном завершении нескольких сессий с взаимосвязанными пакетами могла возникать ошибка «Значение индекса параметра Items вне диапазона», которая записывалась в лог сервера (#8470).

Loginom Server: при использовании веб-сервера Apache с конфигурацией, создаваемой по умолчанию, не работало подключение через Web Socket Proxy. Ошибка была связана с тем, что в создаваемом файле env.conf параметр WS_PROXY_URI был задан как ws/. Корректное значение параметра – app/ws/ (#8544).

SOAP-запрос: если WSDL-схема содержала два элемента с одинаковым именем, один из которых являлся корневым, то при отправке запроса возникала ошибка «XSD-схема на входе не соответствует настройкам обработчика!» (#6179).

Быстрый просмотр: в детализации Быстрого просмотра значения элементов с типом «Переменный» отображались как (#8630).

Выполнение узла: если в настройках «Выполнения узла» в качестве выполняемого выбирался узел, для которого ранее порядок выполнения ранее был задан таким образом, что узел «Выполнения узла» должен выполниться раньше выбираемого узла, то возникала ошибка «Переход запрещен. Циклические связи между узлами запрещены». Эта же ошибка могла возникать при открытии пакета, содержащего подобную конфигурацию узлов. Такая ситуация не является циклической зависимостью, так как при «Выполнении узла», в отличии от «Узла-ссылки», используется только конфигурация узла, а данные на вход могут подаваться отличные от тех, которые используются в базовом узле (#8614).

Дата и Время: при преобразовании дат в стоковый формат отсутствовали ведущие нули для недели года, недели квартала, дня года и дня квартала. Формат по умолчанию для Дня месяца сделан с ведущим нулем. Формат по умолчанию для Даты и Времени сделан Фиксированный ("2021-01-30""23:59:59""01:01:01") (#8595).

Импорт из Deductor Warehouse: если пакет с настроенным импортом из Deductor Warehouse сохранить и повторно открыть, то при попытке выполнить узел импорта возникала ошибка «Deductor Warehouse: Не указан объект Хранилища данных» (#8523).

Импорт из Deductor Warehouse: если при проектировании в Процесс включили несколько раз одно и то же Измерение и изменили метку, то в мастера импорта в дереве параметров эти Измерения имели одинаковые названия, при этом после переноса таких Измерений в область Полей, их подписи отображалась корректно (#8556).

Импорт из PostgreSQL: при использовании в запросе одного и того же параметра более одного раза возникала ошибка "Invalid parameters specified" (#8587).

Качество бинарной классификации: при копировании в буфер обмена данных из матрицы ошибок к значениям в столбце Классифицировано добавлялся лишние символы % (#8638).

Конечные классы: при переходе в мастере настройки назад со страницы настройки разбиения, а затем обратно, если изменялись настройки, влияющие на количество классов, то на страницах мастера продолжало отображаться предыдущее количество классов. Также это могло приводить к возникновении ошибок «Переход запрещен Невозможно использовать начальные классы в качестве разбиения для столбца ... Слишком много уникальных значений» или «Значение 0 параметра "Index" вне диапазона [-1; -1]» при переходе между страницами мастера настройки (#8282, #8582, #8584, #8668, #8700).

Конечные классы: при объединении классов с непрерывным типом данных некорректно определялись верхние и нижние границы обновленных классов (#8577).

Конечные классы: в режиме редактирования разбиения всегда были активны кнопки «Объединить с предыдущим» и «Объединить со следующим». Если после объединения классов, нажать на одну из кнопок, то происходило объединение классов, несмотря на то, что ни один из классов не был выделен. Теперь при включении редактирования явно отображается выделенный класс, а кнопки «Объединить с предыдущим» и «Объединить со следующим» становятся неактивными, если действие невозможно выполнить (#8578).

Куб: если после импорта из Deductor Warehouse или LGD-файла, в котором для полей были заданы назначения по умолчанию Группа, создавался визуализатор Куб и для полей с назначением по умолчанию Группа были настроены отображаемые факты, а затем добавлен вычисляемый факт на основе выбранных ранее для отображения фактов, после чего, скрывались факты, используемые при расчете вычисляемых фактов, то после сохранения и повторного открытия пакета вычисляемые факты не рассчитывались (#5803).

Куб: при сохранении пакета не сохранялся порядок полей, перенесенных в область фильтрации Куба (#8490).

Куб: если количество измерений в колонках было больше, чем количество колонок в кросс-таблице, то при экспорте часть меток измерений не отображалась. Такая ситуация могла возникнуть, если было отключено отображение итогов в колонках (#8639).

Куб, Подмодель: если внутри базовой Подмодели у одного из узлов был настроен визуализатор Куб с настроенной сортировкой по одному из столбцов, то при попытке настроить производную Подмодель возникала ошибка "Атрибут __baseName не существует" (#8536).

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

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

Подключения к БД FireBird,Interbase: после разрыва соединения с сервером базы данных не восстанавливалось соединение при повторной активации подключения (#8615).

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

Подмодель: если после создания производного компонента и создания производного узла, изменялась базовая Подмодель (например, внутрь подмодели был добавлен еще один узел), то при попытке активировать производный узел возникала ошибка «Внутренние узлы Подмодели заблокированы». Ошибка возникала в версии 6.4.2 (#8629).

Таблица: в окне настройки фильтра в визуализаторе Таблица для полей типа Дата/Время при выборе условий первый / не первый или последний / не последний не определялось и не сохранялось значение параметра Базовая дата интервала (#8648).

Таблица в дерево: если не получилось автоматически сопоставить входные и выходные поля, то после настройки узла возникала ошибка «Таблица в дерево: Выходному узлу ... не сопоставлен входной узел» и для исправления ошибки требовалось зайти в настройку выходного порта. Теперь, если при настройке узла возникает такая ситуация, открывается страница «Настройка соответствия между деревьями данных» (#8659).

Узел-ссылка: при сохранении пакета, содержащего Узел-ссылку, могла возникать ошибка «Узел "..." заблокирован», если в параллельной сессии выполнялся узел, использующий данные выходного порта исходного узла, на который был настроен Узел-ссылка (#8680).

Файловое хранилище: если новые каталоги стали доступны пользователю во время его текущей сессии, то при попытки перейти в такой каталог, пользователь получал ошибку "Cannot read property 'expandAsync' of undefined". Такая ситуация могла, например, возникнуть, если пользователю предоставлял доступ другой пользователь, были изменены права доступа к каталогам через панель Администрирование, или новый каталог был создан через диалог сохранения файла (#5347, #6032, #6423, #8022).

Файловое хранилище: если из каталога на уровень вверх или уровень вниз перемещался внутренний каталог, то при попытке открыть первый каталог возникала ошибка «System Error. Code: 3. Системе не удается найти указанный путь» (#6674).

Файловое хранилище: если после копирования каталога переименовать один из каталогов, содержащих копируемый каталог, то при вставке возникала ошибка «System Error. Code: 3. Системе не удается найти указанный путь» (#7082).

Файловое хранилище: если загрузить, а затем удалить файл, то невозможно было повторно загрузить с таким же именем до завершения сессии приложения. Ошибка наблюдалась в браузерах на базе Chromium, в Internet Explorer и в Safari (#7108, #8058, #8499).

Файловое хранилище: при переходе из текущего каталога в родительский, выделение устанавливалось на "..", а не на каталог, из которого вышли. Из-за неправильной установки фокуса мог некорректно работать функционал копирования–вставки через горячие клавиши (#8023, #8516).

Файловое хранилище: при попытке открыть пакет через символическую ссылку на файл, физически расположенный в сетевой папке, из-за невозможности определить дату модификации файла, возникала ошибка «Системе не удается найти указанный путь» (#8452).

Файловое хранилище: из дерева каталогов не удалялась удаленная через «Вырезать–Вставить» папка. При попытке перейти на нее в дереве каталогов возникала ошибка «System Error. Code: 3. Системе не удается найти указанный путь» (#8518).

Файловое хранилище: если перейти в папку файлового хранилища, ранее открытую в другой вкладке, а затем попытаться закрыть вкладку с ранее открытой папкой нажатием на X (крестик), то возникала ошибка "Cannot read property 'ActiveLoadersCount' of undefined" или "this.FFileSenderManager is undefined" (#8529).

Фильтр строк: при повторном заходе в мастер фильтрации метка на плитке с фильтром по временному промежутку отображалась не полностью, если текст был длинный. Например, если было выбрано условие «первый день от текущей даты» (#8633).

Фильтр строк: было невозможно настроить два и более условий по временному промежутку (первый/не первый или последний/не последний) (#8634).

Цикл: при активации параллельного Цикла, содержащего вложенную Подмодель и Узел-ссылку, ссылающийся на узел, находящийся внутри Подмодели, могла возникать ошибка «Узел "Цикл" заблокирован». Чем больше итераций было выбрано в настройках Цикла, тем выше была вероятность возникновения ошибки (#8531).

Экспорт в PostgreSQL: при попытке экспорта строк в поля xml или json возникала ошибка «колонка "..." имеет тип ..., а выражение - character varying». Если ранее возникала ошибка, то после обновления необходимо повторно пройти мастер настройки экспорта (#8585).

Ядро платформы: в случае, если Подмодель содержала Узел-ссылку, ссылающийся на другой узел внутри этой подмодели, а порядок выполнения для Узла-ссылки был связан со входным и выходным портом содержащей его Подмодели, то процесс активации Подмодели мог зависнуть и его невозможно было отменить. Если Подмодель выполнялась в Цикле, то это повышало вероятность возникновения ошибки (#8514).

Повышение информативности

Импорт из Deductor Warehouse: при попытке выполнить ненастроенный узел импорта возникала неинформативная ошибка. Теперь появляется предупреждение, что не выбран объект хранилища данных (#8515).

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

Удобство использования

Python: функция builtin_pandas_utils.to_data_frame доработана таким образом, чтобы была возможность создания pandas.DataFrame по целочисленным и логическим столбцам, содержащим пропуски. Если при заполнении массивов numpy возникает необходимость обработки пропущенных значений целочисленного и логического типов, то используется вещественный тип, а пропущенные значения преобразуются в NaN (np.nan). Ранее при попытке передать в функцию builtin_pandas_utils.to_data_frame таблицу, содержащую целочисленный или логический столбец с пропущенными значениями, возникала ошибка "...int() argument must be a string, a bytes-like object or a number, not 'NoneType' " (#8522).

Импорт из Deductor Warehouse: у выходных столбцов отключена автоматическая инициализация «Назначения по умолчанию» на основе типов объектов хранилища данных. Ранее для Фактов устанавливались «Назначения по умолчанию» равное Показатель, а для Измерений - Группа. У Пользователя есть возможность самостоятельно установить для выходных столбцов «Назначения по умолчанию». Прежнее поведение могло, в том числе, приводить к ошибкам в визуализаторе Куб #5803 (#8506).

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

Логирование: в сообщения лога для событий начала и окончания выполнения узла добавлен GUID (уникальный идентификатор) узла (#8667).

Файловое хранилище: при выполнении функционала «Вырезать-Вставить» вместо копирования и удаления исходной папки теперь используется операция перемещения. Ранее операция «Вырезать-Вставить» могла занимать продолжительное время, а также при копировании каталогов с объемом больше 2 Гб можно было в процессе копирования на соседней вкладке вырезать подкаталог копируемого каталога (#6031, #6366).

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

Файловое хранилище: в корне файлового хранилища сделаны неактивными действия, которые невозможно было выполнить: Загрузить, Создать каталог, Скачать, Переименовать, Копировать, Вставить, Вырезать, Удалить (#8542).

Ядро платформы: количество рабочих потоков сделано динамическим. Если процессор загружен меньше, чем на 80% и есть очередь процессов на выполнение, то количество рабочих потоков увеличивается, пока загрузка процессора не превысит 80%. Если дополнительные потоки простаивают, то они постепенно удаляются, чтобы снизить потребление оперативной памяти. Ранее, если на сервере было одновременно запущено большое количество сценариев, содержащих узлы, которые ожидают ответы от внешних приложений или сервисов (Выполнение программы, REST-запрос, импорт из Баз данных и тому подобные), то могла наблюдаться ситуация, когда процессор загружен значительно меньше 100%, но новые процессы не выполняются (#7255).

#loginom#release notes#6.4

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