Пакетное выполнение сценариев

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

Пакетное выполнение cценариев осуществляется при помощи утилиты BatchLauncher, поставляемой в комплекте с сервером Loginom версий Team, Standard, Enterprise. При установке по умолчанию утилита располагается по пути:

Для Windows:

"C:\Program Files\Loginom\Server\BatchLauncher.exe".

Для Linux:

"/opt/loginom/server/BatchLauncher"

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

Важно: BatchLauncher работает синхронно с сервером и ждёт завершения процесса. Если BatchLauncher закрыть, то в Loginom Server отменится соответствующий процесс.

Синтаксис строки запуска в пакетном режиме:

Для Windows:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=<FileName> [/Teach] [/Node=<NodeName>] [/Address=<Address>] [/Port=<Port>] [/UserName=<UserName> [/Password=<Password>]] [/VarName=<Value>] [/PortName.VarName=<Value>] [/Save]

Для Linux (native):

/opt/loginom/server/BatchLauncher -package=<FileName> [-teach] [-node=<NodeName>] [-address=<Address>] [-port=<Port>] [-userName=<UserName>] [-password=<Password>] [-vаrname=<Value>] [-portname.varname=<Value>] [-save]

Для Linux (docker):

docker exec -it loginom-server /app/BatchLauncher -package=<FileName> [-teach] [-node=<NodeName>] [-address=<Address>] [-port=<Port>] [-userName=<UserName>] [-password=<Password>] [-vаrname=<Value>] [-portname.varname=<Value>] [-save]

Для Linux (podman):

podman exec -it loginom-server /app/BatchLauncher -package=<FileName> [-teach] [-node=<NodeName>] [-address=<Address>] [-port=<Port>] [-userName=<UserName>] [-password=<Password>] [-vаrname=<Value>] [-portname.varname=<Value>] [-save]

Где:

/Package, /Teach, /Node, /Address, /Port, /UserName, /Password, /PortName.VarName, /VarName, /Save — параметры запуска в пакетном режиме.

Несколько параметров в строке запуска разделяются символом пробела.

Пример:

Для Windows:

 "C:\Program Files\Loginom\Server\BatchLauncher.exe" /Package=test.lgp /Teach

Описание параметров

Package

Путь к файлу пакета внутри файлового хранилища. Обязательный параметр.

Примеры:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp
"C:/Program Files/Loginom/Server/BatchLauncher.exe" "/Package=/user/test and log.lgp"

Node

Имя узла, который необходимо выполнить. При этом выполняются указанный узел и все предшествующие ему узлы — то есть все узлы, которые необходимо выполнить для формирования его входных данных. Узел не должен находиться в Подмодели. Если параметр не указан, то выполняются все узлы Пакета, для которых заданы необходимые настройки режима активации.

Примечание: имя узла задается при настройке модификатора доступа.

Примеры:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp "/Node=executable node"
"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Node=executable_node

PortName.VarName

Используется для задания значений входных Переменных узла, определенного параметром /Node.

  • PortName — наименование порта;
  • VarName — наименование переменной, значение которой необходимо задать в строке запуска.

Примеры:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Node=test_node /Port1.Parameter1=true
/Port1.Parameter2=2008-01-02T22:24:24 "/Port2.Parameter1=Hello World!" /Port2.Parameter2=null /Port2.Parameter3=3.14 /Port2.Parameter4=4.025E4

Можно не указывать наименование порта (например: /Parameter1=true, однако, если переменная с указанным таким образом именем присутствует в нескольких портах, то возникнет исключение. Ошибка так же возникнет, если указано имя несуществующей переменной.

Важно: все незарезервированные параметры в строке запуска интерпретируются как параметры установки значений переменных.

Исходное строковое значение, указанное в командной строке, конвертируется к типу данных целевой переменной:

  • Если исходное строковое значение равно null (с учётом регистра), то целевая переменная получает пустое значение независимо от её типа данных.
  • Если целевая переменная имеет тип Логический, Целый, Вещественный или Дата/Время, то исходное строковое значение конвертируется по правилам соответствующего типа, причём для Вещественного типа используется десятичный разделитель . (точка). Для Даты/Времени используется подмножество форматов ISO 8601: "YYYY-MM-DD", "YYYY-MM-DDThh:mm[:ss[.zzz]]", "hh:mm[:ss[.zzz]]". Допустимыми значениями Логического типа считаются true и false (без учёта регистра).
  • Если целевая переменная имеет Строковый тип, то преобразование типа данных не выполняется. Если исходное значение заключено в одинарные кавычки, то эти кавычки разэкранируются, в противном случае исходное значение присваивается в переменную без изменений.
  • Если целевая переменная имеет Переменный тип, то происходит попытка поочерёдно преобразовать исходное строковое значение к типам Логический, Целый, Вещественный и Дата/Время, причём если ни одно из этих преобразований не удалось, то целевая переменная получает строковое значение.
  • Для переменных типа Вещественный и Переменный в качестве параметров можно передавать экспоненциальную форму записи числа (пример: 4.205E2, 4.205E-2).

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Node=test_node /Var0=null /Var1=True /Var2=1 /Var3='1' /Var4='null' /Var5= /Var6=test /Var7='te''st' /Var8="test" "/Var9=a b c"

Если все переменные имеют Переменный тип, то они получат следующие значения:

Var0 — пустое значение;
Var1 — логическое значение true;
Var2 — целое значение 1;
Var3 — строковое значение 1;
Var4 — строковое значение null;
Var5 — пустая строка;
Var6 — строковое значение test;
Var7 — строковое значение te'st;
Var8 — строковое значение "test";
Var9 — строковое значение a b c.

VarName

Используется для задания значений Переменных пакета.

Для того чтобы задать значение переменной, необходимо указать параметр формата:

  1. /VarName=Value.
  2. /.VarName=Value — используется, если имя переменной совпадает с именем, зарезервированным параметром BatchLauncher (например, Package или UserName),

где:

  • VarName — наименование переменной, значение которой необходимо задать в строке запуска;
  • Value — значение переменной.

Примечание: нельзя устанавливать значения переменных, которые доступны "Только для чтения".

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Var0=null /Var1=True /Var2=1 /Var3='1' /Var4='null' /Var5= /Var6=test /Var7='te''st' /Var8="test" "/Var9=a b c"

Teach

Запуск пакета в режиме «Обучение». Если параметр не указан, то пакет запускается в режиме «Выполнение».

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Teach

Address

IP адрес или имя хоста сервера Loginom. По умолчанию используется localhost.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Address=192.168.0.95

Port

Порт, по которому происходит обращение к серверу Loginom. По умолчанию используется 4580.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /Address=192.168.0.95 /Port=4555

UserName

Имя пользователя. Если параметр не указан, то используется пользователь по умолчанию service. Если пользователя service удалить, то необходимо обязательно указывать параметр UserName.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /UserName=user

Password

Пароль пользователя. Если параметр не указан, то используется пустой пароль.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=/user/test.lgp /UserName=user /Password=12345

Save

При наличии этого параметра пакет будет сохранён на диск после выполнения или переобучения.

Если при выполнении пакета возникнет ошибка, то он не будет сохранен.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=test.lgp /Teach /Save

 

Важно: при использовании пробельных символов в выражении, задающем значение параметра, все выражение необходимо заключить в двойные кавычки.

Пример:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" "/Package=/user/Quantization training/Quantization.lgp" /Teach /UserName=user