Skip to Content
0
Former Member
Feb 29, 2012 at 06:28 PM

Problem while unpacking an handling unit using FM HU_PACKING_AND_UNPACKING

981 Views

Hi ,

I want to unpack an HU from an outbound delivery and transfer to other storage location using FM 'HU_PACKING_AND_UNPACKING'.I could find out that only quantities are transferred but unpacking HU is not done.

Below is the code i am using for unpacking.

CALL FUNCTION 'HU_GET_HUS'
        EXPORTING
          if_lock_hus = 'X'
          it_venum    = it_hu1
        IMPORTING
          et_header   = it_hdr1
          et_items    = it_item1
        EXCEPTIONS
          hus_locked  = 1
          no_hu_found = 2
          fatal_error = 3
          OTHERS      = 4.
      IF sy-subrc <> 0.
        l_error = 'X'.
        CLEAR: g_msgid, g_msgno, g_msgv1,g_msgv2, g_msgv3, g_msgv4.
        g_msgid = sy-msgid.
        g_msgno = sy-msgno.
        g_msgv1 = sy-msgv1.
        g_msgv2 = sy-msgv2.
        g_msgv3 = sy-msgv3.
        g_msgv4 = sy-msgv4.
        PERFORM message_scr USING g_msgid g_msgno g_msgv1 g_msgv2 g_msgv3 g_msgv4.
        EXIT.
      ENDIF.

      LOOP AT it_hu1 INTO wa_hu.
        CLEAR: wa_item1,l_error,l_post.
        READ TABLE it_hdr1  INTO wa_hdr1  WITH KEY venum = wa_hu-venum.
        CLEAR : g_venum, g_plant, g_sloc, g_whno, g_stype, g_sbin.
*       get the warehouse details
          SELECT SINGLE lgnum lgtyp lgpla FROM lein INTO (g_whno,g_stype,g_sbin)
            WHERE lenum = wa_hdr1-exidv.
          IF sy-subrc EQ 0.
* Get the plant and storage location for WM managed
            SELECT SINGLE werks lgort FROM lqua INTO (g_plant, g_sloc)
                                 WHERE lgnum = g_whno
                                   AND lgtyp = g_stype
                                   AND lgpla = g_sbin
                                   AND lenum = wa_hdr1-exidv.
          ELSE.
* Get the Venum (Internal HU Number)
            SELECT SINGLE venum FROM vekp INTO g_venum
            WHERE exidv = wa_hdr1-exidv.
            IF sy-subrc EQ 0.
* Get the plant and storage location for Non-WM managed
              SELECT SINGLE werks lgort FROM vepo INTO (g_plant, g_sloc)
                WHERE venum = wa_hu-venum.
            ENDIF.
          ENDIF.
          READ TABLE it_item1 INTO wa_item1 WITH KEY venum = wa_hu-venum.
          IF sy-subrc = 0.
            CLEAR :wa_pack_unpack.
            MOVE-CORRESPONDING wa_item1 TO wa_pack_unpack.
            wa_pack_unpack-venum = wa_item1-venum.
            wa_pack_unpack-vepos = wa_item1-vepos.
            wa_pack_unpack-velin = wa_item1-velin.
            wa_pack_unpack-belnr = wa_item1-vbeln.
            wa_pack_unpack-posnr = wa_item1-posnr.

            MOVE wa_item1-vemng TO l_vemng.
            CONCATENATE l_vemng '-' INTO l_vemng.
            CONDENSE l_vemng NO-GAPS.
            MOVE l_vemng TO wa_pack_unpack-quantity.

            wa_pack_unpack-altme = wa_item1-altme.
            wa_pack_unpack-matnr = wa_item1-matnr.
            wa_pack_unpack-charg = wa_item1-charg.
            wa_pack_unpack-werks = g_plant.
            wa_pack_unpack-lgort = g_sloc.
            wa_pack_unpack-wdatu = wa_item1-wdatu.
            wa_pack_unpack-vfdat = wa_item1-vfdat.
          ENDIF.
*          *Find the partner location
          CLEAR: g_hu_managed, g_partner_sloc.
          CALL FUNCTION 'V51S_HU_LGORT'
            EXPORTING
              if_lgort         = g_sloc
              if_werks         = g_plant
            IMPORTING
              ef_hu_managed    = g_hu_managed
              ef_partner_lgort = g_partner_sloc
            EXCEPTIONS
              lgort_not_exist  = 1
              OTHERS           = 2.
          IF sy-subrc <> 0.
          ENDIF.
          IF g_hu_managed = 'X'.
            wa_pack_unpack-umlgo = g_partner_sloc.
          ENDIF.
          CALL FUNCTION 'HU_PACKING_AND_UNPACKING'
            EXPORTING
              is_packing_request = wa_pack_unpack
            IMPORTING
              es_p_request       = wa_pack_unpack
            EXCEPTIONS
              missing_data       = 1
              hu_not_changeable  = 2
              not_possible       = 3
              customizing        = 4
              weight             = 5
              volume             = 6
              serial_nr          = 7
              fatal_error        = 8
              OTHERS             = 9.
          IF sy-subrc <> 0.
            l_error = 'X'.
          ELSE.
            l_post = 'X'.
          ENDIF.
          IF l_error IS INITIAL AND l_post EQ 'X'.
            CALL FUNCTION 'HU_POST'
              EXPORTING
                if_synchron = 'X'
                if_commit   = 'X'
              IMPORTING
                et_messages = it_messages.
        ENDLOOP.

Please help if any parameter need to be set for unpacking of HU.

Please suggest.

Thanks in advance.