Mini Curso Camunda BPM Aula 09

Mateus Henrique
4 min readAug 19, 2022

Criando um sistema de pastelaria

agora vamos colocar em pratica tudo que aprendemos com camunda na pratica com um projeto que simula um delivery de uma pastelaria.

OBS. o código apresentado não representa uma implementação real, apenas para mostrar o potencial da engine!

1 Passo : Criando o fluxo bpmn

Agora abra o camunda modeler > File > New File > BPMN Diagram

Nesta atividade vamos usar os itens:

1 Pool/Participant

1 user task

1 Gateway

1 timer intermediate

1 Service task

Deve ficar dessa forma:

clique no retângulo que envolve o fluxo e mude o process id para criarPedido

nas setas depois do gateway vamos incluir as expressões que condiciona se um pedido é aceito ou não:

depois vamos incluir um timer para simular o preparo do nosso pedido com a duração de 2 minutos, diferente da aula anterior que usamos o timer como ciclo aqui usamos ele apenas para criar um delay no fluxo determinando o type como duration:

depois vamos incluir uma tarefa de serviço simulando um sistema externo de motoboy:

feito isso basta salvar o nosso fluxo como aula09 e incluir na pasta resources da sua engine ou realizar o deploy por meio do camunda modeler.

2 Passo: Configurando a Engine

como vamos realizar uma comunicação com frontend precisamos fazer uma configuração de cors para que a engine permita a gente consumir suas apis.

basta adicionar essa configuração:

@Configuration
public class CorsConfiguration extends org.springframework.web.cors.CorsConfiguration implements WebMvcConfigurer {

@Bean
public FilterRegistrationBean processCorsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOriginPattern("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
}

e também vamos incluir nossa classe java delegate que simula um motoboy saindo para entrega:

public class PreparaPastel implements JavaDelegate {

public void execute(DelegateExecution execution) {
Integer status = 3;
execution.setVariable("status", status);
}

}

Passo 3: Implementando o frontend

agora que criamos o fluxo e configuramos a engine, vamos clonar esse projeto que será o frontend do nosso sistema de pastelaria

basta clonar o projeto dar um npm install e depois npm start feito isso o projeto vai iniciar na porta 4000

ao acessar pelo navegador o link http://localhost:4000 será apresentada essa tela:

nela podemos simular o pedido de um pastel e ao clicar em realizar pedido ele vai iniciar nosso fluxo no camunda:

inclui um timer que fica checando se o pedido foi atualizado, criei uma tela para simular o aceite do restaurante:

depois de ter passado 2 minutos nosso service task fez o papel de simular um motoboy indo fazer a entrega:

o restaurante pode recusar o pedido também:

Com isso concluímos o mini curso de camunda plataform 7, mostrando as infinitas possibilidades que o camunda pode trazer e benefícios para o seu projeto fazendo com que o time de negocio e desenvolvimento esteja por dentro de todo o processo, aumentando a produtividade e diminuindo o numero de falhas no processo.

--

--