В качестве примера рассмотрим приложение To Do. В нем есть две связанные таблицы Task и User. Каждая запись в Task связана с одной записью User.
Настроим бизнес-процесс, который при клике по записи в таблице user будет открывать все задачи, связанные с пользователем, на которого кликнули.
Настройка страницы для перехода
Создадим новую страницу и разместим ее в разделе App components. Зададим имя таблицы – Task_user и URL страницы – /taskuser/:id.
С помощью :id можно отслеживать, на какую запись кликнули.
Настройка перехода по клику
Теперь перейдем в Workflow таблицы User и настроим БП на триггер onRowClick.
Добавим блок Navigate. В поле Page установим URL – Task_user, а в поле Record ID передадим Record ID из триггера.
Таким образом, при клике на строку мы будем переходить на страницу Task_user, в URL которой всегда будет находиться id записи, по которой произошел клик.
Считывание ID из адреса
Теперь создадим БП, который будет получать ID из URL и отдавать его в формате integer.
Для этого нужно перейти на вкладку Business Processes и нажать Add Business Processes.
Используем блок Get Current Page. Он отдает Title и URL страницы в формате string.
Из всего URL будет нужен только ID, поэтому необходимо разбить строку с помощью блока Split String. Передадим в него значение URL из блока Get Current Page. ID в URL отделен символом “/”, поэтому укажем его в качестве Separator.
В результате получаем строковый массив, в котором содержатся все элементы URL, разделенные “/” и пронумерованные по порядку от 0.
ID находится между последним и предпоследним символом “/”, поэтому, чтобы получить его, нам нужно от размера массива отнять 2. Сделаем это с помощью блоков Array Size и Subtract.
Теперь у нас есть список элементов URL и номер элемента, в котором содержится ID.
ID можно получить с помощью блока Array Element. Передадим в него список из блока Split String и результат из блока Subtract.
Поскольку ID нужен в формате integer, используем блок To integer и сохраним его результат как переменную блока END.
Теперь перейдем к Workflow таблицы на странице Task_user. Добавим в него полученные данные из БД, как в этой инструкции. Перед блоком GET вставим БП получения ID из URL.
Передадим значение из поля pageid в поле user.
При клике на строку в таблице User, мы увидим таблицу всех задач (task), связанных с этим пользователем (user).