08-24-2007 4:33 AM
Hello,
The delivery quantity cannot be changed to zero after I has executed the BAPI_OUTB_DELIVERY_CHANGE in <b>SE37</b> with the following export parameters and tables.
Any one can tell me how to test run this BAPI to change the delivery quantity of a particular delivery line-item?
<u>EXPORTING</u>
HEADER_DATA: -
- DELIV_NUMB = 86386450
DELIVER = 86386450
<u>TABLES</u>
ITEM_DATA: -
- DELIV_NUMB = 86386450
- DELIV_ITEM = 00010
- DLV_QTY = 0.000
- DLV_QTY = 0.000
- FACT_UNIT_NOM = 1
- FACT_UNIT_DENOM = 1
- SALES_UNIT = 'EA'
- SALES_UNIT_ISO = 'EA'
- BASE_UOM = 'EA'
- BASE_UOM_ISO = 'EA'
ITEM_CONTROL: -
- DELIV_NUMB = 86386450
- DELIV_ITEM = 00010
- CHG_DELQTY = 'X'
Best regards,
Jocelyn.
08-29-2007 8:14 AM
untill and unless u pass the control data structure (flag for the changing field ) u wont get the proper updation in database.
TABLES LIKP.
PARAMETERS P_DEL LIKE LIKP-VBELN DEFAULT '0080014080'.
DATA:
STR_HEADER_DATA LIKE BAPIOBDLVHDRCHG,
STR_HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG.
DATA IT_RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
DATA IT_HEADER_DEADLINES TYPE STANDARD TABLE OF BAPIDLVDEADLN
WITH HEADER LINE.
DATA: V_16(16) TYPE C.
DATA V_DEL LIKE BAPIOBDLVHDRCHG-DELIV_NUMB.
SELECT SINGLE * FROM LIKP WHERE VBELN = P_DEL.
CONCATENATE SY-DATUM SY-UZEIT INTO V_16.
*str_HEADER_DATA-GROSS_WT
*UNIT_OF_WT_ISO
*VOLUMEUNIT_ISO
STR_HEADER_DATA-UNLOAD_PT = LIKP-ABLAD.
STR_HEADER_DATA-UNIT_OF_WT = LIKP-GEWEI.
STR_HEADER_DATA-INCOTERMS1 = LIKP-INCO1.
STR_HEADER_DATA-INCOTERMS2 = LIKP-INCO2.
STR_HEADER_DATA-DOOR = LIKP-LGTOR.
STR_HEADER_DATA-DLV_BLOCK = LIKP-LIFSK.
STR_HEADER_DATA-DLV_PRIO = LIKP-LPRIO.
STR_HEADER_DATA-NET_WEIGHT = LIKP-NTGEW.
STR_HEADER_DATA-ROUTE = LIKP-ROUTE.
STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
STR_HEADER_DATA-VOLUMEUNIT = LIKP-VOLEH.
STR_HEADER_DATA-VOLUME = LIKP-VOLUM.
STR_HEADER_DATA-SHIP_COND = LIKP-VSBED.
V_DEL = LIKP-VBELN.
STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
STR_HEADER_CONTROL-GDSI_DATE_FLG = 'X'.
IT_HEADER_DEADLINES-TIMETYPE = 'WSHDRWADTI'.
IT_HEADER_DEADLINES-TIMESTAMP_UTC = V_16.
APPEND IT_HEADER_DEADLINES.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = STR_HEADER_DATA
HEADER_CONTROL = STR_HEADER_CONTROL
DELIVERY = V_DEL
TABLES
HEADER_DEADLINES = IT_HEADER_DEADLINES
RETURN = IT_RETURN.
COMMIT WORK.
LOOP AT IT_RETURN.
ENDLOOP.
reward points if helpful ....
08-24-2007 4:56 AM
HEADER_DATA
DELIV_NUMB 40001068
HEADER_CONTROL
DELIV_NUMB 40001068
GDSI_DATE_FLG X
DELIVERY 40001068
ITEM_DATA
DELIV_NUMB 40001068
DELIV_ITEM 000010
MATERIAL CFDS23
BATCH
HIERARITEM 000000
USEHIERITM
DLV_QTY 5.000
DLV_QTY_IMUNIT 0.000
SALES_UNIT EA
TEM_CONTROL
DELIV_NUMB 40001068
DELIV_ITEM 000010
CHG_DELQTY X
08-28-2007 3:54 AM
Hi Swapna Narra,
Thank you for your information.
I have re-executed the BAPI via SE37 by following your suggestion. This time I have got one error and one warning messages in the RETURN parameter. The error id is VLBAPI and the number is 004, and the warning id is VL and the number is 268. In addition, the delivery quantity of the specified delivery line-item still cannot be zero.
Do you know what kind of parameters or table entry has been missed?
Best regards,
Jocelyn.
08-29-2007 8:14 AM
untill and unless u pass the control data structure (flag for the changing field ) u wont get the proper updation in database.
TABLES LIKP.
PARAMETERS P_DEL LIKE LIKP-VBELN DEFAULT '0080014080'.
DATA:
STR_HEADER_DATA LIKE BAPIOBDLVHDRCHG,
STR_HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG.
DATA IT_RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
DATA IT_HEADER_DEADLINES TYPE STANDARD TABLE OF BAPIDLVDEADLN
WITH HEADER LINE.
DATA: V_16(16) TYPE C.
DATA V_DEL LIKE BAPIOBDLVHDRCHG-DELIV_NUMB.
SELECT SINGLE * FROM LIKP WHERE VBELN = P_DEL.
CONCATENATE SY-DATUM SY-UZEIT INTO V_16.
*str_HEADER_DATA-GROSS_WT
*UNIT_OF_WT_ISO
*VOLUMEUNIT_ISO
STR_HEADER_DATA-UNLOAD_PT = LIKP-ABLAD.
STR_HEADER_DATA-UNIT_OF_WT = LIKP-GEWEI.
STR_HEADER_DATA-INCOTERMS1 = LIKP-INCO1.
STR_HEADER_DATA-INCOTERMS2 = LIKP-INCO2.
STR_HEADER_DATA-DOOR = LIKP-LGTOR.
STR_HEADER_DATA-DLV_BLOCK = LIKP-LIFSK.
STR_HEADER_DATA-DLV_PRIO = LIKP-LPRIO.
STR_HEADER_DATA-NET_WEIGHT = LIKP-NTGEW.
STR_HEADER_DATA-ROUTE = LIKP-ROUTE.
STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
STR_HEADER_DATA-VOLUMEUNIT = LIKP-VOLEH.
STR_HEADER_DATA-VOLUME = LIKP-VOLUM.
STR_HEADER_DATA-SHIP_COND = LIKP-VSBED.
V_DEL = LIKP-VBELN.
STR_HEADER_DATA-DELIV_NUMB = LIKP-VBELN.
STR_HEADER_CONTROL-GDSI_DATE_FLG = 'X'.
IT_HEADER_DEADLINES-TIMETYPE = 'WSHDRWADTI'.
IT_HEADER_DEADLINES-TIMESTAMP_UTC = V_16.
APPEND IT_HEADER_DEADLINES.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = STR_HEADER_DATA
HEADER_CONTROL = STR_HEADER_CONTROL
DELIVERY = V_DEL
TABLES
HEADER_DEADLINES = IT_HEADER_DEADLINES
RETURN = IT_RETURN.
COMMIT WORK.
LOOP AT IT_RETURN.
ENDLOOP.
reward points if helpful ....
08-30-2007 4:18 AM
Hi all,
Thank you for all of your help. I have resolved this issue by the following function.
FUNCTION ZTEST_OUTB_DELIVERY_CHANGE.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(I_VBELN) LIKE LIKP-VBELN
*" REFERENCE(I_POSNR) LIKE LIPS-POSNR
*" REFERENCE(I_NEW_DELQTY) LIKE LIPS-LFIMG
*"----------------------------------------------------------------------
DATA: HEADER_DATA like BAPIOBDLVHDRCHG,
HEADER_CONTROL like BAPIOBDLVHDRCTRLCHG,
DELIVERY like BAPIOBDLVHDRCHG-DELIV_NUMB,
ITEM_DATA like BAPIOBDLVITEMCHG occurs 0 with header line,
ITEM_CONTROL like BAPIOBDLVITEMCTRLCHG occurs 0 with header line,
RETURN like BAPIRET2 occurs 0 with header line,
WA_LIPS like LIPS occurs 0 with header line.
CLEAR: HEADER_DATA, HEADER_CONTROL, DELIVERY, ITEM_DATA, ITEM_CONTROL,
RETURN, WA_LIPS.
REFRESH: ITEM_DATA, ITEM_CONTROL, RETURN, WA_LIPS.
HEADER_DATA-DELIV_NUMB = I_VBELN.
HEADER_CONTROL-DELIV_NUMB = I_VBELN.
DELIVERY = I_VBELN.
SELECT SINGLE * INTO WA_LIPS FROM LIPS WHERE VBELN = I_VBELN AND POSNR =
I_POSNR.
ITEM_DATA-DELIV_NUMB = I_VBELN.
ITEM_DATA-DELIV_ITEM = I_POSNR.
ITEM_DATA-MATERIAL = WA_LIPS-MATNR.
ITEM_DATA-BATCH = WA_LIPS-CHARG.
ITEM_DATA-DLV_QTY = I_NEW_DELQTY.
ITEM_DATA-DLV_QTY_IMUNIT = I_NEW_DELQTY.
ITEM_DATA-FACT_UNIT_NOM = WA_LIPS-UMVKZ.
ITEM_DATA-FACT_UNIT_DENOM = WA_LIPS-UMVKN.
ITEM_DATA-CONV_FACT = WA_LIPS-UMREF.
ITEM_DATA-GROSS_WT = WA_LIPS-BRGEW.
ITEM_DATA-NET_WEIGHT = WA_LIPS-NTGEW.
ITEM_DATA-UNIT_OF_WT = WA_LIPS-GEWEI.
ITEM_DATA-VOLUMEUNIT = WA_LIPS-VOLEH.
ITEM_DATA-SALES_UNIT = WA_LIPS-VRKME.
ITEM_DATA-BASE_UOM = WA_LIPS-MEINS.
ITEM_DATA-STOCK_TYPE = WA_LIPS-INSMK.
ITEM_DATA-VAL_TYPE = WA_LIPS-BWTAR.
ITEM_DATA-INSPLOT = WA_LIPS-QPLOS.
ITEM_DATA-VOLUME = WA_LIPS-VOLUM.
APPEND ITEM_DATA.
ITEM_CONTROL-DELIV_NUMB = I_VBELN.
ITEM_CONTROL-DELIV_ITEM = I_POSNR.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = HEADER_DATA
HEADER_CONTROL = HEADER_CONTROL
DELIVERY = DELIVERY
TABLES
ITEM_DATA = ITEM_DATA
ITEM_CONTROL = ITEM_CONTROL
RETURN = RETURN.
READ TABLE RETURN WITH KEY TYPE = 'E'.
IF NOT SY-SUBRC IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
ENDFUNCTION.
Best regards,
Jocelyn.