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

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

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

Для Windows:

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

Для Linux:

"/opt/loginom/server/BatchLauncher"

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

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

Для Windows:

"C:/Program Files/Loginom/Server/BatchLauncher.exe" /Package=<FileName> [/Teach] [/Deactivate=<Value>] [/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] [-deactivate=<Value>] [-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] [-deactivate=<Value>] [-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] [-deactivate=<Value>] [-node=<NodeName>] [-address=<Address>] [-port=<Port>] [-userName=<UserName>] [-password=<Password>] [-vаrname=<Value>] [-portname.varname=<Value>] [-save]

Где:

/Package, /Teach, /Deactivate, /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.

Deactivate

Используется для настройки автоматической цепной деактивации групп узлов после их полного выполнения для освобождения используемой сценарием памяти.

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

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

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

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

Если через BatchLauncher требуется задать значение переменной deactivate, то для этого следует использовать ключи вида:

  1. /.Deactivate=Value — для переменной пакета;
  2. /PortName.Deactivate=Value — для переменной узла, находящейся внутри порта с именем PortName.

Важно:

  • Параметр Value принимает значения только True или False.
  • Опция /Deactivate=False гарантированно отключает автоматическую деактивацию (даже если она выставлена в настройках пакета/сервера). Аналогично /Deactivate=True гарантированно включает ее. Использование опции без значения (/Deactivate) идентично записи /Deactivate=True.

Пример:

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

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
Новости, материалы по аналитике, кейсы применения, активное сообщество