Сложные переменные
Как работает парсер сложных переменных
При запросе во вне или работе с интеграциями может приходить не просто ответ в виде текста, а различные сложные структуры. В таком случае в переменную автоматически записывается JSON структура ответа.
Запрос во внеПример
При получении строк из Google мы получили такой ответ:
{
"message":"Строки найдены и возвращены",
"rows_indexes":[1,2],
"count_rows":2,
"not_found":0,
"row_values":[
["04.10.2021","А","р.1 092,36"],
["04.10.2021","Б","р.752,68"],
],
"result_code":1
}
В строках лежат значения в таком виде:

Как получить конкретное значение по строке из ответа?
Сначала покажем на готовом примере:
{%i.message%} - выведет фразу "Строки найдены и возвращены"
{%i.row_values.0.0%} - выведет "04.10.2021"
{%i.row_values.0.1%} - выведет "А"
{%i.row_values.1.1%} - выведет "Б"
где i - переменная, в которую пришел ответ от интеграции.
Вот так это выглядит в блоке сообщения:

И вот в таком виде сообщение придет получателю:

Принцип работы
Переход внутрь JSON структуры осуществляется через символ точки. То есть, если в переменной i лежит структура:
{
"message":"Строки найдены и возвращены",
"result_code":1
}
то, чтобы получить message, нам нужно составить переменную {%i.message%}. Чтобы получить result_code - нужно написать {%i.result_code%}
В блоке сообщения это выглядит так:

Массивы
Получить элемент из массива можно по такому же принципу. Помните, что индекс массива начинается с 0. То есть, значение первого элемента получается через индекс 0.
Вот пример массива row_values:
{
"row_values":[
["04.10.2021","А","р.1 092,36"],
["04.10.2021","Б","р.752,68"],
],
}
Как понять, что это массив - после названия стоит квадратная скобка [. Каждая открывающаяся скобка - новый массив, элементы в котором пронумерованы от 0.
Если мы просто напишем {%i.row_values%} - получим такой текст (он будет без пробелов, здесь показано отформатировано, чтобы лучше читалось):
[
["04.10.2021","А","р.1 092,36"],
["05.10.2021","Б","р.752,68"]
]
Теперь, чтобы получить элементы первой строчки, нужно добавить к нашей переменной символ 0.
Вот так получится при {%i.row_values.0%}
["04.10.2021","А","р.1 092,36"]
Уже почти добрались до элемента. По такой же логике добавляем порядковый номер (индекс) нужного нам элемента.
Например, мы хотим получить дату.
Пишем: {%i.row_values.0.0%}
Получаем:
04.10.2021
Отлично. Логика по остальным элементам схожая:
{%i.row_values.0%} выведет ["04.10.2021","А","р.1 092,36"]
{%i.row_values.0.0%} выведет 04.10.2021
{%i.row_values.0.1%} выведет А
{%i.row_values.0.2%} выведет р.1 092,36
Ремарка от разработчика
Если вы поняли логику работы сложных переменных, то я вас искренне поздравляю: вы можете по праву считаться продвинутым человеком в мире автоматизации и ботов :)
Функционал довольно сложный для понимания "с ходу", но предоставляет огромный простор действий. Советую просто попробовать и посмотреть, как это работает, чтобы на практике научиться всем тонкостям.
Удачи в ваших проектах!
Last updated
Was this helpful?