Exits in Delivery Document
Hi Gurus,
I've a requirement as follows:
In Tcode VL01N I have to add a new custom field(which is been appended to LIKP table already) under Header part of the delivery i.e Shipping Tab. Can any one of you let me know how to accomplish this? TIA.
Hi,
By using Screen Enhancement it is possible. Search for any Screen BADI avilable for for VL01N.
Try this BADI 'LE_SHP_TAB_CUST_OVER' .
best regards,
surendarreddy.
Edited by: suredarreddy pulimamidi on Jun 25, 2008 11:00 AM
Similar Messages
-
User Exit - Include for delivery document?
Can anyone please tell me the user exit / include details that control creation / mofiication of outbound delivery document
I need to figure out a solution to create a split delivery if the country of origin of material is different in the stock
Say, if the SD order line item requires 76 units, and the stock has 50 units from one country and 26 from another, then it should result in split deliveries - each with line item of a unique country of originSM,
If the origin country is different (say US for line item 1 for Qty 75, and GB for line item 2, qty 25 wouldn't you have different plants & shipping points for each line item?
Scenario: At the time the sales order is created, there are 100 on a single line all for the same country (because as you say, it is not known during Order create). Then, when it comes time to create the delivery, you know that 75 come from US and 25 from GB. So, reduce qty on line item to 75 (US plant & Shipping Point), and create a new line item for 25 (GB Plant & shipping point). Then, your copy routines from Sales Order to Delivery would force you to split between different deliveries.
A sales order can have different shipping points - one for each line, but the delivery holds the shipping point at the header, so you cannot mix them. -
User exit for partner determination in delivery document
Hi,
Can some one suggest an user exit for partner determination in delivery document.
We have a scenario of excluding certain plants for few of the partner determinations in delivery document..
Please suggest
Regards
RavikumarHello Ravikumar,
Please ceck if these userexits help
Normally there are 2 userexits available in function kopierte_partner_pruefen:
- EXIT_SAPLV09A_003
- EXIT_SAPLV09A_004
Regards,
Raghavendra YN -
What is the user exit triggering at this time of saving delivery document
Hi All,
What is the user exit triggering at this time of saving delivery document
regards
Deekshitha.For the Delivery process following project are used, you can list out all exit
V02V0001
V02V0002
V02V0003
V02V0004
V50PSTAT
V50Q0001
V50R0001
V50R0002
V50R0004
V50S0001
V53C0001
V53C0002
V53W0001
VMDE0001
VMDE0002
VMDE0003
VMDE0004 -
User exit for add partner in delivery document when execute then tx-vl06
Hi,
I try to add new partners in delivery document when I execute the transaction vl06. For this, I use the user exit MV50AFZ1 where I implement the code that add new registers in table XVBPA. This solution doesn't work because it doesn't add new partners in delivery document.
CLEAR XVBPA.
XVBPA-MANDT = '010'.
XVBPA-VBELN = LIKP-VBELN.
XVBPA-POSNR = '000000'.
XVBPA-PARVW = 'ZC'.
XVBPA-PERNR = '00000045'.
XVBPA-ADRNR = '0000000000'.
XVBPA-LAND1 = 'ES'.
XVBPA-ADRDA = 'D'.
APPEND XVBPA.
CLEAR XVBPA.
XVBPA-MANDT = '010'.
XVBPA-VBELN = LIKP-VBELN.
XVBPA-POSNR = '000000'.
XVBPA-PARVW = 'SP'.
XVBPA-LIFNR = '0000000491'.
XVBPA-ADRNR = '0000083037'.
XVBPA-LAND1 = 'ES'.
XVBPA-ADRDA = 'D'.
APPEND XVBPA.
Please, anybody knows others solutions.
Thanks for your help.
Xevi G.Hi Ram Ki,
It doesn't work. When I execute the transaction vl06g, the flow doesn't pass for this user exit.
Thanks for your comment.
XeviG. -
For a stock transfer invoice, dellivery document cancelled without cancelling the excise invoice. Is there any solution to prevent from cancelling the delivery document without cancelling the excise invoice
Hi,
I think you can still cancel the excise document.
However, if you need a check here, you need to put the same through a user exit at Delivery change/delete level. Take help of an ABAPer for the same.
Regards,
Peeyoosh. -
Delivery document change after PGI ?
Hi All,
Is any way can I change the value of the field of "Ext.delivery" in delivery document(Header-->Administration) after PGI and billing process. And the most important thing I have to mention: it was closed in previous period. Somebody can help on this issue would be appreciated.
Thanks.
mlaiHi,
You can use the user exit MV45AFZ1 sub routine FORM USEREXIT_SAVE_DOCUMENT.
Here write a small piece of code.
if LIKP-LIFEX eq '' .
Message'External Delivery Number is not Maintained' type 'E' .
endif .
I hope this will help you to validate before save the document.
Regards,
Murali -
Availability check on storages in sales order and delivery documents
Hi all,
I'm verifying if it's possible to find a standard or a custom solution for this type of problem:
I have a scenario in which there are more storages relevant for MRP (ex. 01, 02, 03, 04), and, in if I check availability in sales order or delivery (using checking rules "A" or "B") with setting which considering storages location inspection in availability check control, system check if there's stock available on all these storages.
I'm trying to verify if it's possible to consider only some on these storages (ex. 01 and 03 only) in sales order and delivery documents availablity check.
I know that in sales order storage location field is normally filled only using exit, but i don't know if it's possible to do, using a user exit, check availability considering only some storages and not all. At delivery level i have tried to use stock strategy, but this functionality don't have consequences on availability check, also if it's relevant during good issue phase.
Any suggestion will be appreciated.
Regards
GianpaoloHi Gianpaolo,
We had some issues with availability check on a Customer Site.
I don't remember right now if we had to exclude storage locations from MRP to take them out from ATP, but I guess Shiva is 100% correct.
At the end, what was done was to always "force" a unique storage location in the sales order item, which will be the storage location used for shipping of the delivery of course.
If you use WM in your plant, then you will have no problem in having a unique storage location, so no problem.
Anyway you are correct in your analysis, if the Storage location is not informed in the sales order item, then all the plant stock is taken in account for ATP.
Best Regards,
Franck
Freelance Logistics SAP Consultant -
In SD i am looking to add some custom fields to the delivery document.
In SD i am looking to add some custom fields to the delivery document. can any one help me out.
hi,
u have get the access key for the program with respective to the delivery document & user exit has has to done.
This is job of abaper
regards,
Arun prasad -
How to control the status of EDI message in delivery document
Hello:
We use user exit:EXIT_SAPLV56K_001 in function:IDOC_OUTPUT_Delivery to block the IDOC generation if delivery is blocked in GTS system.The IDOC generation can be blocked successfully by this user exit but the EDI message type will still have the status of "successfully processed" in the delivery doucment after IDOC generation is prevented.So user have to manually repeat the EDI Message type so that this EDI message type can be retriggerred by the background job of RSNAST00.
I am wondering if the EDI message in the delivery document can have the status of "not processed" even after IDOC generation is prevented.
BR
ThanksDid you raise any exception like ERROR_MESSAGE_RECEIVED from the exit when the delivery is blocked?
The most important is the RSNASTED should get some exception to set RC = 4 (Non-zero). Only in that case, the EDI message type will go to error (i.e. VSTAT = 2) otherwise, by-default the RC = 0 unless we lead it to set to non-zero. Unless u make VSTAT = 2, you can't process it thru' RSNAST00 or better RSNAST0F for reprocessing the messages that go to error. -
Create delivery document for line item 5 only manually
Hi Sap Experts,
We have scenario, we have created sales order with 10 line items while creating delivery we don’t want to show all the 10 line item to delivery creator (creating delivery manually).
We will send him mail saying that create delivery document for line item 5 and we will provide him material number and delivery date and shipping point with sales order number.
We don’t want to use partial delivery option that split the delivery and we don’t want to use VL10C tcode also.
What are options we have and how to customize this scenario?
Kindly suggest.
Regards,
KotliCan you be clear in your requirement?
One requirement is user should not select line items other than the one instructed to them
The other requirement is delivery split should happen based on item category
If your requirement is first one, you need to go with user exit USEREXIT_MOVE_FIELD_TO_LIPS in include MV50AFZ1 but I am not sure, on what logic, coding to be included in this exit. If your requirement is second one, then just try in your system and share the outcome how system is functioning. You will come to know how standard SAP works.
G. Lakshmipathi -
Credit block in delivery document (not in posting goods issue)
Good afternoon!
When I try to deliver an sales order with exceeded credit limit, the following occurs:
I enter in tcode VL01N, input the order and press enter, then the system issues a warning "Credit user check 1 unsuccessful" because some condition in the user exit LVKMPFZ1 was not satisfied. The problem is that at this point, no document has been sent to VKM1, and neither when I save the delivery.
It is only sent when I enter in the same delivery again and save it one more time, which is a undesireable behavior. Important: the post goods issue doesn´t work at all (which is correct).
Is there any way of sending the delivery document to the VKM1 when I save delivery document in the first time?
Best Regards,
Adriano CardosoGood afternoon!
When I try to deliver an sales order with exceeded credit limit, the following occurs:
I enter in tcode VL01N, input the order and press enter, then the system issues a warning "Credit user check 1 unsuccessful" because some condition in the user exit LVKMPFZ1 was not satisfied. The problem is that at this point, no document has been sent to VKM1, and neither when I save the delivery.
It is only sent when I enter in the same delivery again and save it one more time, which is a undesireable behavior. Important: the post goods issue doesn´t work at all (which is correct).
Is there any way of sending the delivery document to the VKM1 when I save delivery document in the first time?
Best Regards,
Adriano Cardoso -
DIAPI posting Delivery Document with Serial Numbers SP1
Release 2005A, SP1 PL4 seems to have broken code that worked with SP00. When trying to create a Delivery Document that contains Serial Numbers, an error is generated: Error -1, General Error. When adding a delievery document which does not contain serial numbers, the document adds successfully.
The following code loops through a recordset to create documents, add expenses and add serial numbers when appropriate. Is this a new 'feature' or can we make a coding change to eliminate this error?
Sample code:
Try
oSalesOrder = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
RecSet = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet2 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet3 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet4 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet5 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet6 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
'-- Select Documents to process and loop through recordset
lsSQL = "SELECT DocEntry FROM DeliveryTable WHERE ProcessResult IS NULL Group by DocEntry"
RecSet.DoQuery(lsSQL)
While Not RecSet.EoF
oSalesOrder.GetByKey(RecSet.Fields.Item(0).Value)
If bDocuments(piCompany).DelDraft = False Then
oDelivery = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDeliveryNotes)
Else
oDelivery = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts)
End If
oDelivery.CardCode = oSalesOrder.CardCode
oDelivery.Comments = "Based On Sales Order " & oSalesOrder.DocNum & "."
oDelivery.DocDate = Today
oDelivery.ContactPersonCode = oSalesOrder.ContactPersonCode
oDelivery.DocCurrency = oSalesOrder.DocCurrency
oDelivery.DocDueDate = Today
If bDocuments(piCompany).DelDraft = True Then
oDelivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
End If
'-- Handle Expenses for Document
Dim ExpenseLoop As Integer
Dim ExpenseCount As Integer = 0
For ExpenseLoop = oSalesOrder.Expenses.Count - 1 To 0 Step -1
ExpenseCount += 1
'-- Create new Expense if needed
If ExpenseCount > oDelivery.Expenses.Count Then
oDelivery.Expenses.Add()
End If
oSalesOrder.Expenses.SetCurrentLine(ExpenseLoop)
'-- Copy all non-readonly properties
If oSalesOrder.Expenses.LineTotal > 0 Then
oDelivery.Expenses.BaseDocEntry = oSalesOrder.Expenses.BaseDocEntry
oDelivery.Expenses.BaseDocLine = oSalesOrder.Expenses.BaseDocLine
oDelivery.Expenses.BaseDocType = oSalesOrder.Expenses.BaseDocType
oDelivery.Expenses.DeductibleTaxSum = oSalesOrder.Expenses.DeductibleTaxSum
oDelivery.Expenses.DistributionMethod = oSalesOrder.Expenses.DistributionMethod
oDelivery.Expenses.ExpenseCode = oSalesOrder.Expenses.ExpenseCode
oDelivery.Expenses.LineTotal = oSalesOrder.Expenses.LineTotal
oDelivery.Expenses.Remarks = oSalesOrder.Expenses.Remarks
oDelivery.Expenses.TaxCode = oSalesOrder.Expenses.TaxCode
oDelivery.Expenses.VatGroup = oSalesOrder.Expenses.VatGroup
End If
Next ExpenseLoop
Dim i As Integer = 0
Dim liMinRef As Integer = -1
For x = 0 To oSalesOrder.Lines.Count - 1
lsSQL = "SELECT ISNULL(MIN(CAST(LineRef as int)),999999) as MinLineRef FROM DeliveryTable WHERE DocEntry = " & RecSet.Fields.Item(0).Value & " AND CAST(LineRef as int) > " & liMinRef
RecSet5.DoQuery(lsSQL)
If Not RecSet5.EoF Then
'-- It's possible that the DeliveryTable has less records then the RDR1 table - if that's the case
'-- we may be at the end, so set the liMinRef field to something out of range
liMinRef = RecSet5.Fields.Item(0).Value
End If
'-- get line items for each document
lsSQL = "Select * from DeliveryTable WHERE DocEntry = " & RecSet.Fields.Item(0).Value & " AND LineRef = " & x & " AND ProcessResult IS Null"
RecSet2.DoQuery(lsSQL)
RecSet2.MoveFirst()
While Not RecSet2.EoF
'-- We need to walk through the SO to find the item that we are receiving based on the LineNum
Dim liCurrentLine As Integer = x
Dim lbFound As Boolean = False
While liCurrentLine <= (oSalesOrder.Lines.Count - 1)
'-- We need to get the PO Line number (x is NOT the LineRef)
oSalesOrder.Lines.SetCurrentLine(liCurrentLine)
If oSalesOrder.Lines.LineNum = liMinRef Then
lbFound = True
Exit While
End If
liCurrentLine += 1
End While
If lbFound Then
i += 1
If i > oDelivery.Lines.Count Then
oDelivery.Lines.Add()
End If
oDelivery.Lines.BaseEntry = oSalesOrder.DocEntry
oDelivery.Lines.Quantity = RecSet2.Fields.Item(6).Value
oDelivery.Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
oDelivery.Lines.LineTotal = oSalesOrder.Lines.LineTotal * (oDelivery.Lines.Quantity / oSalesOrder.Lines.Quantity)
oDelivery.Lines.UserFields.Fields.Item("U_WhseLoc").Value = RecSet2.Fields.Item(8).Value
oDelivery.Lines.AccountCode = oSalesOrder.Lines.AccountCode
oDelivery.Lines.Address = oSalesOrder.Lines.Address
oDelivery.Lines.Currency = oSalesOrder.Lines.Currency
oDelivery.Lines.ItemCode = oSalesOrder.Lines.ItemCode
oDelivery.Lines.BaseLine = liMinRef
oDelivery.Lines.ItemDescription = oSalesOrder.Lines.ItemDescription
oDelivery.Lines.WarehouseCode = oSalesOrder.Lines.WarehouseCode
lsUserID = RecSet2.Fields.Item("UserID").Value
'-- manage serial numbers
j = -1
lsSQL = "Select * from DeliverySerial WHERE DocEntry = " & oDelivery.Lines.BaseEntry & " AND LineRef = " & liMinRef
lsSQL += " AND WIPLineRef = " & RecSet2.Fields.Item("WIPLineRef").Value
RecSet3.DoQuery(lsSQL)
While Not RecSet3.EoF
'-- get the next SystemSerialNumber for the Inventory Item
lsSQL = "EXEC " & gsDB(piCompany) & "xspGetSysSerial " & sparm(oDelivery.Lines.ItemCode) & ", " & sparm(RecSet3.Fields.Item("LotNo").Value)
lsSQL += ", " & sparm(RecSet3.Fields.Item("ManSerNo").Value) & ", " & sparm(RecSet3.Fields.Item("IntSerNo").Value)
lsSQL += ", " & RecSet3.Fields.Item("QTY").Value & ", " & sparm(oDelivery.Lines.WarehouseCode) & ", " & sparm(RecSet2.Fields.Item(8).Value)
RecSet4.DoQuery(lsSQL)
j += 1
If j + 1 > oDelivery.Lines.SerialNumbers.Count Then
oDelivery.Lines.SerialNumbers.Add()
End If
oDelivery.Lines.SerialNumbers.SetCurrentLine(j)
oDelivery.Lines.SerialNumbers.BatchID = RecSet3.Fields.Item("LotNo").Value
oDelivery.Lines.SerialNumbers.ManufacturerSerialNumber = RecSet3.Fields.Item("ManSerNo").Value
oDelivery.Lines.SerialNumbers.InternalSerialNumber = RecSet3.Fields.Item("IntSerNo").Value
oDelivery.Lines.SerialNumbers.SystemSerialNumber = RecSet4.Fields.Item(0).Value
oDelivery.Lines.SerialNumbers.BaseLineNumber = oDelivery.Lines.BaseLine
RecSet3.MoveNext()
End While
'-- 'end manage serial numbers
End If
RecSet2.MoveNext()
End While
Next x
'-- now add object to SAP
If 0 <> oDelivery.Add() Then
Dim liError As Long
Dim lsError As String
Call oCompany(piCompany).GetLastError(liError, lsError)
'-- write error code to table - Delivery document creation was unsuccessful
lsSQL = "Update DeliveryTable SET ProcessResult = " & liError & ", ProcessDate = GetDate() WHERE DocEntry = " & oSalesOrder.DocEntry & " AND ProcessResult Is Null"
RecSet2.DoQuery(lsSQL)
lsuWriteEvent("AR Delivery", bDocuments(piCompany).DelDraft, oSalesOrder.DocEntry, liError, lsError, piCompany)
Else
lsuWriteEvent("AR Delivery", bDocuments(piCompany).DelDraft, oSalesOrder.DocEntry, 0, "Success", piCompany)
End If
RecSet.MoveNext()
End While
Catch
LogErrorMessage(Err.Description)
Finally
If Not RecSet Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet)
End If
If Not RecSet2 Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet2)
End If
If Not RecSet3 Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet3)
End If
If Not RecSet4 Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet4)
End If
If Not RecSet5 Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet5)
End If
If Not RecSet6 Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet6)
End If
If Not oSalesOrder Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(oSalesOrder)
End If
If Not oDelivery Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDelivery)
End If
GC.WaitForPendingFinalizers()
End TryWe have narrowed down the issue to this:
If you are just adding a delivery document with serial numbers, the DIAPI works OK. If you are adding a delivery document which is based upon a sales order and add the 3 lines that reference it:
oDelivery.Lines.BaseEntry = oSalesOrder.DocEntry
oDelivery.Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
oDelivery.Lines.BaseLine = liMinRef
then you receive a error of -1, General error. This is functionality that did work in 2004 and 2005 SP00. I believe this is a bug. -
Customer Exits for Delivery & Goods Receipt - Very Urgent
Hi Everyone,
We have got a requirement where we have to trigger a screen exit/badi at the time of posting the material document in transaction MIGO or delivery document in VL01N, can any one tell me the right exit as this is very urgent.
Rgds,Hi,
Will you elaborate on this, I cant use call screen statement as this gives syntax errors, I have to necessarily use 'leave to' or 'call transaction', however using this above mentioned I wont have any scope for the variables which were there in the method of the BADI????,
Any help would be very much rewarded.
Rgds, -
Hi..
Is there any way to check the status of delivery documents.
I want some delivery documents whose status is <b>'Archived'</b>.Hello Rammohan,
If the delivery is archived already, than it was deleted from the data base. So, that no entries in LIKP or other delivery tables exit for this delivery anymore. You can review the delivery from the archive using the transaction SARI or also using the transaction VL03N (display the delivery) (you will get the message, that the dispayed delivery is archived already).
Best regards,
Lela
Maybe you are looking for
-
I have a Power Mac G5 which, until recently, has been sitting around collecting dust as a dead computer for quite a while. I could press the power button and it would click and the light would come on but as soon as I released the power button the li
-
InDesign Object Model Not in OM Viewer
I have the trial of InDesign CS4 installed, along with the scripting componetns and Adobe bridge. In the ES Toolkit object model viewer I have four options in the dropdown: Core JavaScript Classes ScriptUI Classes Adobe Bridge CS4 Object Model Adobe
-
E72-can't get a list of suggested email addresses
Hello Nokia Support, Since I upgraded to firmware 22.007 I can't get a list of suggested email addresses in the "TO" field from my contacts addressbook. I've tried to hard reset, and also tried to overwriting of the firmware at the dealer but no help
-
When trying to install adobe air I get the following message: This application requires Adobe AIR to function. Please download the latest version of the runtime from http://www.adobe.com/go/getair, then launch the application again. I have tried unin
-
Firefox will not download .pdf files -- IE doesn't present the same problem
When attempting to "load" .pdf files, Firefox appears to go through the motions and the status line merely shows "Done." In order to read the .pdf file, I need to resort to IE <grrr>