9. May 2022 By András Magyar
Core Data Services
Szeretnéd Te is percek alatt megérteni a Core Data Services elméleti részét? Akkor ez a blog Neked készült!
Az SAP HANA fejlődése után az SAP-én belüli technológia gyorsan változik, így változások történtek az SAP üzleti alkalmazások fejlesztési módjában is.
Azok számára, akik jártasak az ABAP világában való alkalmazásfejlesztésben, nem ismeretlen az SAP NetWeaver Application Server (SAP NetWeaver AS) ABAP-ban található hagyományos adatmodellező eszközök – különösen az ABAP Dictionary (DDIC), ami olyan objektumok definícióit tárolja, mint pl. adatbázis táblák és nézetek, amelyek az ABAP programokban használhatók. Később megjelent az SAP HANA az új módszerekkel, amely az adatintenzív logikát az adatbázisrétegre tolja (Code push-down).
Az SAP HANA alkalmazásfejlesztési előnyeinek kihasználása érdekében az SAP új adatmodellező infrastruktúrát vezetett be Core Data Services néven. A CDS-nél az adatmodellek meghatározása és felhasználása az adatbázis szerveren történik, nem pedig az Applikációs szerveren. A CDS a hagyományos adatmodellezési eszközökön túlmutató képességeket is kínál, ideértve a koncepcionális modellezés és a kapcsolatdefiníciók támogatását, a beépített funkciókat és a bővítményeket. A CDS eredetileg csak az SAP HANA tervezési és futási környezetében volt elérhető. A CDS-koncepció immár az SAP NetWeaver AS ABAP-ban is teljes mértékben implementálva van, lehetővé téve a fejlesztők számára, hogy az ABAP rétegben dolgozzanak ABAP fejlesztőeszközökkel, miközben a kód végrehajtása az adatbázisba kerül.
A CDS leegyszerűsíti az adatmodellek meghatározásának és felhasználásának módját, függetlenül a fogyasztási technológiától. Technikailag ez az SQL továbbfejlesztése, amely egy adatdefiníciós nyelvet (DDL) biztosít a szemantikailag gazdag adatbázistáblák/nézetek (CDS-entitások) és a felhasználó által definiált típusok meghatározásához az adatbázisban. Néhány fejlesztés a következőket tartalmazza:
- Expressions
Számításokhoz és lekérdezésekhez használt kifejezések az adatmodellben. - Associations
Fogalmi szintű asszociációk, a lekérdezésekben a „Join”-ok egyszerű elérési út kifejezésekkel való helyettesítése. - Annotations
Annotációk az adatmodellek további (tartományspecifikus) metaadatokkal való gazdagításához a CDS natív módon támogatott mind az ABAP, mind a HANA platformon.
A code push-down technikában minden számítást adatbázis-rétegen hajtanak végre az alkalmazási réteg helyett, ami gyors adatlekérést eredményez, ami az alkalmazások végrehajtásának gyorsulását eredményezi.
A Core Data Services az alábbi SAP platformokon érhetők el:
- SAP NetWeaver 7.50-től,
- SAP NetWeaver 7.4 SP05,
- SAP HANA SPS6,
- SAP Business Suite EHP7 (Suite on HANA),
- S/4HANA,
- SAP Business Warehouse 7.3.
A Core Data Services mögötti motiváció:
Integrálni lehet olyan lehetőségeket adatbázis szintre, ahol a code pushdown elvet figyelembe véve hatékonyabban és gyorsabban tudjuk elérni, megjeleníteni. Ezeket korábban külön programokon keresztül, erre a célra írt programsorokon keresztül lehetett megoldani. A CDS sok új lehetőséget nyújt megspórolva sok száz sor ABAP kódot:
- Egy alkalmazás adatai több adatbázistáblában vannak elosztva. Az ABAP CDS nézetek használatával átrendezhetjük a táblamezőket az alkalmazás-specifikus igények szerint.
- CDS teljes mértékben SQL-en alapul: Bármely „Standard SQL” szolgáltatás közvetlenül elérhető, mint például a Join-ok, a beépített funkciók (min, max, count, convert stb.) stb.
- Teljesen kompatibilis bármely DB-vel: A CDS - SQL nézetekben (View) jön létre és integrálva van az SAP HANA rétegbe. A CDS entitások és metaadataik bővíthetők, és optimálisan integrálhatók az ABAP Dictionary-be és az ABAP nyelvbe.
- Annotációk támogatása: Az annotáció egy jelölés a kódban, amely @ jellel kezdődik. A @ jel után a megjegyzés jellegét leíró kifejezés kerül. A CDS szintaxis támogatja a tartományspecifikus megjegyzéseket, amelyeket más összetevők, például a felhasználói felület (UI), akár az analitika és az OData szolgáltatások könnyen kiértékelhetnek.
Annotációk típusai:
- AbapCatalog Annotations,
- AccessControl Annotations,
- ClientDependent Annotations,
- DataAging Annotations,
- EndUserText Annotations,
- Environment Annotations,
- MappingRole Annotations,
- Metadata Annotations,
- Semantics Annotations.
Néhány egyszerű példa:
- @Odata.publish - aktiválja a service-t Fiori-hoz.
- @UI.selectionField.position – ez a szűrő opcióra vonatkozik.
- @UI.hidden – Ha el szeretnénk rejteni egy mezőt a Fiori oldalán.
- Associations: Nézetek (Views) egyszerűsített meghatározása. Útvonal-kifejezések a relációk mentén történő navigáláshoz.
- Bővíthetőség: Az SAP által meghatározott CDS nézeteket kibővíthetjük olyan mezőkkel, amelyek automatikusan hozzáadódnak a CDS nézethez a használati hierarchiával együtt.
- Modell szinten bővítmények révén.
- Metamodell szinten annotációk révén.
- Egyszerűbb integráció a cloud-ba, Fiori alkalmazásokhoz egyszerűen lehet OData service-t építeni annotáció segítségével.
- UI5-ban olyan “Smart” UI Controlok kerültek létrehozásra, amik vezérelhetők a CDS annotációkkal. (pl. Oszlop név, adat típusok stb.)
Különböző CDS View típusok léteznek SAP HANA-ban:
- Define View: Egyszerű nézet, mindössze 1 táblázattal.
- Define View with Join: Ez a nézet több mint 2 tábla összekapcsolására szolgál “join”-ok használatával.
- Define View with Association: Több mint 2 tábla összekapcsolására szolgál “Association”-ok használatával.
- Define View with Parameters: SE11-ben a nézetekben csak “hard-coded” szelekciók lehetnek, ezzel viszont dinamikussá tehetjük a szelekciót.
- Extend View: A normál nézet kiterjesztésére szolgál.
- Define Table Functions with Parameters: Ezzel a nézettel AMDP metódusokat hívhatunk meg a nézetben.
- Projection View: Speciális célt szolgálnak az ABAP RESTful alkalmazásprogramozási modellen (RAP) belül. A meglévő CDS-View modellek alapján interfészeket határoznak meg. A projection view mindig pontosan egy létező CDS nézetentitáson vagy CDS DDIC alapú nézeten alapul, és megjeleníti annak elemeinek egy részét, amelyek egy adott üzleti szolgáltatáshoz szükségesek.
Néhány előnye a CDS View-nak:
- SE11-ben a mező számítása nem lehetséges, ha CDS nézetben rendelkeznének számított mezőkkel (például két mező hozzáadásával futás közben).
- A következőket támogatja: inner join, outer join, right outer join, full join és cross join.
- Támogatott az “automatic client handling” (@ClientHandling.type).
- Támogatják az Open SQL-t és ugyanúgy hívhatjuk őket, mint bármely SE11 nézetet az alkalmazási rétegbe.
- Az OData szolgáltatást közvetlenül a CDS nézetekből érhetjük el.
- Az Aggregáció és a numerikus függvények támogatottak.