on 04-27-2006 12:33 AM
Hi All,
i'm getting a strange error.
i'm adding a sales order via DI.
when the code is executed via the .net debugger it works great.
when i create an installer and install the Addon i receive the error:
-5002 Invalid Total [ORDR.DocTotal]
do someone ever had this kind of error?
btw i'm using SAPB12005A SP1 PL2
thanks
Moty Moshin
I fixed this issue.
I ended up commenting out everything except the following:
oNewOrder.CardCode = strBPCode
oNewOrder.Series = strSeriesCode
oNewOrder.NumAtCard = strVendorRefNo
oNewOrder.Project = strProjectCode
oNewOrder.ShipToCode = strShipToCode
oNewOrder.DocDate = strDueDate
oNewOrder.DocDueDate = strDocDueDate
oNewOrder.DocCurrency = strCurrency
oNewOrder.ContactPersonCode = strContactPer
'oNewOrder.Comments = strComments
oNewOrder.PaymentGroupCode = strPaymentTerms
oNewOrder.PaymentMethod = strPaymentMethod
'Currently not available thru the DI/UI
'oNewOrder.header = OQUTHeader
'oNewOrder.Footer = OQUTFooter
oNewOrder.Lines.SetCurrentLine(0)
'Line item fields that are visible on the sales order form
oNewOrder.Lines.ItemCode = currSalesFormLines.ItemCode 'As String '1 'ItemCode
oNewOrder.Lines.ItemDescription = currSalesFormLines.ItemDesc 'As String '1 'ItemDesc
oNewOrder.Lines.WarehouseCode = currSalesFormLines.WhsCode 'As String '24 'WhsCode
oNewOrder.Lines.Quantity = currSalesFormLines.Quantity 'As Double '11 'Quantity
oNewOrder.Lines.UnitPrice = currSalesFormLines.UnitPrice 'As Double '14 'UnitPrc
oNewOrder.Lines.DiscountPercent = currSalesFormLines.DiscPct 'As Double '14 'DiscPct
oNewOrder.Lines.Price = currSalesFormLines.Price 'As Double '17 'Price
oNewOrder.Lines.TaxCode = "0"
oNewOrder.Lines.LineTotal = (currSalesFormLines.Quantity * currSalesFormLines.Price)
I can't take the the credit for the solution.
It turns out the Order to Invoice DI sample adds an order in the same way. I reviewed the example, mimiced the example in my shoddy code and it worked. Go Figure.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The problem is the *explitive* currency. If I use a BP with a Local currency the DI is able to add a sales order. If I use a BP with a BP currency I get the invalid total -5002 error.
I tried the ordr.doccur, and I still get the error.
I guess I will try the ordr.docrate, and rdr1.currency and rdr1.rate.
Any idea why I only get the error after I compile the ADDON?
TANX
JW
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is the code:
oNewOrder = B1Connections.diCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
'B1Connections.diCompany.StartTransaction()
Dim LinesAdded As Integer = 0
For i = 1 To intDupAmount
Try
' this loop adds the different items to the Delivery object
oNewOrder.CardCode = strBPCode
oNewOrder.Series = strSeriesCode
oNewOrder.NumAtCard = strVendorRefNo
oNewOrder.Project = strProjectCode
oNewOrder.ShipToCode = strShipToCode
oNewOrder.DocDueDate = strDocDueDate
oNewOrder.Comments = strComments
oNewOrder.PaymentGroupCode = strPaymentTerms
oNewOrder.PaymentMethod = strPaymentMethod
'Currently not available thru the DI/UI
'oNewOrder.header = OQUTHeader
'oNewOrder.Footer = OQUTFooter
Catch ex As Exception
B1Connections.theAppl.MessageBox("In For Step 1")
End Try
' -
Try
oNewOrder.Lines.SetCurrentLine(0)
'Line item fields that are visible on the sales order form
oNewOrder.Lines.ItemCode = currSalesFormLines.ItemCode 'As String '1 'ItemCode
oNewOrder.Lines.ItemDescription = currSalesFormLines.ItemDesc 'As String '1 'ItemDesc
oNewOrder.Lines.WarehouseCode = currSalesFormLines.WhsCode 'As String '24 'WhsCode
oNewOrder.Lines.UnitPrice = currSalesFormLines.UnitPrice 'As Double '14 'UnitPrc
oNewOrder.Lines.DiscountPercent = currSalesFormLines.DiscPct 'As Double '14 'DiscPct
oNewOrder.Lines.Price = currSalesFormLines.Price 'As Double '17 'Price
oNewOrder.Lines.Quantity = currSalesFormLines.Quantity 'As Double '11 'Quantity
'Line item fields that are not visible on the sales order form
oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_EstQty).Value = currSalesFormLines.EstQty 'As Double 'U_XX_EstQty
'oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_STCC).Value = currSalesFormLines.STCC.ToString 'As Double 'U_XX_STCC
'oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_HSC).Value = currSalesFormLines.HSC 'As String 'U_XX_HSC
'oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_CVal).Value = currSalesFormLines.CVal.ToString 'As Double 'U_XX_CVal
oNewOrder.Lines.TotalLc = currSalesFormLines.TotalLc 'As Double '21 'TotalLc
oNewOrder.Lines.Total()
oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_QtyMT).Value = currSalesFormLines.QtyMT 'As Double 'U_XX_QtyMT
oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_QtyST).Value = currSalesFormLines.QtyST 'As Double 'U_XX_QtyST
'oNewOrder.Lines.UserFields.Fields.Item("U_" + cUDinit.udfMdL_DGood).Value = currSalesFormLines.DGood.ToString 'As String 'U_XX_DGood
Catch ex As Exception
B1Connections.theAppl.MessageBox("In For Step 2 - Lines")
End Try
Try
'Header level UDF's
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_ConNum).Value = cLastUdfMD.ConNum
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_ConTyp).Value = cLastUdfMD.ConTyp
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_ConSta).Value = cLastUdfMD.ConSta
If cLastUdfMD.RefCon <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_RefCon).Value = cLastUdfMD.RefCon
End If
'Get Release number
'B1Connections.theAppl.MessageBox("Before Add Msg 2")
lngNextRelease = cReleaseNumber.GetNextNum(cUDinit.udoRn_ReleaseNumber, strSeries)
If lngNextRelease = -1 Then
B1Connections.diCompany.EndTransaction(BoWfTransOpt.wf_RollBack)
retVal = cReleaseNumber.UnLockNumbering(cUDinit.udoRn_ReleaseNumber, strSeries)
B1Connections.theAppl.MessageBox("Error - Cannot Get Next Number from NNM1")
Exit Sub
End If
releaseNumbers.Add(lngNextRelease)
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_RelNum).Value = lngNextRelease.ToString 'intRelNum
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_ShDtSt).Value = cLastUdfMD.ShDtSt
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_ShDtEn).Value = cLastUdfMD.ShDtEn
If cLastUdfMD.StrDt <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_StrDt).Value = cLastUdfMD.StrDt
End If
If cLastUdfMD.StrAmt <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_StrAmt).Value = cLastUdfMD.StrAmt
End If
If cLastUdfMD.AcrAmt <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_AcrAmt).Value = cLastUdfMD.AcrAmt
End If
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_CQTY).Value = cLastUdfMD.CQTY
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_LN).Value = cLastUdfMD.LN
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_STerms).Value = cLastUdfMD.STerms
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_Mode).Value = cLastUdfMD.Mode
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_Carrier).Value = cLastUdfMD.Carrier
If cLastUdfMD.PortEntry <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_PtEnt).Value = cLastUdfMD.PortEntry
End If
If cLastUdfMD.CBrok <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_CBrok).Value = cLastUdfMD.CBrok
End If
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_Fterm).Value = cLastUdfMD.FTerms
If cLastUdfMD.PriveEq <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_PrivEq).Value = cLastUdfMD.PriveEq
End If
If cLastUdfMD.Route <> "" Then
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_Route).Value = cLastUdfMD.Route
End If
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_TF).Value = cLastUdfMD.TF
'oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_Season).Value = cLastUdfMD.Season
'oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_STCity).Value = cLastUdfMD.STCity
'oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_STCtr).Value = cLastUdfMD.STCtr
'oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_STSt).Value = cLastUdfMD.STSt
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_TAmtIn).Value = cLastUdfMD.TAmtIn
oNewOrder.UserFields.Fields.Item("U_" + cUDinit.udfMdH_TAmtOr).Value = cLastUdfMD.TAmtOr
Catch ex As Exception
B1Connections.theAppl.MessageBox("In For Step 3 - Header Level UDF")
End Try
' add sales order current quntity () from total (U_XX_TQTYR)
' add sales order current dollar value() from total (U_XX_TAMTR)
' Try to add the sales order object to the database
'B1Connections.theAppl.MessageBox("Before Add Msg 3")
lRetCode = oNewOrder.Add()
'B1Connections.theAppl.MessageBox("Before Add Msg 3.1")
If lRetCode <> 0 Then ' If the addition failed
B1Connections.diCompany.GetLastError(lErrCode, sErrMsg)
B1Connections.theAppl.MessageBox("Error - " & lErrCode & sErrMsg)
' B1Connections.diCompany.EndTransaction(BoWfTransOpt.wf_RollBack)
Try
B1Connections.diCompany.EndTransaction(BoWfTransOpt.wf_RollBack)
Catch ex As Exception
B1Connections.theAppl.MessageBox("Error - Add Error:" & lRetCode & " - " & ex.Message)
End Try
retVal = cReleaseNumber.UnLockNumbering(cUDinit.udoRn_ReleaseNumber, strSeries)
'B1Connections.diCompany.GetLastError(lErrCode, sErrMsg)
'B1Connections.theAppl.MessageBox("Error - " & lErrCode & sErrMsg)
Exit Sub
Else
End If
'----
LinesAdded = LinesAdded + 1
' init the order object
oNewOrder = B1Connections.diCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
Next i
'B1Connections.diCompany.EndTransaction(BoWfTransOpt.wf_Commit)
retVal = cReleaseNumber.UnLockNumbering(cUDinit.udoRn_ReleaseNumber, strSeries)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Moty,
Couple of questions:
1. Do you receive the error for all orders you try to add (with installer version)?
2. Do you base your order on a quotation?
3. Can you post your code here so we can have a closer look?
Regards,
Jacco
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.