Estrutura de repetição

Aqui falaremos sobre os eventos que estão mais envolvidos com o formulário do tipo grade de dados. Iremos demonstrar a funcionalidade de cada um em sequência.  

Estrutura de repetição - Carregar

Este evento irá percorrer uma consulta SQL de um conector vinculado ao evento até encontrar todos os registros trazidos e armazená-los em uma variável do tipo grade. 

Qual a diferença deste evento para o evento de registro banco dados - SQL - Selecionar? Bom, como citado acima, este evento serve especificamente para buscar valores e preenche-los em uma grade de dados. O evento de SELECIONAR serve para consultar e atribuir valor a outros tipos de variáveis. 

Exemplo: Você tem um processo de registro de treinamento com uma grade de dados de participantes. Utilizando este evento, você poderá retornar a lista de colaboradores da sua empresa para que selecione os participantes do treinamento realizado.

image-1644503135137.png

*** Não esqueça de, além de criar a variável e vincular ao evento, criar o formulário grade com seus respectivos campos. É importante que as colunas no SQL sejam as mesmas colunas no formulário. 

Conector SQL: 

image-1644503229822.png

Formulário do tipo GRADE: 

image-1644503258334.png

Estrutura de repetição - Descarregar

Evento utilizado para limpar o valor de uma variável específica do processo para que a mesma após ter sido utilizada não continue consumindo espaço na memória. 

Exemplo: Um processo que mostre os dados dos colaboradores em uma grade ao entrar na primeira atividade. Como é uma lista meramente visual, onde o usuário não irá interagir e nem editar / inserir nada, não há motivo para salvar esses dados. Dessa forma, utilizamos o evento de descarregar. 

image-1644503556562.png

Estrutura de repetição - Retorna valor

Evento utilizado para que sejam retornados valores de uma variável de grade de dados. Neste evento, informaríamos a coluna do formulário da grade, e a variável que receberia o valor dessa coluna. Caso a grade tenha mais de uma linha, é importante utilizar uma estrutura condicional com origem "conjunto de dados" e em seguida o evento de retorna valor. 

image-1644503885915.png

Exemplo: 

Vamos realizar um exemplo onde utilizamos uma estrutura para carregar os dados para uma grade, retornar o valor desses dados para as variáveis e em seguida inserir em uma tabela personalizada. 

Eventos utilizados: 

Inicialmente vamos começar a criar nossa tabela personalizada.

Pode ser mudado o nome ou os campos posteriormente, mas para nosso exemplo vamos utilizar dessa forma. Crie um conector do tipo "SQL" e marque a opção "comando" para poder criar a tabela conforme instrução SQL abaixo, ou acesse uma ferramenta de banco de dados.

  CREATE TABLE PEX_USUARIO (
               IDUSUARIO INTEGER,
               USERNAME VARCHAR (150),
               INATIVO VARCHAR (1));

Agora, Iremos criar o nosso processo BPM. Vamos começar com a criação das variáveis que iremos precisar para vincular aos eventos. Acesse a aba "Variáveis" e crie conforme tabela abaixo:

Descrição:  Tipo: 
/*G_DADOS*/ Grade de dados
/*IDUSUARIO*/ Inteiro
/*INATIVO*/ Texto
/*USER*/ Texto

Depois de criada as variáveis acima, crie uma atividade manual com um formulário de grade, vinculando nossa variável criada mais cedo. 

image-1644580864165.png

É importa a criação das colunas da grade. Elas deve ter o NOME igual ao que será carregado pelo evento de carregar grade. Faça como na imagem: 

image-1644581093964.png

Salve o que já foi criado e agora iremos para os eventos, a parte mais importante deste exemplo: 

image-1644581154894.png

Evento 1: 

Este evento é o responsável por buscar os dados da tabela de usuários e carregar a nossa grade. Note que ele está com o momento da execução ao entrar, ou seja, quando o usuário abrir o processo para colaboração já estará populado na grade os usuários. 

image-1644581269344.png

No SQL de consulta: 

SELECT IDUSUARIO,
       USERNAME,
       INATIVO
  FROM USUARIO

Evento 2: 

Este evento é responsável por percorrer todos os registros da grade (quando há mais de um). É de extrema importância que este evento esteja com a origem "conjunto de dados" pois é um recurso especifico para grade de dados. Ele irá percorrer todos os dados que estiverem populados na variável de grade vinculada no campo "Variável origem". 

Neste caso, estamos deixando ao sair pois nossa grade é editável, ou seja, o usuário pode mudar os dados apresentados.

image-1644581444073.png

Evento 3: 

Existe uma razão para qual este evento está abaixo do evento de percorrer a grade, pois depois de percorrer um registro, ele irá passar para o evento de retorna valor, onde esse valor atual será populado em uma variável. Ou seja, a variável destino do evento irá receber o valor atual daquela linha em especifico. 

** Atenção: A variável que guarda o USERNAME não pode ser nomeada como /*USERNAME*/ pois esta é a descrição de uma outra variável do sistema e pode ocorrer conflito. Por este motivo, deixamos como /*USER*/

image-1644581649567.png

Evento 4: 

Logo depois que o registro atual é retornado para a variável, nós inserimos esse valor na tabela. Depois que esse INSERT é feito e a estrutura terminar para o registro, ela irá começar novamente, onde o sistema passará para o registro posterior, linha por linha. É de fato uma estrutura de repetição, onde cada linha da grade é lida, passada para a variável e incrementada na nossa tabela personalizada. 

** Atenção: Repare que no INSERT temos a opção "comando" marcada e as variáveis do tipo INTEIRO tem um zero (0) na frente, enquanto que as variáveis do tipo TEXTO estão entre aspas. Siga essas instruções para que o INSERT seja bem sucedido. 

image-1644582017599.png

Evento 5: 

Com isso fechamos nossa estrutura de repetição para a grade. 

Confira todos os dados criados e em seguida feche e salve o processo. Teste no portal e faça a consulta no LOG e banco de dados para verificar se o INSERT foi bem sucedido. 

Lembre-se que este é apenas um exemplo, depois de criado, pode ser mudado/alterado os dados, tabela e eventos da forma que for a sua necessidade. Pode também baixar o processo em anexo deste tópico, só não esqueça da criação da tabela personalizada, ou se necessário, alterar os dados conforme achar melhor. 


Revisão #14
Criado 3 February 2022 10:10:11 por Nicolly Andrielly
Atualizado 11 February 2022 09:24:00 por Nicolly Andrielly