Kopfdaten einer HU ändern

Mit folgendem Programm können Sie (beinahe) beliebige Daten einer Handling Unit ändern.

Beschreibung

In diesem Fall wird das Feld “GEWFX” (Gewicht/ Volumen Fix) initialisiert. Dadurch werden Gewichts- und Volumenberechnungen in dieser Handling Unit wieder standardmäßig durchgefüht.

Coding

*** Data
DATA lt_new_vals TYPE hum_update_header_t.
DATA ls_new_val  TYPE hum_update_header.
DATA lt_mess     TYPE huitem_messages_t.
DATA lt_hus      TYPE hum_exidv_t.

PARAMETER p_exidv TYPE exidv DEFAULT ‘12345’.

START-OF-SELECTION.

*** Lesen der zu bearbeitenden Handling Unit
  APPEND p_exidv TO lt_hus.
  CALL FUNCTION ‘HU_GET_HUS’
    EXPORTING
      it_hus = lt_hus
    EXCEPTIONS
      OTHERS = 4.
  IF sy-subrc <> 0.
    “error handling
  ENDIF.

*** zu änderndes Feld: GEWFX (Gewicht/ Volumen fix)
  ls_new_val-hdl_unit_itid = space.
  ls_new_val-hdl_unit_exid = p_exidv.
  ls_new_val-field_name    = ‘GEWFX’.
  ls_new_val-field_value   = space.
  APPEND ls_new_val TO lt_new_vals.

*** Feld ändern
  CALL FUNCTION ‘HU_HEADER_UPDATE’
    EXPORTING
      it_new_values = lt_new_vals
    IMPORTING
      et_messages   = lt_mess
    EXCEPTIONS
      not_possible  = 1
      OTHERS        = 2.
  IF sy-subrc <> 0.
    “error handling
  ELSE.
*** Verbuchen der HU
    CALL FUNCTION ‘HU_POST’
      EXPORTING
        if_commit = ‘X’.
  ENDIF.

Alternative

Zum Ändern von Kopfdaten kann ebenfalls der BAPI_HU_CHANGE_HEADER verwendet werden:

DATA gs_hdr_change TYPE bapihuheader.

CLEAR gs_hdr_change.
gs_hdr_change-hu_grp2 = ‘ABC’.
CALL FUNCTION ‘BAPI_HU_CHANGE_HEADER’
  EXPORTING
    hukey     = gv_exidv
    huchanged = gs_hdr_change
  TABLES
    return    = gt_return.

CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
  EXPORTING
    wait = ‘X’.

Enno Wulff