blog header

adesso Blog

A blog első részében elhangzott fogalmak egy részét most a gyakorlatban lépésről-lépésre bemutatom.

CDS View létrehozása vagy módosítása nem lehetséges a hagyományos ABAP Workbench-en keresztül. Szóval először is telepíteni kell a Hana Studio-t vagy az Eclipset. Ennek a lépései:

1. “Eclipse for JAVA developers” letöltése és telepítése.

2. Az Eclipse Plugin for ABAP development letöltése és telepítése.

  • A Eclipse megnyitása után válasszuk a Help/Install New Software menüpontot.

3. Az Eclipse csatlakoztatása az SAP Backend rendszerhez.

  • Ahhoz, hogy Eclipse-ből csatlakozhassunk az SAP-hoz, először egy új ABAP projektet kell létrehoznunk. A File/New/ABAP Project menüopción keresztül megadhatjuk manuálisan az SAP rendszerkapcsolat tulajdonságait az új ABAP projektben való használatra. A varázsló ezután lehetővé teszi, hogy felhasználói fiókkal jelentkezzünk be az SAP rendszerbe.

CDS View létrehozása Eclipse-ben

Új CDS View létrehozásához válaszd a File/New/Other menüpontot, majd a „Data Definition” opciót:

Töltsük ki a következő mezőket:

A CDS View fontos szerepet játszik az S/4 HANA projektekben. A fejlesztőknek ABAP CDS View-t kell létrehozniuk különböző célokra, például report készítéshez, SAP Fiori Smart Template-ekhez, OData Service-ekhez. Az Eclipse adatdefiníciós sablonokat biztosít az ABAP CDS View fejlesztésére fordított idő csökkentésére.

Ebben a példában a Define View template-et fogjuk használni.

Ezután kitöltjük az SQL View Name annotációt, megadjuk a tábla nevét, felvesszük a kulcs mezőket és megadjuk az Alias neveket:

Mentés, aktiválás után futtatjuk (F8).

A CDS View-t bővítjük pár mezővel:

Ezután létrehoztam még egy CDS Viewt ZI_AccDocSegment néven a BSEG táblához.

Associatons használata

Mikor használunk associations-t? Ha egy felhasználói felületen egyik entitásról a másikra szeretnénk navigálni. A következő példában a header táblából a detail item táblába megyünk.

Adjunk hozzá egy Association-t a ZI_AccDocHeader View-hoz. A kardinalitás “egy a többhöz” -> [0..*]. Az accounting document header View-t egy accounting document segment view-val kötjük össze és definiáljuk hozzá a Join-t.

Majd hozzáadjuk az adatokat a komponenshez. Szintén hozzáadunk egy Annotation-t, hogy definiáljuk az Association type-ot. A Header View esetében ez a #TO_COMPOSITION_CHILD lesz.

Következő lépésként létrehozzuk az Association-t az Acc. Doc. segment-ből Acc. Doc. headerbe. A kardinalitás ez esetben “egy az egyhez” -> [1..1]. Az Association type ez esetben így alakul: #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT – (A header szintén egy root View)

Ezután futtatjuk és navigálhatunk az item adatba:

Case Statements

A következő példában “CASE” utasítást fogunk használni, ami a “View” kimeneteként különböző értékek visszaadására használható. Ezek az utasítások akár egymásba is ágyazhatók.

A korábban létrehozott Accounting Doc. View-ban kommentezzük ki a “blart” mezőt és helyette adjuk meg az értéket, amit helyettesíteni szeretnénk. A struktúrát “end as” + mező típus kifejezéssel zárjuk.

Mentés, aktiválás után futtatjuk és hasonlítsuk össze a módosítás előtti és utáni eredményt.

Az Doc. type oszlopban a megadott szövegek jelennek meg, ami által érthetőbbé tettük a kimenetet.

Cast Operation

A “CAST” művelettel létrehozhatunk egy kalkulált mezőt vagy konvertálhatunk egy már létező mezőt különböző típusokra adatbázis szinten.

Ebben a példában az áfa összegét számoljuk ki a TaxAmount oszlopba.

A CAST kulcsszó után megadjuk zárójelben a mezőt, amit cast-olni szereténk, a típust amibe castol-juk illetve ezt megszorozzuk az áfa összegével.

Aktiváljuk és futtatjuk:

Numeric Functions

Ez a fejezet alapvető áttekintést nyújt a numerikus szintaxisokról és a numerikus függvényekhez elfogadott adattípusokról.

Funkció Érvényes típus Kimenet
ABS( arg ) INT1, INT2, INT4, INT8, DEC, CURR,
QUAN, FLTP
Az argumentum abszolút értékét adja vissza.
CEIL( arg ) INT1, INT2, INT4, INT8, DEC, CURR, 
QUAN, FLTP
Az aktuális érték következő egész értékét
adja meg, ha van tizedes része.
DIV( arg1, arg2 ) INT1, INT2, INT4, INT8, DEC, CURR,
QUAN without decimal places.
Hagyományos osztás
DIVISION( arg1, arg2, dec ) Az arg1 osztása arg2-vel Az
eredményt tizedesjegyekre kerekítjük.
Hagyományos osztás, de a tizedesjegyek
megadásának további funkciója. Az
eredményt tizedesjegyekre kerekítjük.
FLOOR( arg ) INT1, INT2, INT4, INT8, DEC, CURR,
 QUAN
A művelet eltávolítja a decimális részt, és az
értéknek csak egész részét adja meg.
MOD( arg1, arg2 ) INT1, INT2, INT4, INT8 Megadja az arg1 arg2-vel való osztásának
pozitív vagy negatív egész maradékát.
ROUND( arg, pos ) arg: INT1, INT2, INT4, INT8, DEC,
CURR, QUAN pos: Literal, adatforrás
mezője vagy INT1, INT2, INT4 típusú
bemeneti paraméter
Az argumentum kerekített értéke.

A VBAK táblát felhasználva próbáljunk ki néhány numerikus függvényt egy View-ban:

String Functions

Az alábbi táblázat bemutatja a lehetséges SQL-függvényeket a karakterláncokhoz a CDS View-ban, valamint az argumentumokra vonatkozó követelményeket.

Funkció Leírás
Concatenate Összefűz 2 karakterláncot
Concatenate with space A harmadik parameter a space-ek számát jelenti kettő string között
Instr megkeresi a megfelelő karakterlánc pozícióját a megfelelő mezőben
Left A karakterlánc bal oldali részét adja vissza
Lower Mindent kisbetűre konvertál
Upper Minden karaktert nagybetűre konvertál
Ltrim & Rtrim Első paraméter a mező, második az eltávlítandó string vagy karakter
Replace A második paraméter megkeresi a harmadikra cserélendő karakterláncot
Substring Megkeres egy karakterláncot – a második paraméter a kezdő pozíció, a harmadik
a karakterek száma
Lpad & Rpad Első paraméter a mező, a második kitöltés hossza, a harmadik kitöltendő
karakterlánc
Length Megadja a karakterlánc hosszát

Ebben a példában kipróbáljuk, a String funkciók használatát.

Annotációk (Annotations)

A CDS-annotációk a CDS-adatmodellek egyszerű SQL-logikáját további metaadatokkal gazdagítják, amelyeket az ABAP futási környezet és a CDS-modellek többi fogyasztója értelmez.

Az annotációk a CDS modell egyik alapfogalma. Annak ellenére, hogy az annotációk a CDS szintaxisának szerves részét képezik, konkrét megvalósításaik annotációdefiníciós objektumokként vannak modellezve. Az annotáció definíciók műszaki objektumtípusa: DDLA.

Nézzünk egy példát OData létrehozására Annotáció segítségével:

Hozzáadjuk az @OData.publish: true annotációt a View-hoz és a rendszer létrehozza a Service-t. Aktiváljuk. Ezután a Service-t is még aktiválni kell.

Hívjuk meg a következő tranzakciót: /iwfnd/maint_service

Majd keressük meg a Service-t és aktiváljuk.

Kattintsunk a Technikai Server névre:

Majd a következő ablak alsó sarkában a zöld pipára.

Mint láthatjuk a service sikeresen létrejött. Ezután lépjünk vissza a Service Cataloghoz és keressük meg az épp létrehozott Service-t. Kattintsunk a SAP Gateway Client gombra, hogy lássuk a meta adatot.

Válasszuk ki az “Add Uri” opciót és majd a pop up-ban a $metadata bejegyzést. Ezután futtatjuk (F8).

Ilyen egyszerűen készíthetünk Odata Service-t egy annotation segítségével, ami akár Fiori alkalmazások adatforrásaként is felhasználható.

Picture András Magyar

Author András Magyar

Senior SAP Tanácsadó és Fejlesztő


Our blog posts at a glance

Our tech blog invites you to dive deep into the exciting dimensions of technology. Here we offer you insights not only into our vision and expertise, but also into the latest trends, developments and ideas shaping the tech world.

Our blog is your platform for inspiring stories, informative articles and practical insights. Whether you are a tech lover, an entrepreneur looking for innovative solutions or just curious - we have something for everyone.

To the blog posts

Save this page. Remove this page.