AMDP class Using Select-Options
CLASS zvb_amdp_class1 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES: tt_vbeln TYPE RANGE OF vbeln,
BEGIN OF ty_vbak,
mandt TYPE vbak-mandt,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
END OF ty_vbak,
tt_vbak TYPE TABLE OF ty_vbak.
CLASS-METHODS:so_data IMPORTING VALUE(it_vbeln) TYPE tt_vbeln
VALUE(iv_mandt) TYPE symandt
EXPORTING VALUE(et_so) TYPE tt_vbak .
INTERFACES:if_amdp_marker_hdb.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zvb_amdp_class1 IMPLEMENTATION.
METHOD so_data BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING vbak.
et_so = select mandt,
vbeln,
erdat,
ernam
FROM vbak as a
INNER JOIN :it_vbeln as b
ON ( a.vbeln between b.low and b.high AND b.sign = 'I' AND b.option = 'BT' )
OR ( a.vbeln = b.low AND b.sign = 'I' AND b.option = 'EQ' )
WHERE mandt = :iv_mandt;
ENDMETHOD.
ENDCLASS.
Call AMDP in Report
REPORT zsd_test.
TABLES: vbak.
SELECT-OPTIONS: so_vbeln FOR vbak-vbeln.
CALL METHOD zvb_amdp_class1=>so_data
EXPORTING
it_vbeln = so_vbeln[]
iv_mandt = sy-mandt
IMPORTING
et_so = DATA(lt_vbeln).
cl_demo_output=>Display( lt_vbeln ).
Report:
Comments
Post a Comment