2008 Aug 07 6:42 AM
hi,
i am updating the values of two zfields in vbep table through BAPI_SALESORDER_CHANGE.
two fields are appended in vbep. and below is my part of code where i am calling bapi. it gives two success messages
1) ORDER_HEADER_IN processed successfully
2) no data changed for so
below is my code: could anyone plz say what is wrong in it and why the fields are not updating?
FORM update_vbep_zzedatu_zzedatudat TABLES pr_i_return TYPE t_bapiret2
USING pr_lwa_final type gt_final
pr_lwa_VBEP1 TYPE GT_VBEP1
CHANGING pr_i_final TYPE t_final1.
Local data declaration
DATA :
lv_vbeln TYPE vbeln,
ls_bapisdh1x TYPE bapisdh1x,
it_return TYPE STANDARD TABLE OF bapiret2,
it_extn TYPE STANDARD TABLE OF bapiparex,
lwa_extn TYPE bapiparex,
bape_vbep TYPE bape_vbep,
bape_vbepx TYPE bape_vbepx.
local constants
CONSTANTS: lc_bape_vbep TYPE te_struc VALUE 'BAPE_VBEP',
lc_bape_vbepx TYPE te_struc VALUE 'BAPE_VBEPX',
lc_u TYPE updkz_d VALUE 'U',
lc_flag TYPE char01 VALUE 'X'.
CLEAR lv_vbeln.
lv_vbeln = pr_lwa_VBEP1-vbeln.
ls_bapisdh1x-updateflag = lc_u.
populating bape_vbep structure And bape_vbepx structure
bape_vbep-vbeln = lv_vbeln.
bape_vbep-POSNR = pr_lwa_VBEP1-posnr.
bape_vbep-ETENR = pr_lwa_VBEP1-ETENR.
bape_vbep-zzedatu = pr_lwa_VBEP1-edatu.
bape_vbep-zzedatudat = sy-datum.
bape_vbepx-vbeln = lv_vbeln .
bape_vbepx-POSNR = pr_lwa_VBEP1-posnr.
bape_vbepx-ETENR = PR_LWA_VBEP1-ETENR.
bape_vbepx-zzedatu = lc_flag.
bape_vbepx-zzedatudat = lc_flag.
populating data into table it_extn.
CLEAR lwa_extn.
lwa_extn-structure = lc_bape_vbep.
lwa_extn-valuepart1 = bape_vbep. "#EC ENHOK
APPEND lwa_extn TO it_extn.
populating data into table it_extn.
CLEAR lwa_extn.
lwa_extn-structure = lc_bape_vbepx.
lwa_extn-valuepart1 = bape_vbepx. "#EC ENHOK
APPEND lwa_extn TO it_extn.
REFRESH it_return.
*call BAPI_SALESORDER_CHANGE to update ZZEDATU and ZZEDATUDAT
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = lv_vbeln
ORDER_HEADER_IN =
order_header_inx = ls_bapisdh1x
tables
RETURN = it_return
SCHEDULE_LINES =
SCHEDULE_LINESX =
EXTENSIONIN = it_extn
.
READ TABLE it_return INTO gwa_return WITH KEY type = 'S'.
CLEAR gv_rcount.
IF sy-subrc = 0.
gv_rcount = gv_rcount + 1.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MESSAGE s482.
ENDIF.
READ TABLE it_return INTO gwa_return WITH KEY type = 'E'.
IF sy-subrc = 0.
gv_flag = gc_x.
DELETE TABLE pr_i_final FROM pr_lwa_final.
ENDIF.
APPEND LINES OF it_return TO pr_i_return.
CLEAR gwa_return.
ENDFORM. " UPDATE_VBEP_ZZEDATU_ZZEDATUDAT
hi,
i am updating the values of two zfields in vbep table through BAPI_SALESORDER_CHANGE.
two fields are appended in vbep. and below is my part of code where i am calling bapi. it gives two success messages
1) ORDER_HEADER_IN processed successfully
2) no data changed for so
below is my code: could anyone plz say what is wrong in it and why the fields are not updating?
FORM update_vbep_zzedatu_zzedatudat TABLES pr_i_return TYPE t_bapiret2
USING pr_lwa_final type gt_final
pr_lwa_VBEP1 TYPE GT_VBEP1
CHANGING pr_i_final TYPE t_final1.
Local data declaration
DATA :
lv_vbeln TYPE vbeln,
ls_bapisdh1x TYPE bapisdh1x,
it_return TYPE STANDARD TABLE OF bapiret2,
it_extn TYPE STANDARD TABLE OF bapiparex,
lwa_extn TYPE bapiparex,
bape_vbep TYPE bape_vbep,
bape_vbepx TYPE bape_vbepx.
local constants
CONSTANTS: lc_bape_vbep TYPE te_struc VALUE 'BAPE_VBEP',
lc_bape_vbepx TYPE te_struc VALUE 'BAPE_VBEPX',
lc_u TYPE updkz_d VALUE 'U',
lc_flag TYPE char01 VALUE 'X'.
CLEAR lv_vbeln.
lv_vbeln = pr_lwa_VBEP1-vbeln.
ls_bapisdh1x-updateflag = lc_u.
populating bape_vbep structure And bape_vbepx structure
bape_vbep-vbeln = lv_vbeln.
bape_vbep-POSNR = pr_lwa_VBEP1-posnr.
bape_vbep-ETENR = pr_lwa_VBEP1-ETENR.
bape_vbep-zzedatu = pr_lwa_VBEP1-edatu.
bape_vbep-zzedatudat = sy-datum.
bape_vbepx-vbeln = lv_vbeln .
bape_vbepx-POSNR = pr_lwa_VBEP1-posnr.
bape_vbepx-ETENR = PR_LWA_VBEP1-ETENR.
bape_vbepx-zzedatu = lc_flag.
bape_vbepx-zzedatudat = lc_flag.
populating data into table it_extn.
CLEAR lwa_extn.
lwa_extn-structure = lc_bape_vbep.
lwa_extn-valuepart1 = bape_vbep. "#EC ENHOK
APPEND lwa_extn TO it_extn.
populating data into table it_extn.
CLEAR lwa_extn.
lwa_extn-structure = lc_bape_vbepx.
lwa_extn-valuepart1 = bape_vbepx. "#EC ENHOK
APPEND lwa_extn TO it_extn.
REFRESH it_return.
*call BAPI_SALESORDER_CHANGE to update ZZEDATU and ZZEDATUDAT
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = lv_vbeln
ORDER_HEADER_IN =
order_header_inx = ls_bapisdh1x
tables
RETURN = it_return
SCHEDULE_LINES =
SCHEDULE_LINESX =
EXTENSIONIN = it_extn
.
READ TABLE it_return INTO gwa_return WITH KEY type = 'S'.
CLEAR gv_rcount.
IF sy-subrc = 0.
gv_rcount = gv_rcount + 1.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MESSAGE s482.
ENDIF.
READ TABLE it_return INTO gwa_return WITH KEY type = 'E'.
IF sy-subrc = 0.
gv_flag = gc_x.
DELETE TABLE pr_i_final FROM pr_lwa_final.
ENDIF.
APPEND LINES OF it_return TO pr_i_return.
CLEAR gwa_return.
ENDFORM. " UPDATE_VBEP_ZZEDATU_ZZEDATUDAT
2008 Aug 07 6:48 AM
Hi Rakhi,
Try this-
Set LOGIC_SWITCH-NOSTRUCTURE = 'X' in import parameter of BAPI.
Regards,
Aparna Gaikwad
2008 Aug 07 7:02 AM
hi,
thanks for your suggesion.
but it still showing the same messages
ORDER_HEADER_IN has been processed successfully
No data was changed
2008 Aug 07 7:14 AM
Hi,
When u pass order_header_inx = ls_bapisdh1x,
it may expect value in order_header_in as well. Try that.
Regards
Meenakshi
2008 Aug 07 7:16 AM
sometimes,if we dont change anything in header, this BAPI does not work. So plz try with changing any 1 minor field (not much imp field) in header.
Also dont forget to set-
order_header_inx-updateflag = 'U'.
and 'BAPI_TRANSACTION_COMMIT' after successful sales order change.
Regards,
Aparna Gaikwad
2008 Aug 11 9:32 AM
Hi,
Please refer the below mentioned code. It is a working solution.
LOOP AT gt_vbep INTO gs_vbep.
header
PERFORM map_hdr.
line items
READ TABLE gt_vbfarf INTO gs_vbfarf WITH KEY vbelv = gs_vbep-vgbel
posnv = gs_vbep-vgpos.
IF sy-subrc = c_0.
gs_order_item-itm_number = gs_vbep-posnr.
gs_order_item-ref_1_s = gs_vbfarf-vbeln.
gs_order_item-poitm_no_s = gs_vbfarf-posnn.
APPEND gs_order_item TO gt_order_item.
gs_order_itemx-itm_number = gs_vbep-posnr.
gs_order_itemx-updateflag = c_u.
gs_order_itemx-ref_1_s = c_x.
gs_order_itemx-poitm_no_s = c_x.
APPEND gs_order_itemx TO gt_order_itemx.
CLEAR: gs_vbfarf.
ENDIF.
schedule lines
gs_schd_lines-itm_number = gs_vbep-posnr.
gs_schd_lines-sched_line = gs_vbep-etenr.
gs_schd_lines-req_date = gs_vbak-zback.
APPEND gs_schd_lines TO gt_schd_lines.
gs_schd_linesx-itm_number = gs_vbep-posnr.
gs_schd_linesx-sched_line = gs_vbep-etenr.
gs_schd_linesx-updateflag = c_u.
gs_schd_linesx-req_date = c_x.
APPEND gs_schd_linesx TO gt_schd_linesx.
change BAPI
AT END OF vbeln.
----
change pick-up order
----
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = gv_newsalesdoc
order_header_in = gs_ord_hdr
order_header_inx = gs_ord_hdrx
TABLES
return = gt_return_chg
order_item_in = gt_order_item
order_item_inx = gt_order_itemx
schedule_lines = gt_schd_lines
schedule_linesx = gt_schd_linesx
extensionin = gt_extensionin.
check for error captured
READ TABLE gt_return_chg INTO gs_return_chg WITH KEY type = c_e.
IF sy-subrc = c_0.
gs_final-vbeln = gs_vbak-vbeln.
gs_final-new_vbeln = gv_newsalesdoc.
gv_fname = 'BAPI_SALESORDER_CHANGE'.
PERFORM error_handle USING gt_return_chg gs_return_chg.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_x.
change user status of fillup
PERFORM chg_usr_stat.
ENDIF. " sy-subrc
CLEAR: gt_schd_lines[],
gt_schd_linesx[],
gt_order_item[],
gt_order_itemx[],
gt_return_chg[],
gs_ord_hdr,
gs_ord_hdrx,
gt_extensionin[].
ENDAT. " AT END OF vbeln
ENDLOOP. " gt_vbep
***************************************************************************
FORM map_hdr .
CLEAR gs_vbak.
READ TABLE gt_vbak INTO gs_vbak WITH KEY pckup = gs_vbep-vbeln.
CHECK sy-subrc = c_0.
gv_newsalesdoc = gs_vbak-pckup.
header
gs_ord_hdr-req_date_h = gs_vbak-back. " Req delivery date
gs_ord_hdr-purch_no_c = gs_vbak-vbeln. " Cust PO Number
gs_ord_hdr-po_method = c_auto. " PO method
gs_ord_hdrx-updateflag = c_u. " checkbox: Update Flag
gs_ord_hdrx-req_date_h = c_x. " checkbox: Req delivery date
gs_ord_hdrx-purch_no_c = c_x. " checkbox: Cust PO Number
gs_ord_hdrx-po_method = c_x. " checkbox: PO method
----
IF gt_extensionin IS INITIAL.
mapping the z fields
gs_extensionin-structure = 'BAPE_VBAK'.
gs_extensionin-valuepart1+0(10) = gv_newsalesdoc.
gs_extensionin-valuepart1+10(1) = gs_vbak-zstatus.
gs_extensionin-valuepart1+11(8) = gs_vbak-zdate.
gs_extensionin-valuepart1+19(6) = gs_vbak-ztime.
gs_extensionin-valuepart1+25(3) = gs_vbak-ztype.
gs_extensionin-valuepart1+28(20) = gs_vbak-znt.
gs_extensionin-valuepart1+48(1) = gs_vbak-zgr.
gs_extensionin-valuepart1+49(5) = gs_vbak-zcoe.
gs_extensionin-valuepart1+54(1) = gs_vbak-zom.
gs_extensionin-valuepart1+55(1) = gs_vbak-zht.
gs_extensionin-valuepart1+56(8) = gs_vbak-zback.
gs_extensionin-valuepart1+64(1) = gs_vbak-zant.
gs_extensionin-valuepart1+65(1) = gs_vbak-z1.
gs_extensionin-valuepart1+66(1) = gs_vbak-z2.
gs_extensionin-valuepart1+67(1) = gs_vbak-z3.
gs_extensionin-valuepart1+68(1) = gs_vbak-z4.
APPEND gs_extensionin TO gt_extensionin.
----
mapping the checkboxes for z fields
gs_extensionin-structure = 'BAPE_VBAKX'.
gs_extensionin-valuepart1+0(10) = gv_newsalesdoc.
gs_extensionin-valuepart1+10(1) = c_x.
gs_extensionin-valuepart1+11(1) = c_x.
gs_extensionin-valuepart1+12(1) = c_x.
gs_extensionin-valuepart1+13(1) = c_x.
gs_extensionin-valuepart1+14(1) = c_x.
gs_extensionin-valuepart1+15(1) = c_x.
gs_extensionin-valuepart1+16(1) = c_x.
gs_extensionin-valuepart1+17(1) = c_x.
gs_extensionin-valuepart1+18(1) = c_x.
gs_extensionin-valuepart1+19(1) = c_x.
gs_extensionin-valuepart1+20(1) = c_x.
gs_extensionin-valuepart1+21(1) = c_x.
gs_extensionin-valuepart1+22(1) = c_x.
gs_extensionin-valuepart1+23(1) = c_x.
gs_extensionin-valuepart1+24(1) = c_x.
APPEND gs_extensionin TO gt_extensionin.
CLEAR gs_extensionin.
ENDIF. " gt_extensionin
ENDFORM. " map_hdr
******************************************************
Please let me know if you need some more help.
Please do give points if the above code is useful.
regards,
Edited by: Sharad Dubey on Aug 11, 2008 2:12 PM
2008 Nov 10 12:15 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |