4.3 Использование пользовательских процессов
Last updated
Last updated
"Пользовательские рабочие процессы"/"Custom workflows" - это способ описать процесс, который будет использоваться несколько раз на вашей странице.
Согласно основному правилу программирования, будь то на Bubble или на традиционном, управляемом кодом языке, следует уменьшить использование избыточных инструкций, рабочих процессов или строк кода настолько, насколько возможно. Это помогает получить более компактное приложение и упрощает отладку, модификацию и обслуживание.
Если обнаруживается, что повторяется одна и та же логика, другими словами, последовательность действий, более чем в одном рабочем процессе, вы можете оптимизировать проект, используя пользовательский рабочий процесс, который будет запускаться более чем в одном процессе. Например, у пользователя есть два способа зарегистрироваться в сервисе, тогда процесс регистрации, который совершает не только регистрацию, а еще и отсылает письмо, проводит аналитику и т.д. будет отличным кандидатом на пользовательский процесс. Вы можете перенести повторяющуюся последовательность действий в пользовательский рабочий процесс и вызывать его через срабатывание пользовательского события в обоих процессах регистрации.
Создание пользовательского процесса аналогично созданию обычного рабочего процесса. Вы выбираете событие и добавляете какие-то действия. В данном случае типом события будет "Пользовательское событие"/"Custom event", которое похоже на обычные события, и для него можно задать условие. В специальном поле можно задать тип сущности для данного рабочего процесса. Сущности и типы данных будут рассмотрены в мельчайших деталях в главе "Работа с данными" (!!!ЛНК!!!). Для людей, знакомых с традиционными языками программирования, пользовательский рабочий процесс - это функция, а данные, которые вы посылаете, сравнимы с параметром. Тип сущности для пользовательского процесса может быть типом из базы данных, созданной для вашего приложения, или же простым типом, таким как текст, число и т.д.
После задания типа сущности для пользовательского события вы сможете получить доступ к этой сущности в Конструкторе выражений в последующих действиях. Например, пользовательский процесс принимает сущность "Пользователь", тогда вы сможете послать письмо по адресу "This Workflow User`s email"/"email пользователя из данного процесса". Это выражение примет значение пользователя, которого только что передали во время запуска события. (см ниже)Если вы хотите повторно использовать пользовательский процесс более чем на одной странице, вы можете добавить пользовательское событие в повторно используемый элемент. Сделав так, вы на любой странице сможете получить доступ к этому пользовательскому событию.
Как только пользовательское событие создано, вы можете добавить некоторые действия в свои рабочие процессы, чтобы использовать этот рабочий процесс. Просто выберите "Trigger custom event action"/"Запустить действие для пользовательского события" (или "Trigger custom event action from a reusable element"/"Запустить действие для пользовательского события из элемента повторного использования", если вы добавили пользовательское событие в элемент повторного использования).Если тип сущности определен, вам нужно будет выбрать сущность, которую нужно передать в каждое действие. Тип этой сущности должен совпадать с типом сущности, который задан на уровне рабочего процесса, и несовместимость типов будет помечена ошибкой. Следует отметить, что данная сущность является обязательной, и должна быть заполнена (так как пользовательский процесс может получать доступ к "Current Workflow Item"/"Элемент текущего процесса")
Когда во время работы запускается рабочий процесс и доходит до действия, запускающего пользовательское событие, первый процесс останавливается, пользовательское событие отрабатывает до своего завершения, и затем возобновляется первый процесс. Для понимания порядка действий полезно использовать отладчик, если вы столкнулись с трудностями в настройке.