[ABAP] Materialbelegliste (MB51) anzeigen

Variante 1 (CALL TRANSACTION)

PARAMETERS: p_werk TYPE werks DEFAULT '10'.
PARAMETERS: p_matnr TYPE matnr.
PARAMETERS: p_lgort TYPE lgort_d.
PARAMETERS: p_bwart TYPE bwart.
PARAMETERS: p_charg TYPE charg_d.
PARAMETERS: p_lifnr TYPE lifnr.
PARAMETERS: p_kunnr TYPE kunnr.
PARAMETERS: p_kdauf TYPE kdauf.

START-OF-SELECTION.

* Werk
  SET PARAMETER ID 'WRK' FIELD p_werk.
* Material
  SET PARAMETER ID 'MAT' FIELD p_matnr.
* Lagerort
  SET PARAMETER ID 'LAG' FIELD p_lgort.
* Bewegungsart
  SET PARAMETER ID 'BWA' FIELD p_bwart.
* Charge
  SET PARAMETER ID 'CHA' FIELD p_charg.
* Lieferant
  SET PARAMETER ID 'LIF' FIELD p_lifnr.
* Kunde
  SET PARAMETER ID 'KUN' FIELD p_kunnr.
* Kundenuftrag
  SET PARAMETER ID 'AUN' FIELD p_kdauf.

  CALL TRANSACTION 'MB51' AND SKIP FIRST SCREEN.

Variante 2 (SUBMIT)

* Werk
DATA(lv_werk) = VALUE werks( ).
SELECT-OPTIONS: so_werk FOR lv_werk.
* Warenbegleitscheinnummer
DATA(lv_xabln) = VALUE xabln( ).
SELECT-OPTIONS: so_xabln FOR lv_xabln.
* Referenz-Belegnummer
DATA(lv_xblnr) = VALUE xblnr1( ).
SELECT-OPTIONS: so_xblnr FOR lv_xblnr.

INITIALIZATION.
* Vorbelegung für Werk
  so_werk[] = VALUE #( ( sign = 'I' option = 'EQ' low = '10' high = '' ) ).
  
START-OF-SELECTION.

* MB51 ist eine Reporttransaktion, also kann auch der dahinter
* liegende Report RM07DOCS direkt mit Übergabewerten aufgerufen werden
  SUBMIT rm07docs
    WITH werks IN so_werk
    WITH xabln IN so_xabln
    WITH xblnr IN so_xblnr
    WITH rhier_l = abap_true  " Radiobutton "Hierarchische Liste" aktiv setzen
    WITH rflat_l = abap_false " Radiobutton "Flache Liste" deaktivieren
    AND RETURN.