Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
ralf.wenzel
Code: Alles auswählen.
interface ZIF_DRO_MARA
public .
data GT_MATNR type range of MATNR read-only.
data GT_MTART type range of MTART read-only .
endinterface.
Code: Alles auswählen.
class ZCL_DRO_MARA definition
public
create public .
public section.
interfaces ZIF_DRO_MARA.
methods ADD_MATNR
importing
!ID_MATNR type MATNR.
ENDCLASS.
Code: Alles auswählen.
CLASS ZCL_DRO_MARA IMPLEMENTATION.
METHOD ADD_MATNR.
Field-symbols:
<ls_matnr> like line of me->gt_matnr.
APPEND INITIAL LINE TO me->gt_matnr ASSIGNING <ls_matnr>.
<ls_matnr>-sign = 'I'.
<ls_matnr>-option = 'EQ'.
<ls_matnr>-low = ID_MATNR.
ENDMETHOD.
Code: Alles auswählen.
interface ZIF_DAO_MARA
public .
methods GET_MULTIPLE
importing
!IR_REQUEST type ref to ZIF_DRO_MARA
returning
value(RT_RESULT) type MARA_TAB
raising
CX_DYNAMIC_CHECK .
endinterface.
Code: Alles auswählen.
class ZL_DAO_MARA definition
public
create public .
public section.
interfaces ZIF_DAO_MARA.
ENDCLASS.
Code: Alles auswählen.
CLASS ZL_DAO_MARA IMPLEMENTATION.
METHOD ZIF_DAO_MARA~get_multiple.
REFRESH rt_result.
SELECT *
FROM mara
INTO TABLE rt_result
WHERE matnr IN ir_filter->gt_matnr
AND mtart IN ir_filter->gt_mtart.
SORT rt_result BY matnr.
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
data:
lr_dao type ref to ZIF_DAO_MARA,
lr_dro type ref to ZIF_DRO_MARA,
lt_mara type mara_tab.
create object lr_dro
type ref to ZCL_DRO_MARA.
create object lr_dao
type ref to ZCL_DAO_MARA.
lr_dro->add_matnr( id_matnr = '...' ).
lt_mara = lr_dao->get_multiple( ir_request = lr_dro ).
Oh, dann wird das wohl nix.a-dead-trousers hat geschrieben:Tja, wenn du mal im Süden von Österreich zu tun hast, gerne
Genau an deinem Beispiel kann man das Problem erkennen: Du musst vorgeben, welchen Typ das hat, was reinkommt. Projeziert auf mein Beispiel: Angenommen, jetzt möchte jemand nicht nach MATNR und MTART, sondern ( zusätzlich order ausschließlich) nach ersda und ernam selektieren. Dann musst du die Schnittstelle deiner Methode ändern (was bei einer vererbten Methode nicht geht).a-dead-trousers hat geschrieben:Kleines Beispiel anhand der MARA zum leichteren Verständnis: