ABAP CDS Input Parameteres ile ilgili kod.
Ön koşullar
1. ABAP CDS yaratma
2. SAP EPM
Senaryo
Satış siparişlerini müşteri parametresiyle filtreleyebilen rapor.
ABAP CDS Kodu
@AbapCatalog.sqlViewName: 'ZZXB_V_INPUT' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'Input parametresi alan CDS örneği' define view zzxb_cdsv_input_parameters with parameters customer : abap.char( 80 ) as select from snwd_so as so inner join snwd_bpa as bpa on so.buyer_guid = bpa.node_key { so.so_id as orderID, $parameters.customer as customer_name, so.gross_amount, so.currency_code } where bpa.company_name = $parameters.customer
2 Comments
Comments are closed.
merhaba,
Yazılar için teşekkür ederim baya bir bilgilendirici olmakta.
Benim takıldığım nokta şu normalde range yada in ile birden fazla where kısmına değer girilebiliyor. CDS te bunu nasıl yapabiliriz. Örneğin ben bir range göndermek istiyorum nasıl input edebilirim? Low ve high ile yapılabilir gibi ancak ben 2000 ile 2010 arasında sadece 2003,2005,2009 değerlerini göndermek istiyorum.
Yardımlarınız için şimdiden teşekkürler.
Metin Bey Merhaba,
CDS veritabanı seviyesinde bir yapı olduğu için direkt CDS içinde IN gibi keywordleri barındırmıyor. Bunu şu şekilde yapabilirsiniz, filtrelemek istediğiniz alanı CDS projection view kısmına alan olarak eklersiniz. ABAP tarafından SELECT sorgunuzu istediğiniz alan/alanlar üzerinde WHERE koşulunda IN kullanabilirsiniz. Unutmamak lazım ki IN veya RANGE mantığı ABAP’ın kendine özel bir keyword. Düşük seviyeli dillerde ve veritabanı programlamasında bu tarz kullanımlar performansı düşürebileceği için direkt olarak tercih edilmezler. Ancak ABAP gibi yüksek seviyeli bir dilde spesifik işler için oldukça aktif kullandığımız bir yapı.