Ir para o conteúdo principal

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.

image-1652115731393.png

Na coluna VALOR, crie um  PEX ao sair que multiplique QUANTIDADE * VALOR e insira no campo VALORTOTAL o resultado desta conta.

image-1652116539743.png

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*/

image-1652117575380.png

  • [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*/

image-1652117626641.png

  • [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

image-1652117664068.png

  • [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*/

image-1652117711521.png

  • [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.

image-1652119150381.png

  • [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.

image-1652119241490.png

Estrutura final de eventos:

image-1652119263173.png

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

image-1652119306449.png

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)

image-1652119353001.png

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.