Small Notes : executando o CRUD utilizando XS Data Services
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:
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 :
valeu e ate a próxima “Small Notes”.