Что нового в Loginom 7.2

В Loginom появился встроенный Планировщик задач и новый способ аутентификации пользователей по стандарту OpenID с использованием Access Token. Список компонентов для работы с деревьями данных пополнился Калькулятором (дерево). Файлы одинаковой структуры теперь можно импортировать в одном узле импорта, а при настройке импорта из базы данных можно задать условия фильтрации данных. В визуализаторе Куб поддерживается настройка нескольких диаграмм. Обновился список функций компонентов Калькулятор и Группировка, появились новые возможности в администрировании, а также в пользовательском интерфейсе.

Встроенный планировщик задач

Настраивать пакетный запуск сценариев по расписанию теперь можно в интерфейсе Loginom. Планировщик задач доступен в серверных редакциях и открывается через команду Главного меню (боковая панель) или через меню Навигация. На странице Планировщика пользователь с правами на проектирование сценариев может создать задание, расписание его выполнения и параметры запуска. Предусмотрен набор команд для управления записями планировщика, а также журнал событий для просмотра информации о статусе выполнения активных и завершенных сессий (журнал хранится на диске в базе данных SQLite). Для создания задач дополнительно нужны права на пакетное выполнение.

На странице Планировщика можно запускать задачи вручную (не по расписанию).

Планировщик

Новый способ аутентификации пользователей

Добавлена аутентификация пользователя по стандарту OpenID с использованием Access Token, и его авторизация согласно ролям и с правами на папки, взятыми из этого токена (т.е. можно получать информацию о ролях и правах пользователя Loginom из внешних систем). Новый способ аутентификации доступен в редакции Enterprise.

В разделе Администрирование появилась группа параметров для настройки OpenID. Если эти параметры не заданы, то аутентификация пользователя по стандарту OpenID не используется.

После задания параметров OpenID на странице Вход появится дополнительная кнопка «Войти через OpenID» (если в параметрах указано название OpenID провайдера, то текст на кнопке будет содержать это название вместо «OpenID»).

Страница «Вход»

После нажатия на эту кнопку пользователь будет переадресован на страницу системы управления идентификацией и доступом для ввода логина и пароля (технология единого входа или Single Sign-On).

Режим использования OpenID аутентификации можно задать в конфигурационном файле server.json через параметр openid:

  • если параметр имеет значение auto, то на странице Вход выполняется запрос значений параметров OpenID, установленных в разделе Администрирование, и в зависисмости от них добавляется кнопка «Войти через OpenID»;
  • если параметр имеет значение force, то сразу выполняется попытка перейти на страницу системы управления идентификацией и доступом для ввода логина и пароля, минуя страницу Вход;
  • если значение параметра none или false, то OpenID не используется, запрос конфигурации OpenID не выполняется.

Обновленный перечень переменных сессии

К Переменным сессии добавлены переменные, извлекаемые из токена OpenID. Токен доступа OpenID может содержать дополнительные сведения о пользователе, например, регион проживания и т.п. Эту информацию можно использовать в сценариях, поэтому некоторые клеймы из токена (данные из токена в виде пары имя клейма/значение клейма) добавлены в качестве переменных в узел Переменные сценария. Список переменных настраивается через Параметры OpenID в разделе Администрирование.

Новый компонент для работы с деревьями данных

В палитру стандартных компонентов добавлен Калькулятор (дерево данных). Узел на основе этого компонента на входе и выходе имеет порты типа Дерево, также есть необязательный порт входных переменных. Выражения в Калькуляторе (дерево) представлены плоским списком, иерархичность обеспечивается за счёт сложных имён Выражений. Элементы пути разделяются точкой. Значение Выражения задается JavaScript функцией, т.е. Калькулятор(дерево) работает только в режиме JavaScript.

В узле поддерживаются все функции Калькулятора (переменные) и несколько собственных:

  • Location() — возвращает путь от корня дерева до выражения.
  • Parent() — возвращает родительский узел текущего узла выражения.
  • ItemIndex() — возвращает индекс выражения внутри родительского узла-массива текущего выражения.
  • ItemCount() — возвращает число выражений внутри родительского узла-массива текущего выражения.
  • DisplayName(["ПутьУзла"]) — возвращает метку (отображаемое имя) по пути узла, переменной или выражения.

Небольшие изменения внесены и в другие компоненты для работы с деревьями. В мастерах настройки узлов Таблица в дерево и Дерево в таблицу:

  • используется новая иконка для узлов-контейнеров;
  • для узлов массивов добавлена иконка, которая также применяется в Калькуляторе (дерево) и портах Входное дерево данных, Выходное дерево данных.

Изменения в компонентах для работы с базами данных

При настройке подключения к базе данных можно включить опцию «Спрашивать пароль». В этом случае в интерактивном режиме работы при первой активации узла Импорта/Экспорта из базы данных (или при нажатии кнопки «Активировать» в мастерах настройки этих узлов) запрашиваются логин и пароль пользователя БД. В дальнейшем логин/пароль не запрашиваются до деактивации узла Подключения. Также логин/пароль нужно будет вводить при каждом тестировании подключения, если включена опция «Спрашивать пароль».

Если опция «Спрашивать пароль» включена, то указанный при настройке подключения к базе данных пароль не сохраняется. При этом в режиме пакетного выполнения, при выполнении узла через Loginom Integrator или Планировщик задач выполняется попытка подключения без пароля, а в лог записывается сообщение о том, что пароль не указан.

Если для подключения нельзя настроить пароль, настройка «Спрашивать пароль» не отображается.

При настройке импорта из базы данных можно задать условия фильтрации данных. В мастере настройки импорта появилась новая страница «Фильтрация данных».

Фильтрация данных в мастере настройки импорта из базы данных

Страница фильтрации является второй в мастере настройки импорта из БД. Она открывается, если выбран режим Выбор таблицы. При этом отсутствие условий фильтрации не считается ошибкой, если фильтрация не нужна, то можно перейти на следующую страницу мастера настройки. Функционал создания и редактирования условий фильтрации такой же как в компоненте фильтр строк, за исключением:

  • отсутствует возможность фильтрации по номеру строки;
  • отсутствует возможность получения списка уникальных значений для поля;
  • применение флага Учитывать регистр для строковых сравнений зависит от СУБД и/или от collation БД и/или collation таблицы. Например, в MS Access сравнение строк всегда производится без учета регистра.

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

Редактирование SQL-скрипта в мастере настройки экспорта в базу данных

В одном SQL-запросе можно выполнить несколько выражений (CREATE, INSERT, UPDATE, DELETE, DROP) для следующих баз: SQLite, PostgreSQL, MSSQL, MySQL, Oracle и Firebird (для Oracle и Firebird, если обернуть их в блок, а для Firebird также необходимо прописывать в конце with autonomous transaction для каждого выражения).

Добавлена возможность выполнить TRUNCATE для очистки таблицы при экспорте в базу данных. В мастере настройки появился новый тип экспорта — Выполнить TRUNCATE и заполнить данными. Он выполняет те же функции, что и тип Очистить таблицу и заполнить данными, за исключением того, что очистка таблицы выполняется c помощью операции TRUNCATE, вместо DELETE FROM. Если БД не поддерживает операцию TRUNCATE (SQLite, Firebird, Access), то этот вариант будет недоступен для выбора. Для всех БД, подключаемых через ODBC, данный тип экспорта доступен всегда, поскольку невозможно точно определить, поддерживает ли конкретная БД эту операцию. Однако при попытке выполнения может возникнуть ошибка, если база данных не поддерживает TRUNCATE.

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

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

В мастере настройки узла Экспорт в базу данных для ClickHouse, Oracle и ODBC можно указать число строк в пачке. Значение по умолчанию — 1000 (минимальное — 1, максимальное — 1000000). Увеличение размера пачки может значительно сократить время экспорта. Например, увеличение размера пачки c 1000 до 100000 может дать сокращение времени экспорта одного и того же набора:

  • в ClickHouse на ~ 54% (а для набора ontime более, чем в 3 раза);
  • в Oracle на ~ 42%;
  • в ODBC на ~ 23%.

Добавлена поддержка драйвера Microsoft OLE DB Driver 19 for SQL Server.

Добавлена поддержка "." в именах полей базы данных в узлах Импорт из базы данных (режим ­«Таблица») и Экспорт в базу данных.

Поддержка пула подключений в подключении 1С

В мастере настройки подключения к 1С появились настройки параметров пула подключений:

  • Размер пула — значение по умолчанию 10.
  • Тайм-аут (с) — значение по умолчанию 60.

Настройки пула подключений в 1C

При использовании пула подключений (Размер пула > 0) по завершении тайм-аута все неиспользуемые подключения в пуле будут деактивированы и соответственно, будут освобождены лицензии 1С. Одно подключение гарантированно, вне зависимости от тайм-аута, не разрывается при завершении всех узлов 1С Запрос. Оно разрывается только при деактивации самого узла Подключение 1С:Предприятие 8.

Важно: При интенсивной многопоточной нагрузке (выполнение 5 и более узлов 1С Запрос параллельно) даже после деактивации узла Подключение 1С:Предприятие 8 остаётся 1 активный пользователь с COM-соединением.

При активации Подключения 1С:Предприятие 8 выполняется только подготовка COM-коннектора (само подключение к 1С не выполняется).

Чтобы отключить пул подключений, нужно указать Размер пула 0.

Новые возможности импорта из файловых источников

В одном узле Импорт из текстового файла можно импортировать несколько файлов одинаковой структуры. В мастере настройки узла пользователь может выбрать несколько файлов, а также указать дополнительные колонки, которые будут содержать информацию о файле (например, имя файла, относительный путь и др.). Настройки мастера будут одинаковыми для всех файлов. При определении типов колонок учитываются строки из нескольких файлов.

Имя файла может содержать маску, в этом случае будет выполнен импорт всех файлов, соответствующих маске. Для задания маски применяется специальный символ * (например, /user/data/*.txt).

Аналогичный функционал добавлен и в Импорт из Excel-файла. На первой странице мастера настройки пользователь может выбрать несколько файлов для импорта (или указать маску *.xlsx), однако на странице мастера всегда будет отображаться только первый найденный файл (ограничение введено из-за особенностей импорта Excel). Все остальные настройки (именованный диапазон, самостоятельно указанная читаемая область и т.п.) также будут содержать данные для первого файла. Настройки, заданные на этой странице, являются общими для всех файлов, которые пользователь хочет прочитать. На этой же странице можно указать дополнительные колонки, которые будут содержать информацию о файле.

На второй странице мастера настройки отображаются данные из всех доступных файлов. Данные считываются из файлов, пока не будет превышен лимит, указанный в поле Кол-во строк для анализа. Настройка колонок осуществляется по данным из общего диапазона строк.

Дополнительные колонки, содержащие информацию о файле, будут добавлены к списку полей на третьей странице мастера настройки.

Новые возможности в компонентах для обработки данных

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

Мастер настройки узла Группировка

В мастер настройки узла Сортировка добавлена опция «Сравнивать с учётом локали» (по умолчанию включена). Если её отключить, то строки будут сравниваться бинарно, а не согласно локали пакета. Использование этой опции повышает скорость работы, в тех случаях, когда нет смысла выполнять сортировку с учетом локали, например, если строковое поле содержит только латинские буквы, цифры и спец символы. При одновременно отключенных опциях «Сравнивать с учётом локали» и «Учитывать регистр» в процессе сравнения строк регистр будет игнорироваться только у латинских букв.

В Калькуляторе расширен список доступных функций:

  • Среди математических появились функции округления вверх RoundUp(Аргумент, ЦифрПослеЗапятой) и вниз RoundDown(Аргумент, ЦифрПослеЗапятой), а также функция Div(Делимое, Делитель), возвращающая частное целочисленного деления Делимого на Делитель.

  • Логические дополнила функция NVLF(ЧисловоеВыражение[, Значение_по_умолчанию = 0]), которая возвращает значение ЧисловоеВыражение, если оно не равно Null, и Значение_по_умолчанию в противном случае.

  • Для работы с датой/временем появились функции:

    • возвращающие начало временного промежутка: StartOfTheYear(Дата), StartOfTheQuarter(Дата), StartOfTheMonth(Дата), StartOfInterval(Дата, Количество_Интервалов, Тип_Интервала[, Начальная_Точка]);
    • возвращающие количество целых временных промежутков между датами: HoursBetween(Дата1, Дата2), MinutesBetween(Дата1, Дата2), SecondsBetween(Дата1, Дата2), MillisecondsBetween(Дата1, Дата2);
    • увеличивающие дату на несколько временных промежутков: AddHour(Дата, Количество), AddMinute(Дата, Количество), AddSecond(Дата, Количество), AddMillisecond(Дата, Количество);
    • возвращающие конец временного промежутка: EndOfTheYear(Дата), EndOfTheQuarter(Дата), EndOfTheMonth(Дата), EndOfTheWeek(Дата);
    • приведения даты в формате UnixTime к формату Дата/Время: UnixToDateTime(Дата, [Исходная_Дата_В_UTC = True]).

Кроме того, в функции, возвращающие значение между двумя датами (YearsBetween, MonthsBetween, DaysBetween и т.п.), добавлен необязательный логический параметр Абсолютное_Значение. Если Абсолютное_Значение = False и Дата1 > Дата2, то будет возвращено отрицательное число полных временных промежутков между датами.

В функциях, увеличивающих дату на несколько временных промежутков (AddDay, AddHour и т.п.), аргумент Количество теперь может быть отрицательным. В таком случае функции вернут дату, которая на указанное количество интервалов раньше, чем Дата.

В функцию Val добавлено 2 новых параметра преобразования: Десятичный_Разделитель и Разделитель_Групп_Разрядов. Оба параметра должны иметь длину в 1 символ, допустимы все символы из ASCII, за исключением цифр, символов +, - и E. Для Разделитель_Групп_Разрядов также допустим UNICODE символ NBSP. Если заданы значения для двух этих параметров, то они не должны совпадать, иначе поведение функции Val будет неопределенным. Если значение параметра Разделитель_Групп_Разрядов не задано, то значение параметра Десятичный_Разделитель не должно совпадать с разделителем групп разрядов, указанным в текущей локали пакета. Если эти параметры не указаны, то преобразование строки в число происходит с учётом локали пакета.

Некоторые функции работы со строками были оптимизированы.

Добавление и редактирование Выражений в Калькуляторе теперь выполняется в отдельном окне, а не в списке выражений.

В мастере настройки Калькулятора появилась настройка выражения «Заменять поле». Если установлена опция «Заменять поле», и существует входной столбец, совпадающий по имени с Выражением, то новый столбец не добавляется, а заменяется существующий. Аналогичная настройка «Заменять переменную» появилась в Калькуляторе (переменные).

Теперь можно обратиться за значением выражения, если есть столбец/переменная с совпадающим именем. В режиме «Выражение» это можно сделать через префикс Expr., а в режиме JavaScript через this.Expr. Поддержка префикса Expr. добавлена в функции Data и CumulativeSum. А в функции DisplayName поддерживаются префиксы Var. и Expr.

Для списка Полей/Переменных добавлено контекстное меню с пунктами «Вставить в выражение» и «Добавить как выражение». Поля и переменные теперь можно перетаскивать в область редактирования Выражения и в Редактор кода.

В выражении Калькулятора разрешено использование одинарных кавычек. Это позволит проще использовать символ " внутри строки. Строковые литералы, заключенные в одинарные кавычки, теперь подсвечиваются в Калькуляторе, добавлено автоматическое закрытие одинарных кавычек.

В редактор кода выражения Калькулятора, Калькулятора переменных и Вычисляемых фактов Куба добавлена горячая клавиша переключения комментария Ctrl+/.

Новые возможности в Кубе

В Кубе теперь можно настроить несколько диаграмм. На панели инструментов Куба в правом верхнем углу появилась кнопка «Добавить диаграмму». Пользователь может добавить до 3-х диаграмм, прикреплять диаграммы справа, снизу и слева, а также удалять диаграммы.

Несколько диаграмм в Кубе

В связи с появлением кнопки «Добавить диаграмму» у кнопки, которая раньше называлась «Диаграмма», изменилось название на «Диаграммы». Она будет недоступна, пока не добавлена первая диаграмма.

Добавлена возможность изменять диапазон осей Диаграммы Куба с помощью мыши или кнопок на панели инструментов.

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

JavaScript и Python

В глобальную область видимости кода JavaScript и Python добавлена функция getLocale. Для JavaScript имя локали возвращается в формате BCP 47. EcmaScript Language Tags, а для Python в формате принятом в ICU. Функция getLocale доступна также в режиме JavaScript Калькулятора и в Калькуляторе (дерево).

В Python в функцию to_data_frame модуля builtin_pandas_utils добавлен опциональный аргумент useNullableArrays, значение по умолчанию False. Использование аргумента useNullableArrays=True позволяет выполнить конвертацию в pandas.DataFrame без потери типа. Для столбца целых значений с пропусками используется pandas.arrays.IntegerArray, для столбца логических значений с пропусками — pandas.arrays.BooleanArray, в других случаях работает без изменений (пропуски поддерживаются за счёт NaN значений для вещественных, NaT значений для Даты/Времени, None для строковых столбцов).

Добавлена поддержка заполнения выходной таблицы из pandas.DataFrame, содержащего типизированные столбцы с Nullable-массивами данных: pandas.arrays.BooleanArray, pandas.arrays.DatetimeArray, pandas.arrays.FloatingArray, pandas.arrays.IntegerArray, pandas.arrays.StringArray.are available.

В режиме выполнения внутри процесса Loginom поддерживается Python 3.12.

Администрирование

Появилась возможность отправлять сообщения пользователю из Диспетчера. В контекстное меню на странице Диспетчера добавлены две кнопки «Отправить сообщение» (сообщение для выделенного пользователя) и «Отправить сообщение всем» (сообщение для всех активных пользователей). При нажатии этих кнопок открывается окно с многострочным полем ввода сообщения для отправки.

Сообщение приходит пользователям в виде окна c заголовком ­«Сообщение от Администратора» или в виде всплывающего сообщения, которое никогда автоматически не закрывается.

Сообщение от администратора

Отправка сообщения фиксируется в логе с указанием списка имён сессий, которым было отправлено сообщение, и текста сообщения.

Из Диспетчера администратор может ввести сервер в режим обслуживания. В этом режиме запрещается вход в учётные записи всем, кроме пользователей с ролью Администрирование. Таким образом, администратор может оповестить всех подключенных пользователей о предстоящих работах, отправив им сообщение, и ввести сервер в режим обслуживания, чтобы новые пользователи с этого момента не подключались.

 

Режим обслуживания сервера

Когда включен режим обслуживания, пользователь при попытке подключения получит сообщение о проведении работ, текст которого задал администратор при включении этого режима:

В режиме обслуживания:

  • запросы от Loginom Integrator перестают обрабатываться, даже если сессия была открыта до входа в режим;
  • в Планировщике вместо запуска задач происходит добавление в Журнал планировщика завершённых сессий со статусом ­«Не запущено».

Помимо этого ничего не меняется в работе сервера и клиента, сервер продолжает обрабатывать запросы с клиента, дополнительные ограничения на работу пользователей не накладываются.

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

В Главном меню появились новые кнопки для открытия страниц «Веб-сервисы» и «Планировщик». Кнопки скрыты, если компонент недоступен (например, в настольной редакции).

В панели Компоненты появилась группа «Быстрый доступ». Настройка панели осуществляется через контекстное меню, в которое добавлены пункты:

  • Часто используемые — флаг, который определяет отображаются ли часто используемые компоненты в группе «Быстрый доступ».
  • Свернуть группы — сворачивает все группы панели.
  • Развернуть группы — разворачивает все группы панели.

Группа предоставляет удобный доступ к двум категориям компонентов:

  1. Избранные компоненты — перечислены первыми и отображены в порядке их добавления. Компоненты можно добавлять в «Избранное», перемещать внутри группы с помощью drag&drop и удалять из группы. У избранных компонентов справа отображается иконка в виде звезды.
  2. Часто используемые компоненты — сформированы автоматически на основе статистики использования. Статистика использования компонента обновляется при перетаскивании компонента на рабочую область, или при вызове контекстного меню «Добавить узел в сценарий». Часто используемым считается компонент, который использовался более 5 раз или входит в топ-10 самых часто используемых компонентов и не добавлен в список избранных. Компонент можно убрать из числа часто используемых через контекстное меню.

    Группа «­Быстрый доступ»

В области построения сценария появилась возможность добавлять метки к связям. Метка может быть добавлена через контекстное меню связи, по двойному клику на связи или нажатием кнопки F2(связь должна быть выделена). По умолчанию значение метки соответствует метки исходящего порта, но его можно отредактировать. Текст метки связи не может занимать более двух строк.

Добавлены метки для отображения количества данных на активированных выходных портах. У портов с наборами данных выводится число строк в наборе, а у портов с переменными — количество переменных. По умолчанию метки на выходных портах отключены, включить отображение меток можно при помощи кнопки на панели инструментов «Показывать количество на выходных портах».

Метки портов и связей

Из контекстного меню сценария командой «Деактивировать все» можно деактивировать все узлы сценария, включая те, что внутри вложенных подмоделей (в том числе вложенные в подмодели подключения). Аналогичная команда появилась и в контекстном меню на странице Подключения. В меню подмодели добавлен пункт «Деактивировать все подузлы», который активен, если подмодель находится в статусе «Выполнение». При активации пункта в подмодели деактивируются все узлы и все находящиеся в подмодели подключения.

При добавлении, перемещении и изменении размера комментария исключили возможность его выхода за границы сценария.

При перетаскивании компонента в область построения сценария автоматическое связывание портов применяется только для верхнего порта, для остальных портов (например, для портов управляющих переменных) автоматические связи не формируются.

Все добавляемые каким-либо способом узлы и заметки в области построения сценария будут выравнены по координатной сетке (размер сетки 8 px), в том числе выравнивание происходит при сворачивании/разворачивании подмодели.

В компонентах Импорт из XML-файла, Разбор XML, SOAP-запрос и Дерево в таблицу помимо составных меток полей теперь можно генерировать составные имена полей. В мастерах настройки узлов можно указать соответствующую опцию и выбрать разделитель, который будет использоваться в составном имени.

В серверных редакциях при экспорте из визуализаторов явно указывается файл на диске, куда выполняется экспорт. При этом запоминается последняя папка, в которую производился экспорт. В настольных редакциях под Windows при экспорте из визуализаторов сначала выбирается файл, в который будет производиться экспорт, а только потом выполняется экспорт (ранее было наоборот), но если отменить эту операцию, то на диске останется файл с заданным ранее именем и нулевым размером.

При возникновении ошибки в 1С ComConnector-е пользователь получит сообщение в Loginom «Ошибка выполнения 1С ComConnector.Connect», т.е. в тексте сообщения будет явно указан источник ошибки. Ранее сообщение было менее информативным «Ошибка проверки подключения 1C».

В серверных редакциях в Файловом хранилище можно вставлять файлы в ту же директорию откуда они были скопированы. В этом случае к имени файла через тире добавляется слово "копия" и индекс (например: sales — копия.txt, sales — копия (2).txt, sales — копия (3).txt).

Для Mac OS в подсказках к комбинациям горячих клавиш модификаторы Ctrl, Shift и Alt обозначаются так, как это принято в этой операционной системе, т.е. , и .

В настольных редакциях Loginom можно менять масштаб приложения с помощью сочетания клавиш Crtl+0, Crtl+-, Crtl+= и через группу команд «Внешний вид» в Меню приложения.

Loginom Integrator и публикация пакетов

В конфигурационный файл Loginom Integrator для элемента settings добавлены необязательные атрибуты:

  • shutdownTimeout— задаёт тайм-аут завершения работы Loginom Integrator (в секундах). Если при завершении работы Loginom Integrator есть активные запросы, то выполняется ожидание тайм-аута завершения, прежде чем принудительно разорвать все соединения с Loginom Server. Во время ожидания тайм-аута завершения новые запросы не принимаются. Значение по умолчанию 30 секунд. При этом, если в IIS используется собственный тайм-аут, то процесс завершается по истечении более короткого из двух тайм-аутов.
  • maxConcurrentRequests — если задано положительное значение атрибута, то максимальное количество параллельно обрабатываемых запросов ограничивается указанным значением. По умолчанию ограничение отсутствует. При достижении ограничения все последующие запросы отправляются в очередь. Если в момент поступления нового запроса уже достигнут максимальный размер очереди (requestQueueLimit), то запрос сразу завершается с ошибкой 503 Service Unavailable. Ограничение на количество одновременных запросов не используется при получении страниц openapi/index.html и help-страниц для REST, а также OpenAPI и WSDL документов. Включение ограничения maxConcurrentRequests немного снижает скорость обработки запросов (при тестировании на очень простом сценарии скорость обработки снизилась с 3400 до 3300 запросов/сек).
  • requestQueueLimit — максимальный размер очереди (по умолчанию равен 0). Если не задано ограничение maxConcurrentRequests, то атрибут requestQueueLimit игнорируется.

В случае разрыва HTTP соединения, через которое выполнен запрос к Loginom Integrator, происходит отмена процесса активации опубликованного узла сценария. Также отмена процесса вызывается при завершении работы Loginom Integrator (после истечения ShutdownTimeout). Если же процесс Loginom Integrator завершается внештатно (например, с помощью SIGKILL или через Диспетчер задач Windows), то в Loginom Server продолжается выполнение пакетов, запущенных из Integrator.

В публикуемые метаданные для Loginom Integrator добавлены метки полей и портов, что повышает читаемость схем. В генерируемый OpenAPI документ добавлены description для путей, параметров и свойств на основе меток узлов, портов и полей. Документация добавляется, если метка не пустая и не равна имени поля/порта.

При публикации узла с портами типа Данные в древовидной форме можно исключить корневой узел дерева из запросов и ответов Loginom Integrator. В мастерах настройки входных и выходных портов для дерева данных добавлена новая опция «Исключить корневой узел при публикации». Исключение корневого узла дерева из запросов и ответов позволяет создать произвольную схему запроса/ответа.

В разделе Администрирование добавлен новый параметр сервера — Период обновления веб-сервисов, имеющий значение по умолчанию 1 минута. Параметр определяет с какой периодичностью проверяется файл PublishedPackages.cfg на наличие изменений. Если файл изменился, то из него считывается новый список опубликованных пакетов.

Для работы Loginom Integrator необходим ASP.NET Core 8.0 (ранее был нужен ASP.NET Core 6.0).

Логирование

Добавлено логирование изменения всех параметров администрирования, в том числе параметров LDAP и OpenID. При изменении пароля в параметрах LDAP или секретного ключа клиента в параметрах OpenID в лог записывается 8 символов *, вместо самого пароля/ключа.

Пример записи в лог:

Изменился параметр компонента сервера Логирование: "Максимальный размер файла"{"COMPONENT": "Логирование", "NAME": "Максимальный размер файла", "NEW_VALUE": 10485757}
Изменился параметр компонента сервера Python: "Выполнение запрещено"{"COMPONENT": "Python", "NAME": "Выполнение запрещено", "NEW_VALUE": true}
Изменился параметр компонента сервера OpenID:"Ключ клиента"{"COMPONENT": "OpenID", "NAME": "Ключ клиента", "NEW_VALUE": "********"}

Добавлено логирование создания/закрытия черновика пакета, изменений прав доступа к общей папке, изменений публикации пакетов.

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

Добавлен новый параметр логирования в разделе АдминистрированиеЛогировать имя пакета у узла. Если значение параметра равно true, то вместе с GUID-ом активируемого узла в лог записывается имя пакета, в котором находится этот узел. Определение имени пакета является долгой операцией, поэтому по умолчанию этот параметр имеет значение false.

Быстродействие

Оптимизирована работа компонентов Объединение и Слияние. Узел Цикл, настроенный на подмодель, в которой используются эти узлы с большим количеством связей между полями, стал выполняться почти в 7 раз быстрее.

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

Оптимизирована работа компонента Фильтр строк. Активация узла с разными условиями на разных наборах выполняется от 1,3 до 4 раз быстрее.

Экспорт строк в SQLite для базы данных в памяти на некоторых наборах стал выполняться на 40-45% быстрее.

Длинные цепочки узлов обрабатываются быстрее за счет оптимизации запроса данных между узлами, что на больших сценариях дает прирост скорости выполнения до 50%.

Прочее

В список базовых docker образов для Loginom Server добавлен Ubuntu 24.04 LTS.

Оптимизирован разбор xsd-схем, содержащих в корне элемент с большим количеством дочерних элементов и атрибутов и на этот элемент через механизм element ref есть ссылки в других местах схемы. В результате экономнее используется память при работе с мастерами настройки узлов Импорта из XML и SOAP-запрос, а также при активации этих узлов.

#7.2#release notes#loginom

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