• April 7, 2026
  • Kishore Thutaram
  • 0

Update Handling Unit status on Goods receipt creation by using Enhancement

Business requirement: Update the handling unit status on goods receipt creation.

Steps: FM Exit: EXIT_SAPLLMDE_002

Include: ZXLIDU10

Implement the below code:


DATA: ls_flags TYPE v51p_select_flags,
lt_hus TYPE hum_exidv_t,
ls_hu LIKE LINE OF lt_hus,
lt_objects TYPE hum_object_t,
ls_object LIKE LINE OF lt_objects,
lf_rcode TYPE sysubrc,
lt_header TYPE TABLE OF vekpvb,
lt_items TYPE TABLE OF vepovb,
lt_history TYPE TABLE OF vevwvb,
lt_high TYPE hum_venum_t,
et_messages TYPE huitem_messages_t.

DATA: lt_new_values TYPE hum_update_header_t,
      ls_new_values LIKE LINE OF lt_new_values,
      lt_messages   TYPE huitem_messages_t.

ls_hu-exidv = iv_exidv. "Input parameter
APPEND ls_hu TO lt_hus.

ls_flags-no_db_select = ' '.
ls_flags-lock_hu = abap_true.
ls_flags-add_and_exp = abap_true.
APPEND ls_object TO lt_objects.

CALL FUNCTION 'V51P_FILL_GT'
  EXPORTING
    is_flags         = ls_flags
    it_hus           = lt_hus
  IMPORTING
    ef_rcode         = lf_rcode
    et_vekp          = lt_header
    et_vepo          = lt_items
    et_vevw          = lt_history
    et_highest_level = lt_high
    et_messages      = et_messages
  EXCEPTIONS
    hu_locked        = 01
    no_hu_found      = 02
    OTHERS           = 99.

IF sy-subrc = 0 AND NOT line_exists( et_messages[ msgty = 'E' ] ).

  ls_new_values-hdl_unit_itid = iv_venum . " Internal Handling Unit Number
  ls_new_values-hdl_unit_exid = iv_exidv.  " External Handling Unit Identification
  ls_new_values-field_name = 'STATUS'. " Field name of changed field
  ls_new_values-field_value = iv_status ." Existing value
  APPEND ls_new_values TO lt_new_values.

  "Update packing object as 10
  ls_new_values-field_name = 'VPOBJ'. " Field name of changed field
  ls_new_values-field_value = '10' .  " Value of field to be changed
  APPEND ls_new_values TO lt_new_values.

  CALL FUNCTION 'HU_HEADER_UPDATE'
    EXPORTING
      it_new_values = lt_new_values
    IMPORTING
      et_messages   = lt_messages
    EXCEPTIONS
      not_possible  = 1
      OTHERS        = 2.

  IF sy-subrc = 0 AND NOT line_exists( lt_messages[ msgty = 'E' ] ).
    CALL FUNCTION 'HU_PACKING_UPDATE'
      EXPORTING
        if_synchron = abap_true.
  ENDIF.

ENDIF.
   
    

Kishore Thutaram

SAP Solution Architect | 16+ Years' Experience in SAP | Sharing Practical SAP Knowledge | Engineering Graduate with Expertise in SAP Architecture

https://fiowelt.com