Вводный курс
10 модулей
5 недели

Использование ID в URL

Скопировать

Создание иерархической структуры данных


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

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

Настройки страницы

В первую очередь необходимо изменить адрес страницы с таблицей городов. Для этого нужно открыть настройки соответствующего пункта меню и указать переменную :id в адресе URL.


Дальше нужно настроить навигацию, которая должна не просто переходить на указанную страницу, но и добавлять параметр ID в URL. Для этого вернемся к таблице со списком стран и настроим действия по триггеру onRowDoubleClick. Теперь при двойном клике по строке таблицы будет происходить навигация на страницу, в адресе которой будет указан ID выбранной записи.


Бизнес процесс для получения ID из URL

Следующий шаг - это получение данного ID из URL. Данная возможность может понадобиться в самых разных бизнес-процессах, поэтому наилучшим решением станет создание отдельной функции для нее. Ее можно создать в соответствующей вкладке раздела web-приложений. При этом, в отличие от бизнес-процессов, которые ранее создавали для бэкенда, она будет выполняться не на сервере, а непосредственно на устройстве того пользователя, который ее запустил.


В БП используем следующие блоки:

  • Get Current Page, для получения текущего URL.
  • Split string, чтобы разбить URL на отдельные блоки, выбрав “/” в качестве разделителя.
  • Для конкретной страницы мы могли бы сразу указать нужный String из полученного массива по его индексу. Но бизнес-процесс универсальный и может использоваться для URL другой структуры, поэтому лучше немного усложнить логику. Проверим количество элементов String в массиве после разбивки с помощью блока Array size.
  • Блоком Subtract вычтем 3 из получившегося количества (наш элемент является вторым с конца, а сама нумерация индексов начинается с 0)
  • Передадим вычисленное значение в качестве индекса в блок Array Element, для получения необходимого String из массива
  • Сделаем итоговое преобразование String в Integer.


И теперь нам остается только использовать значение из созданного бизнес-процесса в GET-запросах для получения данных в таблицу.


Was this article helpful?
Все еще ищете ответ?
Cообщество