
Планирование ваших проектов может включать проекты процессов, но задумывались ли вы о том, как можно инициировать процесс?
Возможно, у вас есть JBoss BPM Suite, работающий локально в вашей архитектуре, может быть, он работает в облаке, но где бы он ни был, вам все равно нужно будет сделать осознанный выбор о том, как инициировать процесс.
Здесь мы рассмотрим три основных способа, которыми вы можете лучше всего начать процесс JBoss BPM:
- Панель инструментов UI
- RestAPI
- клиентское приложение (API)
BPM Suite UI
Для полноты картины мы должны упомянуть, что возможность запуска экземпляра процесса существует в виде кнопки в инструментальной панели JBoss BPM Suite.
Когда вы вошли в JBoss BPM Suite и закончили разработку проекта, ваш проект BPM может быть построен и развернут следующим образом.
|
1
|
AUTHORING -> PROJECT AUTHORING -> TOOLS -> PROJECT EDITOR -> BUILD&DEPLOY (button) |
Следующим шагом является запуск экземпляра процесса в перспективе управления процессом одним из двух способов.
|
1
2
3
|
1. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> start-icon 2. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> magnifying-glass-icon -> in DETAILS panel -> NEW INSTANCE (button) |
Оба эти метода приведут к запуску экземпляра процесса и появлению формы запуска, если данные должны быть переданы в процесс BPM.
RestAPI
Предполагая, что вы будете призывать к запуску процесса BPM после развертывания из различных возможных мест, мы хотели показать вам, как их можно легко интегрировать.
Не имеет значения, запускаете ли вы процесс из веб-приложения, мобильного приложения или создаете серверные службы для своего предприятия, чтобы использовать их в качестве отправной точки для процессов. Открытый RestAPI обеспечивает идеальный способ запуска вашего BPM-процесса и может быть показан в следующем примере кода.
Этот пример — очень простой Rest-клиент, который, для ясности, будет встраивать различные переменные, которые можно передать такому клиенту, непосредственно в пример кода. Переменные, которые запускаются в процессе, не передаются, для этого мы приведем более полный пример в разделе, посвященном клиентскому приложению .
Он отправляет команду запуска процесса и не ожидает обратной связи от вызываемого процесса BPM оценки клиента , так как это прямой процесс (STP).
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
public class RestClientSimple { private static final String AUTH_URL = "http://localhost:8080/business-central/org.kie.workbench.KIEWebapp/j_security_check"; private static final String DEPLOYMENT_ID = "customer:evaluation:1.0"; private static final String PROCESS_DEF_ID = "customer.evaluation"; private static String username = "erics"; private static String password = "bpmsuite"; private static AuthenticationType type = AuthenticationType.FORM_BASED; public static void main(String[] args) throws Exception { System.out.println("Starting process instance: " + DEPLOYMENT_ID); System.out.println(); // start a process instance with no variables. startProcess(); System.out.println(); System.out.println("Completed process instance: " + DEPLOYMENT_ID); } /** * Start a process using the rest api start call, no map variables passed. * * @throws Exception */ public static void startProcess() throws Exception { String newInstanceUrl = BASE_URL + "runtime/" + DEPLOYMENT_ID + "/process/" + PROCESS_DEF_ID + "/start"; String dataFromService = getDataFromService(newInstanceUrl, "POST"); System.out.println("newInstanceUrl:["+newInstanceUrl+"]"); System.out.println("--------"); System.out.println(dataFromService); System.out.println("--------"); }<...SNIPPED MORE CODE...>} |
Основой здесь является настройка URL-адреса бизнес-центра, указывающего на начальный вызов RestAPI. В методе main можно найти вызов метода startProcess (), который создает URL-адрес RestAPI и захватывает ответ данных, отправленный из JBoss BPM Suite.
Чтобы узнать подробности о том, как это сделать, обратитесь к этому классу в полном объеме в рамках демонстрационного проекта JBoss BPM Suite и JBoss Fuse Integration .
Интермеццо на тестировании
Простой способ протестировать ваш процесс после его сборки и развертывания — использовать curl для отправки запроса процессу через RestAPI. Такой запрос выглядит следующим образом, сначала в общей форме, а затем в режиме реального времени через тот же проект оценки клиента, который использовался в предыдущем примере.
Общий вызов RestAPI и правильный запрос аутентификации выполняются в curl следующим образом:
|
1
|
$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_par1=var1↦_par2=var2' |
Для процесса оценки клиента полный цикл использования curl для вызова процесса запуска, аутентификации нашего пользователя и получения ответа от JBoss BPM Suite должен обеспечить следующий результат.
|
1
2
3
4
5
|
$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics'Enter host password for user 'erics': bpmsuite1!{"status":"SUCCESS","url":"http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics","index":null,"commandName":null,"processId":"customer.evaluation","id":3,"state":2,"eventTypes":[]} |
Мы видим завершенные экземпляры процесса в проекциях экземпляров процесса, как показано.
Клиентское приложение
Третий и последний способ запуска ваших экземпляров процесса JBoss BPM Suite больше соответствует внедрению набора предопределенных представлений для заполнения истории отчетов и может основываться на исторических данных.
Показанный здесь пример доступен в большинстве демонстрационных проектов, которые мы предоставляем, но взят из демонстрационного проекта « Ипотека» .
Этот демонстрационный клиент использует статические строки данных, которые вводятся в процесс по одному. С небольшими изменениями можно извлечь исторические данные из существующего источника данных и внедрить столько процессов, сколько необходимо в этом формате. Это также хороший способ стресс-тестирования ваших технологических проектов.
Мы пропустим настройку сеанса и детали процесса, как это было показано выше, но вместо этого предоставим ссылку на весь класс демо-клиента и оставим эти подробности для читателя.
Здесь мы просто сосредоточимся на том, как будут выглядеть отдельные вызовы процесса запуска.
|
01
02
03
04
05
06
07
08
09
10
11
|
public static void populateSamples(String userId, String password, String applicationContext, String deploymentId) { RuntimeEngine runtimeEngine = getRuntimeEngine( applicationContext, deploymentId, userId, password ); KieSession kieSession = runtimeEngine.getKieSession(); Map processVariables; //qualify with very low interest rate, great credit, non-jumbo loan processVariables = getProcessArgs( "Amy", "12301 Wilshire", 333224449, 100000, 500000, 100000, 30 ); kieSession.startProcess( "com.redhat.bpms.examples.mortgage.MortgageApplication", processVariables );} |
Как вы можете видеть, последняя строка — это то место, где индивидуальная ипотека передается в JBoss BPM Suite. Если вы изучите остальную часть класса, вы найдете несколько записей, запускаемых одна за другой.
Мы надеемся, что теперь у вас есть хорошее понимание того, как вы можете инициировать процесс и выбрать тот, который наилучшим образом соответствует потребностям вашего проекта.
| Ссылка: | 3 основных способа начать процесс BPM в JBoss от нашего партнера по JCG Эрика Шабелла в блоге Эрика Шабелла . |



