vCompany.Server = "MISERVIDOR"
vCompany.CompanyDB = "TESTSAP"
vCompany.UserName = "clavesap"
vCompany.Password = "123123"
Dim ret As Integer = vCompany.Connect()
Dim errMsg As String = vCompany.GetLastErrorDescription()
Dim ErrNo As Integer = vCompany.GetLastErrorCode()
If (ErrNo <> 0) Then
Return vCompany
End If
'vCompany.Disconnect()
Return vCompany
Catch ex As Exception
Return vCompany
End Try
oOrder.CardCode = oVenta.CardCode
oOrder.Comments = "Comentario de prueba"
oOrder.DocDate = Now()
oOrder.DocDueDate = Now()
oOrder.DocTotal = 10
oOrder.Lines.ItemCode = "ART-123"
oOrder.Lines.UnitPrice = 10
oOrder.Lines.PriceAfterVAT = 11.6
oOrder.Lines.Quantity = 1
oOrder.Lines.DiscountPercent = 0.1
'oOrder.Lines.Currency = linea.Currency
oOrder.Lines.Add()
'Para crear la OV
RetVal = oOrder.Add
If RetVal <> 0 Then
oCompany.GetLastError(ErrCode, ErrMsg)
MsgBox(ErrCode & " " & ErrMsg)
Else
MsgBox(“NUEVA ORDEN DE VENTA CREADA”)
End If
'se desconecta de SAP
oCompany.Disconnect()
Como puedo colocar o seleccionar una lista de precios
Porque no aparece el precio
Porque no aparece la moneda
Porque los importes totales son diferentes, como los calcula.
En otra prueba con mas artículos me ingreso 2 artículos de mas que yo no ingrese, a que se puede deber esto?
Una ultima pregunta, originalmente quice realizar esta interface en C# .NET MVC Razor o ASP .NET pero la DLL que uso SDK me marcaba error, existe alguna dll para WEB?
Para desarrollar con el SDK (DI/UI) tienes que tomar en cuenta que puedes apoyarte siempre de las parametrizaciones realizadas en el B1. Por ejemplo la lista de precio por default las puede tomar del SN y a nivel código no necesitas ponerlo, lo mismo sucede con la moneda. Con esto es suficiente poner el codigo del item y el sistema internamente hace el calculo de precio, moneda, impuesto y totales.
Te recomiendo trabajar con una BD PRUEBAS para que puedas hacer tus pininos. Y no te desesperes, todos los que desarrollamos alguna vez nos vimos en ese escenario.
Estimado Julian te agradezco mucho tu respuesta, me comentas que las listas de precio las puedo tomar del SN pero como es que puedo tomarlas? es decir, como comente en mi presentacion mi experiencia con SAP es minima y en cuanto a desarrollo con la SDK es aun mas baja, soy programador y lo podria hacer sin problema solo que no entiendo el concepto SN, me podrias ayudar indicandome como puedo seleccionar la Lista de precio desde la SDK por favor, algo asi como “oOrder.DocDueDate” esto es debido a que efectivamente si coloco mi codigo de item me toma una lista de precios y lo plasma en la Orden de venta pero no es la lista que yo deseo. Nuevamente agradeciendo tu recomendacion te comento que efectivamente estoy en una base de pruebas y tambien tengo mucha paciencia, quien lo la tiene es mi jefe jeje, gracias y saludos.
1
En SAP las listas de precios se asocian mediante las siguientes opciones
Socio de negocios
Grupos de socios de negocios
Condiciones de pago.
Con base a los anteriores parámetros, el sistema automáticamente define que lista de precios maneja al momento de ingresar los productos. esto aplica cuando no se ingresa el precio, en tu caso estas asignando un valor, por lo cual no se tendría en cuenta la lista de precio.
El precio si esta cargando, revisa la columna PRECIO POR UNIDAD, el campo de usuario precio no esta incluido en tu código
El campo de usuario moneda no esta incluido en tu código.
El total se calcula Precio por unidad * Descuento + IVA
Debes tener en cuenta que tienes descuentos a nivel de línea y documento.
Es un error en tu algoritmo. el sistema agrega lo que tu defines.
La misma dll de sapbobscom te funciona en cualquier lenguaje, por ejemplo desde PHP.
Excelente @andresramirez muchas gracias por tus respuestas y por el video, te comento sobre el punto 2, efectivamente cargue el precio con “oOrder.Lines.UnitPrice = 10” porque antes lo hacia con “oOrder.Lines.Price = 10” y es aqui donde no importara que valor pusiera siempre tomaba el precio alguna lista de precios y luego quice ver como entonces poder indicarle la lista de precios desde el codigo pero es justamente eso lo que no se hacer. Cual es el campo de “usuario precio”? el de moneda ya lo ubico y es el oOrder.Lines.Currency.
Gracias por indicarme el punto 4 y revisare mi punto 5 aunque debugueando el programa sigo observando que se cargan mas registros de los que deberian.
Solo me seguiria quedando con la duda de como poder mediante programacion “oOrder” seleccionar una lista de precios para que este sea el que grabe en mi orden de venta “oOrder.Add”