cancel
Showing results for 
Search instead for 
Did you mean: 

SP01: DI error -5002 Invalid Total ORDR.DocTotal

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

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.

Former Member
0 Kudos

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

Former Member
0 Kudos

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)

jaccomoolenaar
Participant
0 Kudos

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

Former Member
0 Kudos

Answers to questions: 1. Yes (I think)

2. No it is not based on the Quote.