Serialnummern in Kundenauftrag einfügen
Hier ein kleiner Codeschnipsel mit dem es möglich ist, Serialnummern in eine Kundenauftragsposition einzufügen.
Die vorhanden Serialnummern werden eingelesen. Sind keine vorhanden, so erscheint der Standard-Serialnummerndialog, um Serialnummern einzutragen.
Soll das Hinzufügen ohne Dialog erfolgen, dann muss der Funktionsbaustein SERNR_ADD_TO_DOCUMENT verwendet werden.
Coding
DATA ls_serxx TYPE rserxx.
DATA lt_serxx TYPE STANDARD TABLE OF rserxx.
DATA lt_sernr TYPE STANDARD TABLE OF e1rmsno.
DATA ls_rserob TYPE rserob.
DATA ls_vbap TYPE vbap.
FIELD-SYMBOLS <sernr> TYPE e1rmsno.
*** Select customer order item
SELECT single * FROM vbap
INTO ls_vbap
WHERE vbeln = p_vbeln
AND posnr = p_posnr.
CHECK sy-subrc = 0.
*** get existing serial numbers
ls_rserob-taser = ‘SER02’.
ls_rserob-sdaufnr = ls_vbap-vbeln.
ls_rserob-posnr = ls_vbap-posnr.
CALL FUNCTION ‘GET_SERNOS_OF_DOCUMENT’
EXPORTING
key_data = ls_rserob
TABLES
serxx = lt_serxx
EXCEPTIONS
key_parameter_error = 1
no_supported_access = 2
no_data_found = 3
OTHERS = 4.
IF sy-subrc = 3 AND lt_serxx IS INITIAL.
*** No serial numbers exist: show maintenance popup
ls_serxx-sdaufnr = ls_vbap-vbeln.
ls_serxx-posnr = ls_vbap-posnr.
CALL FUNCTION ‘SERNR_MAINTAIN_IN_DOCUMENT’
EXPORTING
operation = ‘SDAU’
objkopf = ‘SER02’
serxx = ls_serxx
activity = ‘H’ “create
material = ls_vbap-matnr
profile = ls_vbap-serail
quantity = 1
EXCEPTIONS
konfigurations_error = 1
general_serial_error = 2
no_profile_operation = 3
no_automatic = 4
difference_in_header_data = 5
OTHERS = 6.
IF sy-subrc = 0.
*** Post entered serial numbers
CALL FUNCTION ‘SERIAL_LISTE_POST_AU’.
COMMIT WORK AND WAIT.
ENDIF.
ENDIF.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024