MnsTransTy & TrnsIDCode in BAPI_OUTB_DELIVERY_CHANGE ?
Hi all,
I want to use 'BAPI_OUTB_DELIVERY_CHANGE' to change DO . But I can't change MnsTransTy and TrnsIDCode . Please tell me how to change these two .
Thanks all .
TRATY and TRAID. How can I change in BAPI_OUTB_DELIVERY_CHANGE ? Thanks , Sravanthi .
Similar Messages
-
Problem when updating delivery quantity using 'BAPI_OUTB_DELIVERY_CHANGE'
Hi experts,
I have a requirement in which i need to update the material's delivery quantity in VL03N transaction. For this im trying the BAPI
'BAPI_OUTB_DELIVERY_CHANGE' and im passing the following values.
HEADER_DATA : Delivery no.
DELIVER : Delivery no.
ITEM_DATA : Delivery no,
item no,
DLV_QTY quantity(changed),
FACT_UNIT_NOM ( default to value '1')
FACT_UNIT_DENOM ( default to value '1')
ITEM_CONTROL : Delivey no,
item no,
CHG_DELQTY ( value "X")
Then i use 'BAPI_TRANSACTION_COMMIT' for updating the changes.
Here the problem is, the BAPI is working fine for some quantity , say if i enter the DLV_QTY as 2 in ITEM_DATA, it is gettting updated. But if i pass some other quantity , say 12, it is returning the folowing error.
T ID NUM MESSAGE
E VL 363
Pls tell why this error comes. and how to successfully update the delivery quantity for a set of material?
Regards,
Shanthinot answered
-
Batch splitting for Outbound delivery using BAPI_OUTB_DELIVERY_CHANGE
Hi all,
Let me explain the scenario first.
We are going to create a delivery in SAP with some line items and send it to a non-sap third party WMS. They will pick the goods and send the delivery confirmation back to SAP. In SAP we need to delivery confirmation and PGI.
The problem is when the third Part WMS does a batch split for a particular line item, we need to update the same in SAP and then do the PGI. For this I was trying to use BAPI_OUTB_DELIVERY_CHANGE to create split batches. It is splitting the batches but the overall pick status is becoming B (Partially picked). SO it is not allowing to do the PGI.
Can anyone solve my problemHi Bala,
make sure you are setting...
itemdata-dlv_qty
itemdata-dlv_qty_imunit
itemdata-fact_unit_nom e.g = 1.
itemdata-fact_unit_denom e.g = 1.
Rgds
Glenn -
Not able to delete line items using BAPI_OUTB_DELIVERY_CHANGE
Hi,
Not able to delete line items of a delivery using BAPI 'BAPI_OUTB_DELIVERY_CHANGE', with thte below code and even return parameter has zero messages.
I have even checked existing below posting.
https://www.sdn.sap.com/irj/scn/logon?redirect=http%3a%2f%2fforums.sdn.sap.com%2fthread.jspa%3fthreadid%3d782509
Below is the code that i am using.........
*wa1-deliv_numb = wa_lips-vbeln.
wa1-deliv_item = wa_lips-posnr.
APPEND wa1 to item_data.
wa-deliv_numb = vbeln_so .
wa-deliv_item = l_item.
wa-del_item = 'X'.
APPEND wa TO item_control.
w_header_data-deliv_numb = vbeln_so .
w_header_control-deliv_numb = vbeln_so .
w_delivery = vbeln_so .
*w_header_control-dlv_del = 'X'. "Delete whole Delivery
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = w_header_data
header_control = w_header_control
delivery = w_delivery
TABLES
item_data = item_data
item_control = item_control
return = return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
I have even tried uncommenting item_data parameter but not able to delete line item.....i am able to delete whole delivery but not line items .........can any one of u help me in resolving this issiue plz ???
Regards,
M, ManoharKindly use WS_DELIVERY_UPDATE to delete the items
Sample code:
L_VBKOK-VBELN_VL = vbeln_so.
clear l_vbpok.
refresh l_vbpok.
l_vbpok-vbeln_vl = vbeln_so
l_vbpok-posnr_vl = wa_deliv_item.
l_vbpok-lips_del = c_x.
append l_vbpok.
set update task local.
call function 'WS_DELIVERY_UPDATE'
exporting
vbkok_wa = l_vbkok
commit = ' '
delivery = lv_delivery
tables
vbpok_tab = l_vbpok
exceptions
others = 0.
commit work and wait. -
Extension2 to be used in BAPI_OUTB_DELIVERY_CHANGE
Hi,
I am using the bAPI BAPI_OUTB_DELIVERY_CHANGE to update two zfields in table LIPS but am unable to update the same using the extension table. I have searched for this post but did not get a satisfying answer for the same.
I found that the BADI SMOD_V50B0001 needs to be implemented which will then update the structure. Also i have tried using the exit wherein the header table LIKP gets updated but the LIPS table does not. my code for your reference is as below.
read table extension2 with key param = 'LIKP'
row = 1
field = 'LIFEX'.
if sy-subrc = 0.
cs_vbkok-lifex = extension2-value.
endif.
endif.
Update the LIPS table through theVBPOK structure
DATA: ls_extension1 TYPE bapiextc,
ls_extension2 TYPE bapiext,
ls_vbpok TYPE vbpok,
lv_tabix TYPE sy-tabix..
IF extension2[] IS NOT INITIAL.
LOOP AT ct_vbpok INTO ls_vbpok.
READ TABLE extension2 INTO ls_extension2
WITH KEY param = 'LIPS'
row = ls_vbpok-posnr_vl
field = 'ZECCN'.
IF sy-subrc = 0.
ls_vbpok-zeccn = ls_extension2-value.
MODIFY ct_vbpok FROM ls_vbpok TRANSPORTING zeccn.
ENDIF.
READ TABLE extension2 INTO ls_extension2
WITH KEY param = 'LIPS'
row = ls_vbpok-posnr_vl
field = 'ZLINSYM'.
IF sy-subrc = 0.
ls_vbpok-zlinsym = ls_extension2-value.
MODIFY ct_vbpok FROM ls_vbpok TRANSPORTING zlinsym.
ENDIF.
ENDLOOP.
ENDIF.
Please give your valueable suggesstions.
Thanks.
RasikaHi,
Check Line number 105 (Include lv50sfz1.) of Function module WS_DELIVERY_UPDATE_2 which called from the BAPI for updation of delivery.
Documentation of include LV50SFZ1 reads
* This include can be used for customer projects and IS-specific
* enhancements
* Location: After reading the delivery before any update is done
Check whether the updated value is appearing in structure VBPOK_TAB inside this include.
Regards
Vinod -
Hi guys,
I have to create a report where i will read a xls file, from each record in this file i have to run one of the following FM
BAPI_PO_CHANGE
BAPI_OUTB_DELIVERY_CHANGE
L_TO_CONFIRM
BAPI_GOODSMVT_CREATE
depending on catagory of record.
I want to know wether there is any way by which i can pass a chunk of records to sigle FM, instead of executing FM for each record.no, we canot pass mulptiple records in bapi_po_change,BAPI_OUTB_DELIVERY_CHANGE etc
when it come to create we can do it, it is possible. try it once
Edited by: kpsgoutam on Oct 9, 2009 9:29 AM -
Problem WIth BAPI_OUTB_DELIVERY_CHANGE
Hi All,
I want to change the Item level Delivery Quantity in VL02N. I tried to use BAPi_OUTB_DELIVERY_CHANGE. But i did not succeed. I am passing the below parameters.
HEADER_DATA -
> Delivery Number
DELIVERY -
> Delivery Number
ITEM_DATA -
> DELIV_NUMB(Delivery Number), DELIV_ITEM(Item), MATERIAL(material), DLV_QTY(Qty what i need to update in VL02n), FACT_UNIT_NOM(as 1), FACT_UNIT_DENOM (as 1), SALES_UNIT(VRKME), BASE_UOM(MEINS)
ITEM_CONTROL -
> DELIV_NUMB(delivery Number), DELIV_ITEM(Item), CHG_DELQTY(as 'X')
im passing the above parameters to change the delivery quantity at item level . where as im not at all succeding to change the delivery qty.
<REMOVED BY MODERATOR>
Thanks,
Srinivas.
Edited by: Alvaro Tejada Galindo on Apr 7, 2008 5:24 PMPlease, see de function module documentations. The example in red color.
If you want to change the quantity for a distributed quantity, then following entries are required for the transfer to the connected system:
In the header data of outbound delivery parameter (HEADER_DATA)
The delivery number (DELIV_NUMB)
In parameter item data of outbound delivery (ITEM_DATA)
The delivery number (DELIV_NUMB)
The delivery item (DELIV_ITEM)
The delivery quantity in sales unit (DLV_QTY)
The actual delivery quantity in base UoM (DLV_QTY_IMUNIT)
The sales unit (SALES_UNIT)
The ISO code for the sales unit (SALES_UNIT_ISO)
The base unit of measure (BASE_UOM)
The ISO code for the base unit of measure (BASE_UOM_ISO)
In the control of the outbound delivery at item level parameter (ITEM_CONTROL)
The delivery number (DELIV_NUMB)
The delivery item (DELIV_ITEM)
The Change Delivery Quantity indicator(CHG_DELQTY)
If you do not make any further entries, the system copies the material number, plant, quantities as floating point numbers, volumes, weights, and their units from the original outbound delivery document..
Notes
Changes to the packing data are not synchronized in the central ERP system.
For subsequent changes to a distributed inbound delivery, the following prerequisites must be fulfilled:
All items in the distribution-relevant inbound delivery have the same decentrally-managed warehouse number.
You have generated a distribution model for inbound deliveries. For more information, see the implementation guide (IMG) under Logistics Execution -> Decentralized WMS Integration -> Central Processing -> Distribution -> Generate Distribution Model.
In Customizing for Shipping under Deliveries -> Define Delivery Types -> Distribution Mode, you have specified whether the system should distribute the delivery automatically after document creation, or whether distribution should be suppressed so that you can trigger distribution yourself using the delivery monitor.
If you use an external system as the decentralized WMS, you must ensure that there is a blocking system for the decentralized system, which prevents a delivery from being processed in both systems at the same time. For more information on the cross-system lock, see the SAP Library under Basis -> Client-Server Technology -> Cross-System Lock (CSL).
If you use the asynchronous interface for the actual transfer of the outbound delivery changes (IDoc category SHP_OBDLV_CHANGE), you must make sure that the structure definition of the IDoc is correct as you construct the IDoc. You should take particular care not to switch the segment sequence.
[]'s.
Marcus Farias.
Edited by: Marcus Farias on Apr 8, 2008 8:48 AM -
Add item with BAPI_OUTB_DELIVERY_CHANGE
Hello,
could you please provide me with some examples of adding position to delivery with BAPI_OUTB_DELIVERY_CHANGE? I have to add 'extra' item to outbound delivery for packaging material. With t-code VL02N it looks easy - you just complete information about 'auxiliary packaging material' (matnr, veanz, pstyv, werks, lgort) and new possition is added somehow to delivery. I have to do the same from BSP ... and I haven't found a way do this (all HU-related FMs just add position to HU but without changing delivery, WS_DELIVERY_UPDATE is not working as well).
BAPI_OUTB_DELIVERY_CHANGE looks promising but so far I was unable to make it work.
I am very looking forward to your tips ...
Thank you,
FilipHi Michal,
it is not possible to add an item to an outbound delivery via FM.
I know - this information is not what you have expected - sad but true...
I have used batch input via transaction VL02 to add packaging items to an outbound delivery. But VL02 is old fashioned and it has not the same functions as VL02N.
Regards,
Martin -
Some quetions about BAPI_OUTB_DELIVERY_CHANGE.
HI~all.
I change serial number in a outbound delivery use this bapi,
but have a question which it will create a new Object list number when i run this bapi at a time ,you can find them from SER01 TABLE,what's happend?PLZ tell me if you know the problem ,thank you very much ~
following is my code.
*& Report ZDN_MOD
REPORT ZDN_MOD.
DATA:BEGIN OF it_lips OCCURS 1,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
matnr LIKE lips-matnr,
werks LIKE lips-werks,
lfimg LIKE lips-lfimg,
umvkz LIKE lips-umvkz,
umvkn LIKE lips-umvkn,
END OF it_lips.
DATA:IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE.
data:l_OBKNR like SER01-OBKNR.
DATA: v_delivery LIKE bapiobdlvhdrchg-deliv_numb,
wa_header LIKE bapiobdlvhdrchg,
wa_header_x LIKE bapiobdlvhdrctrlchg,
WA_TECHN LIKE BAPIDLVCONTROL,
it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
it_item LIKE bapiobdlvitemchg OCCURS 0 WITH HEADER LINE,
it_item_x LIKE bapiobdlvitemctrlchg OCCURS 0 WITH HEADER LINE,
it_spl LIKE /spe/bapiobdlvitemchg OCCURS 0 WITH HEADER LINE,
it_SER_NO like BAPIDLVITMSERNO OCCURS 0 WITH HEADER LINE,"序列号内表
d_vbeln like likp-vbeln,
msgtxt(100) type c .
data:it_CWM_ITEM_DATA LIKE /CWM/BAPIOBDLVITEM OCCURS 0 WITH HEADER LINE.
SELECT SINGLE OBKNR INTO L_OBKNR FROM SER01 WHERE LIEF_NR = '0080000040' AND POSNR = '000010'.
select * from OBJK into table it_OBJK where OBKNR = l_OBKNR.
D_VBELN = '0080000040'.
wa_header-deliv_numb = d_vbeln.
wa_header_x-deliv_numb = d_vbeln.
*wa_header_x-SIMULATE = 'X'.
v_delivery = D_VBELN.
WA_TECHN-UPD_IND = 'X'.
SELECT vbeln posnr matnr werks lfimg umvkz umvkn into
TABLE it_lips FROM lips
WHERE vbeln = d_vbeln
AND POSNR = '000010'.
LOOP AT it_lips.
it_item-deliv_numb = it_lips-vbeln.
it_item-deliv_item = it_lips-posnr.
it_item-material = it_lips-matnr.
it_item-dlv_qty = it_lips-lfimg.
it_item-fact_unit_nom = it_lips-umvkz.
it_item-fact_unit_denom = it_lips-umvkn.
it_item-CONV_FACT = '1'.
it_item-SALES_UNIT = 'SET'.
APPEND it_item. CLEAR it_item.
loop at it_OBJK.
it_SER_NO-DELIV_NUMB = it_lips-vbeln.
it_SER_NO-ITM_NUMBER = it_lips-posnr.
it_SER_NO-SERIALNO = it_OBJK-EQUNR.
APPEND it_SER_NO.
endloop.
it_item_x-deliv_numb = it_lips-vbeln.
it_item_x-deliv_item = it_lips-posnr.
it_item_x-CHG_DELQTY = 'X'.
APPEND it_item_x .CLEAR it_item_x.
ENDLOOP.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = wa_header
header_control = wa_header_x
delivery = v_delivery
TECHN_CONTROL = WA_TECHN
TABLES
item_data = it_item
item_control = it_item_x
ITEM_SERIAL_NO = it_SER_NO
return = it_return
item_data_spl = it_spl.
READ TABLE it_return WITH KEY type = 'E'.
BREAK IBM-ZHANGDQ.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = it_return-id
lang = '-D'
no = it_return-number
v1 = it_return-message_v1
v2 = it_return-message_v2
v3 = it_return-message_v3
v4 = it_return-message_v4
IMPORTING
msg = msgtxt
EXCEPTIONS
not_found = 1
OTHERS = 2.
WRITE:msgtxt.
ENDIF.
FREE:it_return,it_spl,it_item,it_item_x.
CLEAR:it_return,it_spl,it_item,it_item_x,wa_header,
wa_header_x,v_delivery.Hello Srinivas
I am still on this and felt I must continue updating this message thread so that someone with a similar requirement can get a complete picture of what the possibilities are and benefit from it.
I am trying out your suggested solution but am unsure of the FM which needs to be attached to the event tcode with the LIKP event CHANGED. That is one area I will need your feedback and help. Might be very helpful if I had your case scenario too and the FM code to see if it can be reused.
Also I didn't understand the reason for the new field flag?
xlips-zfield = 'X'. " new FLAG.
Did you mean for me to add a new field to LIPS to keep track of pick omit line items? And kind of use it like a flag and reset it once I am done processing or something like that?
In the TCode SWETYPV
BOR Object Type LIKP CHANGED WS12300004 No errors
BOR Object Type LIKP CREATE_IBDLV WS12300004 No errors
But not sure if that is the right way. I am trying to look up more documentation on this but not finding any.
Meetings within the department have definitely given a deeper view of the requirements....
While updating the pick omits delv. qty is the first step the next step is to rej the line item with a reason code. The discussions also revealed more points which were seeming to fit into this jigsaw with a little addition. The additional functionality is to consolidate all like items to one line item, prior to order going to warehouse for picking. This will aid in picking at the warehouse as well as in the customer invoice not reflecting more than one line item for the same material. In the case where the customer has truly ordered more than 1 case and additional 2 EA (eaches) the documents in SAP will still reflect 2 lines.
Regards -
Regarding bapi to issue PGI BAPI_OUTB_DELIVERY_CHANGE,sample code please
Can you send me the sample code of this bapiBAPI_OUTB_DELIVERY_CHANGE ,if any one have used this.it's urgent please..
Hi,
BAPI_OUTB_DELIVERY_CHANGE - BAPI for Change to Outbound Delivery
BAPI_INB_DELIVERY_SAVEREPLICA - Create Inbound Delivery
RV_DELIVERY_CREATE - Create Delivery
GN_DELIVERY_CREATE - Create an Outbound Delivery
Код:
FORM xkomdlgn_fill USING p_open_qty LIKE ekpo-menge
p_eindt LIKE eket-eindt
p_licha LIKE eket-licha
p_charg LIKE eket-charg
p_uzeit LIKE eket-uzeit.
STATICS: h_grkor LIKE lips-grkor,
h_bsmng LIKE ekpo-menge.
CLEAR t_xkomdlgn.
CHECK t_ekpo-uptyp NE '5' " Lot
AND t_ekpo-uptyp NE '6' " Display
AND t_ekpo-uptyp NE '7' " VK-Set
AND t_ekpo-uptyp NE 'H'. " GT-Stuckliste
IF t_ekpo-uebpo IS INITIAL AND t_ekpo-upvor CA '1I'.
CHECK 1 = 2.
ENDIF.
IF NOT ekko-lifnr IS INITIAL.
CALL FUNCTION 'VENDOR_MASTER_DATA_SELECT_12'
EXPORTING
pi_lifnr = ekko-lifnr
pi_ekorg = ekko-ekorg
IMPORTING
pe_lfm1 = lfm1
EXCEPTIONS
no_entry_found = 1
OTHERS = 2.
t_xkomdlgn-vsbed = lfm1-vsbed.
ELSE.
CLEAR t_xkomdlgn-vsbed.
ENDIF.
t_xkomdlgn-adrnr_li = ekko-adrnr.
t_xkomdlgn-lifnr = ekko-lifnr.
t_xkomdlgn-inco1 = ekko-inco1.
t_xkomdlgn-inco2 = ekko-inco2.
t_xkomdlgn-exnum = ekko-exnum.
t_xkomdlgn-bukrs_best = ekko-bukrs.
t_xkomdlgn-matnr = t_ekpo-matnr.
t_xkomdlgn-werks = t_ekpo-werks.
*IF STORAGE LOCATION IS MISSING APPEND
*FG01 As storage location
IF t_ekpo-lgort IS INITIAL .
t_xkomdlgn-lgort = 'FG01' .
ELSE .
t_xkomdlgn-lgort = t_ekpo-lgort.
ENDIF.
xkomdlgn-charg = ?
T_XKOMDLGN-VRKME = T_EKPO-MEINS.
t_xkomdlgn-meins = t_ekpo-lmein.
t_xkomdlgn-umvkz = t_ekpo-umrez.
t_xkomdlgn-umvkn = t_ekpo-umren.
IF t_ekpo-matnr EQ space.
t_xkomdlgn-meins = t_ekpo-meins.
t_xkomdlgn-umvkz = 1.
t_xkomdlgn-umvkn = 1.
ENDIF.
t_xkomdlgn-insmk = t_ekpo-insmk.
t_xkomdlgn-kzfme = t_ekpo-kzfme.
t_xkomdlgn-kzvbr = t_ekpo-kzvbr.
t_xkomdlgn-lfimg = p_open_qty.
t_xkomdlgn-lfdat = p_eindt.
t_xkomdlgn-lfuhr = p_uzeit.
xkomdlgn-vstel = ?
XKOMDLGN-VKORG = ?
xkomdlgn-vtweg = ?
XKOMDLGN-SPART = ?
t_xkomdlgn-traid = t_ekpo-traid."CARRIER CODE
t_xkomdlgn-lifex = t_ekpo-lifex."External ID
t_xkomdlgn-bolnr = t_ekpo-bolnr."Bill Of Lading
t_xkomdlgn-xabln = t_ekpo-xabln."Goods Receipt/Issue Slip Number
t_xkomdlgn-vgbel = t_ekpo-ebeln.
t_xkomdlgn-vgpos = t_ekpo-ebelp.
t_xkomdlgn-lfart = gf_dlv_type.
t_xkomdlgn-vgtyp = 'V'.
t_xkomdlgn-kzazu = 'X'.
t_xkomdlgn-knttp = t_ekpo-knttp.
t_xkomdlgn-sobkz = t_ekpo-sobkz.
SELECT * FROM t163g WHERE bstae EQ t_ekpo-bstae
AND ebtyp EQ gf_ebtyp.
EXIT.
ENDSELECT.
IF sy-subrc = 0.
prufen, ob lieferavis we-zuordnung hat (vorauss. fur we uber vl32)
und wepos prufen
if t163g-wezuo eq space or t_ekpo-wepos eq space.
t_xkomdlgn-nowab = 'X'.
ELSE.
CLEAR t_xkomdlgn-nowab.
ENDIF.
ENDIF.
IF t_ekpo-matnr IS INITIAL OR t_ekpo-pstyp = '6'.
t_xkomdlgn-posar = 'B'.
ENDIF.
t_xkomdlgn-ematn = t_ekpo-ematn.
t_xkomdlgn-mfrnr = t_ekpo-mfrnr.
t_xkomdlgn-mfrpn = t_ekpo-mfrpn.
t_xkomdlgn-emnfr = t_ekpo-emnfr.
t_xkomdlgn-cuobj = t_ekpo-cuobj.
t_xkomdlgn-uebto = t_ekpo-uebto.
t_xkomdlgn-untto = t_ekpo-untto.
t_xkomdlgn-uebtk = t_ekpo-uebtk.
t_xkomdlgn-lichn = p_licha.
t_xkomdlgn-charg = p_charg.
t_xkomdlgn-bwtar = t_ekpo-bwtar.
t_xkomdlgn-kdmat = t_ekpo-idnlf.
t_xkomdlgn-arktx = t_ekpo-txz01.
t_xkomdlgn-mfrgr = t_ekpo-mfrgr.
t_xkomdlgn-gewei = t_ekpo-gewei.
t_xkomdlgn-voleh = t_ekpo-voleh.
t_xkomdlgn-ntgew = t_ekpo-ntgew * t_xkomdlgn-lfimg.
t_xkomdlgn-brgew = t_ekpo-brgew * t_xkomdlgn-lfimg.
t_xkomdlgn-volum = t_ekpo-volum * t_xkomdlgn-lfimg.
t_xkomdlgn-ean11 = t_ekpo-ean11.
t_xkomdlgn-podrel = t163l-podrel.
t_xkomdlgn-aktnr = t_ekpo-aktnr.
t_xkomdlgn-abeln = t_ekpo-abeln.
t_xkomdlgn-abelp = t_ekpo-abelp.
xkomdlgn-ltssf = only SORT criteria IN vl31n
T_XKOMDLGN-AUREL = T_EKPO-AUREL.
t_xkomdlgn-idnlf = t_ekpo-idnlf.
t_xkomdlgn-matkl = t_ekpo-matkl.
leergut-stuckliste ubernehmen
clear t_xkomdlgn-grkor.
CLEAR t_xkomdlgn-kmpmg.
CLEAR t_xkomdlgn-uepos.
CLEAR t_xkomdlgn-uepvw. "549736
IF t_ekpo-upvor CA '3X'.
h_grkor = h_grkor + 1.
t_xkomdlgn-grkor = h_grkor.
h_bsmng = t_ekpo-menge.
ENDIF.
IF NOT t_ekpo-uebpo IS INITIAL AND
t_ekpo-uptyp CA '3X'.
t_xkomdlgn-uepvw = 'G'. "549736
t_xkomdlgn-uepos = t_ekpo-uebpo.
t_xkomdlgn-grkor = h_grkor.
IF h_bsmng NE 0.
t_xkomdlgn-kmpmg = t_ekpo-menge / h_bsmng.
ENDIF.
ENDIF.
IF t_ekpo-pstyp EQ '2'.
t_xkomdlgn-sobkz = 'K'.
ENDIF.
kontierungsfelder
if t_ekpo-sobkz eq 'E' or t_ekpo-sobkz eq 'Q'.
CALL FUNCTION 'MMPUR_EKKN_READ_EBELN_EBELP'
EXPORTING
pi_ebeln = t_ekpo-ebeln
pi_ebelp = t_ekpo-ebelp
pi_bypassing_buffer = pi_refresh_buffer
=
tables
pto_ekkn_po = xekkn
EXCEPTIONS
no_records_requested = 1
OTHERS = 2.
IF sy-subrc EQ 0.
READ TABLE xekkn INDEX 1.
t_xkomdlgn-ps_psp_pnr = xekkn-ps_psp_pnr.
t_xkomdlgn-vbelv = xekkn-vbeln.
t_xkomdlgn-posnv = xekkn-vbelp.
ENDIF.
ENDIF.
APPEND t_xkomdlgn.
ENDFORM. "xkomdlgn_fill
LOOP AT t_xkomdlgn.
set default parameter
t_xkomdlgn-vgtyp = 'V'.
t_xkomdlgn-kzazu = 'X'.
IF t_xkomdlgn-lfart IS INITIAL.
t_xkomdlgn-lfart = 'EL'.
ENDIF.
MODIFY t_xkomdlgn.
ENDLOOP.
SELECT SINGLE * FROM tvsa WHERE smart = xvbsk-smart.
IF sy-subrc 0.
Error Handling To be Done
Meldung ins Protokoll
ENDIF.
l_nrnr = tvsa-numki.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = l_nrnr
object = 'RV_SAMMG'
IMPORTING
number = xvbsk-sammg
EXCEPTIONS
OTHERS = 1.
IF sy-subrc 0.
error hadling tbd
meldung ins protokoll
endif.
CALL FUNCTION 'GN_DELIVERY_CREATE'
EXPORTING
no_commit = 'X'
vbsk_i = xvbsk
if_no_deque = 'X'
IF_MASS_READ_MAT_SW = 'X'
vbls_pos_rueck = 'X'
TABLES
xkomdlgn = t_xkomdlgn
xvbfs = xvbfs
xvbls = xvbls
xxlips = xlips.
get informatioin from ekpo table and fill T_xkomdlgn -
Hi, we have to add a new item to a delivery using ABAP. The function module BAPI_OUTB_DELIVERY_CHANGE has a parameter NEW_ITEM_DATA, but unfortunately no documentation about it. It Does anybody have an example on how to add a new item with this FM?
Thanks for your help, best regards, MartinHi,
I have used this way:
Loop at it_vbrp.
CLEAR: wa_hdata, wa_hcont, d_delivy, it_bapiret2.
wa_hdata-deliv_numb = it_vbrp-vgbel.
wa_hcont-deliv_numb = it_vbrp-vgbel.
wa_hcont-dlv_del = c_x.
d_delivy = it_vbrp-vgbel.
*---Deleting delivery doc (VL02)
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = wa_hdata
header_control = wa_hcont
delivery = d_delivy
TABLES
return = it_bapiret2.
*---commit
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
Endloop.
Thanks,
Krishna -
Purpose of BAPI_OUTB_DELIVERY_CHANGE
Hi All,
Can any one explain me why we need to use BAPI_OUTB_DELIVERY_CHANGE. My scenario is like, when partial picking done, need to update the Delivery document with that quantity, which is there in the Inbound Idoc. After that i found that they were using this BAPI in customized program, i could not able to understand why they are using this...can any one explain me.
Thanks
Jayasri.Ankit,
The BADI - SMOD_V50B0001 will be triggered if the Extension Tables are filled.
Method EXIT_SAPLV50I_010
Should do the trick.
Todd -
How to change the storage location using BAPI_OUTB_DELIVERY_CHANGE
Hi !
I want to do batch split in the delivery using BAPI_OUTB_DELIVERY_CHANGE.
Can anyone tell me how to pass/change the storage location of each batch item.
Is there any other BAPI that can do the batch split and populate the storage location also for the split batches?
Regards,
Firoz.Hi all,
BAPI_OUTB_DELIVERY_CHANGE can be used to do batch split and updating storage loaction against each item of an outbond delivey.
I have done that in the folllowing way:
1 > Firstly i have updated the storage location for each delivery item using 'BAPI_OUTB_DELIVERY_CHANGE' passing some mininal parameters.
Fetch the item details from LIPS table based on the outbound delivery and pass the corresponding fields to item_data, item_control and item_data_spl parameters and passed into intenal table li_lips.
Loop at li_lips inti lw_lips.
lw_item_data-deliv_numb = lw_lips-vbeln.
lw_item_data-deliv_item = lw_lips-posnr.
lw_item_data-material = lw_lips-matnr.
lw_item_data-fact_unit_nom = lw_lips-umvkz.
lw_item_data-fact_unit_denom = lw_lips-umvkn.
lw_item_data-base_uom = lw_lips-meins.
lw_item_data-sales_unit = lw_lips-vrkme.
lw_item_control-deliv_numb = lw_lips-vbeln.
lw_item_control-deliv_item = lw_lips-posnr.
lw_item_data_spl-deliv_numb = lw_lips-vbeln.
lw_item_data_spl-deliv_item = lw_lips-posnr.
lw_item_data_spl-pick_denial = 'X'.
lw_item_data_spl-stge_loc = v_lgort.
"(This would be your Storage Location which you want to be updated)
Appending work areas into internal table to pass as parameter
APPEND lw_item_data_lgort TO li_item_data_lgort .
Appending work areas into internal table to pass as parameter
APPEND lw_item_control_lgort TO li_item_control_lgort.
Appending work areas into internal table to pass as parameter
APPEND lw_item_data_spl_lgort TO li_item_data_spl_lgort.
endloop.
Passing the delivery no in the work area of header data
lw_header_data-deliv_numb = v_delivery_no.
lw_header_control-deliv_numb = v_delivery_no.
lw_header_tech_control-upd_ind = 'U'.
Calling BAPI to change the Storage location
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = lw_header_data
header_control = lw_header_control
delivery = v_delivery_no
techn_control = lw_header_tech_control
TABLES
item_data = li_item_data
item_control = li_item_control
return = li_return_change
item_data_spl = li_item_data_spl.
Calling BAPI to committ the task
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
2> Then i have used the same BAPI again 'BAPI_OUTB_DELIVERY_CHANGE' to do the batch split/update batch only(if required) and change the Actual Delivered Quantity.
Here you have to pass the same thing along with actual delivery qauntity and different batches to do batch split.
Here it is assumed that Batch numbers, actual delivered quantity are coming from an internal table i_lqua.
Looping through Internal table to get Bin details
LOOP AT i_lqua INTO w_lqua .
Clearing work area before use
CLEAR : lw_item_data, lw_lips, lw_item_control, lw_item_data_spl.
Reading table comparing metrial number
READ TABLE li_lips INTO lw_lips
WITH KEY matnr = w_lqua-matnr BINARY SEARCH.
If read is successful, passing values from table
IF sy-subrc EQ 0.
Passing the delivery details into Item level table
lw_item_data-deliv_numb = lw_lips-vbeln.
lw_item_data-deliv_item = lw_lips-posnr.
lw_item_data-material = lw_lips-matnr.
lw_item_data-batch = w_lqua-charg.
lw_item_data-dlv_qty = w_lqua-verme.
lw_item_data-dlv_qty_imunit = w_lqua-verme.
lw_item_data-base_uom = w_lqua-meins.
lw_item_data-hieraritem = lw_lips-posnr.
lw_item_data-usehieritm = 1.
lw_item_data-fact_unit_nom = lw_lips-umvkz.
lw_item_data-fact_unit_denom = lw_lips-umvkn.
lw_item_data-sales_unit = lw_lips-vrkme.
lw_item_control-deliv_numb = lw_lips-vbeln.
lw_item_control-deliv_item = lw_lips-posnr.
lw_item_control-chg_delqty = 'X'.
lw_item_data_spl-deliv_numb = lw_lips-vbeln.
lw_item_data_spl-deliv_item = lw_lips-posnr.
lw_item_data_spl-stge_loc = w_lqua-lgort.
lw_item_data_spl-pick_denial = 'X'
Appending work area into internal table to pass as parameter
APPEND lw_item_data TO li_item_data.
Appending work area into internal table to pass as parameter
APPEND lw_item_control TO li_item_control.
Appending work area into internal table to pass as parameter
APPEND lw_item_data_spl TO li_item_data_spl.
Clearing work areas after use
CLEAR : lw_item_data, w_lqua,lw_item_data_spl,lw_item_control,
lw_vbpok, lw_lips.
ENDIF.
ENDLOOP.
Passing the delivery no in the work area of header data
lw_header_data-deliv_numb = v_delivery_no.
lw_header_control-deliv_numb = v_delivery_no.
lw_header_tech_control-upd_ind = 'U'.
Calling BAPI to change the Batch/Batch-Split/Delivery Quantity
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = lw_header_data
header_control = lw_header_control
delivery = v_delivery_no
techn_control = lw_header_tech_control
TABLES
item_data = li_item_data
item_control = li_item_control
return = li_return_change
item_data_spl = li_item_data_spl.
Calling BAPI to committ the task
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
This is the only way which i found as better way to do the Batch split and updating storage location togetherly.
I hope this code will help you. -
Function Module BAPI_OUTB_DELIVERY_CHANGE missing SDABW
Our company has a business requirement to base shipping method on the weight of the shipment.
In order to achieve this, we group deliveries into a shipment to reach an aggregate weight.
We were using incoterms to determine if we would charge the customer for freight or not -- but we are getting away from this method and we want to use Special Processing Indicator (SDABW) to do this instead.
Our plan is when SDABW = Z003 and the weight threshhold is met, function module BAPI_OUTB_DELIVERY_CHANGE should change the delivery.
Our problem is that the field SDABW is not included in BAPI_OUTB_DELIVERY_CHANGE.
Does anyone know a way to add this to the FM? Or is there another FM that we could use?Check whether any of the includes FV50C002, LV05IFLV, L0VTRF00, L0VVTF00 could help you. Also take a look at OSS Note 606769 - XSI_GET_SERVICE_CD_SDABW and XSI_GET_SERICE_CD_LPRIO, which talks about couple of function modules.
Thanks, -
How to Use BAPI_OUTB_DELIVERY_CHANGE for Batch Split
Hi Experts, I have the follow delivery:
Item Material Deliv.Qty Un
10 739911 2 PQT
And I want to obtain this:
Item Material Deliv.Qty Un Batch
10 739911 0 PQT
900001 739911 1 PQT ZZ00060
900002 739911 1 PQT ZZ00061
But, after using the Bapi I obtained this:
Item Material Deliv.Qty Un Batch
10 739911 1,372 PQT
900001 739911 0,314 PQT ZZ00060
900002 739911 0,314 PQT ZZ00061
So as you can see the problem is with the "Deliv.Qty". I expected:
Item Deliv.Qty
10 0
900001 1
900002 1
But I obtained:
Item Deliv.Qty
10 1,372
900001 0,314
900002 0,314
The parameters that I am using in the Bapi are:
HEADER_DATA
DELIV_NUMB = 801174646
HEADER_CONTROL
DELIV_NUMB = 801174646
DELIVERY = 801174646
TECHN_CONTROL
UPD_IND = U
ITEM_DATA (three records):
DELIV_NUMB = 801174646
DELIV_ITEM = 000010
MATERIAL = 739911
FACT_UNIT_NOM = 1
FACT_UNIT_DENOM = 1
DELIV_NUMB = 801174646
DELIV_ITEM = 900001
MATERIAL = 739911
BATCH = ZZ00060
HIERARITEM = 000010
USEHIERITM = 1
DLV_QTY = 1
DLV_QTY_IMUNIT = 1
FACT_UNIT_NOM = 1
FACT_UNIT_DENOM = 1
DELIV_NUMB = 801174646
DELIV_ITEM = 900002
MATERIAL = 739911
BATCH = ZZ00061
HIERARITEM = 000010
USEHIERITM = 1
DLV_QTY = 1
DLV_QTY_IMUNIT = 1
FACT_UNIT_NOM = 1
FACT_UNIT_DENOM = 1
ITEM_CONTROL (three records):
DELIV_NUMB = 801174646
DELIV_ITEM = 000010
CHG_DELQTY = X
DELIV_NUMB = 801174646
DELIV_ITEM = 900001
CHG_DELQTY = X
DELIV_NUMB = 801174646
DELIV_ITEM = 900002
CHG_DELQTY = X
So I am missing something but I don't know what.
Can any one help me with this please?
PD: I have looked the following forums in order to use the Bapi:
How to Use BAPI_OUTB_DELIVERY_CHANGE for Batch Split
batch split using BAPI_OUTB_DELIVERY_CHANGE
Re: Help in BAPI_OUTB_DELIVERY_CHANGE(batch-split)
BAPI_OUTB_DELIVERY_CHANGE - Batch Splits don't work
Help for BAPI_OUTB_DELIVERY_CHANGEHey,
My code is for the inbound delivery but it should work the same.
Give this a try.
REPORT z_delivery_batch_split.
DATA:header_data LIKE bapiibdlvhdrchg,
header_control LIKE bapiibdlvhdrctrlchg,
delivery LIKE bapiibdlvhdrchg-deliv_numb,
ls_return LIKE bapiret2,
item_data TYPE TABLE OF bapiibdlvitemchg,
item_control TYPE TABLE OF bapiibdlvitemctrlchg,
ls_item_data LIKE bapiibdlvitemchg,
ls_item_control LIKE bapiibdlvitemctrlchg,
return TYPE TABLE OF bapiret2 WITH NON-UNIQUE KEY type.
header_data-deliv_numb = '1800005005'.
header_control-deliv_numb = '1800005005'.
delivery = '1800005005'.
ls_item_data-deliv_numb = '1800005005'.
ls_item_data-deliv_item = '900001'.
ls_item_data-material = '000000000020067722'.
PERFORM create_batch CHANGING ls_item_data-batch.
ls_item_data-hieraritem = '000010'.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = 80.
ls_item_data-dlv_qty_imunit = 80.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-sales_unit = 'EA'.
ls_item_data-base_uom = 'EA'.
APPEND ls_item_data TO item_data.
ls_item_data-deliv_numb = '1800005005'.
ls_item_data-deliv_item = '900002'.
ls_item_data-material = '000000000020067722'.
PERFORM create_batch CHANGING ls_item_data-batch.
ls_item_data-hieraritem = '000010'.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = 60.
ls_item_data-dlv_qty_imunit = 60.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-sales_unit = 'EA'.
ls_item_data-base_uom = 'EA'.
APPEND ls_item_data TO item_data.
ls_item_control-deliv_numb = '1800005005'.
ls_item_control-deliv_item = '900001'.
ls_item_control-chg_delqty = 'X'.
APPEND ls_item_control TO item_control.
ls_item_control-deliv_numb = '1800005005'.
ls_item_control-deliv_item = '900002'.
ls_item_control-chg_delqty = 'X'.
APPEND ls_item_control TO item_control.
break cgavin.
CALL FUNCTION 'BAPI_INB_DELIVERY_CHANGE'
EXPORTING
header_data = header_data
header_control = header_control
delivery = delivery
* TECHN_CONTROL = TECHN_CONTROL
TABLES
* HEADER_PARTNER = HEADER_PARTNER
* HEADER_PARTNER_ADDR = HEADER_PARTNER_ADDR
* HEADER_DEADLINES = HEADER_DEADLINES
item_data = item_data
item_control = item_control
* ITEM_SERIAL_NO = ITEM_SERIAL_NO
* EXTENSION1 = EXTENSION1
* EXTENSION2 = EXTENSION2
return = return
* TOKENREFERENCE = TOKENREFERENCE
* HANDLING_UNIT_HEADER = HANDLING_UNIT_HEADER
* HANDLING_UNIT_ITEM = HANDLING_UNIT_ITEM
* PARTIAL_GR_OBJECTS = PARTIAL_GR_OBJECTS
READ TABLE return
INTO ls_return
WITH TABLE KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number WITH ls_return-message_v1 ls_return-message_v2
ls_return-message_v3 ls_return-message_v4.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
break cgavin.
*& Form CREATE_BATCH
* text
* <--P_LS_ITEM_DATA_BATCH text
FORM create_batch CHANGING p_ls_item_data_batch.
DATA: ls_bncom TYPE bncom.
ls_bncom-matnr = ls_item_data-material.
ls_bncom-werks = 'C333'.
ls_bncom-lgort = '3000'.
SELECT SINGLE mtart
FROM mara
INTO ls_bncom-mtart
WHERE matnr = ls_bncom-matnr.
CALL FUNCTION 'VB_NEXT_BATCH_NUMBER'
EXPORTING
matnr = ls_bncom-matnr
werks = ls_bncom-werks
check_batch = 'X'
check_material = ''
message_when_auto = ' '
x_bncom = ls_bncom
lock_batch = ' '
IMPORTING
new_charg = p_ls_item_data_batch
EXCEPTIONS
no_material = 1
no_plant = 2
material_not_found = 3
plant_not_found = 4
no_batch_handling = 5
batch_exist = 6
no_number = 7
illegal_batch_number = 8
interval_not_found = 9
object_not_found = 10
interval_overflow = 11
error_automatic_batch_number = 12
cancelled = 13
automatic_batch_num_not_active = 14
OTHERS = 15.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDFORM. " CREATE_BATCH
Maybe you are looking for
-
Trying to move Acrobat 7.0 Standard (Version 7.0.9) to a new computer. found the website to download a new copy of the application. Downloaded and installed. When trying to start the application an error message immediately pops up - "The applicat
-
BPM 11g Process Hierarchy?
Hi, In the BPA Suite I can define a process hierachy by assigning a BPMN process diagram to a function like a subprocess. (How) can I do this in the BPM Suite 11g?
-
IPhoto won't import photos from my Canon EOS 20D
I can't get iPhoto to even recognize my camera. I have it plugged into the computer, turned on, then push the photo view button on the camera. It doesn't show up anywhere in iPhoto. Please help...
-
Photoshop CS5 - Image resize problem with move tool
Hi People Here's my problem When I try to resize an layer using the move tool (as opposed to the Free Transform tool), while I'm in the process of moving the scaling handles, the bounding box reflects my movement but the layer preview stays at it's o
-
Screen Flashes when opening lid after locked - T410s w/discrete -- Video of problem inside
My computer is set to password lock (in Windows 7) when I close the lid, but remain powered on. When I open the lid of the computer, the screen flashes around 10 times before it gives me the login screen. My bios is updated, my graphics are turned