Понимание массивов и объектов в выходных данных функций коннектора
  • 31 Oct 2023
  • 4 Минуты для чтения
  • Авторы

Понимание массивов и объектов в выходных данных функций коннектора


Вводный текст

Назначение

Функции коннекторов SQL и HTTP передают "выходные данные" в приложения в виде объектов или массивов. Узнайте, как манипулировать этими объектами в приложениях.

В этой статье вы узнаете... * Как использовать "выходные данные" функции коннектора в приложении

Как использовать выходы функций-коннекторов в приложениях

Массивы и объекты - две популярные структуры данных, которые используются во многих языках программирования. Tulip использует обе эти структуры данных в функциях-коннекторах:

  1. Когда функция коннектора SQL выводит несколько строк, результат передается в приложение в виде массива, состоящего из объектов.
  2. Когда функция HTTP-коннектора возвращает выходной файл с массивом, этот массив отображается в приложении как массив, полный объектов.
  3. Когда функция SQL-коннектора выводит одну строку или функция HTTP-коннектора имеет любой выход, значения хранятся в объекте в виде пар ключ/значение.

Объекты могут быть созданы автоматически только после успешного завершения функции коннектора.

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

Сбор выходных данных от коннекторов

Представьте себе, что вы хотите получить все данные о конкретном операторе из базы данных SQL на основе его идентификатора Tulip-бейджа.

Для этого необходимо написать функцию SQL-коннектора, которая принимает в качестве входного параметра badge_id и сохраняет всю информацию об операторе в выходной файл. В данном случае выход называется group_name. Вот как это будет выглядеть:

Эта функция имеет один выход - имя_группы, который хранится в виде строки. Это основано на метке "Текст" в разделе Outputs.

На самом деле, при создании функции Connector нет возможности хранить выходные данные в виде массива или объекта. Вот допустимые типы данных из раздела "Outputs".

Поэтому необходимо сохранить его как "Текст", а затем работать с ним в редакторе триггеров.

Запустите эту функцию в редакторе триггеров для сохранения выходных данных в виде объекта.

  • Коннектор "Запустить функцию коннектора": "SBD - Test" "Operator Navigation"
  • идентификатор значка: "Static Value" "text" "2222" и сохраните результат как: "Переменная" "test_var".

В данном случае в качестве входного значения используется значение 2222, а выходной результат сохраняется в переменной "test_var".

Использование объектов в приложении

В приведенном выше примере мы взяли выходное значение под названием group_name и сохранили его в переменной test_var. В представлении App Variables видно, что эта переменная на самом деле является объектом с одним свойством "group_name".

На самом деле, если бы функция-коннектор имела несколько выходов, то каждый из них хранился бы как новое свойство объекта под названием "test_var", созданного в триггере. Это позволяет организовать все выходы одного вызова функции в одном месте.

Протестировать выходы функции можно, добавив в приложение текст Variable, а затем выбрав переменную на вкладке Widget контекстной панели.

В данном случае у нас есть переменная "Order Details", которая хранит объект с 5 полями:

  • orderPlaced
  • количество
  • адрес1
  • адрес2
  • адрес3

Как только вы выберете объект в окне поиска переменных, в приложении появятся все 5 полей с метками, основанными на названиях свойств. Чтобы увидеть их все сразу, может потребоваться развернуть текстовое поле переменной.

Отображение объектов

Если объект имеет несколько свойств, возможно, потребуется отобразить их все сразу на одном этапе работы с приложением. Это проще, чем создавать новый переменный текст для каждого отдельного свойства.

Для переупорядочивания/удаления отдельных свойств объекта нажмите на символ x или сетки на свойстве в контекстной панели.

Для изменения количества столбцов используйте опцию Columns в контекстной панели.

Чтобы изменить отображение меток и значений, настройте цвет и размер шрифта в контекстной панели.

Чтобы увидеть, как эти данные будут показаны оператору, запустите приложение в Player, и вы сможете увидеть весь объект. Значения будут включены, если предварительно запустить функцию-коннектор, которая собирает значения.

Манипулирование объектами

Использование массива объектов в приложении может ограничить возможности извлечения нужных точек данных. Вы можете манипулировать массивом объектов, выводимым функцией-коннектором, чтобы облегчить доступ к данным, которые вы хотите использовать в своей логике и т.д. Это можно сделать, указав ключ(и) в объекте, который необходимо извлечь. Это поможет упорядочить вывод данных, позволяя лучше использовать интересующие вас данные.

Пример функции коннектора показан ниже:

image.png

image.png

На выходе получается массив объектов. Когда функции коннектора возвращают массив объектов, в редакторе выражений предусмотрены действия, позволяющие манипулировать ими. Эти функции map позволяют сопоставлять соответствующие значения по заданному ключу. Выведенные значения могут быть отображены на массив выбранного типа. Для получения текстового массива всех названий можно использовать функцию MAP_TO_TEXT_LIST().

image.png

  • Коннектор "Run Connector Function": "Test" "Test Function" и сохранить результат как: "test_output"
  • "Манипуляция данными" "Хранить" данные: "Выражение" "MAP_TO_TEXT_LIST(Variable.test_out.Test Parent, 'Test Child')".

Первым параметром, передаваемым в функцию map, является массив объектов. Второй параметр, 'Test Child', - это имя экстрактора, указанное в выводе функции connector. Имя экстрактора используется в качестве ключа для извлечения значений. В результате все названия будут выведены в массив строк.

Просмотр всех объектных переменных в приложении

Для того чтобы манипулировать структурой данных в приложении, она должна быть уже сохранена в виде переменной. Посмотреть существующие переменные можно, войдя в контекстную панель редактора приложений и выбрав символ Sigma рядом с надписью "Variables" на вкладке App.

Объекты будут отображаться с помощью универсального символа объекта "{}".

Отображение нескольких строк SQL или массивов из HTTP-коннекторов

Если вы хотите превратить несколько строк SQL-вывода или массивов из HTTP-коннекторов в интерактивные списки в приложении, обратитесь к этому отдельному руководству.

Читать далее


Вы нашли то, что искали?

Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!


Была ли эта статья полезной?