Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Olá pessoal ,

Eu sou o Sidney Gabriel , trabalho como SAP Hana developer na consultoria DUX Innovation e esse é o segundo post da serie “Small Notes”

Recentemente trabalhei com um artefato relativamente novo da SAP , o XSDS, que surgiu a partir do SP09 do HANA XS.  A “Small notes” de hoje  será sobre como fazer um CRUD utilizando o artefato XSDS.

Oque é XS Data Services


XS Data Services ( XSDs ) é um biblioteca javascript para XS Engine que  permite aplicações JavaScript consumir esses CDs artefatos como objetos JavaScript nativos . Em vez de escrever consultas SQL  que envolvem tabelas e colunas de banco de dados , os desenvolvedores de aplicativos podem usar XSDs para raciocinar significativamente sobre entidades de forma que a biblioteca encapsula esta camada mais baixa de sql, muito similar ao Hibernate ou Nhibernate.

CRUD utilizando XSDS

1 – primeiro passo para utilizar a ferramenta e necessário importar a biblioteca  

  var XSDS = $.import("sap.hana.xs.libs.dbutils", "xsds");

2 - A entidade .

   Para esse contexto estou utilizando  o CDS data model com apenas uma entidade:

namespace tmp.sidney.sampleXSDS.Table;

context T001 {

    entity Teste {

        key id: Integer not null;

       Nome: String(100) not null;

       Idade: Integer;

    };

};

 

Para capturar  essa entidade utilize o método “$importEntity()”:

entidade = XSDS.$importEntity(

                       "tmp.sidney.sampleXSDS.table", // cdsNamespace

                       "T001.teste"

                         );



3 – executando :

  • Select

  function selecionarTodosXSDS() {

                   var entidade;

                        entidade = XSDS.$getEntity("T001.teste");

                         if (!entidade) {

                              entidade = XSDS.$importEntity(

                             "tmp.sidney.sampleXSDS.table", // cdsNamespace

                              "T001.teste");

                          }

                           var retorno = entidade.$findAll();

                           return retorno;

     

                             }

  • Insert

      function inserirXSDS() {

                   var entidade;

                   var obj;

           entidade = XSDS.$getEntity("T001.teste");

                     if (!entidade) {

               entidade = XSDS.$importEntity(

                             "tmp.sidney.sampleXSDS.table", // cdsNamespace

                              "T001.teste");

                         obj = new Agenda({

                                  ID:2,

                                  nome:"Sidney",

                                  idade:28

                             });

              obj.$save();

                 

                       return obj;

     

                             }

  • Update

          function updateXSDS() {


                   var entidade;

                   var obj;

          entidade = XSDS.$getEntity("T001.teste");

                         if (!entidade) {

                entidade = XSDS.$importEntity(

                             "tmp.sidney.sampleXSDS.table", // cdsNamespace

                              "T001.teste");

                       obj = Agenda.$findAll({

                                    ID: 1

                                  });

                       obj[0].nome = "Sidney gabriel";

                       obj[0].idade = 30;

                       obj[0].$save();

                       return obj;

     

                             }

  • Delete

function updateXSDS() {


                   var entidade;

                   var obj;

          entidade = XSDS.$getEntity("T001.teste");

                         if (!entidade) {

                              entidade = XSDS.$importEntity(

                             "tmp.sidney.sampleXSDS.table", // cdsNamespace

                              "T001.teste");

                       obj = Agenda.$find({

                                  ID: 1

                               });

                       obj.$discard();

                       return obj;

     

                             }

Segue abaixo uma lista de métodos mais utilizados (básicos)

$eq();  expressão de comparação igual

   Ex.:   entidade.$query().$where(entidade.valor.$eq(1));

$le(); expressão de comparação menor ou igual

   Ex.: entidade.$query().$where(entidade.valor.$le(10));

$ge(); expressão de comparação maior ou igual

    Ex.: entidade.$query().$where(entidade.valor.$ge(50));

$lt(); expressão de comparação menor que

    Ex.: entidade.$query().$where(entidade.valor.$lt(10));

$like(); expressão de comparação igual que

    Ex.: entidade.$query().$where(entidade.unidade.$like(UN));

$or(); expressão de comparação ou

Ex.:entidade.$query().$where(entidade.unidade.$like(UN)

                      .$or(entidade.unidade.$like(CX)));

É isso ai  pessoal, é claro que isso é só a pontinha do iceberg  e  para se aprofundar no assunto recomento a leitura da documentação:

http://help.sap.com/hana/SAP_HANA_XS_DBUTILS_JavaScript_API_Reference_en/sap.hana.xs.libs.dbutils.xs...

Recomendo também a palestra  do amigo e companheiro de equipe Fabio Pagoti:

https://drive.google.com/file/d/0B_nLinTjJMg_aTA0ZnhnWGRDb0E/view

E do blog :

http://scn.sap.com/community/developer-center/hana/blog/2014/12/09/sap-hana-sps-09-new-developer-fea...

valeu e ate a próxima “Small Notes”.