Функции модификации коллекций#

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[>])

Аргументы#

  1. Адрес элемента результирующего сообщения, переменная окружения, переменная.

  2. Ключ — адрес элемента входящего сообщения, переменная, переменная окружения.

  3. Значение, которое будет соответствовать ключу — адрес элемента входящего сообщения, переменная, переменная окружения.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
«a»: «topic»,
«b»: «code»
}

put(Out.m, In.a, In.b)

{«m»:{«topic»:»code»}}

{
«a»: «topic»,
«b»: «code»
}

OUT = In
put(Out.m, In.a, «number»)

{«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)

Аргументы#

  1. Адрес родительского элемента входящего сообщения, переменная окружения, переменная.

  2. Ключ — адрес элемента входящего сообщения, переменная, переменная окружения, константное строковое значение.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
»a»:{«topic»:»code»},
«b»: «topic»
»c»: «number»
}

OUT.task = get(In.a, In.b)

{«task»:»code»}

{
»a»:{«topic»:»code»},
«b»: «topic»
»c»: «number»
}

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. Индекс — адрес элемента входящего сообщения, переменная, строковые константные значения ("1", "2") или знаки (">", "<"). Подробнее можно ознакомится в разделе Присваивание значения элементу дерева выходного сообщения.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
»a»:[55, 9, 21],
«b»: «topic»
}

OUT.task = getByIndex(In.a, 1i)

{«task»:9}

-

define testVar = [2,45,103]
OUT.task = getByIndex($testVar, «>»)

{«task»:103.0}

4. Функция «add»#

Функция «add» позволяет добавить элемент в список переменных окружения, а также в массив элемента результирующего сообщения.

Варианты написания функции:

  • add;

  • Add.

Синтаксис#

add(Out.targetRoot.test1, "const")
Add($test, In.root.test2.test3)
add(Environment.array, "test_element")

Аргументы#

  1. Адрес элемента исходящего сообщения, переменная окружения (список), переменная в котором(-ой) находится массив значений.

  2. Значение — адрес элемента входящего сообщения, переменная, строковые константные значения.

Особенности: в случае, если в переменной окружения отсутствует список, то при вызове функции add(...) будет создан новый список.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
«a»:[55, 9, 21]
}

OUT = In
add(Out.a, 77)

{«a»:[55,9,21,77.0]}

{
«a»:[55, 9, 21]
}

OUT = In
add(Out.b, 130)

{«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")

Аргументы#

  1. Адрес элемента исходящего сообщения, переменная окружения (список), переменная, ссылающаяся на элемент исходящего сообщения, в котором(-ой) находится коллекция.

  2. Индекс элемента массива.

  3. Значение нового элемента массива.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
«a»: [18,2,77]
}

OUT = In
addByIndex(Out.a, 2i, 99)

{«a»:[18,2,99.0]}

{
«a»: [18,2,77]
}

OUT = In
addByIndex(Out.a, 3i, 99)

{«a»:[18,2,77,99.0]}

{
«a»: [18,2,77,38,9]
}

OUT = In
addByIndex(Out.a, «<», «first»)

{«a»:[«first»,2,77,38,9]}

6. Функция «removeField»#

Функция «removeField» позволяет удалять поля переменной окружения по его имени, а также удалять поле элемента по его имени.

Варианты написания функции:

  • removeField;

  • RemoveField.

Синтаксис#

removeField($test, in.root.test1.test2)
removeField(Environment.test, in.test1.test3)

Аргументы#

  1. Адрес родительского элемента сообщения, переменная окружения, переменная.

  2. Адрес элемента, который необходимо удалить.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
«a»: «topic»,
«b»: «code»
}

OUT = In
removeField(Out, «a»)

{«b»:»code»}

{
«a»: «topic»,
«b»: «code»
}

OUT = In
removeField(out, «m»)

{«a»:»topic»,»b»:»code»}

7. Функция «removeByIndex»#

Функция «removeByIndex» позволяет удалять значения по индексу из списка в переменной окружения, а также из массива элемента сообщения.

Варианты написания функции:

  • RemoveByIndex;

  • removeByIndex.

Синтаксис#

removeByIndex($root.test2, "1")
removeByIndex(Environment.array, 1i)
removeByIndex(Environment.array, ">")

Аргументы#

  1. Адрес элемента сообщения, переменная окружения или переменной, содержащий массив значений.

  2. Индекс — адрес элемента входящего сообщения, переменная, строковые константные значения ("1", "2") или знаки (">", "<"). Подробнее можно ознакомится в разделе Присваивание значения элементу дерева выходного сообщения.

Примеры использования функции#

Входящее сообщение

Правило трансформации

Выходящее сообщение

{
»a»: [18,2,77,38,9]
}

OUT = In
removeByIndex(Out.a, 1i)

{«a»:[18,77,38,9]}

{
»a»: [18,2,77,38,9]
}

OUT = In
removeByIndex(Out.a, «>»)

{«a»:[18,2,77,38]}