Nas postagens anteriores do blog
, você pôde ver que as visualizações CDS são uma melhoria do SQL e em projetos em tempo real, precisamos unir várias tabelas para transformar os dados em informações significativas. Vamos ver como funciona com as visualizações CDS.
JOINS:
Podemos utilizar diferentes tipos de Joins dentro de uma visualização CDS;
-
-
Inner Join
-
Left Outer join
-
Right outer join
Não falarei sobre todos os Joins, eles se comportam de maneira semelhante aos conceitos simples de SQL. Vamos ver um exemplo de código de Inner Join para fins de sintaxe;
-
Crie uma nova visualização CDS com o modelo 'JOIN'
Adicione os componentes necessários para completar a visualização. Una as tabelas SFLIGHT e SPFLI. Adicione informações do aeroporto da tabela SPFLI.
-
Ative e execute a visualização para ver os dados;
Vimos como uma visualização CDS obteve dados de 2 tabelas com a ajuda de um Join. Agora, vamos pensar por que criamos essas visualizações CDS? Qual é o propósito?
As visualizações CDS não são acessadas diretamente pelos usuários comerciais, mas serão consumidas por um programa ABAP, aplicativos Fiori ou ferramentas de front-end de BI. Se você criou uma visualização CDS com Joins em 5 tabelas diferentes, então essas condições de Join serão executadas sempre que essa visualização CDS for ativada. Embora o usuário comercial esteja vendo apenas campos de 2 tabelas, a visualização CDS primeiro executará as condições de Join das 5 tabelas e não importa quantos campos o usuário esteja vendo. Este é o conceito de SQL com Joins, mas resulta em um desempenho atrasado para obter os dados da visualização CDS no caso de o usuário estar vendo apenas os dados parciais. Para superar esse problema, a SAP fez uma melhoria nesta forma de obter dados com SQL e desenvolveu de forma excelente o conceito de 'ASSOCIAÇÕES'. Com as Associações, os dados serão obtidos apenas quando o usuário desejar vê-los. Vamos ver como funciona;
ASSOCIAÇÕES:
As ASSOCIAÇÕES são uma espécie de Joins para obter dados de múltiplas tabelas em condições de Join, mas estes são 'JOINS SOB DEMANDA', ou seja, só serão ativados quando o usuário acessar os dados necessários que precisam da Associação de tabelas. Por exemplo, se sua visualização CDS tiver 4 Associações configuradas e o usuário estiver obtendo dados apenas de 2 tabelas, a ASSOCIAÇÃO nas outras 2 tabelas não será ativada e o sistema retornará os resultados rapidamente, permitindo um tempo de resposta muito rápido em comparação com os Joins SQL regulares.
As
Associações
são definidas com 'Cardinalidade'. Sintaxe:
associação[<cardinalidade>]
O conceito de Cardinalidade não é novo e segue o mesmo conceito com as visualizações CDS também. Existem 4 tipos de Cardinalidade possíveis com base nos dados e na relação nas tabelas unidas;
-
0..1
-
0..n ou 0..*
-
1..0
-
1..n ou 1..*
NOTA
: Se você está confuso sobre que tipo de associação deve configurar em sua visualização CDS, você pode aplicar uma regra geral: 'sempre use isso :
associação[1].
Isso sempre ativará um OUTER join e funcionará em todos os casos.
Vamos criar uma visualização CDS com o conceito de ASSOCIAÇÃO.
-
Crie uma visualização com o modelo de Associação;