Функции модификации коллекций#
1. Функция «put»#
Функция «put» позволяет добавить в переменные окружения значения с ключом из сообщения и добавить поля с заданным ключом и значением.
Варианты написания функции:
put:
Put.
Синтаксис#
put(Out.target.test1, In.test1, in.test2[<])
Put(Environment.testEnv1, In.test1.test2, "const")
put($outVar, In.test1.test2, In.test3[>])
Аргументы#
Адрес элемента результирующего сообщения, переменная окружения, переменная.
Ключ — адрес элемента входящего сообщения, переменная, переменная окружения.
Значение, которое будет соответствовать ключу — адрес элемента входящего сообщения, переменная, переменная окружения.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
put(Out.m, In.a, In.b) |
{«m»:{«topic»:»code»}} |
{ |
OUT = In |
{«a»:»topic»,»b»:»code»,»m»:{«topic»:»number»}} |
2. Функция «get»#
Функция «get» позволяет получить значения из переменных окружения по ключу, а также получить значение поля элемента по его имени.
Варианты написания функции:
get;
Get.
Синтаксис#
get(In.test1.test2, "const")
Get(Environment.test3, In.test11.test12.test13)
get($outVar, In.test31.test32.test33)
Аргументы#
Адрес родительского элемента входящего сообщения, переменная окружения, переменная.
Ключ — адрес элемента входящего сообщения, переменная, переменная окружения, константное строковое значение.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT.task = get(In.a, In.b) |
{«task»:»code»} |
{ |
OUT.task = get(In.a, In.c) |
null |
3. Функция «getByIndex»#
Функция «getByIndex» позволяет получить значения по индексу.
Варианты написания функции:
getByIndex;
GetByIndex.
Синтаксис#
getByIndex($variable, "1")
GetByIndex($variable, ">")
GetByIndex(In.test1.test2, "<")
getByIndex(Environment.test3, 1i)
getByIndex(Environment.test4, ">")
GetByIndex(Environment.test5, "<")
Аргументы#
Адрес элемента входящего сообщения, переменная окружения (список), переменная в котором(-ой) находится массив значений.
Индекс — адрес элемента входящего сообщения, переменная, строковые константные значения (
"1","2") или знаки (">","<"). Подробнее можно ознакомится в разделе Присваивание значения элементу дерева выходного сообщения.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT.task = getByIndex(In.a, 1i) |
{«task»:9} |
- |
define testVar = [2,45,103] |
{«task»:103.0} |
4. Функция «add»#
Функция «add» позволяет добавить элемент в список переменных окружения, а также в массив элемента результирующего сообщения.
Варианты написания функции:
add;
Add.
Синтаксис#
add(Out.targetRoot.test1, "const")
Add($test, In.root.test2.test3)
add(Environment.array, "test_element")
Аргументы#
Адрес элемента исходящего сообщения, переменная окружения (список), переменная в котором(-ой) находится массив значений.
Значение — адрес элемента входящего сообщения, переменная, строковые константные значения.
Особенности: в случае, если в переменной окружения отсутствует список, то при вызове функции add(...) будет создан новый список.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT = In |
{«a»:[55,9,21,77.0]} |
{ |
OUT = In |
{«a»:[55,9,21],»b»:[130.0]} |
5. Функция «addByIndex»#
Функция «addByIndex» позволяет добавлять элемент в список переменной окружения по индексу, а также в массив по индексу элемента исходящего сообщения.
Варианты написания функции:
addByIndex;
AddByIndex.
Синтаксис#
addByIndex(Environment.array, "<","second")
addByIndex(Environment.array, "+<","first")
addByIndex(Environment.array, In.root.index, "third")
addByIndex(Environment.array, ">", "last")
addByIndex(Out.targetRoot.test, "<","second")
addByIndex(Out.targetRoot.test, "+<", "first")
addByIndex($root.test, In.root.index, "third")
addByIndex($test, ">", "last")
Аргументы#
Адрес элемента исходящего сообщения, переменная окружения (список), переменная, ссылающаяся на элемент исходящего сообщения, в котором(-ой) находится коллекция.
Индекс элемента массива.
Значение нового элемента массива.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT = In |
{«a»:[18,2,99.0]} |
{ |
OUT = In |
{«a»:[18,2,77,99.0]} |
{ |
OUT = In |
{«a»:[«first»,2,77,38,9]} |
6. Функция «removeField»#
Функция «removeField» позволяет удалять поля переменной окружения по его имени, а также удалять поле элемента по его имени.
Варианты написания функции:
removeField;
RemoveField.
Синтаксис#
removeField($test, in.root.test1.test2)
removeField(Environment.test, in.test1.test3)
Аргументы#
Адрес родительского элемента сообщения, переменная окружения, переменная.
Адрес элемента, который необходимо удалить.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT = In |
{«b»:»code»} |
{ |
OUT = In |
{«a»:»topic»,»b»:»code»} |
7. Функция «removeByIndex»#
Функция «removeByIndex» позволяет удалять значения по индексу из списка в переменной окружения, а также из массива элемента сообщения.
Варианты написания функции:
RemoveByIndex;
removeByIndex.
Синтаксис#
removeByIndex($root.test2, "1")
removeByIndex(Environment.array, 1i)
removeByIndex(Environment.array, ">")
Аргументы#
Адрес элемента сообщения, переменная окружения или переменной, содержащий массив значений.
Индекс — адрес элемента входящего сообщения, переменная, строковые константные значения (
"1","2") или знаки (">","<"). Подробнее можно ознакомится в разделе Присваивание значения элементу дерева выходного сообщения.
Примеры использования функции#
Входящее сообщение |
Правило трансформации |
Выходящее сообщение |
|---|---|---|
{ |
OUT = In |
{«a»:[18,77,38,9]} |
{ |
OUT = In |
{«a»:[18,2,77,38]} |