Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_SALESORDER_CHANGE issue

Former Member
0 Likes
401

I am facing problem in changing SO using BAPI_SALESORDER_CHANGE.

I am updating conditions. I want to change the condition value but its not changing. Its creating a new condition instead.

everytime a BAPI is executed, a new condition is added to item.

any idea??

My code is as below::

====

LOOP AT ITAB_DESC1.

N = 10.

READ TABLE ITAB_FATU WITH KEY INVNO = ITAB_DESC1-INVNO.

READ TABLE ITAB_ORDERS WITH KEY BSTNK = ITAB_FATU-PONUM.

HEADERX-UPDATEFLAG = 'U'.

SALESORDER = ITAB_ORDERS-VBELN.

LOOP AT ITAB_DESC WHERE INVNO = ITAB_DESC1-INVNO.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 12.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZDPR'.

SOCOND-COND_VALUE = ITAB_DESC-UNITPRICE.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 427.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZPAC'.

SOCOND-COND_VALUE = ITAB_DESC-PACKING.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 422.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZFRD'.

SOCOND-COND_VALUE = ITAB_DESC-NATIONAL.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 425.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZFRE'.

SOCOND-COND_VALUE = ITAB_DESC-INTERNATIONAL.

SOCOND-COND_UPDAT = 'X'.

SOCOND-CONDCHAMAN = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCONDX-ITM_NUMBER = N.

SOCONDX-COND_ST_NO = 'X'.

SOCONDX-COND_COUNT = 'X'.

SOCONDX-COND_TYPE = 'X'.

SOCONDX-UPDATEFLAG = 'U'.

SOCONDX-COND_VALUE = 'X'.

APPEND SOCONDX.

CLEAR SOCONDX.

N = N + 10.

ENDLOOP.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = SALESORDER

  • ORDER_HEADER_IN =

ORDER_HEADER_INX = HEADERX

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH = logic_switch

  • NO_STATUS_BUF_INIT = ' '

TABLES

RETURN = RET

  • ORDER_ITEM_IN =

  • ORDER_ITEM_INX =

  • PARTNERS =

  • PARTNERCHANGES =

  • PARTNERADDRESSES =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • SCHEDULE_LINES =

  • SCHEDULE_LINESX =

  • ORDER_TEXT =

  • ORDER_KEYS =

CONDITIONS_IN = SOCOND

CONDITIONS_INX = SOCONDX

  • EXTENSIONIN =

  • NFMETALLITMS =

.

IF RET-TYPE = 'S'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = RET1.

WRITE : 'SALES ORDER CHANGED : ', SALESORDER.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

IMPORTING

RETURN = RET1.

ENDIF.

ENDLOOP.

====

1 REPLY 1
Read only

Former Member
0 Likes
312

hi,

i am trying to answer upto my knowledge, if that is useful kindly allocate reward points

LOOP AT ITAB_DESC1.

N = 10.

READ TABLE ITAB_FATU WITH KEY INVNO = ITAB_DESC1-INVNO.

READ TABLE ITAB_ORDERS WITH KEY BSTNK = ITAB_FATU-PONUM.

HEADERX-UPDATEFLAG = 'U'.

SALESORDER = ITAB_ORDERS-VBELN.

LOOP AT ITAB_DESC WHERE INVNO = ITAB_DESC1-INVNO.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 12.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZDPR'.

SOCOND-COND_VALUE = ITAB_DESC-UNITPRICE.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 427.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZPAC'.

SOCOND-COND_VALUE = ITAB_DESC-PACKING.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 422.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZFRD'.

SOCOND-COND_VALUE = ITAB_DESC-NATIONAL.

SOCOND-CONDCHAMAN = 'X'.

SOCOND-COND_UPDAT = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

SOCOND-ITM_NUMBER = N.

SOCOND-COND_ST_NO = 425.

SOCOND-COND_COUNT = 0.

SOCOND-COND_TYPE = 'ZFRE'.

SOCOND-COND_VALUE = ITAB_DESC-INTERNATIONAL.

SOCOND-COND_UPDAT = 'X'.

SOCOND-CONDCHAMAN = 'X'.

APPEND SOCOND.

CLEAR SOCOND.

<b><u><i><b>SOCONDX-ITM_NUMBER = N.</b></i></u> This is line is not required

SOCONDX-UPDATEFLAG = 'U'.</b>

SOCONDX-COND_ST_NO = 'X'.

SOCONDX-COND_COUNT = 'X'.

SOCONDX-COND_TYPE = 'X'.

SOCONDX-COND_VALUE = 'X'.

APPEND SOCONDX.

CLEAR SOCONDX.

N = N + 10.

ENDLOOP.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = SALESORDER

  • ORDER_HEADER_IN =

ORDER_HEADER_INX = HEADERX

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH = logic_switch

  • NO_STATUS_BUF_INIT = ' '

TABLES

RETURN = RET

  • ORDER_ITEM_IN =

  • ORDER_ITEM_INX =

  • PARTNERS =

  • PARTNERCHANGES =

  • PARTNERADDRESSES =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • SCHEDULE_LINES =

  • SCHEDULE_LINESX =

  • ORDER_TEXT =

  • ORDER_KEYS =

CONDITIONS_IN = SOCOND

CONDITIONS_INX = SOCONDX

  • EXTENSIONIN =

  • NFMETALLITMS =

.

IF RET-TYPE = 'S'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = RET1.

WRITE : 'SALES ORDER CHANGED : ', SALESORDER.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

IMPORTING

RETURN = RET1.

ENDIF.

ENDLOOP.

regards,

pavan