Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre Activiti (BPM Framework)

Bom dia galera,

Embora não tenha curso sobre esse item aqui, gostaria de deixar a pergunta para a comunidade caso alguém já tenha atuado com esta ferramenta.

Em relação ao framework Activiti para fluxo de processos de negócio, saberiam me dizer se é possível o seguinte cenário:

Ao invés de usar o IdentityService para controle de User, Group e Membership (relação entre users e groups), seria possível fazer o ProcessEngine usar classes de um próprio sistema (aplicação Java) como Usuario, Grupo e UsuarioGrupo?

Vi que existe forma de integrar o Activiti com LDAP, AD, etc. Mas ainda assim os dados passam pela estrutura de User, Group e Membership durante a ProcessEngineConfiguration. Queria saber se tem algum jeito, alguma configuração para não ter que usar de fato a estrutura do Activiti e fazer ele reconhecer e trabalhar com outra estrutura.

Em teoria poderia ser possível, uma vez que o Acvitivi só mantém esses dados de User e Group como referência, pois para startar um processo de um user, ele não faz nenhum tipo de validação de integridade do usuário, se ele existe no sistema. O processo é simplesmente iniciado para aquele usuário x.

Agradeço a participação de todos de antemão.

Abraços.

2 respostas

Oi Emerson, tudo bem ?

Cara, acho que o pessoal não conseguiu te ajudar nisso, parece bastante especifico, mas se você acha que faria sentido ter um curso disso aqui na plataforma, você podia sugerir, temos uma funcionalidade para isso no rodapé da página.

Abraços

solução!

Fala Matheus, tranquilo?

Sim eu imaginei, foi mais um tiro no escuro mesmo, vai que pegava alguém que já tinha utilizado. Vou fazer a sugestão sim, afinal é um framework interessante para trabalhar com BPMN em Java, além de gratuito.

Quanto a resposta da pergunta, caso interesse a alguém no futuro:

É possível sim, Activiti permite que você utilize sua própria API para usuários e grupos, sendo necessário alguns passos:

  1. Criar classe de Factory que implemente a interface org.activiti.engine.impl.interceptor.SessionFactory. Na implementação do método openSession() retornar a instância do seu Manager customizado.

  2. Criar classe de Manager que estenda a interface necessária, por exemplo, se será um manager customizado para grupos, estender org.activiti.engine.impl.persistence.entity.GroupEntityManager.

  3. Sobrescrever os métodos necessários para cada customização no manager criado.

  4. Configurar o activiti.cfg.xml adicionando a propriedade abaixo:

    <property name="customSessionFactories">
         <list>
             <bean class="br.com.exemplo.bpmn.MyCustomGroupManagerFactory" />
         </list>
    </property>

Lembrando que também é possível utilizar LDAP e Active Directory para Usuarios e Grupos, caso necessário (leiam mais em https://www.activiti.org/userguide/).

Abraço.