cancel
Showing results for 
Search instead for 
Did you mean: 

I want to change sub-contract storage location in BAPI_PO_CHANGE.

rajsapabap-tech
Explorer
0 Kudos
109

Hello Experts,

Im trying to change Sub-contract product storage location in BAPI_PO_CHANGE. I have pass required field values to BAPI but its not updating.

this is my code 

 SELECT ebeln,
         ebelp FROM ekpo INTO TABLE @DATA(lt_ekpo)
         WHERE werks EQ @p_werks
           AND ebeln IN @SO_ebeln.
  IF sy-subrc EQ 0.
    SORT lt_ekpo BY ebeln ebelp.
    DELETE ADJACENT DUPLICATES FROM lt_ekpo.
  ENDIF.

  IF lt_ekpo IS NOT INITIAL.
    SELECT ebeln,
           ebelp FROM ekbe INTO TABLE @DATA(lt_ekbe)
           FOR ALL ENTRIES IN @LT_ekpo
           WHERE ebeln EQ @LT_ekpo-ebeln.
    IF sy-subrc EQ 0.
      SORT lt_ekbe BY ebeln ebelp.
    ENDIF.
  ENDIF.

  LOOP AT lt_ekpo INTO DATA(ls_ekpo).

    lv_purchaseorder ls_ekpo-ebeln.

    CALL FUNCTION 'BAPI_PO_GETDETAIL1'
      EXPORTING
        purchaseorder  lv_purchaseorder
      IMPORTING
       poheader       ls_poheader
        poexpimpheader ls_poexpimpheader
      TABLES
        "return         = lt_return
        poitem         lt_poitem
        pocomponents   lt_pocomponents
        poschedule     lt_poschedule.
*        pohistory      = lt_pohistory.


    LOOP AT lt_poschedule INTO DATA(ls_poschedule).

      lv_date       =  sy-datum.
      lv_days       =  '30'.
      lv_months     =  '00'.
      lv_signum     =  '+'.
      lv_years      =  '00'.

      CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
        EXPORTING
          date      lv_date
          days      lv_days
          months    lv_months
          signum    lv_signum
          years     lv_years
        IMPORTING
          calc_date lv_calc_date.

      READ TABLE lt_poitem INTO DATA(ls_poitemWITH KEY po_item ls_poschedule-po_item.
      IF sy-subrc EQ 0.
        DATA(lv_matnrls_poitem-material.
      ENDIF.

      READ TABLE lt_ekbe INTO DATA(ls_ekbeWITH KEY ebeln ls_ekpo-ebeln
                                                     ebelp ls_poschedule-po_item.
      IF sy-subrc NE 0.

        WRITE lv_calc_date DD/MM/YYYY TO lv_date_n"delivery date

        lt_bapimeposchedule-po_item ls_poschedule-po_item.
        lt_bapimeposchedule-sched_line ls_poschedule-sched_line.
        lt_bapimeposchedule-delivery_date lv_date_n.
        APPEND lt_bapimeposchedule.

        lt_bapimeposchedulx-po_item ls_poschedule-po_item.
        lt_bapimeposchedulx-sched_line ls_poschedule-sched_line.
        lt_bapimeposchedulx-po_itemx 'X'.
        lt_bapimeposchedulx-sched_linex 'X'.
        lt_bapimeposchedulx-delivery_date 'X'.
        APPEND lt_bapimeposchedulx.

        LOOP AT lt_pocomponents INTO DATA(ls_pocomponentsWHERE  po_item ls_poschedule-po_item.

          ls_pocomponents-iss_st_loc 'CCOM'.
          ls_pocomponents-change_id 'U'.
          APPEND ls_pocomponents TO lt_components.


          lt_componentsx-po_item ls_poschedule-po_item.
          lt_componentsx-sched_line 1"ls_poschedule-sched_line.
          lt_componentsx-item_no  999"ls_poschedule-po_item.
          lt_componentsx-sched_linex 'X'.
          lt_componentsx-material  'X'.
          lt_componentsx-entry_quantity  'X'.
          lt_componentsx-entry_uom  'X'.
          lt_componentsx-entry_uom_iso 'X'.
          lt_componentsx-plant 'X'.
          lt_componentsx-req_date  'X'.
          lt_componentsx-change_id 'X'.
          lt_componentsx-req_quan  'X'.
          lt_componentsx-base_uom  'X'.
          lt_componentsx-base_uom_iso  'X'.
          lt_componentsx-item_cat  'X'.
          lt_componentsx-iss_st_loc  'X'.
          APPEND lt_componentsx.
          CLEAR :ls_pocomponentslt_componentsx.
        ENDLOOP.

        ls_version-completed   'X'.
        ls_version-description 'ABC'.
        ls_version-reason      'XYZ'.


        lt_itemx-po_item 'X'.
        lt_itemx-po_itemx 'X'.
        lt_itemx-short_text 'X'.
        lt_itemx-material 'X'.
        lt_itemx-ematerial 'X'.
        lt_itemx-plant 'X'.
        lt_itemx-stge_loc 'X'.
        lt_itemx-matl_group 'X'.
        lt_itemx-info_rec 'X'.
        lt_itemx-quantity 'X'.
        lt_itemx-po_unit 'X'.
        lt_itemx-po_unit_iso 'X'.
        lt_itemx-orderpr_un 'X'.
        lt_itemx-orderpr_un_iso 'X'.
        lt_itemx-conv_num1 'X'.
        lt_itemx-conv_den1 'X'.
        lt_itemx-net_price 'X'.
        lt_itemx-price_unit 'X'.
        lt_itemx-gr_pr_time 'X'.
        lt_itemx-tax_code 'X'.
        lt_itemx-info_upd 'X'.
        lt_itemx-prnt_price 'X'.
        lt_itemx-reminder1 'X'.
        lt_itemx-reminder2 'X'.
        lt_itemx-reminder3 'X'.
        lt_itemx-over_dlv_tol 'X'.
        lt_itemx-under_dlv_tol 'X'.
        lt_itemx-val_type 'X'.
        lt_itemx-item_cat 'X'.
        lt_itemx-gr_ind 'X'.
        lt_itemx-ir_ind 'X'.
        lt_itemx-gr_basediv 'X'.
        lt_itemx-agmt_item 'X'.
        lt_itemx-plan_del 'X'.
        lt_itemx-net_weight 'X'.
        lt_itemx-weightunit 'X'.
        lt_itemx-weightunit_iso 'X'.
        APPEND lt_itemx.

  ls_poheader-po_number lv_purchaseorder.


        CALL FUNCTION 'BAPI_PO_CHANGE'
          EXPORTING
            purchaseorder lv_purchaseorder
           poheader      ls_poheader
           poheaderx     ls_headerx
            versions      ls_version
          TABLES
            return        lt_bapiret2[]
            poitem        lt_poitem
            poitemx       lt_itemx[]
            pocomponents  lt_components
            pocomponentsx lt_componentsx.

 

Pls help to get resolve this issue..

Accepted Solutions (0)

Answers (0)