Fórmula Visual 1 Fórmula Visual Atividade “Consulta SQL” • Utilizada para se realizar consultas SQL cadastradas no sistema que retornem uma ou N linhas. Normalmente utilizada em operações de validação; • Apesar da quantidade de propriedades, é uma das atividades mais fáceis de ser utilizadas. 2 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Prática 02: criar um Fórmula Visual que restrinja o cadastro de dependentes a no máximo dois dependentes por funcionário (cadastro de funcionários .net) 3 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 1) Cadastrar a consulta SQL que retorna a quantidade de dependentes por funcionário. SELECT COUNT(CODCOLIGADA) QTD FROM PFDEPEND (NOLOCK) WHERE CODCOLIGADA = :CODCOLIGADA AND CHAPA = :CHAPA 4 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 1) Criar Fórmula Visual 5 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 3) inserindo atividades: Criar Diagrama, na ordem as • ConsultaSQL • Se/Senão • Gerar Exceção (Conforme imagem ao lado) 6 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 4) Associar a consulta SQL criada no passo 1 à atividade “Consulta SQL”. A associação é feita através de clique com botão direito do mouse. 7 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 5) Após associada, os parâmetros da consulta são automaticamente atualizados na aba “propriedades”. Falta então definir a origem dos parâmetros da sentença: • Como a Fórmula Visual será associado à uma visão, no gatilho disparado antes de salvar o registro, poderemos associar os parâmetros às colunas do registro selecionado • Podemos então utilizar a propriedade Fields para esse fim. 8 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 6) Clicar em cada um dos parâmetros na atividade de consulta, selecionando a propriedade “Item”. Pressionando a tecla “F2”, será possível informar qual o nome da coluna do registro atual será passado como parâmetro. 9 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 6) Configurar os respectivos parâmetros conforme as imagens acima. Observe que o tipo retornado deve ser compatível com o tipo do parâmetro. 10 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 7) Selecionar com o mouse a atividade “ifElseBranchActivity1” e definir a expressão a ser avaliada. Através da propriedade Fields dessa atividade, poderemos ler as colunas do primeiro registro retornado pela consulta. A coluna que procuramos é “QTD”: SELECT COUNT(CODCOLIGADA) QTD FROM PFDEPEND (NOLOCK) WHERE CODCOLIGADA = :CODCOLIGADA AND CHAPA = :CHAPA 11 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 8) Selecionar a atividade rmsThrowActivity no diagrama e preencher a propriedade “Mensagem de Erro” com o seguinte texto: “Existe limite de 4 dependentes por funcionário!” 12 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Passo 9) Salvar a Fórmula Visual e associá-lo à visão de dependentes, no gatilho “Antes de Salvar o Registro” 13 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Teste) Acessar o cadastro de funcionários do RM Vitae, editar um funcionário e tentar incluir mais de 4 dependentes para o mesmo. 14 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” 15 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” Pode ser que já existam funcionários com mais de 4 dependentes. Com a expressão atual na atividade se/senão, não será possível excluir e alterar esses dependentes. É necessário então alterar a expressão para que a mesma identifique se a operação é de exclusão ou alteração. this.rmsConsSQLActivity1.Fields["QTD"].AsInteger > 3 && this.Tables[0].Row.RowState != System.Data.DataRowState.Deleted && this.Tables[0].Row.RowState != System.Data.DataRowState.Modified 16 Fórmula Visual Prática 02 – Utilizando a atividade “Consulta SQL” • Registro Excluído: • System.Data.DataRowState.Deleted • Registro Incluído: • System.Data.DataRowState.Detached • Registro Alterado: • System.Data.DataRowState.Modified 17 Fórmula Visual Prática 02 – Observações • Identificamos que a atividade de consulta SQL utiliza apenas consultas cadastradas no sistema , sendo que não é possível escrever a consulta dentro da própria atividade. • Uma das formas mais convenientes de se recuperar o valor retornado pela consulta SQL é através da propriedade: atividadeConsultaSql.Fields[“nome_campo”] • CUIDADO para não fazer confusão entre Fields da atividade e Fields da fórmula visual! 18