O Modelo de Processo de Negócios e Notação (BPMN - Business Process Model and Notation) fornece um padrão para compreender todo o fluxo de processos (Fluxo de trabalho) de uma empresa em notações gráficas, garantindo o entendimento, participação e adequação de acordo nas necessidades do negócio. Atualmente o BPMN está em sua versão 2.0.2 e é mantido pela organização internacional OMG, ela também é responsável por manter outros padrões, como o UML.
As principais vantagens em utilizar o Cronapp BPM em seu projeto:
Seu uso é bem simples e possui rápida curva de aprendizado;
Todo o processo pode ser desenvolvido a partir de recursos visuais, com cliques e drag-and-drop (arrastar e soltar);
Utiliza um padrão já bem estabelecido no mercado e é suportado por diversos produtos;
O BPMN é mantido por uma instituição confiável e conhecida por manter vários outros padrões;
Possui um serviço confiável, com diagramas executáveis, fluxo de tarefas manuais, manipulação de eventos e de fácil entendimento por todos;
Figura 1 - Exemplo de modelagem BPMN usando o Editor de Fluxo de trabalho
Atualmente o Cronapp só dá suporte para criações através do motor BPM - ou seja, não é possível criar CMMN ou DMN dentro do Cronapp. No entanto, se o projeto possuir esse conteúdo e for importado, funcionará corretamente, desde que ele seja compatível com BPMN 2.0. Para acessar todos os métodos, formatos e conteúdos esperados acesse a documentação oficial do Camunda. |
Siga os passos abaixo para instalar o Plugin Cronapp Workflow (BPM) em seu projeto Cronapp.
Figura 2 - Adicionando plugin Cronapp Workflow (BPM)
Acesse no menu do sistema Plugin > Instalar Plugins.
Pesquise por "BPM" no campo de busca.
Selecione Cronapp Workflow (BPM), clique em Avançar e, em seguida, em Finalizar.
Se o botão Modo Avançado estiver habilitado, aparecerá a janela "Sumário de alterações no arquivo POM" informando as modificações necessárias para a instalação do plugin, clique em Salvar. Caso o botão esteja desabilitado, a instalação será feita sem a janela de notificação.
Após essa etapa, recomendamos Recompilar e Reabrir o projeto. |
O conteúdo criado no Cronapp BPM é armazenado em um banco de dados e, após a instalação do plugin, o Cronapp cria automaticamente uma nova conexão de banco de dados H2 com essa estrutura (Figura 2.1). Como o H2 é um banco de dados efémero (temporário), o desenvolvedor deve acessar a funcionalidade de Banco de dados (destaque 1 da figura 2.1), editar a nova conexão (2) e apontar para um banco de dados real (veja mais detalhes em Banco de dados).
Figura 2.1 - Banco de dados criado após a instalação do plugin
Também são adicionadas 5 novas categorias de Workflow no editor de Bloco de programação Servidor, permitindo a personalização dos seus fluxos de trabalho (Figura 2.2).
Acesse a documentação oficial do Camunda para obter mais informações sobre a API Workflow e os recursos executados pelos blocos. |
Figura 2.2 - Blocos de programação do Workflow
Após a instalação do plugin, seu projeto está pronto para criar uma aplicação utilizando o moto do Cronapp BPM.
Siga os passos abaixo para criar um arquivo do tipo Fluxo de trabalho em tempo de desenvolvimento.
Figura 3.1 - Criando novo arquivo BPMN
Clique com o botão direito na pasta Fluxos de Trabalho (Localização: Fluxo de Trabalho/
Endereço: |
).
Selecione a opção Novo > Fluxo de Trabalho.
O Editor de Fluxo de trabalho cobre todos os elementos do BPMN 2.0 para processos de modelagem. A figura abaixo apresenta as áreas principais do editor.
Figura 3.2 - Área de edição do Fluxo de Trabalho
Ao selecionar um elemento na área de edição serão exibidos alguns ícones de atalhos para realizar configurações (Figura 3.3), esses ícones podem variar conforme o tipo de elemento selecionado.
Figura 3.3 - Ícones de atalho do elemento evento de início
Abaixo listamos os elementos que compõem o BPMN 2.0.
Uma piscina serve para representar um processo ou participante. Uma piscina pode ter raias e o conteúdo dentro dessas raias representam as responsabilidades que um participante ou processo podem ter.
Figura 3.3.1 - Piscina e piscina com raia
Um subprocesso é um conjunto de atividades de um processo maior, possuindo mais detalhes do que o processo. O elemento que caracteriza um subprocesso é um retângulo com bordas arredondadas e que varia conforme os seus tipos: subprocesso embutido (borda simples), atividade de chamada (bordas em negrito), subprocesso por evento (bordas pontilhadas) e transação (bordas duplas) (Figura 3.3.2).
O elemento subprocesso embutido é o padrão após arrastar um subprocesso, utilize o ícone da ferramenta (destaque 3 da figura 3.3) para alterar para outro tipo de subprocesso.
Figura 3.3.2 - Tipos de subprocesso
Uma tarefa contém atividades que deverão ser realizadas pelo responsável dentro de um prazo. Essas tarefas podem ter várias definições (Figura 3.3.3) que são alternadas ao utilizar o ícone da ferramenta (destaque 3 da figura 3.3) .
Figura 3.3.3 - Tipos de tarefa
As tarefas Envio, Regra de Negócio e Tarefa de serviço suportam a execução de funções via bloco de programação. Veja mais detalhes no tópico Vincular blocos de programação.
Gateways são pontos de desvio em um processo, permitem que decisões sejam tomadas baseando-se em eventos ou dados, além de separações e junções simultâneas. Os gateways possuem símbolos internos que determinam o seu tipo, através do ícone da ferramenta (destaque 3 da figura 3.3) é possível alterá-los.
Figura 3.3.4 - Tipos de gateway
No BPMN 2.0, os dados a serem manipulados podem vir de objetos ou de banco de dados, seus respectivos ícones são representados na figura abaixo.
Figura 3.3.5 - Tipos de dados
Há três tipos básicos de eventos: o início, que possui uma borda simples, o intermediário, com uma borda dupla, e o fim, que possui bordas em negrito. Esses três tipos de eventos podem ter diversos outros eventos atrelados a eles, como tempo, condição, sinais, mensagens e entre outros.
Indica o início de um processo ou subprocesso. Há cinco tipos de eventos de início: básico, por mensagem, por tempo, por condição e por sinal (Figura 3.3.6). Utilize o ícone da ferramenta (destaque 3 da figura 3.3) para alterar seu tipo.
Figura 3.3.6 - Eventos de início
Os eventos intermediários ocorrem durante o processo. Esses eventos podem aguardar a ocorrência de fatos para que o processo continue ou gerar a ocorrência do fato para dar continuidade ao processo. Utilize o ícone da ferramenta (destaque 3 da figura 3.3) para alterar entre os tipos.
Figura 3.3.7 - Eventos intermediário
O Eventos intermediários por lançamento de mensagem suporta a execução de funções via bloco de programação. Veja mais detalhes no tópico Vincular blocos de programação.
Indica a finalização do processo ou subprocesso. Os eventos de finalização podem ser por mensagem, por escalonamento, por erro, por compensação, por terminação e por sinal. Utilize o ícone da ferramenta (destaque 3 da figura 3.3) para alterar entre os tipos.
Figura 3.3.8 - Eventos de finalização
A área de propriedades (destaque 3 da figura 3.2) pode mudar conforme o elemento selecionado. Algumas propriedades são específicas de um elemento e outras são comuns a todos.
Na aba geral é apresentado as seguintes propriedades:
Campo | Função |
---|---|
ID | O identificador do elemento é gerado automaticamente, mas que pode ser editado. |
Nome | (Opcional) Campo para adicionar um nome ao elemento. |
Versão da tag | (Opcional) Campo para adicionar um nome para ser a versão da tag. |
Executável | Ao habilitar, permite que o processo seja executado em outro fluxo. |
Prioridade da tarefa | (Opcional) Campo para informar a prioridade (valor numérico) da tarefa, que por padrão tem como valor igual a 0. |
Prioridade do processo | (Opcional) Campo para informar a prioridade do processo, que por padrão tem como valor igual a 0. |
Grupos de inicialização | (Opcional) Campo para adicionar grupos que podem realizar a inicialização do elemento ou processo. |
Usuários candidatos de inicialização | (Opcional) Campo para adicionar usuários que podem realizar a inicialização do elemento ou processo. |
Histórico de Time to Live | (Opcional) Campo para informar o tempo de vida do histórico (valor numérico), contado em dias. |
Inicializável | (Opcional) Especifica se o processo é iniciável na Lista de Tarefas ou não |
Documentação do elemento | (Opcional) Campo para descrever o elemento. |
Para conseguir selecionar um bloco de programação no BPMN, primeiro é necessário habilitar o bloco em suas configurações e, em seguida, seleciona a função no Fluxo de trabalho.
No editor de Bloco de programação servidor, abra a janela de Propriedades do Bloco de Programação, selecione a propriedade Exibir no Bpmn (destaque 1 da figura 3.4.1) e clique em Salvar. Essa opção só está disponível nos blocos de programação do tipo Servidor.
Figura 3.4.1 - Ativando opção de exibição no Bpmn
No fluxo de trabalho, você pode vincular a execução da função do Bloco de programação em alguns elementos específicos, por exemplo, uma tarefa de serviço, como mostrado abaixo.
Figura 3.4.2 - Implementação de Expressão para vincular um Blockly
1. Arraste e selecione uma Tarefa, em seguida, clique no ícone da ferramenta.
2. Selecione a opção Tarefa de Serviço.
3. Selecione a opção "Expressão" da propriedade Implementação na aba lateral Geral.
Figura 3.4.3 - Selecionando o bloco a ser vinculado
4. Clique no botão Editar da propriedade Expressão na aba lateral Geral.
5. Na janela de seleção do bloco de programação, clique no botão "...".
6. Selecione a função do bloco de programação que será executado na tarefa.
Após selecionar a opção "Expressão" no campo Implementação (3 da figura 3.4.2), os elementos que permitem a seleção de funções de blocos de programação irão exibir o botão "Editar" no campo Expressão (4 da figura 3.4.3). |
Adiciona "ouvintes" para o elemento ou o processo. Os listeners podem ser uma classe Java, uma expressão, um script ou uma expressão delegada.
Permite criar parâmetros de entrada e saída. Cada parâmetro necessita de um nome, definição de tipo (Texto, Lista, Mapa ou Script) e valor.
Nesta aba é possível adicionar novas propriedades, informando a chave e seu valor.
Nesse tópico, reveremos algumas palavras chaves e seus conceitos.
O BPM trabalha com o conceito das variáveis no processo, que tem como função básica adicionar dados ao processo em execução.
Uma variável consiste basicamente em um nome e um valor.
Todas as entidades que podem ter variáveis e são chamadas de escopos de variáveis. Estas são execuções, que incluem instâncias de processo e tarefas.
Em geral, as variáveis são acessíveis nos seguintes casos:
O mecanismo do processo suporta os seguintes tipos de valores variáveis (Figura 4).
Figura 4 - Tipos de variáveis aceitos
Dependendo do valor real de uma variável, um tipo diferente é atribuído. Entre os tipos disponíveis, existem nove tipos de valores primitivos:
boolean
: Instâncias de java.lang.Boolean
bytes
: Instâncias de byte[]
short
: Instâncias de java.lang.Short
integer
: Instâncias de java.lang.Integer
long
: Instâncias de java.lang.Long
double
: Instâncias de java.lang.Double
date
: Instâncias de java.util.Date
string
: Instâncias de java.lang.String
null
: null
referênciasUma variável que você pode definir o valor dela ao modelar o processo.
Variável que é criada na execução, por exemplo, ao executar um bloco o seu resultado irá para uma variável de execução.
Por exemplo, ao criar uma tarefa com uma caixa de entrada para o usuário inserir o número de uma nota fiscal, ao digitar, esse número vira uma variável de tarefa.
Após instalar o plugin Workflow, seu projeto web terá acesso a uma aplicação standalone que contém um painel completo para o gerenciamento do fluxo do BPMN. Essa aplicação permite administrar usuários, gerenciar e executar as tarefas com base no perfil dos usuários, alterar e manipular o fluxo e possui um dashboard das tarefas.
Por ser uma aplicação standalone, você não poderá realizar nenhuma modificação ou personalização na estrutura/layout do Painel de Gerenciamento. Porém, todos os recursos disponíveis nessa aplicação podem ser replicados e adaptados em seu projeto Cronapp através da API Workflow, disponível nos blocos de programação Servidor (Figura 2.2).
Figura 5 - Página inicial da aplicação do BPM
Para acessar a interface web do Cronapp BPM, insira "/app/" após o domínio da sua aplicação. Vale reforçar que é necessário incluir a "/" ao final do endereço.
Exemplo: https://<meu domínio>
/app/
A função de bloco de programação da figura abaixo pode ser utilizada para abrir a aplicação standalone do Cronapp BPM. Utilize o bloco Abrir URL e configure o parâmetro URL de destino concatenando o bloco Obter URL Base mais o texto "/app/".
Figura 5.1 - Exemplo de função para abrir a aplicação BPM
Para voltar para a página inicial da aplicação Cronapp, clique no ícone do usuário (1 da Figura 5.2) para abrir a opção Voltar para a aplicação.
Figura 5.2 - Retorno a aplicação cronapp
Por padrão, o painel de gerenciamento possui 3 subaplicações: Painel de controle, Lista de tarefas e Administrar (Figura 5.2). O Administrador pode definir quem pode visualizar e/ou acessar as aplicações Painel de controle e Lista de tarefa.
Ao acessar o painel de controle, sua interface (Figura 5.3) irá apresentar o número de instâncias de processos em execução, incidentes em aberto, tarefas humanas em aberto, a quantidade total de definições de processo e a quantidade total de implementações. A barra de navegação do painel de controle apresenta as seguintes funcionalidades para o painel de controle: Processos, Tarefas, Implantações e Nova definição de processo.
Figura 5.3 - Painel de Gerenciamento
A opção Processos na barra de navegação apresentará todos os processos implementados em dois formatos: Lista e Visualizações.
Exibe uma lista com as definições de processos implementadas, possui as seguintes colunas:
Figura 5.3.1 - Definições de processo implantada
Ao clicar em Visualizações será exibido o modelo visual dos processos listados, informando o número de instâncias em execução caso o processo ou subprocesso não contenha falhas ou informando o número de incidente caso o processo esteja com falhas.
Figura 5.3.2 - Definição de processo implantada
Ao clicar no Nome do processo enquanto está em formato de lista (Figura 5.3.1) ou no modo visual (Figura 5.3.2), você será redirecionado para a página de tempo de execução do processo, no qual fornece mais informações sobre o processo e seu status.
Figura 5.3.3 - Tempo de execução do processo
Menu esquerdo:
Opção superior:
Abas inferiores:
Menu direito:
Ao clicar no ícone de edição (destaque 3 da figura 5.3.3), será aberto o Editor de Fluxo de trabalho para permitir a modificação do fluxo em tempo de execução. Para entender melhor acesse, o tópico Área de Edição.
Figura 5.3.4 - Definições de trabalho
A aba Tarefa na barra de navegação possibilita a visualização de tarefas abertas e atribuídas por tipo e grupo.
Figura 5.3.5 - Atribuições por tipo e grupo
A visualização de implantação do Cockpit mostra uma visão geral de todas as implantações, seus recursos e o conteúdo desses recursos. Ele permite a exclusão de implantações existentes, a reimplantação de recursos antigos e a criação de novas implantações. O conteúdo dos recursos nas implantações pode ser exibido. Também é possível baixar recursos únicos dessa exibição.
Figura 5.3.6 - Visualização de implantação
*.bpmn
.*.bpmn
referente ao processo selecionado;Nessa aba é possível definir novos processos dentro da própria aplicação, para entender melhor como criar o fluxo dos processos acesse o tópico Área de Edição.
Figura 5.3.7 - Nova definição de processo
Atenção ao criar e editar Fluxos por essa aba em tempo de execução, pois não será possível abrir a janela de seleção de blocos de programação para vincular uma função, como ocorre ao criar em tempo desenvolvimento no Cronapp IDE. Ver mais detalhes no tópico Vincular bloco de programação. |
A lista de tarefas é acessível a partir da tela inicial do Painel de Gerenciamento e apresenta uma visão geral das tarefas pendentes.
Figura 5.4 - Janela principal da Lista de Tarefas
Área de tarefas listadas: apresenta as tarefas relacionadas ao filtro selecionado, como também um campo de pesquisa e ordenação para filtrar as tarefas por outras opções.
Ao clicar em Criar filtro +, um modal será aberto para criar e personalizar seu filtro.
Figura 5.4.1 - Modal de criação de filtro
Acordeão do modal do filtro:
Critério: são definidos os critérios do filtro. Ao adicionar um critério, são exibidos 2 campos.
Chave: uma caixa de seleção com diversas opções de filtro. Chaves marcadas com * aceita expressões como valor (ex.: ${currentUser()}
).
Valor da chave.
Após salvar, o filtro será apresentado na lista de filtros (destaque 6 da figura 5.4).
Nessa área são visualizadas todas as tarefas para o filtro selecionando, exibindo os de menor prioridade primeiro. É possível ordenar as listas de tarefas utilizando um ou mais classificadores. Por padrão, todo filtro inicia com o classificador data de criação (Criado), porém, ao adicionar uma segunda classificação, é possível excluí-la clicando no botão x antes do nome (destaque 1 da figura 5.4.2). Clique na seta na frente da classificação para definir se a ordem será ascendente (^) ou descendente (v) (Figura 5.4.2).
Figura 5.4.2 - Adicionar classificação
Abaixo dos classificadores, encontra-se o campo de pesquisa, onde é possível adicionar filtros para as tarefas listadas. Ao clicar no campo, uma lista de filtros é exibida, basta selecionar o tipo e informar o dado a ser aplicado no filtro (Figura 5.2.3). O campo também apresenta a quantidade de tarefas listadas (1 da Figura 5.4.3), um botão para copiar os filtros adicionais (2) e outro para salvar os filtros (3), permitindo selecioná-los facilmente depois. Vale ressaltar que a ordem de aplicação dos filtros influencia na busca das tarefas, então se existirem filtros como responsável e data de vencimento, a busca irá priorizar o responsável e depois aplicar o filtro de data de vencimento.
Figura 5.4.3 - Aplicando filtros no campo de busca
Opções de tipos de filtro:
ID da instância de caso.
Chave de negócio da instância de caso.
ID do caso.
Chave do caso.
Nome do caso.
Grupo candidato.
Usuário candidato.
Usuário envolvido.
Chave de definição de tarefas.
Nome: nome da tarefa.
Descrição: textos/comentários presentes nos campos de descrição da tarefa.
Prioridade: valor de prioridade.
Data de vencimento.
Data de acompanhamento.
Data de criação.
Estado de delegação.
ID do ocupante: ID de um usuário.
Sem ID do ocupante: filtra tarefa que não fora assumida.
Nessa parte é possível ver os detalhes da tarefa, realizar algumas configurações e completar a tarefa.
Figura 5.4.4 - Visualização da tarefa
Ao clicar em Atalhos na barra de navegação, um modal será exibido com informações de teclas de atalho que podem ser utilizadas nessa janela e quais são suas ações.
Figura 5.4.5 - Lista de atalhos
Ao clicar no item Nova Tarefa na barra de navegação, um modal será exibido com os campos para adicionar uma nova tarefa.
Figura 5.4.6 - Adicionar nova tarefa
As tarefas criadas nessa janela não serão vinculadas automaticamente ao processo, essa ação deve ser feita manualmente. |
Ao clicar em Iniciar um Processo na barra de navegação, um modal será exibido com a lista de processos que podem ser inicializados.
Figura 5.4.7 - Iniciar um processo
Após selecionar um processo, serão exibidos campos para incluir a Chave de negócios e Variáveis.
Figura 5.4.8 - Campos para atribuir chaves de negócios e variáveis
A página Administrar é acessível a partir da tela inicial do Painel de Gerenciamento, nela é possível configurar usuários, grupos, autorizações e sistema por meio dos serviços de identidade e autorizações do mecanismo. Além disso, você pode conectar o serviço Administrar ao seu sistema LDAP, ou seja, os usuários e grupos cadastrados através da aplicação padrão do Cronapp poderão ser utilizados automaticamente pelo sistema Cronapp BPM.
Figura 5.5 - Painel Administrar
Para criar ou editar usuários, você deverá acessar a tela de Usuários da aplicação Cronapp (Figura 5.5.1). Ao configurar um usuário, é possível vinculá-lo a um ou mais Grupos.
Figura 5.5.1 - Página de Usuário na aplicação Cronapp
O link Lista de Usuário no painel Administrar direciona para a página de gerenciamento dos usuários, clique em editar para abrir a página Meu Perfil do usuário selecionado.
Figura 5.5.2 - Lista de Usuário do Painel de controle
O link Meu Perfil no painel Administrar direciona para a página de edição do Perfil o usuário (Figura 5.5.3), para ter acesso a todos os dados do usuário, acesse a página de usuários da aplicação Cronapp. Os links ID e Editar na lista de usuários (Figura 5.5.2) também direcionam para essa página.
Figura 5.5.3 - Informações do Perfil
Na aba Grupos é possível visualizar os grupos associados e adicionar novos (Figura 5.5.4).
Figura 5.5.4 - Lista de grupos do usuário
A aplicação do BPM obtém os grupos da aplicação Cronapp. Para criar ou editar grupos, você deverá acessar a tela de Grupos da aplicação Cronapp (Figura 5.5.5).
Para mais detalhes sobre o sistema de Grupos do Cronapp, acesse a documentação Permissão de segurança.
Figura 5.5.5 - Página de Grupos na aplicação Cronapp
O link Lista de Grupo no painel Administrar direciona para a página que exibe os Grupos do sistema.
Figura 5.5.6 - Lista de Grupos
Os links ID e Editar na lista de Grupos (Figura 5.5.6) direcionam para a subaba Informação com detalhes do Grupo selecionado, já a subaba Usuários exibem os usuários vinculado ao grupo selecionado (Figura 5.5.7).
Não é possível editar os dados na subaba Informação e Usuários, para isso, acesse a página de Grupos da aplicação Cronapp.
Figura 5.5.7 - Informação do Grupo
O link Gerenciar autorizações no painel Administrar direciona para a página com o controle de acesso aos recursos da aplicação. O serviço de autorização possibilita que os usuários acessem dados em diferentes níveis, sendo possível configurar, por exemplo, quais abas da sua aplicação ele poderá acessar.
Mas lembre-se que o BPM está incorporado a uma aplicação Cronapp, que possui seu próprio controle de permissões de usuários.
Segundo a documentação oficial do Camunda, a autorização é necessária apenas se partes não confiáveis interagirem diretamente com a API do mecanismo de processo. |
No menu lateral (Figura 6.6) é possível selecionar quais grupos e usuários poderão ou não ter acesso a determinadas permissões:
Figura 5.5.8 - Gerenciar Autorizações
Ao criar ou editar uma autorização, serão exibidos os seguintes campos:
Os links Geral e Métricas de Execução no painel Administrar direcionam para páginas com informações sobre o andamento da aplicação BPM.
A subaba Geral contém informações a respeito do funcionamento do Mecanismo de processo
Figura 5.5.9 - Aba Geral
A subaba Métricas de Execução exibe um número aproximado de Instância do fluxo de nós (FNI), que é a quantidade de instâncias em andamento, processado pelo mecanismo no intervalo de tempo selecionado.
Figura 5.5.10 - Aba Métricas de Execução
Nesta Página