Quantcast
Channel: SCN: Message List - SAP Extended Warehouse Management (SAP EWM)
Viewing all articles
Browse latest Browse all 5578

Re: Goods Receipt HU for Inbound delivery

$
0
0

I found out on my own how to do this. If someone is interested, this the solution:

 

DATA lo_sp_prd_in TYPE REF TO /scdl/cl_sp_prd_inb.

  DATA lo_message_box TYPE REF TO /scdl/cl_sp_message_box.

  DATA lt_sp_a_head TYPE /scdl/t_sp_a_head.

  DATA ls_sp_a_head TYPE /scdl/s_sp_a_head.

  DATA ls_sp_k_head TYPE /scdl/s_sp_k_head.

  DATA lt_sp_k_head TYPE /scdl/t_sp_k_head.

  DATA ls_sp_a_hu TYPE /scdl/s_sp_a_hu.

  DATA lt_sp_a_hu TYPE /scdl/t_sp_a_hu.

  DATA lv_rejected TYPE boolean.

  DATA lt_return_codes TYPE /scdl/t_sp_return_code.

 

  DATA ls_sp_a_hu_scwm TYPE /scwm/s_sp_a_hu.

  DATA lt_sp_a_hu_scwm TYPE /scwm/t_sp_a_hu.

  DATA ls_sp_a_myhu_scwm TYPE /scwm/s_sp_a_hu.

 

  DATA ls_sp_k_hu_scwm TYPE /scwm/s_sp_k_hu.

  DATA lt_sp_k_hu_scwm TYPE /scwm/t_sp_k_hu.

 

  "Create service provider for inbound delivery

  CREATE OBJECT lo_sp_prd_in

    EXPORTING

      io_message_box = lo_message_box.     " Service Provider Nachrichtenverwaltung

 

  ls_sp_k_head-docid = is_proch-docid.

  APPEND ls_sp_k_head TO lt_sp_k_head.

 

  "select delivery head data

  CALL METHOD lo_sp_prd_in->/scdl/if_sp1_aspect~select

    EXPORTING

      inkeys       = lt_sp_k_head

      aspect       = /scdl/if_sp_c=>sc_asp_head

    IMPORTING

      outrecords   = lt_sp_a_head

      rejected     = lv_rejected

      return_codes = lt_return_codes.

 

 

  "Lock delivery

  CALL METHOD lo_sp_prd_in->/scdl/if_sp1_locking~lock

    EXPORTING

      inkeys       = lt_sp_k_head

      aspect       = /scdl/if_sp_c=>sc_asp_head

      lockmode     = 'E'

    IMPORTING

      rejected     = lv_rejected

      return_codes = lt_return_codes.

 

  "If lock has been successful

  IF lv_rejected = abap_false.

 

    "select hu data from delivery

    CALL METHOD lo_sp_prd_in->/scdl/if_sp1_aspect~select_by_relation

      EXPORTING

        "        relation     = /scdl/if_sp_c=>sc_rel_head_to_hu

        relation     = /scwm/if_sp_c=>sc_rel_head_to_hu

        inrecords    = lt_sp_k_head

        aspect       = /scdl/if_sp_c=>sc_asp_head

*       options      =

      IMPORTING

        outrecords   = lt_sp_a_hu_scwm

        rejected     = lv_rejected

        return_codes = lt_return_codes.

 

    LOOP AT lt_sp_a_hu_scwm INTO ls_sp_a_hu_scwm.

      "determine hu data which has to be moved.

      IF ls_sp_a_hu_scwm-huno = /scwm/huhdr-huident.

        ls_sp_a_myhu_scwm = ls_sp_a_hu_scwm.

        MOVE-CORRESPONDING ls_sp_a_hu_scwm TO ls_sp_k_hu_scwm.

        APPEND ls_sp_k_hu_scwm TO lt_sp_k_hu_scwm.

        EXIT.

      ENDIF.

    ENDLOOP.

 

    CLEAR lt_sp_a_hu_scwm.

    CLEAR lt_sp_a_head.

 

    "execute action hu goods movement

    CALL METHOD lo_sp_prd_in->/scdl/if_sp1_action~execute

      EXPORTING

        aspect             = /scwm/if_sp_c=>sc_asp_hu    " Aspect Name

        inkeys             = lt_sp_k_hu_scwm    " Objects to Act On

*       inparam            =     " Parameters

        action             = /scwm/if_sp_c=>sc_act_hu_post_gm   " Name of Action

        relation_inkey     = ls_sp_k_head     " Key for Target Aspect

        relation           = /scwm/if_sp_c=>sc_rel_head_to_hu     " Name of Relation

      IMPORTING

        outrecords         = lt_sp_a_hu_scwm     " Changed Aspect Objects

        rejected           = lv_rejected    " Error on Back End

        return_codes       = lt_return_codes     " Table of Return Codes

        relation_outrecord = lt_sp_a_head.    " Changed Target Aspect Line

 

    "Save changes

    CALL METHOD lo_sp_prd_in->/scdl/if_sp1_transaction~save

      EXPORTING

        synchronously = abap_false

      IMPORTING

        rejected      = lv_rejected.

 

    "remove lock

    CALL METHOD lo_sp_prd_in->/scdl/if_sp1_transaction~cleanup

      EXPORTING

        reason = 'END'.

 

  ENDIF.


Viewing all articles
Browse latest Browse all 5578

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>