2007 Jul 24 7:17 AM
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
2008 Apr 08 12:15 PM
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
2007 Jul 24 7:22 AM
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.
2007 Jul 24 7:40 AM
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
2008 Apr 08 12:15 PM
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.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |