Fabio Pagoti
Desenvolvedor na Dux Innovation
Instrutor ABAP e UI5
14 de Agosto de 2015
HANA XS Data Services
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 2
Agenda
Contextualização
 XSJS, Aplicações Nativas em HA...
Contextualização
XSJS, Aplicações Nativas em HANA
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 4
Mapa de Informações do Desenvolvedor¹
Áreas de interesse...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 5
Um pequeno exemplo de XSJS
Resultado de chamada de servi...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 6
Um pequeno exemplo de XSJS
Código Fonte do serviço
Chama...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 7
Regra de negócio das aplicações nativas
Espalhada em:
 ...
Criação de tabelas no HANA
Script, .hdbtable, Core Data Services
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 9
Criação de tabelas no HANA
Script
Vantagens
 Maior prox...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 10
Criação de tabelas no HANA
Arquivo .hdbtable
Vantagens
...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 11
Criação de tabelas no HANA
Arquivo .hdbdd (Core Data Se...
Acesso ao banco no XSJS
$.db, $.hdb, XSDS
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 13
$.db
Obsoleto
 Primeira forma de acesso a
tabelas e pr...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 14
$.hdb
Principal forma de acesso hoje
 Simplicidade, co...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 15
XS DB Utilities
XS Data Services (DS) + XS Procedures
...
Exemplos
Usando XSDS
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 17
Arquivo .hdbdd
Tabela de cabeçalho e item
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 18
Importando o XSDS e usando criando uma Entidade
Criando...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 19
Criando um registro
Transformando um objeto em tupla
 ...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 20
Selecionando um registro
Tupla em objeto
 $get ~ SELEC...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 21
Atualizando vários registros
Atualização em massa
 Par...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 22
Por padrão associações já realizam JOINs!
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 23
Criando queries complexas
Join com parse de colunas
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 24
SQL gerado pela chamada $query
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 25
Outras capacidades
Somente outros exemplos
 Adicionar ...
Conclusão
Vantagens e Desvantagens, o que mais esperar?
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 27
Vantagens e Desvantagens
Do XSDS
Vantagens
 Abstração ...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 28
O que eu espero?
Novas libs!
 XSDS é (provavelmente) a...
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 29
Links úteis
 Documentação XS DB Utils
 SAP HANA SPS 0...
© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Obrigado!
Fábio Pagoti – Desenvolvedor HANA na
@fabiopagot...
Próximos SlideShares
Carregando em…5
×

HANA XS Data Services - SAP Inside Track Joinville 2015 - Fábio Pagoti

478 visualizações

Publicada em

HANA XS Data Services - SAP Inside Track Joinville - Fábio Pagoti

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
478
No SlideShare
0
A partir de incorporações
0
Número de incorporações
43
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

HANA XS Data Services - SAP Inside Track Joinville 2015 - Fábio Pagoti

  1. 1. Fabio Pagoti Desenvolvedor na Dux Innovation Instrutor ABAP e UI5 14 de Agosto de 2015 HANA XS Data Services
  2. 2. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 2 Agenda Contextualização  XSJS, Aplicações Nativas em HANA Criação de tabelas no HANA  Script, .hdbtable, Core Data Services Acesso ao banco no XSJS  $.db, $.hdb, XSDS Exemplos  Usando XSDS Conclusão  Vantagens e Desvantagens, o que mais esperar? Links úteis
  3. 3. Contextualização XSJS, Aplicações Nativas em HANA
  4. 4. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 4 Mapa de Informações do Desenvolvedor¹ Áreas de interesse de um desenvolvedor HANA ¹ http://help.sap.com/hana/SAP_HANA_Developer_Information_Roadmap.pdf
  5. 5. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 5 Um pequeno exemplo de XSJS Resultado de chamada de serviço
  6. 6. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 6 Um pequeno exemplo de XSJS Código Fonte do serviço Chamada do front end é ser feita via:  JavaScript Nativo  jQuery  Classe “model” no UI5  Outra bibliotecas, etc
  7. 7. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 7 Regra de negócio das aplicações nativas Espalhada em:  XSJS  Views  Analytic  Attribute  Calculation  Procedures  PAL, R, etc • Cada tipo de artefato tem seu foco, mas há uma sobreposição de responsabilidades • Todas os artefatos ao lado possuem recursos para acesso ao banco
  8. 8. Criação de tabelas no HANA Script, .hdbtable, Core Data Services
  9. 9. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 9 Criação de tabelas no HANA Script Vantagens  Maior proximidade com o banco  Definição de chaves estrangeiras  Definição de “cascades” Desvantagens  Não “transportável”  Artefato só possui versão de runtime
  10. 10. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 10 Criação de tabelas no HANA Arquivo .hdbtable Vantagens  Artefato design-time  Abstração do banco  Transportável Desvantagens  Uma tabela por arquivo  Não oferece todos os recursos do banco
  11. 11. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 11 Criação de tabelas no HANA Arquivo .hdbdd (Core Data Services) Vantagens  Definição de tipos  Múltiplicas tabelas e visões no mesmo contexto  Reutilização de contextos  Definição de associações Desvantagens  Não oferece todos os recursos do banco
  12. 12. Acesso ao banco no XSJS $.db, $.hdb, XSDS
  13. 13. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 13 $.db Obsoleto  Primeira forma de acesso a tabelas e procedures  Semelhante a JDBC  Chamadas idênticas a usadas no SQL Console mas em forma de string  Preenchimento de parâmetros requer conversões e deixa código longo
  14. 14. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 14 $.hdb Principal forma de acesso hoje  Simplicidade, conveniência, completude, desempenho  Queries ainda feitas em strings  Preenchimento de parâmetros facilitada  Procedures podem ser feitas em função proxy
  15. 15. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 15 XS DB Utilities XS Data Services (DS) + XS Procedures  Não é um namespace mas sim uma lib (arquivo .xsjslib)  ORM via Fluent API (semelhante ao Hibernate ou NHibernate)  Ações ao banco feitas como métodos de uma classe criada dinamicamente  Preenchimento de parâmetros através de objetos
  16. 16. Exemplos Usando XSDS
  17. 17. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 17 Arquivo .hdbdd Tabela de cabeçalho e item
  18. 18. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 18 Importando o XSDS e usando criando uma Entidade Criando a classe Entidade via importEntity ou defineEntity
  19. 19. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 19 Criando um registro Transformando um objeto em tupla  Tuplas são tratadas como objetos  Classe Header é instanciada  Construtor valida passagem de campos chave (ou usa sequence)  Registro é inicialmente transiente  Persistência é feita no banco via método $save  Método $save valida colunas “not null”
  20. 20. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 20 Selecionando um registro Tupla em objeto  $get ~ SELECT SINGLE  Internamente alguns valores são armazenado em objetos e não variáveis simples [15-16]
  21. 21. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 21 Atualizando vários registros Atualização em massa  Para encontrar Items, é preciso fornecer uma referência válida de Header  Múltiplos registros são meros arrays  $saveAll opera em vários objetos
  22. 22. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 22 Por padrão associações já realizam JOINs!
  23. 23. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 23 Criando queries complexas Join com parse de colunas
  24. 24. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 24 SQL gerado pela chamada $query
  25. 25. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 25 Outras capacidades Somente outros exemplos  Adicionar colunas no resultado de uma query  Funções de agregação  Encapsulamento de procedures em funções (via XS Procedures)  Gerenciamento de transações (COMMIT, ROLLBACK)  Lazy loading  CascateDiscard  Suporte a vários tipos de associação entre tabelas
  26. 26. Conclusão Vantagens e Desvantagens, o que mais esperar?
  27. 27. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 27 Vantagens e Desvantagens Do XSDS Vantagens  Abstração ótima  Código mais enxuto  Usa $.hdb internamente  Pode ser usado para criar dados de teste facilmente para XS Unit  Pode tratar tabelas antigas como se fossem criadas em contextos de CDS (.hdbdd) Desvantagens  importEntity e defineEntity tem um custo computacional (tratado no SPS10)  Alguns métodos podem ser avassaladores se mal usados (evite usar tudo que for unmanaged)  Ainda não está 100% preparado para substituir $.hdb em todos os casos  Documentação ainda é fraca
  28. 28. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 28 O que eu espero? Novas libs!  XSDS é (provavelmente) a primeira lib de XS standard a existir  Uma vez que o HANA suporte NodeJS (planejado para o SPS11), um mundo de libs podem surgir  XSDS deve ficar mais estável e inteligente  Abstração de outros namespaces (como $.web)
  29. 29. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 29 Links úteis  Documentação XS DB Utils  SAP HANA SPS 09: New Developer Features; XSDS (XS Data Services) - Thomas Jung  XS Data Services: A Native CDS Client and Query Builder for XS JavaScript - Ralph Benzinger  XS Data Services: Working With CDS Entities - Ralph Benzinger  XS Data Services: Building CDS Queries - Andreas Roth
  30. 30. © 2013 SAP AG or an SAP affiliate company. All rights reserved. Obrigado! Fábio Pagoti – Desenvolvedor HANA na @fabiopagoti ABAP101.com HanaBrasil.com.br

×