Home / 4.13.0
Name Modified Size InfoDownloads / Week
Parent folder
Mazhornyi patch 4.13.0.tar.gz 2021-11-21 55.7 MB
Mazhornyi patch 4.13.0.zip 2021-11-21 56.0 MB
README.md 2021-11-21 10.3 kB
Totals: 3 Items   111.6 MB 0

Gradle

  • Обновлены версии apache poi, sell4j и log4j, Googel gson и Kafka.
  • Вместо драйвера чтения Excel "com.monitorjbl:xlsx-streamer" теперь используется драйвер "com.github.pjfanning:excel-streaming-reader".

Важные изменения

  • В языке хранимых процедур оператора sql (класс getl.jdbc.SQLScripter) изменен синтаксис операторов IF и FOR. В Википедии описан новый формат работы этих операторов. Вам потребуется проверить код SQL скриптов и адаптировать под новый синтаксис операторы, если они использовались.
  • Ранее по умолчанию при выполнении SQL скриптов через оператор sql (класс getl.jdbc.SQLScripter) запускался парсер языка хранимых процедур Getl. Теперь по умолчанию скрипт не парсится и выполняется как есть на стороне сервера после подстановки значений переменных. Вам потребуется проверить вызова кода SQL скриптов в коде и включить парсинг, где он требуется для выполнения. Есть другой способ включения автоматического парсинга выполняемых скриптов через оператор sql: нужно указать true для свойства extensionForSqlScripts того соединения, для которого все выполняемые скрипты используют язык ХП Getl.
  • В моделях monitorRules Dsl языка метод check переименован в checkingRules, чтобы не возникали конфликты с методом check, который есть Job класса.
  • Убрана поддержка облачной системы Xero (XeroConnection и XeroDataset) из-за не поддерживаемого более API этой системы.

Фичи Dsl языка

  • repository: теперь каждый объект при регистрации в репозиторий имеет метку времени регистрации в свойстве dslRegistrationTime. Изменение свойств объекта на метку влияния не имеет.
  • repository: при сохранении объектов в репозиторий с помощью RepositorySave теперь можно в аннотации включить опцию clear, которая включит очистку репозитория перед запуском метода класса. Если метод хочет регистрировать объекты поверх существующих в репозитории, то для аннотации надо включить опцию overwrite.
  • repository: при сохранении объектов в репозиторий с помощью RepositorySave теперь записываются не все объекты репозитория на диск, а только которые были зарегистрированы в ходе выполнения методов и имеют более позднюю метку времени, чем время запуска класса.
  • models: добавлены функции поиска для всех моделей по имени и по объекту.
  • repository: в repositoryStorageManager появилось свойство savingStoryDataset, в котором можно задать таблицу или датасет файла CSV для записи истории сохранений объектов репозитория на диск. Датасет должен иметь поля, описанные в публичном свойстве savingStoryFields (repository, object, environment и change_time) и может быть CSV файлом или JDBC таблицей.
  • repository: в repositoryStorageManager появился метод reloadObjectsFromStory, который перегружает в репозиторий с диска все объекты по истории изменений с указанного датасета.
  • models: в workflow теперь можно вызывать шаблоны на базе RepositorySave класса, которые могут регистрировать и сохранять объекты репозитория на диск. При использовании таких шаблонов не разрешается использовать многопоточное выполнение в шаге, где они использованы (countThreads должен равняться 1).
  • repository: добавлена возможность сохранять объекты в скриптах, наследованных через BaseScript от класса RepositorySave. По аналогии с наследованием класса, в скрипте нужно также определить методы с аннотацией SaveToRepository. Если в скрипте помимо методов есть главный код, он будет выполнен до выполнения методов генерации и сохранения объектов в репозиторий.

Фичи Getl классов

  • getl.jdbc.JDBCConnection: добавлено свойство extensionForSqlScripts, которое указывается скриптеру SQLScripter, что при выполнении скриптов на данном соединении нужно включать парсинг языка хранимых процедур Getl.
  • getl.jdbc.SQLScripter: теперь команды языка хранимых процедур можно вызывать с префиксом @, а переменные указывать в формате "${переменная}". Сделано для совместимости с SQL клиентом DBeaver.
  • getl.utils.Lexer: доработан движок парсинга текстов, добавлена поддержка комментариев в стиле Java и SQL, в возвращаемый набор tokens каждому элементу текста теперь проставлена его расположение внутри скрипта в свойствах first и last, добавлено свойство script, которое содержит исходный текст скрипта.
  • getl.utils.SQLParser: доработан движок парсинга SQL скриптов, добавлено определение SQL операторов CREATE, DROP, ALTER, TRUNCATE и операторов языка ХП Getl.
  • getl.driver.Driver: в перечисления Support добавлен SELECT_WITHOUT_FROM, который указывает, что сервер может выполнять запросы без FROM секции.
  • getl.utils.StringUtils: функция EvalMacroString теперь преобразует параметры списки в набор перечисления через запятую. Текстовые значения списка будут обрамлены одинарными кавычками.
  • getl.jdbc.JDBCConnection: при импорте таблиц с источника вызовом метода addTablesToRepository можно теперь пропускать уже зарегистрированные в репозитории таблицы, указав это в параметре skipExists.

Баги Dsl языка

  • fileman: в processing файлов могда возникнуть ошибка, если была задана история загрузки файлов "датасет не открыт для записи".
  • repository: при регистрации объектов могла произойти ошибка, если они существуют, даже если флаг проверки выключен.
  • repository: при запуске RepositorySave если среда не была явна задана, то устанавливалась среда dev, вместо среды по умолчанию текущего пространства Getl.
  • fileman: в processing файлов могла возникнуть ошибка "датасет не открыт для записи", если была задана история загрузки файлов.
  • models: в модели workflows возникала ошибка при выполнении, если в именованиях шагов встречалась точка или двоеточие.

Баги Getl классов

  • getl.utils.SynchronizeObject: возникала ошибка, если вызывался метод setCount и в него передавался null.
  • getl.utils.SynchronizeObject: исправлена ошибка, когда при попытке добавления null значения в список появлялась ошибка.
  • getl.excel.ExcelDriver: если в датасете задавался формат булевых полей, значения которых в тексте, то они могли не считываться правильно, если их значения были не в нижнем регистре.
  • getl.jdbc.JDBCDriver: если для соединения был указан путь к файлу драйвера, который находится в репозитории, то возникала ошибка.
  • getl.utils.StringUtils: при парсинге текста функцией EvalMacroString имена переменных были регистрозависимыми.
Source: README.md, updated 2021-11-21