Histórico da Página
...
Este documento tem como objetivo descrever como foi desenvolvido e implementado a solução técnica para realizar a experiência #2 que consiste na internalização de funcionalidades dos produtos do Totvs Financial Services para o Fluig.
Limitação do escopo
Conforme a descrição de escopo do documento de declaração de trabalho das experiências de uso, o texto sugere que o motor de aprovação de limite de crédito seja todo executado no Fluig, substituindo o motor que existe atualmente no GRisco, mantendo o mesmo como sistema de background para persistência e repositório da proposto no seu estado final, ou seja, aprovada ou negada. Foi, então, selecionado um processo real do cliente Moneo e tomado como referência para ser reproduzido no Fluig. Algumas características importantes acerca do processo escolhido serviram para limitar o escopo do desenvolvimento:
- O processo de proposta de limite de crédito possui atividades dispostas em série, sendo que cada atividade corresponde a uma etapa de aprovação e a próxima etapa só poderá ser alcançada se a anterior tiver sido aprovada. Cada atividade no Fluig pode ser entendida como um evento no GRisco;
- O processo possui tomadas de decisão, ou seja, toma caminhos diferentes conforme os produtos selecionados para concessão do limite de crédito. Se a proposta de crédito tiver os dois produtos, Garantia e Finame, significa que será criado duas linhas de fluxo, caracterizando um processamento paralelo. Se na atividade em uma das linhas for negada pelo usuário, a solicitação será cancelada, mesmo que na outra linha a atividade (proposta) seja aprovada, e o processo não atingirá seu final;
- Não está previsto atividade conjunta, que são aquelas atividades que possuem vários aprovadores que precisam chegar a um consenso.
Desenho o processo no Fluig
Para desenhar o processo, foi utilizado o TDS (Totvs Developer Studio). Trata-se de uma ferramenta baseada no Eclipse com plug-ins para desenvolvimento no Fluig. Dentro do projeto foi criado o desenho do processo conforme ilustração abaixo:
O processo inicia com a seleção do cliente para qual a proposta será criada e preenchimento do formulário com os dados da proposta: seleção dos produtos para concessão de limite, inserção de participantes (avalistas), bens e garantias. Assim que o formulário é submetido, o processo caí na primeira atividade, que é o Parecer Comitê Análise. Esta atividade está possui um mecanismo de atribuição definido por Grupo. Mais adiante será explicado sobre os diversos tipos de mecanismos de atribuição e seus comportamentos. Ao assumir a atividade, o usuário pertencente ao Grupo “Comitê de Análise” terá acesso ao formulário preenchido com as informações da proposta. Ele poderá alterar as informações conforme julgar necessário e quando concluir, deverá aprovar ou negar a proposta e então enviar. Ao enviar, o fluxo do processo será direcionado para a próxima atividade, Parecer Supervisor de Crédito. Esta atividade possui um mecanismo de atribuição definido por Papel. Quando um usuário que possui o papel de Supervisor de Crédito assumir a atividade, lhe será exibido o formulário da mesma forma como foi exibido na atividade anterior e, igualmente, lhe será permitido alterar os dados da proposta a critério. Ao enviar a atividade, o fluxo será direcionado para a próxima atividade, Parecer Gerente Crédito. Esta atividade é idêntica à anterior, com a diferença que o usuário que a for assumir deverá ter papel de Gerente de Crédito. A próxima atividade no fluxo depende de uma tomada de decisão. Esta decisão está baseada nos tipos de produtos que a proposta de limite de crédito possui. Se a proposta possuir um Finame, o fluxo será direcionado para a atividade Parecer Comitê Gestor. Caso possua Garantia, será direcionado para Parecer Comitê CEO. Caso a proposta não possua nenhum dos dois produtos citados anteriormente o processo será finalizado diretamente. Caso possua Garantia ou Finame, ao fim de ambas atividades o processo será finalizado e a proposta de limite de crédito estará disponível no GRisco, conforme decisão dos usuários, seja aprovada ou negada.
...
Mecanismos de atribuição de atividades
...
As atividades do processo precisam ser atribuídas para que algum usuário qualificado possa assumir a atividade e dar andamento no processo. No Fluig, existem várias maneiras de se definir mecanismos de atribuição de atividades. Veja tabela abaixo os mecanismos disponíveis. No contexto do motor de crédito do GRisco, será utilizado apenas os mecanismos de atribuição Para um Grupo (Pool) e Para um Papel (Pool).
Solução técnica
Para permitir a integração com o Fluig, foi necessário expor uma série de serviços do GRisco. Para tanto, foi criado uma camada de serviços utilizando tecnologia REST bem como SOAP. Veja na tabela abaixo os serviços expostos:
Mecanismo de Atribuição | Descrição |
---|---|
Para um Papel (Pool) | Permite atribuir tarefas a um papel e não apenas a um usuário. Assim, qualquer um dos usuários neste papel pode assumir as tarefas para completá-las. |
Para um Grupo (Pool) | Permite atribuir tarefas a um grupo e não apenas a um usuário. Assim, qualquer um dos usuários deste grupo pode assumir as tarefas para completá-las. |
Por Associação | Permite compor lógicas complexas de atribuição por intermédio da associação de vários mecanismos. |
Por Campo de Formulário | Permite atribuir tarefas ao usuário informado em um campo do formulário do processo. |
Por Executor de Atividade | Permite selecionar os usuários que executaram uma atividade anterior. |
Por Grupo | Permite filtrar apenas os usuários que façam parte de um determinado grupo. |
Por Grupos do Usuário | Permite filtrar apenas os usuários que pertençam a um dos grupos do usuário corrente, ou do usuário que iniciou o processo (solicitante). Também permite filtrar apenas os usuários cujo grupo de trabalho seja o mesmo do usuário (corrente ou solicitante). |
Por Papel | Permite filtrar apenas os usuários que possuam um determinado papel. |
Por Usuário | Permite atribuir tarefas a um usuário específico. |
Solução técnica
...
. |
...
Serviços RESTful
Serviços | Método | Descrição |
---|---|---|
DomainsResource | listarResponsabilidade | Retorna um Array de Responsabilidades conforme domínio de responsabilidades do Credimaster (DominioResponsabilidadeCredimaster). |
DomainsResource | listarDominioResponsabilidadeLimiteCredito | Retorna um Array de Responsabilidades conforme domínio de responsabilidades de limite de crédito (DominioResponsabilidadeCredimaster). |
DomainsResource | listarTipoPessoa | Retorna um Array de Tipo de Pessoa conforme domínio de tipo de pessoas no GRisco (DominioTipoPessoa). |
GRiscoAbrangenciaResource | buscarDataProcessamento | Busca data do último processamento, utilizada para determinar se as Certidões estão vencidas ou não. |
GrupoBemResource | listarGrupoBem | Retorna uma lista dos Grupos de Bens cadastrados no GRisco. |
GrupoBemResource | listarTipoBem | Retorna uma listra dos Tipos de Bens de um determinado grupo. |
PropostaCreditoResource | executaPropostaCredito | Executa a criação inicial do objeto que representa a Proposta de Limite de Crédito com as informações mínimas, inclusive dados de configuração do GRisco, retornando o DTO com o qual será iniciado o processo de elaboração da Proposta no Fluig. |
PropostaCreditoResource | listarProdutos | Busca os produtos disponíveis cadastrados de acordo com o tipo de operação. |
PropostaCreditoResource | confirmarPropostaLimite | Efetua a primeira persistência da Proposta de Limite de Crédito, a partir deste método a proposta passa a existir com um código de operação. |
PropostaCreditoResource | gravarPropostaLimite | Grava as alterações efetuadas numa proposta já criada anteriormente. |
PropostaCreditoResource | listaPessoaLimiteCredito | Retorna lista de Clientes conforme parâmetros de pesquisa. |
PropostaCreditoResource | buscaPropostaLimiteCredito | Retorna uma proposta de limite persistida no GRisco. |
SegurancaResource | buscarListaEmpresaAutorizada | Busca empresas para listagem e definição da abrangência. |
SegurancaResource | buscarListaUnidadeAutorizada | Busca unidades de determinada empresa para definição da abrangência. |
...