ABAP – Get handling units in a Shipment

SAPIn this code snippet I’ll show how you can get info about all the handling units in a shipment delivery.A shipment can contain 1..* deliveries. S first of all you need to get all deliveries in the shipment:

  lt_vbeln    TYPE TABLE OF vbeln,
  iv_shipment TYPE vttp-tknum VALUE '1234567'.  "Your shipment number

SELECT vbeln 
  INTO TABLE lt_vbeln
  FROM vttp 
  WHERE tknum = iv_shipment.

To view a shipment, go to TCode VT03N and use your shipment number.

To view deliveries contained in the shipment, go to Top Menu -> GoTo -> Shipments and Deliveries and double click on a delivery you want to see (or use directly Tcode VL03N and enter the delivery number).

To view handling units in the delivery, press Ctrl+F6 (or the “box” icon in the top toolbar).

…this was the SAPGUI approach to inspect the HU’s in a delivery…now comes the coding part

At first I’ll show the approach using the standard function module to get all the necessary information about HU’s in a delivery:

  iv_delivery TYPE vbeln VALUE '2016280854' "Your delivery number from shipment.
  ls_object   TYPE hum_object.

  lt_hus      TYPE hum_hu_header_t,
  lt_hupos    TYPE hum_hu_item_t,
  lt_serialno TYPE vsep_t_rserob.

ls_object-object = '01'. "Delivery
ls_object-objkey = lv_delivery.

    if_lock_hus      = 'X'
    if_with_text     = ' '
    is_objects       = ls_object
    et_header        = lt_hus
    et_items         = lt_hupos
    et_item_serialno = lt_serialno
    hus_locked       = 1
    no_hu_found      = 2
    fatal_error      = 3
    OTHERS           = 4.

The above code is great if you need information about one delivery.

Maybe you ask why I used the “magic constant” 01 for the ls_object-object. This field is connected to the VEKP-VPOBJ field which can contain the following values


But what if you need to get information about all HU’s in all deliveries of one shipment?

  1. You can loop over all deliveries in a shipment and call the standard FM above
  2. You can use custom SQL command
  iv_tknum TYPE tknum VALUE '1234567',  "Your shipment number
  lt_venum TYPE TABLE OF venum.         "table of HU numbers

  INTO TABLE lt_venum
  FROM vttp
  INNER JOIN vekp ON vekp~vpobjkey = vttp~vbeln
                 AND vekp~vpobj    = '01'
  WHERE vttp~tknum = iv_tknum.

... get further info about selected VENUM's

Leave a Reply