SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
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 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
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 de um desenvolvedor HANA
¹ http://help.sap.com/hana/SAP_HANA_Developer_Information_Roadmap.pdf
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 5
Um pequeno exemplo de XSJS
Resultado de chamada de serviço
© 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
© 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
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 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
© 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
© 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
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 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
© 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
© 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
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 a classe Entidade via importEntity ou defineEntity
© 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”
© 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]
© 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
© 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 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
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 ó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
© 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)
© 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
© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Obrigado!
Fábio Pagoti – Desenvolvedor HANA na
@fabiopagoti
ABAP101.com
HanaBrasil.com.br

Mais conteúdo relacionado

Mais procurados

Metodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMetodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMarco Garcia
 
Infoschema - Company Overview
Infoschema - Company OverviewInfoschema - Company Overview
Infoschema - Company OverviewRenilton Oliveira
 
Transforme a Cadeia de Suprimentos com o SAP S/4HANA
Transforme a Cadeia de Suprimentos com o SAP S/4HANATransforme a Cadeia de Suprimentos com o SAP S/4HANA
Transforme a Cadeia de Suprimentos com o SAP S/4HANARodolfo Davariz
 
Cloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsCloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsAlan Carlos
 
Azure SQL DataWarehouse
Azure SQL DataWarehouseAzure SQL DataWarehouse
Azure SQL DataWarehouseVitor Fava
 
Apresentação de Business Intelligence
Apresentação de Business IntelligenceApresentação de Business Intelligence
Apresentação de Business IntelligenceJuliana Maria Lopes
 
Implementação SAP S/4 HANA Finance
Implementação SAP S/4 HANA FinanceImplementação SAP S/4 HANA Finance
Implementação SAP S/4 HANA FinanceJose Nunes
 

Mais procurados (12)

Metodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho DayMetodologia Ágil para Projetos de BI - Pentaho Day
Metodologia Ágil para Projetos de BI - Pentaho Day
 
Infoschema - Company Overview
Infoschema - Company OverviewInfoschema - Company Overview
Infoschema - Company Overview
 
Transforme a Cadeia de Suprimentos com o SAP S/4HANA
Transforme a Cadeia de Suprimentos com o SAP S/4HANATransforme a Cadeia de Suprimentos com o SAP S/4HANA
Transforme a Cadeia de Suprimentos com o SAP S/4HANA
 
Conceitos DW
Conceitos DWConceitos DW
Conceitos DW
 
Cloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsCloud Computing - Pratices & Patterns
Cloud Computing - Pratices & Patterns
 
Rogério falcone
Rogério falconeRogério falcone
Rogério falcone
 
Oficina Pentaho
Oficina PentahoOficina Pentaho
Oficina Pentaho
 
Arquitetura sapb1
Arquitetura sapb1Arquitetura sapb1
Arquitetura sapb1
 
Azure SQL DataWarehouse
Azure SQL DataWarehouseAzure SQL DataWarehouse
Azure SQL DataWarehouse
 
Apresentação de Business Intelligence
Apresentação de Business IntelligenceApresentação de Business Intelligence
Apresentação de Business Intelligence
 
Implementação SAP S/4 HANA Finance
Implementação SAP S/4 HANA FinanceImplementação SAP S/4 HANA Finance
Implementação SAP S/4 HANA Finance
 
Petic SEAD-SE
Petic SEAD-SEPetic SEAD-SE
Petic SEAD-SE
 

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

Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Apresentação palestra ireport
Apresentação palestra ireportApresentação palestra ireport
Apresentação palestra ireportfpsgyn
 
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Aryel Tupinambá
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineFrederico Maia Arantes
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoMySQL Brasil
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Finaljcaroso
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFabio Telles Rodriguez
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASSLarissa Carvalho
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 

Semelhante a HANA XS Data Services - SAP Inside Track Joinville 2015 - Fábio Pagoti (20)

NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
No sql std
No sql stdNo sql std
No sql std
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Apresentação palestra ireport
Apresentação palestra ireportApresentação palestra ireport
Apresentação palestra ireport
 
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Programação asp
Programação aspProgramação asp
Programação asp
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produto
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Final
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASS
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Big data e ecossistema hadoop
Big data e ecossistema hadoopBig data e ecossistema hadoop
Big data e ecossistema hadoop
 

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

  • 1. Fabio Pagoti Desenvolvedor na Dux Innovation Instrutor ABAP e UI5 14 de Agosto de 2015 HANA XS Data Services
  • 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
  • 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. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 5 Um pequeno exemplo de XSJS Resultado de chamada de serviço
  • 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. © 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. Criação de tabelas no HANA Script, .hdbtable, Core Data Services
  • 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. © 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. © 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. Acesso ao banco no XSJS $.db, $.hdb, XSDS
  • 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. © 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. © 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
  • 17. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 17 Arquivo .hdbdd Tabela de cabeçalho e item
  • 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. © 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. © 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. © 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. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 22 Por padrão associações já realizam JOINs!
  • 23. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 23 Criando queries complexas Join com parse de colunas
  • 24. © 2013 SAP AG or an SAP affiliate company. All rights reserved. 24 SQL gerado pela chamada $query
  • 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
  • 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. © 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. © 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. © 2013 SAP AG or an SAP affiliate company. All rights reserved. Obrigado! Fábio Pagoti – Desenvolvedor HANA na @fabiopagoti ABAP101.com HanaBrasil.com.br