CDS Views – Giriş

Bu blogta Core Data Services ve CDS Views hakkında genel bilgiler verilecektir.

 CDS Views – Giriş

Bildiğimiz gibi SAP HANA bir veri tabanı sisteminden daha fazlasını ifade eder. Bu sebeple gelişen teknolojiyle birlikte SAP HANA sisteminin sunduğu avantajlardan tam olarak yararlanmak için programlama yaklaşımında bazı değişiklere ihtiyaç vardır. HANA’nın püf noktası veri işleme açısından, işlemeyi daha hızlı hale getirmek için veri tabanına direkt erişim ve ağ vs. gibi sebeplerle oluşabilecek gecikmeleri ortadan kaldırmasıdır. Yoğun veri içeren işlemler, Code to Data paradigmasını kullanarak veri tabanı katmanının kendisinde gerçekleştirilebilir. 

Code to Data yaklaşımı sistem yoğunluğunu azaltır, hesaplama hızlarını artırır ve verilerin bir katmandan diğerine hareketini azaltır. Core Data Services, Code Push Down için bir yöntemdir. Genellikle yerel yürütmenin istendiği durumlarda Open SQL, ABAP geliştiricileri için yoğun veri işlemeyi veri tabanı katmanına indiren ilk araçtır, ancak veri modellerinin veya Union, Association gibi özelliklerin yeniden kullanılması gerekiyorsa daha sonra Core Data Services kullanılmalıdır.

Core Data Services, anlamsal açıdan zengin veri modellerini tanımlamak ve kullanmak için etki alanına özgü diller (DSL’ler) ve hizmetlerden oluşan bir koleksiyondur. Varlık tanımları ve varlıklar arasındaki anlamsal ilişkiler CDS kullanılarak geliştirilebilir. CDS yapıtları DDIC nesneleri olarak depolanır, ABAP programlarında kullanılabilir ve DML İfadeleri için kaynak / hedef olarak kullanılabilir. DDL kaynakları ve CDS varlıkları ABAP tarafından yönetilir, dolayısıyla CDS varlıklarının tüm yaşam döngüsü ABAP Change and Transport System (CTS) tarafından kontrol edilir.

CDS kullanılarak oluşturulabilen öğeler ve yapılar şunları içerir:

  • Views
  • Tables (Entities)
  • Associations
  • Annotations
  • User Defined data types
  • Contexts

Code Push Down gerektiren bir uygulamanın meta modelleri, CDS Views kullanılarak oluşturulabilir. Bir CDS view veri tabanı tablolarını, veri tabanı viewlarını, işlevlerini ve veri türlerini içeren bir meta model deposu oluşturmak için açık kaynaklı bir DDL’yi tanımladığından, SE11 görünümünden daha güçlüdür. Oluşturduğumuz view, Code Push Down yöntemini kullandığından doğrudan veri tabanı katmanında işlem yaptığı için performansı çok daha iyi olacaktır. ABAP CDS views ve HANA CDS views olmak üzere iki çeşittir. ABAP CDS Views veri tabanından bağımsızdır, HANA CDS Views ise veri tabanına bağlıdır. HANA CDS kullanılarak oluşturulan CDS nesneleri, ABAP sözlüğü tarafından kontrol edilmez ve bu nedenle ABAP Programları veya Open SQL’de kullanılamaz. HANA CDS, DDIC tablosu için varlık türü tanımını gerektirir, oysa ABAP CDS bunu gerektirmez ve bu nedenle CDS katmanında kopyalanması önlenir.

CDS Views gelecekte sıkça kullanılacak bir yoldur ve SAP içinde iletilen tüm içerik yavaş yavaş CDS görünümlerine aktarılır.

Şimdi basit bir örnekle JOIN içeren bir CDS View oluşturalım. İzleyeceğimiz adımlar sırasıyla:​

  1. Eclipse üzerinden ADT (ABAP Development Tool) kullanarak oluşturduğumuz projeye yeni bir içerik ekliyoruz.

  1. Oluşturacağımız viewun tanımlamasını yapıyoruz. Burada dikkat etmemiz gereken yer: Name kısmına girdiğimiz tanımlama SE11 den viewu görüntülediğimizde karşımıza çıkan DDL source olacak.

  1. Tanımlamayı tamamlayıp request seçtikten sonra açılan ekranda herhangi bir template kullanıp kullanmayacağımız soruluyor. Bu örnek için Define View with Join seçeneğini seçelim.

  1. Sorgumuzu yazalım. Kaydedip aktifleştirelim.
 Text Box: @AbapCatalog.sqlViewName: 'ZXSPRO_CDS_V001' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: 'Malzeme Bilgileri' define view ZXSPRO_CDS_V_001 as select from mara  left outer join makt on mara.matnr = makt.matnr left outer join mard on mara.matnr = mard.matnr {  mara.matnr as MalzemeNumarasi,  mard.werks as UretimYeri,  mard.lgort as DepoYeri,  makt.maktx as MalzemeTanimi,  mara.ersda as MalzemeYaratmaTarihi,  mara.ernam as MalzemeYaratan,  mara.mtart as MalzemeTuru,  mara.matkl as MalGrubu    }  

Burada değinmek istediğim konu az önce de bahsettiğim gibi tanım kısmına girdiğimiz ZXSPRO_CDS_V_001 DDL source un karşılığı, ZXSPRO_CDS_V001 ise DDL SQL view un karşılığı.  SE11 işlem kodundan oluşturduğumuz viewu inceleyelim.

 

ADT kullanarak oluşturduğumuz objelere bir göz atalım.

Son olarak bu viewu çalıştırdığımızda nasıl bir çıktı verecek ona bakalım.