quarta-feira, 22 de julho de 2020

Contas Pagar/Receber - Parte XVII - BPM

Introdução
Nesse décimo sétimo post vou começar a mostrar como utilizar BPM dentro de aplicações desenvolvidas com JARCH. Pra começar vou desenhar um BPM bem simples e nos próximos posts vou evoluindo. Antes de começar com BPM vou mostrar um pequeno ajuste em nossa aplicação atual.

Expiração da Sessão
Em um post anterior eu criei a classe JsfFaseListener, vou alterar o nome dessa classe para SessaoExpiradaJsfListener para ficar mais sugestivo. Vou alterar também sua implementação para conforme a seguir:
SessaoExpiradaJsfListener.java:

public class SessaoExpiradaJsfListener {

private final void verificaSessaoExpirada(@Observes @JArchJsfEventAfter @JArchJsfEventRestoreView PhaseEvent event,
UserInformation userInformation) {

boolean login = event.getFacesContext().getViewRoot().getViewId().contains("/login.xhtml");
HttpSession session = ((HttpSession) event.getFacesContext().getExternalContext().getSession(false));

if ((session == null && !login)
|| (session != null && session.isNew())
|| (!login && !userInformation.exists())) {
JavaScriptUtils.showMessageBodyErrorRedirect("../login/login.jsf",
BundleUtils.messageBundle("message.sessaoExpirada"),
BundleUtils.messageBundle("message.sessaoExpirada"));
}
}
}
CASO de USO

Nosso cliente DSF nos passou a seguinte definição. Toda conta lançada pelo Operador:
a-) Até R$ 1.000,00 (Mil Reais), precisa somente da aprovação do Supervisor.  
b-) Acima de R$ 1.000,00 (MIl Reais) até R$ 5.000,00 (Cinco Mil Reais), precisa da aprovação do Supervisor, e caso ele aprove precisa também da aprovação do Gerente.  
c-) Acima de R$ 5.000,00 (Cinco Mil Reais), precisa da aprovação do Supervisor, e caso ele aprove precisa também da aprovação do Gerente, e caso ele aprove precisa da aprovação também do Diretor.
Para esse post vou implementar o primeiro nível de aprovação, que está definido no item "a".

BPM - Introdução

BPM é a abreviação de Business Process Management, que traduzido para o português significa Gerenciamento de Processos de Negócio.

BPM é uma abordagem de gerenciamento adaptável, desenvolvido com a finalidade de sistematizar e facilitar processos organizacionais individuais complexos, dentro e fora das empresas.

O BPM tem como intuito trazer a tona informações pertinentes de como os processos são executados para que melhorias possam ser realizadas e para que os processos possam ser gerenciados possibilitando uma melhor tomada de decisões e visão do negócio como um todo.

A grande vantagem do BPM para uma empresa é a melhora continua dos processos permitindo que as organizações sejam mais eficientes, mais assertivas e mais capazes de mudanças do que aquelas com foco funcional, com abordagem de gerenciamento tradicional hierárquico.

Inovação, flexibilidade e integração com a tecnologia. O BPM tem como foco alcançar os objetivos das organizações, sejam elas grandes ou pequenas, por meio de melhorias, gestão e controle de métodos, técnicas e ferramentas para analisar, modelar, publicar, otimizar e controlar processos envolvendo recursos humanos, aplicações, documentos e outras fontes de informação.

BPM com JARCH

O JARCH utiliza o BPM com o Camunda, o Camunda BPM é um fluxo de trabalho de código aberto e plataforma de automação de decisão. O Camunda BPM é fornecido com ferramentas para criar modelos de fluxo de trabalho e decisão, operar modelos implantados na produção e permitir que os usuários executem tarefas de fluxo de trabalho a eles atribuídos. Para saber mais sobre o Camunda acesse: https://www.camunda.org

Modeler

A ferramenta de modelagem do BPM fornecido pelo Camunda é o Modeler, utilizando a especificação BPMN. BPMN é a especificação dos componentes utilizados para modelar o BPM.
Para baixar a ferramenta acesse: 
https://camunda.com/download/modeler/
Após baixar e executar essa ferramenta:

Vou clicar em BPMN diagram:

Segue a primeira modelagem do BPM utilizando BPMN:

No fluxo desenhado acima simplesmente criei uma Lane onde coloquei a anotação de inicio de fluxo. O inicio do fluxo será quando o operador incluir uma conta na aplicação. Após o motor do Camunda criar a instância do fluxo será criado a task Avaliar Conta. Essa task é para o Supervisor, e quando o mesmo executar o motor do camunda irá direcionar para a tela de lista de lançamento de conta, onde farei a implementação para interceptar a Task que disparou essa chamada. Vou fazer a chamada da tela de dados da conta onde o Supervisor irá definir a aprovação da conta. Nesse BPM já defini algumas informações como Id, Name, Process Id, Process Name, Version Tag e Executable, conforme print:


Agora vou salvar esse arquivo como AvaliacaoConta.bpmn dentro de contas-web/src/main/resources, conforme print:

Conclusão
Nesse post mostrei como criar o BPM através da ferramenta Modeler. Nos próximos posts vou continuar implementando o modelo do fluxo para atender a necessidade do caso de uso proposto.

Segue o link dessa video aula: https://youtu.be/w5yUyxKSvJc

Até mais,





Nenhum comentário:

Postar um comentário

Versão 23.3.0-Final

      Introdução Nesse post vou mostrar as principais novidades da versão 23.3.0, algumas correções e pequenas alterações. Alterações Além d...