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.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Conector - origem: conector de banco de dados para caso as informações da consulta SQL sejam trazidas de um banco de dados externo;
- SQL de consulta: SQL que fará a consulta no banco de dados trazendo as informações especificadas;
- Variável armazenar: variável do tipo GRADE DE DADOS que armazenará os dados trazidos pela consulta SQL acima.
*** 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:
Formulário do tipo GRADE:
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.
- Descrição: Campo traz por padrão a 'descrição do tipo do evento' mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Variável origem: Variável a ser 'limpa' pelo evento.
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.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável origem: Aqui deve ser informada a origem das informações. Se a origem for de uma grade de dados, por exemplo, informe aqui a respectiva variável;
- Campo: Nome do(s) campo(s) que trarão os dados da consulta. Deve ser preenchido manualmente. Ex.: se você tem as colunas NOME, EMAIL e TELEFONE em uma grade, devem ser informados aqui NOME, EMAIL e TELEFONE, separadamente;
- Variável destino: Variável que irá armazenar os valores trazidos dos campos previamente informados.
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:
- Estrutura de repetição - Carregar
- Estrutura condicional - Inicio
- Estrutura de repetição - Retorna valor
- Registro banco dados - SQL - Executar
- Estrutura condicional - Fim
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.
É 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:
Salve o que já foi criado e agora iremos para os eventos, a parte mais importante deste exemplo:
Evento 1:
- Estrutura de repetição - Carregar
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.
No SQL de consulta:
SELECT IDUSUARIO,
USERNAME,
INATIVO
FROM USUARIO
Evento 2:
- Estrutura condicional - Inicio
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.
Evento 3:
- Estrutura de repetição - Retorna valor
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*/
Evento 4:
- Registro banco dados - SQL - Executar
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.
Evento 5:
- Estrutura condicional - Fim
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.