Ir para o conteúdo

Subconsulta Vs. Objeto de Negócios

Este artigo discutirá Subconsultas e Business Objects na camada Business Logic, no Vinyl. Primeiro veremos uma definição de alto nível desses dois objetos e depois veremos cada objeto detalhadamente.

  • Subconsultas são consultas que residem em consultas e são usadas por Business Objects e outras regras (por exemplo, CRUD). As subconsultas por si só não são expostas à camada de UI do aplicativo.
  • Objetos de negócios são objetos aproveitados para criar a camada de UI do aplicativo. Business Objects podem usar subconsultas.

Subconsulta

As subconsultas são usadas como intermediárias entre uma tabela e seus Business Objects e são consultas que residem dentro de consultas. As Regras de Subconsulta são usadas para realizar um cálculo ou fazer um ajuste nos dados (normalmente de natureza numérica), apenas para fins de exibição ou para serem repassados e usados por outra Regra. Por padrão, as subconsultas têm todas as configurações de CRUD desativadas e serão executadas mais rapidamente por causa disso. Em geral você deseja manter um objeto Subquery o mais simplificado possível, em termos de lógica. Ter uma subconsulta que seleciona colunas em excesso pode, às vezes, levar a problemas de desempenho.

Um exemplo de regra de subconsulta é se quisermos criar um objeto para encontrar o OrderID máximo da tabela Order e adicionar um a ele. Podemos chamar isso de Ordem de Subconsulta (OrderID + 1). Esta subconsulta poderia então ser usada por uma regra de inserção CRUD, cuja funcionalidade é copiar um pedido e gerar um novo OrderID exclusivo ao fazê-lo.

Exemplo de subconsulta para pedido (OrderID + 1)

  1. Navegue em seu aplicativo até a página Pedidos
  2. Vá para App Workbench > + Regra
  3. Atribua o Nome. Por exemplo: Pedido (Pedido + 1)
  4. Defina Objetivo como Subconsulta
  5. Defina a tabela Target como Order
  6. Clique em Salvar
  7. Clique na aba Colunas
  8. Clique em + Coluna e adicione a Expressão Max(OrderID) + 1
  9. Atribua um Alias. Por exemplo: MaxOrderID
  10. Clique no botão Validar e certifique-se de que não haja erros

Neste ponto você tem uma subconsulta funcionando. Para aproveitar esta subconsulta de um aplicativo, ela precisaria ser conectada ou usada por outra regra, como uma regra de inserção CRUD.

Objeto de negócios

Objetos de negócios são os blocos de construção da camada de lógica de negócios e são usados para construir a camada de UI do aplicativo no Vinyl. Na maioria das vezes, qualquer coisa apresentada na camada UI do aplicativo vem de um Business Object associado. Os Business Objects podem ter informações associadas a eles, como Eventos e Alcance. Business Objects também podem se conectar e usar subconsultas. Dependendo da sua finalidade, os Business Objects podem ser objetos muito simples, como objetos Source e List, ou muito complexos, dependendo da sua finalidade.

No exemplo, daremos uma olhada na criação de um Source Business Object simples para uma tabela Order na fonte de dados Northwind. Existem algumas maneiras diferentes de criar objetos Source. O manual de treinamento Introdução ao Vinyl discute as diferentes opções disponíveis. Aqui usaremos o método de atalho disponível na Tabela na Camada de Dados.

Exemplo de objeto de negócios para pedido (fonte)

  1. Navegue em seu aplicativo até a página App Workbench
  2. Clique no ficha Tabelas
  3. Localize a tabela Ordem
  4. Clique no botão Abrir registro
  5. Clique no botão Publicar na camada comercial

    • Clique em Continuar
    • Se o Vinyl já tiver criado um Business Object de origem para a tabela, você não verá este botão disponível
  6. Depois que o objeto Fonte for criado, clique no botão Voltar

  7. O novo objeto Pedido (Fonte) aparecerá agora com as Regras de Negócio
  8. Clique no botão Design no objeto Pedido (Fonte) para revisar o Business SQL subjacente
  9. Clique no botão Validar para executar o objeto e confirmar que não há erros