CDS View Oluşturma-RAP

Herkese merhaba,
Bu yazıda RAP (Restful Application Programming)’in yapı taşlarından olan CDS (Core Data Services) oluşturmayı anlatacağım.
- Project Explorer’daki projenizin üzerine gelin ve sağ tıklayınız.

2. New seçin-> ardından New Repository Object
3. Listeden Core Data Services seçiniz -> Data Definitions’e tıklayınız.

4. Ardından Next seçeneğini seçiniz.
5. CDS View’i eklemek istediğiniz paketin ismini seçiniz. View’e bir isim veriniz ve description kısmına bir tanım giriniz.

6. Data definiton yaratırken bir referans objesini en başta vermek daha iyi olacağından, bu view’in referans alacağı tablo ismini ya da view’i giriniz. Bu yazıda, daha önceden yaratılan tablo referans verilecektir.
Browse butonuna tıklayarak aradığınız elementi daha kolay bir şekilde bulabilirsiniz.

7. Ardından Next’i seçiniz.

8. Bir TR (Transport Request) seçiniz ve Next diyiniz. TR’niz yoksa Create a new request seçeneğinden yeni bir TR yaratınız.

9. Bir Template (yapı) seçiniz. defineViewEntity seçeneğini seçip Finish’e basınız.

Aşağıda görüldüğü üzere, tabloda yer alan alanlar default olarak otomatik bir şekilde yaratıldı. Aynı zamanda okumayı artırmak için camelCase stilinde birer alias name (adlandırma) verildi.

19.satırda error vermesinin sebebi, annual_salary alanının currency_code alanına bağlanmaması. Bunun için annotasyon kullanacağız.
@Semantics.amount.currencyCode: 'CurrencyCode'
annual_salary as AnnualSalary,
currency_code as CurrencyCode
Referans Aldığımız ZADMIN Tablosu

@EndUserText.label : 'Admin Info'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zadmin {
key client : abap.clnt not null;
key admin_id : abap.char(40) not null;
first_name : /dmo/first_name;
last_name : /dmo/last_name;
email_address : /dmo/email_address;
birth_date : abap.datn;
entry_date : abap.datn;
department_id : sysuuid_x16;
@Semantics.amount.currencyCode : 'zadmin.currency_code'
annual_salary : abap.curr(10,2);
currency_code : waers;
}
CDS View Kod
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Admin Interface View'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}
define view entity ZI_ADMIN as select from zadmin
{
key admin_id as AdminId,
first_name as FirstName,
last_name as LastName,
email_address as EmailAddress,
birth_date as BirthDate,
entry_date as EntryDate,
department_id as DepartmentId,
@Semantics.amount.currencyCode: 'CurrencyCode'
annual_salary as AnnualSalary,
currency_code as CurrencyCode
}
CDS View Son Hali

Bu konuda anlatacaklarım bu kadardı. Bir sonraki yazımızda görüşmek üzere.
