Usuário/Papel indicado na variável
Neste exemplo vamos falar sobre dois tipos de atribuição de processo que podem ser utilizadas no exemplo a seguir:
Em ambas atribuições este fórum pode ser utilizado, porém vamos fazer um exemplo com a atribuição "Usuário indicado na variável". Imagine o seguinte cenário:
No seu portal, há um processo de compra de itens e dependendo do valor total dessa compra, é necessário que seja direcionado a colaboração do processo para duas pessoas diferentes, de setores e papeis funções diferentes.
Para não ter que criar, por exemplo, duas atividades exatamente iguais e fazer um desvio para cada uma, vamos atribuir para a variável /*USUARIOCOLABORACAO*/ o código de determinado usuário (tabela USUARIO, coluna IDUSUARIO) que poderá colaborar com a próxima atividade, e que irá aprovar a compra ou não.
Para a atribuição do papel função na variável é referenciado a tabela FUNCAO e coluna IDBPMFUNCAO.
Crie um procedimento com a permissão "qualquer usuário cadastrado", pois todos terão acesso a este processo no portal. Na primeira atividade (Insira dados) pode-se manter a atribuição "Utilizar permissões configuradas no processo" ou "Usuário que iniciou o processo".
ATIVIDADE 1: "Insira dados"
Crie uma grade de dados com a variável /*ITENS*/ (Tipo - Grade de dados) com as seguintes colunas:
- DESCRICAO (Tipo - Texto)
- QUANTIDADE (Tipo - Inteiro)
- VALOR (Tipo - Valor)
- VALORTOTAL (Tipo - Valor)
Configure o tamanho dos campos como achar melhor.
Na coluna VALOR, crie um PEX ao sair que multiplique QUANTIDADE * VALOR e insira no campo VALORTOTAL o resultado desta conta.
Agora, na aba "Eventos" da primeira atividade, siga conforme a ordem apresentada:
Conforme já foi dito em outros conteúdos do fórum, para que o sistema interprete e salve os valores de VARIAS linhas da grade é necessário um evento que carregue todas as linhas com um "conjunto de dados".
- [Estrutura condicional - Inicio]
Crie este evento de estrutura condicional - Inicio, com o campo "Origem" do tipo "Conjunto de dados" e informando a variável da grade /*ITENS*/
- [Estrutura condicional - Retorna valor]
Em seguida, um evento de estrutura de repetição - Retorna valor, para que o sistema entenda que o valor do campo da grade VALORTOTAL, está sendo atribuído para a variável /*VALOR1*/
- [Variáveis - Operações matemáticas]
Agora, um evento de Variáveis - Operações matemáticas, para calcular o valor total da grade de dados. Crie a variável /*VALORTOTAL*/ pelo assistente
- [Estrutura condicional - Inicio]
Campo "Origem" do tipo "Condicional".
Aqui vamos fazer a condição onde o valor total das compras for maior que 100, utilizando a variável que está preenchida com o valor de toda a grade /*VALORTOTAL*/
- [Variáveis - Definir valor variável]
Este é o evento em questão, onde definimos o valor da variável /*USUARIOCOLABORACAO*/ (crie a variável do tipo Inteiro).
Como citamos lá no começo, temos que definir o valor dela de acordo com o ID do usuário que desejamos. Isto é visto na coluna IDUSUARIO da tabela USUARIO. No nosso caso, queremos que o valor da variável seja atribuído ao usuário NICOLLY, que tem o idusuario de número 4.
Pode-se atribuir um ou mais código, separados por virgulas.
- [Estrutura condicional - Fim]
Agora, vamos fazer essa mesma estrutura de eventos (Inicio, definir valor variável, fim) só que com o detalhe que, se o valor da variável /*VALORTOTAL*/ for MENOR que 100, /*USUARIOCOLABORACAO*/ seja definido para o DANIEL com o IDUSUARIO 7.
Depois de ser feito essa estrutura:
- [Estrutura condicional - Fim]
Por fim, vamos fechar a estrutura condicional do primeiro evento criado.
Estrutura final de eventos:
ATIVIDADE 2: "Aprovação da compra"
Na aba atribuição:
- Quem será o responsável por executar essa atividade? Usuários indicados na variável
- Variável: /*USUARIOCOLABORACAO*/
A primeira coisa que é validada ao ser iniciado um processo é se atribuição dele coincide com o usuário que está iniciando
Faça dois formulários:
- Aprovar compra? (Objetiva - Botões) com respostas de Sim ou Não (/*APROVACAO*/ Tipo: Inteiro)
- Justificativa (Dissertativa) (/*JUSTIFICATIVA*/ Tipo: texto longo)
Com esses passos realizados, LIBERE A VERSÃO do processo e teste no portal, se aparece para os usuários que você atribuiu.
É importante liberar a versão do processo pois quando você clica com o botão direito e em “Testar” o sistema desconsidera papéis funções.