Amigos necesito su ayuda, tengo una aplicación en C# que guarda factura de clientes en SAP mediante xml (la aplicación se ejecuta normal con el SDK), pero cuando quiero grabar un documento de venta con algunos artículos me salta este error:
“No es posible añadir una linea sin la selección completa de los números de serie/lote”.
esos articulos tienen configurados series y lotes, pero no consigo que agregar a mi xml para que cree la factura.
Buenas tardes compañeor, la verdad desconozco un poco la programacion mediante el XML, pero te dejo un codigo de BASIC que agrega los numeors de lote.
Este codigo yo lo genere y me funciona a la perfeccion.
El objeto vInvoice es un objeto del SDK SAPbobsCOM.BoObjectTypes.oInvoices (Factura Clientes), dentro de este objeto en las lineas se encuentra la propiedad Lines y dentro de la propiedad Lines esta “BatchNumbers” que crea los numeros de lote.
Desconozco como lo tendiras que ejectuar en XML pero al menos ya sabes que si se puede y donde estan las propiedades
Espero te sirva.
Lo que te está pasando es que cuando haces una venta, haces una salida de inventario, y unos artículos en concreto maneja lotes. Por lo que hay que indicarle de que lote vas a hacer la salida del inventario, pero, si necesitas utilizar mas de un lote, tendrás que indicarle cuales de esos lotes deseas utilizar.
Tienes la opción de autoselección, pero deberías de cambiar el código del programa.
No te preocupes, para es esto la comunidad.
Pues simplemente aplicaria una iteracion sobre este mismo codigo.
Como te comento, en XML no se bien con exactitud las sentencias o la logica (No conozco XML), pero en BASIC un ejemplo seria de la siguente manera.
For i=0 to 5
vInvoice.Lines.itemCode=CodigoItem
vInvoice.Lines.Quantity=2
vInvoice.Lines.Price =12.43
If i < 5 then vInvoice.Lines.Add() 'Esta sentencia agrega una nueva linea al objeto Invoice de SAP
vInvoice.Lines.BatchNumbers.BatchNumber = Lote(t).IdAlmacen 'ID Almacen
vInvoice.Lines.BatchNumbers.Quantity = Lote(t).Cantidad 'Cantidad
vInvoice.Lines.BatchNumbers.Add()
Next
Gracias por tu ayuda los campos si son los correctos para insertarlos en el XML pero para insertar varios tiene que ser en una sola corrida ya que el XML me lo suministran.
Hola @jesusdja veo que solo has copiado capturas de pantalla, siendo estos códigos, te pido que por favor edites los mensajes cambiando las imagenes por el código XML
Si te quieres ahorrar dolores de cabeza, yo haría mediante código una consulta de todos los lotes con stock de ese producto del mas antiguo al mas nuevo. Y luego haría un bucle del cual fuera restando las unidades de lote con las unidades vendidas.
La verdad con XML no Jesus, nunca he trabajado. Todos los desarrollos los he hecho en asp.net o en C#, pero en ese lenguaje no tengo forma de ayudarte, una disculpa.