system

Назначение

Функция system проверяет существование указанного файла через указанный период времени (1 секунду).

Синтаксис

system(вспомогательная функция, аргументы,…​)

Аргументы

Функция принимает следующие аргументы:

  1. первый аргумент - вспомогательная функция; полный список вспомогательных функций см. далее;

  2. второй аргумент - строковое значение, обозначающее имя файла с указанием папки;

    Если второй аргумент (имя файла) является строковой константой, функция system может использоваться в узле Фильтрация строк для того, чтобы отложить выполнение проекта до тех пор, пока указанный файл не появится в папке.
  3. третий аргумент - целое число, обозначающее число попыток найти указанный файл;

  4. четвертый необязательный аргумент - булевое значение:

    1. если значение равно "yes", выполнение скрипта прекращается в случае, если файл не найден;

    2. если значение равно "no", выполнение скрипта не прекращается в случае, если файл не найден.

В качестве первого аргумента можно использовать следующие вспомогательные функции:

  • "#file_exists" - проверяет существование указанного файла;

  • "#assert" - проверяет, верно или неверно указанное выражение;

  • "#bitness" - возвращает константу 64;

  • "#build" - возвращает номер версии продукта;

  • "#check_structure" - проверяет, совпадает ли структура родительского массива данных со структурой, определенной во втором аргументе в формате JSON;

  • "#computer_name" - возвращает имя компьютера Windows;

  • "#domain_name" - возвращает имя домена Windows;

  • "#exec_app" - вызывает специальное доверенное приложение, указанное в соответствующих настройках конфигурации сервера; возвращает стандартное выходное значение;

  • "#git_sha1" - возвращает хэш-значение Git для указанного компонента продукта; данная вспомогательная функция может использоваться для точного определения версии продукта;

  • "#guid" - возвращает статистически уникальный идентификатор (GUID);

  • "#has_char" - проверяет присутствие символа, определяемое целочисленным кодом, в исходном строковом значении;

  • "#node_name" - возвращает имя узла на скрипте; если индекс не равен 0, возвращает периферийное имя группы (2 - для родительского узла, 3 - для родительского узла более старшего ранга и т.д.);

  • "#node_cname" - возвращает базовое имя узла до " (" символов;

  • "#project_id" - возвращает GUID проекта;

  • "#project_name" - возвращает имя проекта, соответствующее указанному в связанном файле проекта; если имя узла невозможно определить, функция возвращает папку проекта (например, "00000034");

  • "#server_proc_id" - возвращает GUID серверного процесса; GUID серверного процесса автоматически генерируется при каждом запуске сервера.

Возвращаемое значение

Функция возвращает булевое значение:

  • yes, если файл найден;

  • no, если файл не найден;

  • Выполнение скрипта прекращается, если четвертый аргумент равен yes.

Примеры

system("#file_exists", filename[, retries = 0 [, abort = <retries != 0>]]) проверяет существование файла каждую 1 секунду.

system("#file_exists", "@administrator@\\file_name.txt", 5) делает 5 попыток найти файл file_name.txt в папке administrator

system("#assert", expression[, errortext]) - возвращает 'yes', если выражение верно, либо прерывает выполнение скрипта с предупреждением об ошибке;

system("#bitness") - возвращает константу 64;

system("#build") - возвращает номер версии продукта (например, 2414);

system("#check_structure", string[, bool = yes]) - проверяет, совпадает ли структура родительского массива данных со структурой, определенной во втором аргументе в формате JSON; возвращает булево выражение, либо останавливает выполнение узла, если 3-ий аргумент верен;

system("#computer_name") - возвращает имя компьютера Windows;

system("#domain_name") - возвращает имя домена Windows;

system("#exec_app", appname[, arguments]) - вызывает специальное доверенное приложение, указанное в соответствующих настройках конфигурации сервера; возвращает стандартное выходное значение;

system("#file_exists", file[, retries = 0[, throw = <retries != 0>]]) - проверяет (делает определенное число попыток) существование указанного файла; интервал между попытками составляет 1 секунду; если указанный файл существует, функция возвращает 'yes', в противном случае выполнение функции прерывается (4-ый аргумент равен 'yes'), либо возвращает 'no';

system("#git_sha1"[, component = { "pa" | "help" | "dicts" | "webui" }]) - возвращает хэш-значение Git для указанного компонента продукта; данная вспомогательная функция может использоваться для точного определения версии продукта;

system("#has_char", where, what) - проверяет присутствие символа, определяемое целочисленным кодом, в исходном строковом значении;

system(#node_name"[, index = 1]) - возвращает имя узла на скрипте; если индекс не равен 0, возвращает периферийное имя группы (2 - для родительского узла, 3 - для родительского узла более старшего ранга и т.д.);

system(#node_cname"[, index = 1]) - возвращает базовое имя узла до " (" символов;

system("#project_id") - возвращает GUID проекта;

system("#project_name") возвращает имя проекта, соответствующее указанному в связанном файле проекта; если имя узла невозможно определить, функция возвращает папку проекта (например, "00000034");

system("#server_proc_id") - возвращает GUID серверного процесса; GUID серверного процесса автоматически генерируется при каждом запуске сервера.

system("#check_structure", json[, strict=yes[, throw=yes]]): JSON представляет собой последовательность пар с атрибутами "name" и "type":

[{
		"name": "Date",
		"type": "DateTime"
	},
	{
		"name": "District",
		"type": "String"
	},
	{
		"name": "Category",
		"type": "String"
	},
	{
		"name": "Description",
		"type": "Text"
	}
]

Используемые типы данных - "Bool" (булевые), "Integer" (целочисленные), "Numeric" (числовые), "DateTime" (дата/время), "String" (строковые), "Text" (текстовые), "NumID" (целочисленный идентификатор) и "ID" (идентификатор). Если строгий ('strict') аргумент ложный, функция проверяет наличие колонок в JSON в исходном массиве данных, а также проверяет, одинаков ли тип данных. В противном случае оба набора колонок сравниваются на предмет эквивалентности (при этом порядок колонок игнорируется). Если аргумент 'throw' ложный, функция применяется к каждой строке массива данных и возвращает 'yes' или 'no'. В противном случае выполнение останавливается при первой ошибке.