Ayuda SAP

Ordenes de venta con DI SAP

Buen dia, estoy realizando una interfaz en VB .NET para crear una orden de venta en SAP B1, sin embargo, tengo algunos inconvenientes, los cuales son:

Primero ingreso el código que uso:

vCompany = New SAPbobsCOM.Company()
Try
vCompany.SLDServer = “192.999.99.99”
vCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2017

  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()

y el resultado en SAP es:

  1. Como puedo colocar o seleccionar una lista de precios
  2. Porque no aparece el precio
  3. Porque no aparece la moneda
  4. Porque los importes totales son diferentes, como los calcula.
  5. 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?

Muchas gracias y saludos,.

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.

SALUDOS

2 Me gusta

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.

SDK de SBO no tiene version para WEB , lo que se hace es invocar al componente como un cliente servidor invocandolo desde el desarrollo web

Hola @licjorgeluis
Las repuestas a tus preguntas

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

  1. El campo de usuario moneda no esta incluido en tu código.

  2. El total se calcula Precio por unidad * Descuento + IVA
    Debes tener en cuenta que tienes descuentos a nivel de línea y documento.

  3. Es un error en tu algoritmo. el sistema agrega lo que tu defines.

  4. La misma dll de sapbobscom te funciona en cualquier lenguaje, por ejemplo desde PHP.

Andres Ramirez Jaramillo :colombia:

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”

Gracias y saludos.