Hi,
I am working with Manage Sales api to create new sale using VB.NET. The response log is displaying a note: "2 additional sales areas exist for organizational unit 102". Please see the code below, any help is appriciated.
'Create a Sale Dim oQSale As New ManageSales.ManageSalesOrderInClient oQSale.ClientCredentials.UserName.UserName = "XXXXXXXXX" oQSale.ClientCredentials.UserName.Password = "XXXXXX" oQSale.Open() Dim oreadsync As New ManageSales.SalesOrderMaintainRequestBundleMessage_sync Dim salesOrder As New ManageSales.SalesOrderMaintainRequest salesOrder.itemListCompleteTransmissionIndicator = True salesOrder.itemListCompleteTransmissionIndicatorSpecified = True salesOrder.businessTransactionDocumentReferenceListCompleteTransmissionIndicator = True salesOrder.businessTransactionDocumentReferenceListCompleteTransmissionIndicatorSpecified = True salesOrder.actionCode = ManageSales.ActionCode.Item01 salesOrder.ReleaseAllItemsToExecution = True salesOrder.ReleaseAllItemsToExecutionSpecified = True salesOrder.FinishFulfilmentProcessingOfAllItems = True salesOrder.FinishFulfilmentProcessingOfAllItemsSpecified = True 'Sales and Service Business Area Dim ssbusinessArea As New ManageSales.SalesOrderMaintainRequestSalesAndServiceBusinessArea Dim distributionchannelcode As New ManageSales.DistributionChannelCode distributionchannelcode.Value = "Z1" ssbusinessArea.DistributionChannelCode = distributionchannelcode salesOrder.SalesAndServiceBusinessArea = ssbusinessArea 'Sales unit Party Dim salesunitparty As New ManageSales.SalesOrderMaintainRequestPartyIDParty Dim salepartyId As New ManageSales.PartyID salepartyId.Value = "102" salesunitparty.PartyID = salepartyId salesOrder.SalesUnitParty = salesunitparty 'Account Party Dim accountparty As New ManageSales.SalesOrderMaintainRequestPartyParty Dim accountpartyId As New ManageSales.PartyID accountpartyId.Value = customer.SAPInternalId accountparty.PartyID = accountpartyId salesOrder.AccountParty = accountparty 'Employee Responsible Party Dim empResponsible As New ManageSales.SalesOrderMaintainRequestPartyIDParty Dim empPartyId As New ManageSales.PartyID empPartyId.Value = "112" empResponsible.PartyID = empPartyId salesOrder.EmployeeResponsibleParty = empResponsible 'Bill to party Dim billtoparty As New ManageSales.SalesOrderMaintainRequestPartyParty billtoparty.actionCode = ManageSales.ActionCode.Item04 billtoparty.actionCodeSpecified = True Dim billtopartyId As New ManageSales.PartyID billtopartyId.Value = customer.SAPInternalId billtoparty.PartyID = billtopartyId 'Bill to party address Dim billaddress As New ManageSales.SalesOrderMaintainRequestPartyAddress 'Bill address email Dim bemail As New ManageSales.SalesOrderMaintainRequestPartyAddressEmail Dim bemailuri As New ManageSales.EmailURI bemailuri.Value = order.EmailAddress bemail.URI = bemailuri Dim bemaillist = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressEmail) bemaillist.Add(bemail) billaddress.Email = bemaillist.ToArray 'Bill address postal address Dim bpostaaddress As New ManageSales.SalesOrderMaintainRequestPartyAddressPostalAddress bpostaaddress.CountryCode = GetCountryCode(order.BillingCountry) bpostaaddress.DistrictName = order.BillingLine2 bpostaaddress.CityName = order.BillingCity bpostaaddress.StreetPostalCode = order.BillingPostcode bpostaaddress.StreetPrefixName = order.BillingCompanyName bpostaaddress.StreetName = order.BillingLine1 bpostaaddress.HouseID = order.BillingAddress Dim bpostaladdressList = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressPostalAddress) bpostaladdressList.Add(bpostaaddress) billaddress.PostalAddress = bpostaladdressList.ToArray 'Bill address telephone Dim btelephone As New ManageSales.SalesOrderMaintainRequestPartyAddressTelephone btelephone.FormattedNumberDescription = order.PhoneNumber Dim btelephonelist = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressTelephone) btelephonelist.Add(btelephone) billaddress.Telephone = btelephonelist.ToArray billtoparty.Address = billaddress salesOrder.BillToParty = billtoparty 'recipient party Dim recipientparty As New ManageSales.SalesOrderMaintainRequestPartyParty recipientparty.actionCode = ManageSales.ActionCode.Item04 recipientparty.actionCodeSpecified = True Dim recipientpartyId As New ManageSales.PartyID recipientpartyId.Value = customer.SAPInternalId recipientparty.PartyID = recipientpartyId 'Bill to party address Dim deliveryaddress As New ManageSales.SalesOrderMaintainRequestPartyAddress 'Bill address email Dim demail As New ManageSales.SalesOrderMaintainRequestPartyAddressEmail Dim demailuri As New ManageSales.EmailURI demailuri.Value = order.EmailAddress demail.URI = demailuri Dim demaillist = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressEmail) demaillist.Add(demail) deliveryaddress.Email = demaillist.ToArray 'Bill address postal address Dim dpostaaddress As New ManageSales.SalesOrderMaintainRequestPartyAddressPostalAddress dpostaaddress.CountryCode = GetCountryCode(order.DeliveryCountry) dpostaaddress.DistrictName = order.DeliveryLine2 dpostaaddress.CityName = order.DeliveryCity dpostaaddress.StreetPostalCode = order.DeliveryPostcode dpostaaddress.StreetPrefixName = order.DeliveryCompanyName dpostaaddress.StreetName = order.DeliveryLine1 dpostaaddress.HouseID = order.DeliveryAddress Dim dpostaladdressList = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressPostalAddress) dpostaladdressList.Add(dpostaaddress) deliveryaddress.PostalAddress = dpostaladdressList.ToArray 'Bill address telephone Dim dtelephone As New ManageSales.SalesOrderMaintainRequestPartyAddressTelephone dtelephone.FormattedNumberDescription = order.PhoneNumber Dim dtelephonelist = New List(Of ManageSales.SalesOrderMaintainRequestPartyAddressTelephone) dtelephonelist.Add(dtelephone) deliveryaddress.Telephone = dtelephonelist.ToArray recipientparty.Address = deliveryaddress salesOrder.ProductRecipientParty = recipientparty 'Product Items Dim itemList = New List(Of ManageSales.SalesOrderMaintainRequestItem) Dim pitems As BusinessObjects.OrderItemListItemCollection = order.OrderItems Dim pitem As BusinessObjects.OrderItemListItem For Each pitem In pitems Dim item As New ManageSales.SalesOrderMaintainRequestItem item.itemScheduleLineListCompleteTransmissionIndicator = True item.itemScheduleLineListCompleteTransmissionIndicatorSpecified = True 'Item Product Internal Id Dim itemproduct As New ManageSales.SalesOrderMaintainRequestItemProduct Dim itemProductId As New ManageSales.ProductInternalID itemProductId.Value = pitem.ProductItemCode itemproduct.ProductInternalID = itemProductId item.ItemProduct = itemproduct 'Item Schedule Line Dim itemScheduleLine As New ManageSales.SalesOrderMaintainRequestItemScheduleLine Dim itemQty As New ManageSales.Quantity itemQty.unitCode = "EA" itemQty.Value = pitem.OrderItemQuantity itemScheduleLine.Quantity = itemQty Dim schedulelinelist = New List(Of ManageSales.SalesOrderMaintainRequestItemScheduleLine) schedulelinelist.Add(itemScheduleLine) item.ItemScheduleLine = schedulelinelist.ToArray 'Alteration text If Trim(pitem.OrderItemOptions) <> "" Then alterationCount = alterationCount + 1 Dim textcollection As New ManageSales.SalesOrderMaintainRequestTextCollection Dim textcollectiontext As New ManageSales.SalesOrderMaintainRequestTextCollectionText Dim texttypecode As New ManageSales.TextCollectionTextTypeCode texttypecode.Value = "10024" textcollectiontext.TypeCode = texttypecode textcollectiontext.ContentText = Trim(pitem.OrderItemOptions) Dim textlist = New List(Of ManageSales.SalesOrderMaintainRequestTextCollectionText) textlist.Add(textcollectiontext) textcollection.Text = textlist.ToArray item.ItemTextCollection = textcollection End If itemList.Add(item) Next 'Payment Control Dim paymentControl As New ManageSales.SalesOrderMaintainRequestPaymentControl paymentControl.creditCardPaymentListCompleteTransmissionIndicator = True paymentControl.creditCardPaymentListCompleteTransmissionIndicatorSpecified = True paymentControl.ResponsibleEmployeeID = "112" paymentControl.PaymentFormCode = "05" paymentControl.SinglePaymentIndicator = True paymentControl.SinglePaymentIndicatorSpecified = True Dim paymentnote As New ManageSales.MEDIUM_Note paymentnote.Value = "Transaction No.: " & order.ProtxVendorTxCode paymentControl.Note = paymentnote salesOrder.PaymentControl = paymentControl 'Text Collection Dim orderTextCollection As New ManageSales.SalesOrderMaintainRequestTextCollection Dim orderTextCollectionText As New ManageSales.SalesOrderMaintainRequestTextCollectionText Dim oTextTypecode As New ManageSales.TextCollectionTextTypeCode oTextTypecode.Value = "10011" orderTextCollectionText.TypeCode = oTextTypecode orderTextCollectionText.ContentText = "Transaction No.: " & order.ProtxVendorTxCode & ", Amount Paid: GBP " & FormatNumber(order.TotalOrderValue, 2) Dim otcTextList = New List(Of ManageSales.SalesOrderMaintainRequestTextCollectionText) otcTextList.Add(orderTextCollectionText) orderTextCollection.Text = otcTextList.ToArray salesOrder.TextCollection = orderTextCollection Dim salesOrderlist = New List(Of ManageSales.SalesOrderMaintainRequest) salesOrderlist.Add(salesOrder) oreadsync.SalesOrder = salesOrderlist.ToArray Dim resp = oQSale.MaintainBundle(oreadsync) If Not IsNothing(resp) Then If Not IsNothing(resp.SalesOrder) Then Trace.Write("Internal Id", resp.SalesOrder(0).ID.Value) Trace.Write("UUID", resp.SalesOrder(0).UUID.Value) End If If Not IsNothing(resp.Log) Then If Not IsNothing(resp.Log.Item.First) Then If Not IsNothing(resp.Log.Item.First.Note) Then Trace.Write("note", resp.Log.Item.First.Note.ToString) End If End If End If End If oQSale.Close()
Any help is appriciated!