Create CDS-Views
CDS-Views
Menu -> File -> New -> Other -> Core Data Services -> Data Definition
* CDS-View als DDIC Objekt erstellen
@AbapCatalog.sqlViewName: 'ZCDS_MATNR_VIEW'
@AbapCatalog.compiler.CompareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'MATNR lesen'
@Metadata.allowExtensions: true
define view ZCDS_MATNR
as select from mara as a
inner join makt as b on a.matnr = b.matnr
{
key a.matnr as matnr,
a.ernam as creator,
a.vpsta as mainte_status,
b.maktx as desc,
case a.lvorm
when 'X' then 'delete'
else 'active'
end as client_del
};
使用 CDS-Views
* Variante 1 (SELECT)
DATA: it_matnr TYPE STANDARD TABLE OF zcds_matnr.
SELECT * FROM zcds_matnr INTO TABLE @it_matnr.
LOOP AT it_matnr ASSIGNING FIELD-SYMBOL(<mat>).
WRITE: / <mat>-matnr, <mat>-creator, <mat>-mainte_status, <mat>-desc, <mat>-client_del.
ENDLOOP.
* Variante 2 (SALV TABLE IDA)
TRY.
cl_salv_gui_table_ida=>create_for_cds_view(
CONV #( 'ZCDS_MATNR' ) )->fullscreen( )->display( ).
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.
CDS-Views With Parameter
* CDS-View als DDIC Objekt erstellen
@AbapCatalog.sqlViewName: 'ZCDS_MATNR_VIEW'
@AbapCatalog.compiler.CompareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'MATNR lesen'
@Metadata.allowExtensions: true
define view ZCDS_MATNR
with parameters p_min_date : dats,
p_max_date : dats
as select from mara as a
inner join makt as b on a.matnr = b.matnr
{
key a.matnr as matnr,
a.ernam as creator,
a.vpsta as mainte_status,
b.maktx as desc,
case a.lvorm
when 'X' then 'delete'
else 'active'
end as client_del
} where a.ernam like 'A%' and a.ersda between :p_min_date and :p_max_date;
* ABAP-Selection CDS-Views
DATA: it_matnr TYPE STANDARD TABLE OF zcds_matnr.
SELECT * FROM zcds_matnr( p_min_date = '20210101', p_max_date = '20211231' )
INTO TABLE @it_matnr.
LOOP AT it_matnr ASSIGNING FIELD-SYMBOL(<mat>).
WRITE: / <mat>-matnr, <mat>-creator, <mat>-mainte_status, <mat>-desc, <mat>-client_del.
ENDLOOP.