Pular para o conteúdo principal

CDS VIEW

Estes dias me deparei com um problema feio, um erro em uma request relacionado ao DDL, após algumas horas de buscas e estudos consegui encontrar um artigo na comunidade SAP.

    A grande questão era que o problema era mais profundo e complexo do que eu imaginava, envolvia linguagem e o eclipse, então o problema foi repassado para o programador que desenvolveu a estrutura, mas aprendi muito.

    Este é o artigo compilado da comunidade SAP sobre CDS View e DDL, aproveitem o conteúdo, os créditos estão ao final do artigo.

    Após a evolução do SAP HANA, a tecnologia dentro do SAP está mudando rapidamente e houve uma mudança de paradigma na forma como os aplicativos de negócios são desenvolvidos na SAP.

    A regra geral é simples: Faça o máximo que puder no banco de dados para obter o melhor desempenho .

    Quando comecei a aprender sobre as visualizações do ABAP CDS alguns meses atrás, tive que pesquisar muitos blogs e páginas diferentes escritos por especialistas. Agora, pensei em apresentar uma série de blogs para iniciantes como eu que desejam aprender as visualizações do ABAP CDS.

    Os modelos de dados são a base do desenvolvimento de aplicativos. Eles fornecem um método padronizado para definir e formatar o conteúdo do banco de dados de forma consistente entre os sistemas, permitindo que diferentes aplicativos compartilhem os mesmos dados — reduzindo custos de desenvolvimento, acelerando o tempo de lançamento no mercado e melhorando a qualidade e o desempenho.

    Aqueles familiarizados com o desenvolvimento de aplicativos no mundo ABAP não são estranhos às ferramentas tradicionais de modelagem de dados incluídas no SAP NetWeaver Application Server (SAP NetWeaver AS) ABAP — em particular, o dicionário de dados ABAP (DDIC), que armazena definições de objetos, como tabelas e visualizações de banco de dados, que podem ser usadas em programas ABAP. E então veio o SAP HANA e o novo paradigma de empurrar a lógica de uso intensivo de dados para a camada de banco de dados.

    O conceito de Virtual Data Model (VDM) foi introduzido com o HANA Live há alguns anos, SAP HANA Live é um modelo de dados virtual em cima de tabelas de suítes que usa visualizações nativas do SAP HANA SQL chamadas visualizações de cálculo para relatórios operacionais em tempo real.

Isso veio com alguns desafios:

    Ele não suportava hierarquias corretamente. As hierarquias ajudam as empresas a analisar seus dados em uma estrutura de árvore por meio de diferentes camadas com capacidade de detalhamento. Por exemplo, uma hierarquia de tempo consiste em níveis como ano fiscal, trimestre fiscal, mês fiscal e assim por diante.

    Modelos de dados de alta qualidade devem fornecer uma única definição e formato para os dados. Eles devem ser claros e inequívocos, reutilizáveis ​​e flexíveis, até mesmo extensíveis.

    Como os modelos de dados virtuais HANA Live foram definidos na camada de banco de dados HANA, isso levou à duplicação de funções de segurança entre o Business Suite para processamento transacional e o banco de dados HANA para relatórios operacionais.

    Agora, algumas perguntas vêm à mente:

    Então, como você pode capturar a semântica do modelo de dados no banco de dados para que o modelo possa ser facilmente reutilizado por diferentes consumidores, por exemplo, clientes OData e ferramentas OLAP?
    Como você pode estender o metamodelo para atender seus aplicativos?
    Impossível, você diz?
    Talvez, se não tivéssemos  Core Data Services (CDS) .

    “Core Data Services para construir modelos de persistência de dados em tempo de design”

    É uma infraestrutura que pode ser usada por desenvolvedores de banco de dados para criar o modelo de dados subjacente (persistente) que os serviços de aplicativo expõem aos clientes de interface do usuário.

    Para aproveitar o  SAP HANA  para o desenvolvimento de aplicativos, a SAP introduziu uma nova infraestrutura de modelagem de dados conhecida como Core data services . Com o CDS, os modelos de dados são definidos e consumidos no servidor de banco de dados e não no servidor de aplicativos. O CDS também oferece recursos além das ferramentas tradicionais de modelagem de dados, incluindo suporte para modelagem conceitual e definições de relacionamento, funções integradas e extensões. Originalmente, o CDS estava disponível apenas no ambiente de tempo de design e tempo de execução do SAP HANA. Agora, o conceito CDS também está totalmente implementado em SAP NetWeaver AS ABAP, permitindo que os desenvolvedores trabalhem na camada ABAP com ferramentas de desenvolvimento ABAP enquanto a execução do código é enviada para o banco de dados.

    O CDS simplifica e harmoniza a forma como você define e consome seus modelos de dados, independentemente da tecnologia de consumo. Tecnicamente, é um aprimoramento do SQL que fornece uma linguagem de definição de dados (DDL) para definir tabelas/visualizações de banco de dados semanticamente ricas (entidades CDS) e tipos definidos pelo usuário no banco de dados. Algumas melhorias incluem:
Expressões  usadas para cálculos e consultas no modelo de dados
Associações  em um nível conceitual, substituindo junções por expressões de caminho simples em consultas
Anotações  para enriquecer os modelos de dados com metadados adicionais (específicos do domínio)
O CDS é suportado nativamente nas plataformas ABAP e HANA!
Na verdade, o CDS é (na minha opinião) o desenvolvimento SAP mais ambicioso e empolgante na área de modelagem de dados nos últimos anos. Você pode finalmente definir e consumir seus modelos de dados da mesma forma (sintaxe, comportamento, etc.) independentemente da plataforma de tecnologia SAP (ABAP ou HANA). A frase indesejada: “ Um modelo de dados para governar todos ” sempre vem à mente quando penso em CDS.

    Além de um ótimo blog de Horst Keller , descreve os dois sabores diferentes de CDS.

    Core Data Services – Um conceito, dois sabores

    Depois de passar pelo blog acima, descobrimos que o CDS pode ser escrito em dois sabores diferentes e usa as técnicas de “ Code Pushdown ” introduzidas com o NW AS ABAP 7.4 SP5, onde a SAP adicionou uma nova possibilidade para os desenvolvedores ABAP aproveitarem os recursos do HANA . Na técnica de pushdown de código, todos os cálculos são realizados na camada de banco de dados em vez da camada de aplicação, o que resulta em recuperação rápida de dados, resultando em redução na execução da aplicação.

 

    Visão geral da arquitetura
    A arquitetura CDS se parece com algo como mostrado abaixo:
Camada de banco de dados  – Essa camada pode ser configurada com a maioria dos BD populares como Oracle, SAP HANA, etc. No entanto, para obter o melhor resultado é recomendável ter o SAP HANA.
Camada de aplicação – Esta camada contém AS ABAP Backend e SAP Gateway, integrados usando chamadas RFC.
Camada de apresentação – esta camada contém a interface do usuário do SAP Fiori para expor os aplicativos para o usuário final.

    Lançamentos de CDS
    Abaixo está uma visão geral das alterações nas funcionalidades do CDS com as versões específicas do ABAP.

1 .    In ABAP 7.40, SP05

    CDS views has been introduced.

2.    In ABAP 7.40, SP08
    CDS annotations
    CDS views with parameters
    CDS view enhancements
    Expressions and Functions
    Join type for associations
    Path expression with filter conditions
    Checking literals against fixed domain values

3. In ABAP 7.40, SP10  

    CDS Access Control

4. In ABAP 7.50, SP00

    CDS Table functions
    Session variables
    CDS view with input parameters
    Annotation for input parameters
    Key fields
    Evaluation of annotations
    Publishing associations
    Extensions

5. In ABAP 7.51, SP00
    Client handling
    Cross Joins
    Annotations

Disponibilidade de CDS em Plataformas SAP
Os serviços Core Data estão disponíveis nas plataformas SAP mencionadas abaixo:
SAP NetWeaver 7.50, SP01 ou superior.
SAP NetWeaver 7.4 SP05
SAP HANA SPS6
SAP Business Suite EHP7 (Suite no HANA)
S/4HANA
SAP Business Warehouse 7.3


Motivação por trás dos Core Data Services


Modelos de dados Semanticamente Ricos: Modelo de relacionamento de entidade e de natureza declarativa, muito próximo do conceito conceitual. Linguagens específicas de domínio (DDL, QL, DCL). Declarativo, próximo ao pensamento conceitual.


O CDS é completamente baseado em SQL: Qualquer recurso 'Standard SQL' está disponível diretamente, como junções, funções incorporadas, etc.


Totalmente compatível em qualquer banco de dados: o CDS é gerado em visualizações Open SQL gerenciadas e é integrado à camada SAP HANA. Essas visualizações são suportadas por todos os principais bancos de dados.
Suporte para anotações : a sintaxe do CDS oferece suporte a anotações específicas de domínio que podem ser facilmente avaliadas por outros componentes, como a interface do usuário, análise e serviços OData.
  • SOMA()
  • Substring() [funções SQL]
  • Associações : Definição simplificada de visualizações em cima de visualizações. Expressões de caminho para navegar pelas relações.
  • Extensibilidade : Podemos estender as visualizações CDS definidas pela SAP com campos que serão adicionados automaticamente à visualização CDS junto com sua hierarquia de uso.
  • No nível do modelo por meio de extensões.
  • No nível do metamodelo por meio de anotações.
 
As entidades CDS e seus metadados são extensíveis e integrados otimizadamente ao Dicionário de Dados ABAP e à linguagem ABAP.

Este artigo foi escrito por: Tushar Sharma

Comentários

Postagens mais visitadas deste blog

ATALHOS NAS JANELAS

Todo programador tem o seu atalho favorito, seja ao inciar o programa ou para acelerar os processos, e bem, o SAP possui atalhos que facilitam o nosso dia a dia.      Hoje estarei apresentando os principais atalhos que utilizamos para janelas, seja para abrir uma nova transação ou janela e até fechar todas elas no final do dia, lembrando que estes atalhos devem ser acrescentado a barra antes do comando, para que a SAP identifique que será um comando a seguir. Chamar uma nova transação: Na mesma janela.               /n (código de transação) Na mesma janela, a primeira tela é ignorada.                /* (código de transação) Em outra janela              /o (código de transação) Encerrar a transação atual.                /n Eliminar o modo (Janela) atual.              /i Gerar...

COMANDOS DE MODULE POOL

Todos nós gostamos de um comando, a sintaxe em si parte deles, e nada melhor do que conhecer novos comandos, hoje eu separei alguns do Module Pool, espero que gostem! ABAP_DOCU_DOWNLOAD - Documentação do Download ABAP no formato do HTML. ARFC_GET_TID - retornará o IP address do terminal no hex. BAL_* - Todos os módulos da função usados para registrar da aplicação. BP_EVENT_RAISE - Provocar um evento do programa ABAP/4 BP_JOBLOG_READ - Buscar execuções do registro de trabalho CLOI_PUT_SIGN_IN_FRONT - Colocar o sinal negativo após um número. O defeito de SAP é lugar o sinal negativo após o número. CLPB_EXPORT - Exportar uma tabela do texto para a prancheta (no usuário da apresentação) CLPB_IMPORT - Importam uma tabela do texto da prancheta (no usuário da apresentação) COMMIT_TEXT - Ao texto longo da carga em SAP CONVERSION_EXIT_ALPHA_INPUT - conversos algum número em uma suficiência da corda com zero-direito exemplo: entrada = 123 saída = 0000000000000… 000000000000123 CONVERSION_EXI...

ALV EASY

    Existe algo que iremos sempre nos deparar no dia a dia como ABAP's, o tal do ALV, ele que fica na nossa mente quando dormimos depois de um longo dia de estudos.      Quando assisti a primeira aula de ALV , pensei, precisarei disso com frequência, então comecei a estudar sobre este assunto, percorri diversos blogs, desde os mais populares até os esquecidos, seja pelo tempo ou por seus responsáveis, eu sempre tenho um ' programa de testes ' onde coloco todas as linhas de código que encontro, edito conforme a minha necessidade, e com isso, percebi um monte de código 'furado', alguns não funcionavam, outros também não hehe, isso é comum, porém encontrei um que foi a minha salvação!      No blog do Furlan, ABAP 101 , ele descreve sobre o ' ALV mais fácil do mundo! ', e por incrível que pareça, sim, este é um ALV muito simples de ser usado, utilizando a classe CL_SALV_TABLE você abap irá construir o seu ALV de maneira fácil e rápida! Este é ...