2015 Apr 07 5:26 PM
Dear expert ,
i have requirement like to insert a condition type in va02 line item level .for that i am using BAPI BAPI_SALESORDER_CHANGE .but
my problem is whenever i am executing report instead for condition value net value is getting change . i have try lot of possibility but issue didn't soled .
i have written below code for testing . please let me know if you have any solutions , thanks in advance
DATA order_header_in TYPE STANDARD TABLE OF bapisdh1 WITH HEADER LINE.
DATA it_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
DATA header_inx TYPE STANDARD TABLE OF bapisdh1x WITH HEADER LINE.
DATA conditions_in TYPE STANDARD TABLE OF bapicond WITH HEADER LINE.
DATA conditions_inx TYPE STANDARD TABLE OF bapicondx WITH HEADER LINE.
DATA SALESDOCUMENT LIKE BAPIVBELN-VBELN.
LOOP AT it_final INTO wa_final WHERE chk = 'X'.
header_inx = 'U'.
APPEND header_inx .
conditions_in-itm_number = '000010'."wa_final-posnr.
conditions_in-cond_type = 'ZAPD'.
conditions_in-cond_value = '50789.00'." wa_final-netwr.
* conditions_in-COND_ST_NO = '480'.
* conditions_in-ROUNDOFFDI = wa_final-netwr.
* conditions_in-CONDVALUE = wa_final-netwr.
conditions_in-currency = 'INR'.
conditions_in-curr_iso = 'INR'.
APPEND conditions_in.
conditions_inx-itm_number = wa_final-posnr.
conditions_inx-cond_type = 'ZAPD'.
conditions_inx-updateflag = 'U'.
conditions_inx-cond_value = 'X'.
conditions_inx-currency = 'X'.
* conditions_inx-COND_P_UNT = 'X'.
APPEND conditions_inx.
SALESDOCUMENT = '1311000598'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = SALESDOCUMENT
* ORDER_HEADER_IN =
order_header_inx = header_inx
TABLES
return = it_return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = it_return.
ENDLOOP.
2015 Apr 08 7:02 AM
hi,
write code in this routine to change in condition value RV64A982
it wil change automatically for creating r changing so
DATA : lw_fld TYPE char8 VALUE 'RETTKOMV' .
FIELD-SYMBOLS : <lfs_fld> .
ASSIGN (lw_fld) TO <lfs_fld> .
IF komk-kalsm = 'ZCRDST'.
IF xkomv-kschl = 'ZICC'.
IF <lfs_xkomv_tm_sample> IS ASSIGNED.
UNASSIGN <lfs_xkomv_tm_sample> .
ENDIF.
CLEAR:lw_kwert,lw_kbetr,lw_kwert_zstz,lw_kwert_zsty,lw_kbetr_zict,lw_kwert_zict,lw_kbetr_zilt,lw_kwert_zilt,lw_kbetr_zivt,lw_kwert_zivt,
lw_kbetr_ziab,lw_kwert_ziab .
LOOP AT xkomv ASSIGNING <lfs_xkomv_tm_sample>.
CASE <lfs_xkomv_tm_sample>-kschl .
WHEN 'ZICT' .
lw_kbetr_zict = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zict = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZILT'.
lw_kbetr_zilt = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zilt = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZIVT'.
lw_kbetr_zivt = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zivt = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZIAB' .
lw_kbetr_ziab = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_ziab = <lfs_xkomv_tm_sample>-kwert.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
UNASSIGN <lfs_xkomv_tm_sample> .
LOOP AT xkomv ASSIGNING <lfs_xkomv_tm_sample>.
CASE <lfs_xkomv_tm_sample>-kschl .
WHEN 'ZICR' .
IF lw_kbetr_zict IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zict
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zict.
* lw_kbetr_zict = lw_kbetr_zict + ( ( lw_kbetr_zict * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zict = lw_kwert_zict + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN 'ZILR'.
IF lw_kbetr_zilt IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zilt
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zilt.
* lw_kbetr_zilt = lw_kbetr_zilt + ( ( lw_kbetr_zilt * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zilt = lw_kwert_zilt + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN 'ZIVC'.
IF lw_kbetr_zivt IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zivt
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zivt.
* lw_kbetr_zivt = lw_kbetr_zivt + ( ( lw_kbetr_zivt * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zivt = lw_kwert_zivt + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
lw_kwert = lw_kwert_zict + lw_kwert_zilt + lw_kwert_zivt + lw_kwert_ziab .
lw_kbetr = lw_kbetr_zict + lw_kbetr_zilt + lw_kbetr_zivt + lw_kbetr_ziab .
xkwert = lw_kwert .
xkomv-kwert = xkwert.
xkomv-kbetr = lw_kbetr.
<lfs_fld> = xkomv .
Dear expert ,
i have requirement like to insert a condition type in va02 line item level .for that i am using BAPI BAPI_SALESORDER_CHANGE .but
my problem is whenever i am executing report instead for condition value net value is getting change . i have try lot of possibility but issue didn't soled .
i have written below code for testing . please let me know if you have any solutions , thanks in advance
DATA order_header_in TYPE STANDARD TABLE OF bapisdh1 WITH HEADER LINE.
DATA it_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
DATA header_inx TYPE STANDARD TABLE OF bapisdh1x WITH HEADER LINE.
DATA conditions_in TYPE STANDARD TABLE OF bapicond WITH HEADER LINE.
DATA conditions_inx TYPE STANDARD TABLE OF bapicondx WITH HEADER LINE.
DATA SALESDOCUMENT LIKE BAPIVBELN-VBELN.
LOOP AT it_final INTO wa_final WHERE chk = 'X'.
header_inx = 'U'.
APPEND header_inx .
conditions_in-itm_number = '000010'."wa_final-posnr.
conditions_in-cond_type = 'ZAPD'.
conditions_in-cond_value = '50789.00'." wa_final-netwr.
* conditions_in-COND_ST_NO = '480'.
* conditions_in-ROUNDOFFDI = wa_final-netwr.
* conditions_in-CONDVALUE = wa_final-netwr.
conditions_in-currency = 'INR'.
conditions_in-curr_iso = 'INR'.
APPEND conditions_in.
conditions_inx-itm_number = wa_final-posnr.
conditions_inx-cond_type = 'ZAPD'.
conditions_inx-updateflag = 'U'.
conditions_inx-cond_value = 'X'.
conditions_inx-currency = 'X'.
* conditions_inx-COND_P_UNT = 'X'.
APPEND conditions_inx.
SALESDOCUMENT = '1311000598'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = SALESDOCUMENT
* ORDER_HEADER_IN =
order_header_inx = header_inx
TABLES
return = it_return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = it_return.
ENDLOOP.
2015 Apr 07 5:33 PM
I didn't understand exactly your requirement, but when setting up new conditions, you can fill LOGIC_SWITCH structure in BAPI to recalculate prices.
In LOGIC_SWITCH-PRICING, try to pass the value corresponding to the button Update in VA02.
Regards,
Frisoni
2015 Apr 07 5:54 PM
i want change condtion value not Net value , but Net value is getting changed.
please help
2015 Apr 07 5:57 PM
i want to change condition value but net value is getting change .
2015 Apr 07 6:51 PM
Your condition is %, so, you set the percent amount and condition value is calculated based on it.
If you want a specific value in condition value column, you can calculate how much percent of item value you need to achieve condition value.
for example:
conditions_in-cond_value = '50789.00' / wa_final-netwr.
Regards,
Frisoni
2015 Apr 07 6:01 PM
2015 Apr 07 6:05 PM
Pass LOGIC_SWITCH to BAPI
data logic_switch like bapisdls occurs 0 with header line.
logic_switch-pricing = 'C'.
logic_switch-cond_handl = 'X'.
2015 Apr 07 6:39 PM
Thanks for replyi applied logic as you suggest but after nothing is getting change .
'No data was changed' - message is coming in return parameter ,
2015 Apr 08 6:11 AM
2015 Apr 07 6:41 PM
2015 Apr 07 6:49 PM
2015 Apr 08 6:10 AM
2015 Apr 07 7:12 PM
Hi Debesh,
Pass following values
COND_COUNT values also in CONDITIONS_IN and CONDITIONS_INX structure
Pass Cond_ST_NO values too in both structure.
conditions_in-COND_ST_NO = '480'.
Add this line too conditions_inx-curr_iso = 'X'.
Hope it helps
Regards,
Kannan
2015 Apr 08 6:05 AM
2015 Apr 08 6:08 AM
Dear Expert ,
i tried all your suggestion , but still this issue is not closed .
thank u for valuable suggestion . please reply if any solution u got .
2015 Apr 08 6:31 AM
Hi Debash,
Try to use BAPI_SALESORDER_CREATEFROMDAT2 for condtion value pricing change.
Regards,
Kannan
2015 Apr 08 8:08 AM
2015 Apr 08 7:02 AM
hi,
write code in this routine to change in condition value RV64A982
it wil change automatically for creating r changing so
DATA : lw_fld TYPE char8 VALUE 'RETTKOMV' .
FIELD-SYMBOLS : <lfs_fld> .
ASSIGN (lw_fld) TO <lfs_fld> .
IF komk-kalsm = 'ZCRDST'.
IF xkomv-kschl = 'ZICC'.
IF <lfs_xkomv_tm_sample> IS ASSIGNED.
UNASSIGN <lfs_xkomv_tm_sample> .
ENDIF.
CLEAR:lw_kwert,lw_kbetr,lw_kwert_zstz,lw_kwert_zsty,lw_kbetr_zict,lw_kwert_zict,lw_kbetr_zilt,lw_kwert_zilt,lw_kbetr_zivt,lw_kwert_zivt,
lw_kbetr_ziab,lw_kwert_ziab .
LOOP AT xkomv ASSIGNING <lfs_xkomv_tm_sample>.
CASE <lfs_xkomv_tm_sample>-kschl .
WHEN 'ZICT' .
lw_kbetr_zict = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zict = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZILT'.
lw_kbetr_zilt = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zilt = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZIVT'.
lw_kbetr_zivt = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_zivt = <lfs_xkomv_tm_sample>-kwert.
WHEN 'ZIAB' .
lw_kbetr_ziab = <lfs_xkomv_tm_sample>-kbetr .
lw_kwert_ziab = <lfs_xkomv_tm_sample>-kwert.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
UNASSIGN <lfs_xkomv_tm_sample> .
LOOP AT xkomv ASSIGNING <lfs_xkomv_tm_sample>.
CASE <lfs_xkomv_tm_sample>-kschl .
WHEN 'ZICR' .
IF lw_kbetr_zict IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zict
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zict.
* lw_kbetr_zict = lw_kbetr_zict + ( ( lw_kbetr_zict * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zict = lw_kwert_zict + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN 'ZILR'.
IF lw_kbetr_zilt IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zilt
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zilt.
* lw_kbetr_zilt = lw_kbetr_zilt + ( ( lw_kbetr_zilt * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zilt = lw_kwert_zilt + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN 'ZIVC'.
IF lw_kbetr_zivt IS NOT INITIAL.
CALL FUNCTION 'Z_PTC_CAL_982'
EXPORTING
i_kbetr = lw_kbetr_zivt
kbetr_base = <lfs_xkomv_tm_sample>-kbetr
IMPORTING
kbetr = lw_kbetr_zivt.
* lw_kbetr_zivt = lw_kbetr_zivt + ( ( lw_kbetr_zivt * ( <lfs_xkomv_tm_sample>-kbetr / 10 ) ) / 100 ).
lw_kwert_zivt = lw_kwert_zivt + <lfs_xkomv_tm_sample>-kwert.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
lw_kwert = lw_kwert_zict + lw_kwert_zilt + lw_kwert_zivt + lw_kwert_ziab .
lw_kbetr = lw_kbetr_zict + lw_kbetr_zilt + lw_kbetr_zivt + lw_kbetr_ziab .
xkwert = lw_kwert .
xkomv-kwert = xkwert.
xkomv-kbetr = lw_kbetr.
<lfs_fld> = xkomv .