Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvedores
1
Agenda do Treinamento
Data Tema
Objetivo
Introdução ao Hana
Hana Studio
Programação em HANA – Conceitos Iniciais
Programação em HANA – Novo Open SQL
Programação em HANA – SQL Nativo
Programação em HANA – CDS View
Programação em HANA - Procedures
Programação em HANA – Visões HANA
Programação em HANA - ALV HANA
Programação em HANA – DB Secundário
Conclusão
2
Objetivo
Objetivo
▪Inovações do HANA:
Vamos fazer de conta que nossa tabela tenha 8 bilhões de linhas e o comprimento do registro seja de 200 bytes, então
teremos:
8.000.000.000 x 200 = 1.6 TB
Peguemos o primeiro campo “first name”, para conseguir substituir os dados por bits tem que saber quantos bits são
necessários para 49 bytes de dados e assim por diante, conforme tabela acima, para isso usamos uma função
logarítmica de base binária:
Log2(5.000.000) = 23
Fazendo este cálculo temos 23 bits que são necessários para armazenarmos os mesmos 49 bytes, agora vamos fazer
uma comparação:
Antes:
8.000.000.000 x 49 Bytes = 392.000.000.000 Bytes / 1024 / 1024 / 1024 = 365.1 GB
Depois:
8.000.000.000 x 23 Bits = 184.000.000.000 Bits / 8 / 1024 / 1024 / 1024 = 21.4 GB
▪Arquiteturas HANA
▪Melhores Práticas
• Antes do HANA, existem 5 regras que a SAP definem como
“regras de ouro”, que apoiam qualquer aplicação ABAP feita.
• São elas:
▪Exemplo 1
• Descrição do Exemplo: Cliente solicitou saber quanto estava
faturando por avião,
• Pensando da forma HANA, um exemplo de código ficaria da
seguinte forma:
▪Exemplo 1
• Foi realizada a análise do mesmo código em dois servidores:
um servidor R/3 e outro HANA.
• No ambiente R/3:
• No ambiente S/4:
• No ambiente S/4:
▪Exemplo 3
• Descrição: Cliente deseja um relatório com todas as
reclamações abertas, informando o tipo da reclamação.
Relatório conterá as seguintes informações:
Nº da reclamação -> crmd_orderadm_h-object_id,
Tipo da reclamação ->crmd_orderadm_h-process_type,
Código do status da reclamação -> crm_jest-stat,
Descrição do status da reclamação -> tj30t-txt30,
Produto reclamado -> crmd_orderadm_i-ordered_prod,
Descrição do Produto -> crmd_orderadm_i-description,
▪Exemplo 3
CRMD_ORDERADM_H CRMD_ORDERADM_I
CRMD_ORDERADM_H-GUID =
OBJECT_ID CRMD_ORDERADM_I-HEADER ORDERED_PROD
PROCESS_TYPE DESCRIPTION
CRM_JEST- GUID
CRMD_ORDERADM_H- OBJNR =
CRMC_PROC_TYPE TJ30T
CRMC_PROC_TYPE-
USER_STAT_PROC =
TJ30T-STSMA
CRM_JEST
STAT CRM_JEST-STAT = TJ30T-ESTAT
▪Exemplo 3
• Segue os dois programas:
• Um com as melhores práticas para o ABAP clássico e outra
com as melhores práticas para o ABAP HANA
▪Exemplo 3
• Abaixo a análise de cada programa no ambiente HANA:
• Programa com melhores práticas HANA:
▪Exercício 1:
SBOOK-CARRID = SFLIGHT-CARRID =
SBOOK SFLIGHT-CARRID SFLIGHT SCARR-CARRID SCARR
CARRID SBOOK-CONNID = PLANETYPE CARRNAME
SFLIGHT-CONNID
CONNID SBOOK-FLDATE =
PAYMENTSUM
FLDATE SFLIGHT-FLDATE
LUGGWEIGHT
• HANA:
▪Novo Open-SQL
• Tendo em vista que a forma de desenvolver sofreu mudanças
bruscas e sabendo que o Open SQL é limitado, a SAP está
trabalhando a cada Support Package para adicionar
funcionalidades do SQL Nativo para o Open SQL.
• A partir da versão ABAP 7.4 SP05, a SAP já adicionou itens
importantes que devem ser usados para desenvolvimento HANA.
• O curso destacará as mais importantes
▪Solução - Exercício 2:
• ADBC:
• ADBC:
• ADBC:
• ADBC:
• Forma 2:
• ADBC:
• Exemplo 1:
• Exemplo 1:
• Exemplo 1:
• Exemplo 1:
• Exercicio1:
• Refazer o exercício abaixo, criando uma procedure e um programa
que execute essa procedure:
• Com os relatórios criados(modo clássico e ADBC) no exercício
1, adicionar uma coluna no relatório que seja a % dos
fumantes em relação ao numero total do avião
• Obs: Para obter o numero total de assentos no Vôo, ir na
SFLIGHT e obter o campo SEATSMAX
• Medir novamente a ST12
• Solução – Exercicio 1:
• Solução – Exercicio 1:
• Solução – Exercicio 1:
• ADBC:
• Procedure:
• ADBC:
120
Programação em HANA – Visões HANA
• Exemplo 1 – Attribute View:
• Data Foundation é onde terá
as tabelas que farão ligação
com a view bem como, regras,
e colunas calculadas
• Semantics são as informações
de como a visão deve ser
criada: Indicar quais campos
são chaves, bem como a
posição e entre outros
1: Declarar dois
objetos: Um custom
container que alocará
o ALV, e um objeto que
será o ALV HANA.
2: Criar uma tela com
um objeto custom
container
3: Instanciar o objeto
custom container
4: Criar o ALV, através
do método create da
classe
cl_salv_gui_table_ida
• ALV Clássico:
SIM
OPEN SQL
SIM AMDP
Não
173
ADBC OU Procedure
com Proxy
173
Bibliografia
• Livro: SAP ABAP Programming For SAP HANA
• http://scn.sap.com/community/abap
• https://blogs.saphana.com/2013/08/01/sqlscript-procedure-templates-
in-sap-hana/
• https://help.sap.com/saphelp_hanaplatform/helpdata/en/22/47aca08f
054d30b0f749f757ec1ccd/content.htm
• http://scn.sap.com/community/abap/blog/2014/05/21/a-complete-
guide-to-opensql-statements--step-by-step-tutorial-with-screenshots
• http://scn.sap.com/docs/DOC-51146
• http://scn.sap.com/community/abap/hana/blog/2016/02/22/core-
data-services-in-abap
• http://www.tutorialspoint.com/sap_hana/sap_hana_quick_guide.htm
• http://saphanatutorial.com/sap-hana-procedure-example-table-type-
cursor-exception-etc/
• http://sapinsider.wispubs.com/Assets/Articles/2014/October/SPI-
where-ABAP-meets-SAP-HANA
• http://www.tutorialspoint.com/sql/index.htm
174
• http://www.w3schools.com/sql/