Application Development 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: 

Testing the BAPI_OUTB_DELIVERY_CHANGE

waiyi_kwong
Discoverer
0 Kudos

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.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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 ....

4 REPLIES 4

Former Member
0 Kudos

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

0 Kudos

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.

Former Member
0 Kudos

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 ....

0 Kudos

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.