Code: Alles auswählen.
PARAMETERS: pa_mats TYPE VBELN_VL OBLIGATORY,
pa_matnr TYPE matnr OBLIGATORY,
pa_lifmg TYPE LIFMG OBLIGATORY,
pa_meins TYPE meins OBLIGATORY,
pa_charg TYPE CHARG_D OBLIGATORY,
pa_werk TYPE WERKS_D OBLIGATORY DEFAULT '3000',
pa_lgort TYPE LGORT_D OBLIGATORY DEFAULT '315',
pa_aufnr type AUFNR default '000000200140'.
"Kundennummer auf "Read Only"
AT SELECTION-SCREEN output.
loop at SCREEN.
if screen-name = 'PA_AUFNR'.
clear screen-input.
MODIFY SCREEN.
endif.
if screen-name = 'PA_LGORT'.
clear screen-input.
MODIFY SCREEN.
endif.
endloop.
START-OF-SELECTION.
* Kopfstruktur für BAPI füllen
ls_header-pstng_date = sy-DATUM. "Buchungsdatum
ls_header-doc_date = sy-datum. "Belegdatum
ls_header-ref_doc_no = pa_mats. "Vorgangsnummer
write pa_mats to lv_kopftext no-ZERO.
CONDENSE lv_kopftext.
CONCATENATE 'Muster:' lv_kopftext INTO ls_header-header_txt SEPARATED BY space.
ls_code-gm_code = '05'. " Buchungscode: Sonstiger Wareneingang
Data: lt_lieferung TYPE TABLE OF LIPS,
ls_lieferung TYPE LIPS.
"Zu buchende Positionen ermitteln
ls_item-material = pa_matnr. "Materialnummer
ls_item-MVT_IND = 'F'. "Warenbewegung zum Auftrag.
ls_item-plant = pa_werk. "Werk
ls_item-stge_loc = pa_lgort. "Lagerort
ls_item-batch = pa_charg . "Charge
ls_item-prod_date = sy-datum.
ls_item-move_type = '261'. "Bewegungsart
ls_item-entry_qnt = pa_lifmg. "Erfassungsmenge
ls_item-entry_uom = pa_meins. "Erfassungsmengeneinheit
ls_item-ORDERID = pa_aufnr.
APPEND ls_item to lt_items.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = ls_header
goodsmvt_code = ls_code
testrun = ''
* IMPORTING
* GOODSMVT_HEADRET = sl_headret
* materialdocument = lv_mblnr
* matdocumentyear = ev_mjahr
TABLES
goodsmvt_item = lt_items
* GOODSMVT_SERIALNUMBER =
return = lt_return .
* EXCEPTIONS
* error_message = 99.
LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
CONCATENATE 'Fehler:' ls_return-MESSAGE into lv_message SEPARATED BY space.
WRITE: lv_message.
ev_rc_code = '4'.
ENDLOOP.
IF ev_rc_code <> 4. "Kein Fehler aufgetreten?
"Erfolgreich
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = ls_return
EXCEPTIONS
error_message = 99.
IF ls_return IS NOT INITIAL .
Write: ls_return-id, ls_return-message_v1 , ls_return-message_v2 , ls_return-message_v3 , ls_return-message_v4.
ev_rc_code = 4.
ENDIF.
IF ev_rc_code <> 4.
lv_message = 'Materialbeleg wurde gebucht'.
WRITE: lv_message.
ENDIF.
Endif.