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

Former Member
0 Likes
653

Hi every one

i have a problem working with BAPI_SALESORDER_CHANGE for order quantity change.

BAPI return table is showing success. but the quantity is not updated.( even i commit the BAPI) ,

I tried with item lines , also with schedule lines. result is same in both the cases.

i appreciate your prompt reply.

thanx

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
589

Try in this way

DATA: IT_MESSAGE TYPE STANDARD TABLE OF BAPIRET2,

WA_VBELN TYPE BAPIVBELN-VBELN.

DATA: WA_BAPIHEAD TYPE BAPISDH1,

WA_BAPIHEADX TYPE BAPISDH1X,

WA_HEADDATA TYPE BAPISDH1.

DATA: I_BAPIITEM TYPE STANDARD TABLE OF BAPISDITM,

WA_BAPIITEM TYPE BAPISDITM,

WA_DATA TYPE BAPISDITM,

I_BAPIITEMX TYPE STANDARD TABLE OF BAPISDITMX,

WA_BAPIITEMX TYPE BAPISDITMX.

CHANGE ITEM DATA

WA_BAPIITEM-ITM_NUMBER =WA_DATA-ITM_NUMBER.

WA_BAPIITEM-REASON_REJ = WA_DATA-REASON_REJ. "(REASON FOR REJECTION)

WA_BAPIITEMX-ITM_NUMBER = WA_DATA-ITM_NUMBER. "(ITEM NUMBER)

WA_BAPIITEMX-UPDATEFLAG = 'X'.

WA_BAPIITEMX-REASON_REJ = 'X'.

APPEND WA_BAPIITEM TO I_BAPIITEM.

APPEND WA_BAPIITEMX TO I_BAPIITEMX.

TO CHANGE HEADER DATA

WA_BAPIHEADX-UPDATEFLAG = 'U'.

WA_BAPIHEADX-DLV_BLOCK = 'X'.

WA_BAPIHEAD-SALES_ORG = WA_HEADDATA-SALES_ORG. "(COMPANY CODE)

WA_BAPIHEAD-DLV_BLOCK = WA_HEADDATA-DLV_BLOCK. "(DELIVERY BLOCK)

WA_VBELN = '0000000168'.

CALL BAPI AND PASS THE VALUE

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = WA_VBELN " (SALES AND DOCUMENT NO)

ORDER_HEADER_IN = WA_BAPIHEAD

ORDER_HEADER_INX = WA_BAPIHEADX

TABLES

RETURN = IT_MESSAGE

ORDER_ITEM_IN = I_BAPIITEM

ORDER_ITEM_INX = I_BAPIITEMX

.

CLEAR IT_MESSAGE.

Hi every one

i have a problem working with BAPI_SALESORDER_CHANGE for order quantity change.

BAPI return table is showing success. but the quantity is not updated.( even i commit the BAPI) ,

I tried with item lines , also with schedule lines. result is same in both the cases.

i appreciate your prompt reply.

thanx

3 REPLIES 3
Read only

Former Member
0 Likes
589

In item table give the target quantity

and in itam x table give as X to display the data.

Also check in manually...like go to VA02 and try ...if it is adding there then the problem is with the program...SOtimes there might be config problem.

wa_contract_item_in-target_qty = '1'.

wa_contract_item_inx-target_qty = 'X'.

Reward uf usefull.

Read only

0 Likes
589

ya .. order qty is updated successfully in va02 successfully, but not with bapi

Could u look at this code and correct me.

parameters: svbeln like BAPIVBELN-VBELN,

sposnr like BAPISDITM-ITM_NUMBER ,

SQTY LIKE BAPISDITM-TARGET_QTY,

SLINE LIKE VBEP-ETENR.

data: zreturn LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

zreturn1 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

zORDER_HEADER_INX LIKE BAPISDH1X OCCURS 0 WITH HEADER LINE,

zSCHEDULE_LINES like BAPISCHDL OCCURS 0 WITH HEADER LINE,

zSCHEDULE_LINESx like BAPISCHDLx OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = sposnr

IMPORTING

OUTPUT = sposnr

.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = svbeln

IMPORTING

OUTPUT = svbeln

.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = sline

IMPORTING

OUTPUT = sline

.

zORDER_KEYS-DOC_NUMBER = svbeln.

zORDER_KEYS-itm_number = sposnr.

append zORDER_KEYS.

zORDER_HEADER_INX-UPDATEFLAG = 'U'.

APPEND zORDER_HEADER_INX.

zSCHEDULE_LINES-ITM_NUMBER = sposnr.

zSCHEDULE_LINES-SCHED_LINE = SLINE.

zSCHEDULE_LINES-req_qty = SQTY.

append zSCHEDULE_LINES.

zSCHEDULE_LINESx-ITM_NUMBER = sposnr.

zSCHEDULE_LINESX-req_qty = 'X'.

zSCHEDULE_LINESX-SCHED_LINE = 'X'.

zSCHEDULE_LINESX-UPDATEFLAG = 'U'.

append zSCHEDULE_LINESx.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = svbeln

  • ORDER_HEADER_IN =

ORDER_HEADER_INX = zORDER_HEADER_INX

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH =

TABLES

RETURN = zreturn

  • ORDER_ITEM_IN = zoreder_item_in

  • ORDER_ITEM_INX = zoreder_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 = zSCHEDULE_LINES

SCHEDULE_LINESX = zSCHEDULE_LINESx

  • ORDER_TEXT =

  • ORDER_KEYS =

  • CONDITIONS_IN =

  • CONDITIONS_INX =

  • EXTENSIONIN =

.

WRITE:/ SY-SUBRC.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT = 'X'

IMPORTING

RETURN = ZRETURN1

.

WRITE:/ 'AFTER COMMIT'.

LOOP AT ZRETURN .

WRITE:/ ZRETURN-MESSAGE.

ENDLOOP.

ULINE.

write:/ 'return table from commit'.

LOOP AT ZRETURN1 .

WRITE:/ ZRETURN1-MESSAGE, ZRETURN1-TYPE.

ENDLOOP.

thanx

Read only

Former Member
0 Likes
590

Try in this way

DATA: IT_MESSAGE TYPE STANDARD TABLE OF BAPIRET2,

WA_VBELN TYPE BAPIVBELN-VBELN.

DATA: WA_BAPIHEAD TYPE BAPISDH1,

WA_BAPIHEADX TYPE BAPISDH1X,

WA_HEADDATA TYPE BAPISDH1.

DATA: I_BAPIITEM TYPE STANDARD TABLE OF BAPISDITM,

WA_BAPIITEM TYPE BAPISDITM,

WA_DATA TYPE BAPISDITM,

I_BAPIITEMX TYPE STANDARD TABLE OF BAPISDITMX,

WA_BAPIITEMX TYPE BAPISDITMX.

CHANGE ITEM DATA

WA_BAPIITEM-ITM_NUMBER =WA_DATA-ITM_NUMBER.

WA_BAPIITEM-REASON_REJ = WA_DATA-REASON_REJ. "(REASON FOR REJECTION)

WA_BAPIITEMX-ITM_NUMBER = WA_DATA-ITM_NUMBER. "(ITEM NUMBER)

WA_BAPIITEMX-UPDATEFLAG = 'X'.

WA_BAPIITEMX-REASON_REJ = 'X'.

APPEND WA_BAPIITEM TO I_BAPIITEM.

APPEND WA_BAPIITEMX TO I_BAPIITEMX.

TO CHANGE HEADER DATA

WA_BAPIHEADX-UPDATEFLAG = 'U'.

WA_BAPIHEADX-DLV_BLOCK = 'X'.

WA_BAPIHEAD-SALES_ORG = WA_HEADDATA-SALES_ORG. "(COMPANY CODE)

WA_BAPIHEAD-DLV_BLOCK = WA_HEADDATA-DLV_BLOCK. "(DELIVERY BLOCK)

WA_VBELN = '0000000168'.

CALL BAPI AND PASS THE VALUE

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = WA_VBELN " (SALES AND DOCUMENT NO)

ORDER_HEADER_IN = WA_BAPIHEAD

ORDER_HEADER_INX = WA_BAPIHEADX

TABLES

RETURN = IT_MESSAGE

ORDER_ITEM_IN = I_BAPIITEM

ORDER_ITEM_INX = I_BAPIITEMX

.

CLEAR IT_MESSAGE.