on 2024 Jul 11 8:54 AM
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_poitem) WITH KEY po_item = ls_poschedule-po_item.
IF sy-subrc EQ 0.
DATA(lv_matnr) = ls_poitem-material.
ENDIF.
READ TABLE lt_ekbe INTO DATA(ls_ekbe) WITH 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_pocomponents) WHERE 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_pocomponents, lt_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..
User | Count |
---|---|
94 | |
9 | |
8 | |
8 | |
6 | |
5 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.