¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solução para o erro do SAP ao copiar linhas no DataGridView - Código e explicação detalhada.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 11 Vistas
0
Cargando...

Olá, estou ficando desesperado, perguntei sobre isso antes sem resposta, o que significa que deve ser algo com meu código, então aqui está meu código na esperança de que alguém possa encontrar meu erro.

Obrigado pela ajuda...

Ok, aqui está a situação:

Estou trazendo um pedido de venda para um DataGridView.

Isso permite atribuir números de série de um UDT que criei para gerenciar os números de série até que estejam prontos para serem liberados.

Atribuo os números de série.

Quando a entrega é criada, percorro as linhas do DGV e extraio a linha associada da SO para aplicá-la e o número de série associado na entrega.

<b>O código a seguir funciona muito bem para cópias 1-1.</b>

O problema surge quando uma linha é excluída do SAP da SO ou quando o usuário exclui uma linha do DGV que não deseja copiar na entrega.

Ao tentar isso, recebo um erro que diz:

"-10 :: [DLN1.WhsC ode][linha: 0]. 'Item'ACC-USB-LCD-MX233 ' com o sistema serial 2 não está em estoque"

O estranho é que não tenho esse item em nenhum lugar do meu pedido de venda ou na exportação XML do objeto de entrega.

Nem mesmo é o primeiro item em nossa tabela de itens.

O que faço é pegar as linhas do Pedido de venda com base no LineNum.

Se uma linha não for necessária, eu ignoro essa linha no Pedido de venda pelo seu LineNum.

Estava me perguntando se isso é um ERRO do SAP, mas não vi ninguém mais com esse problema e não consigo fazer com que o SAP responda às minhas Notas de Suporte.

Aqui está meu código:

<se precisar de mais informações, por favor me avise, obrigado>


 Dim soDoc As SAPbobsCOM.Documents
        Dim dnDoc As SAPbobsCOM.Documents

        soDoc = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
        dnDoc = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDeliveryNotes)

        Try
            Dim rsData As SAPbobsCOM.Recordset
            Dim iTemp As Integer

            iTemp = Integer.Parse(txtSalesOrder.Text)
            rsData = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            rsData.DoQuery("Select DocEntry From ORDR where DocNum='" + iTemp.ToString + "'")

            soDoc.GetByKey(Integer.Parse(rsData.Fields.Item("DocEntry").Value))
            dnDoc.CardCode = soDoc.CardCode
            dnDoc.Comments = "Baseado no Pedido de Venda " & soDoc.DocNum & ". Para notas, consulte o Pedido de Venda."
            dnDoc.DocDate = Hoje
            dnDoc.ContactPersonCode = soDoc.ContactPersonCode
            dnDoc.DocCurrency = soDoc.DocCurrency
            dnDoc.DocDueDate = Hoje
            dnDoc.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
            dnDoc.Lines.SetCurrentLine(0)
            dnDoc.Lines.ItemCode = soDoc.Lines.ItemCode
            dnDoc.Lines.Quantity = soDoc.Lines.Quantity
            dnDoc.Lines.WarehouseCode = soDoc.Lines.WarehouseCode
            dnDoc.Lines.Add
        End Try
        
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

A solução para este problema, caso alguém mais o encontre, é a seguinte: Dentro do objeto Número de Série sob a Entrega, há um campo baselineNumber que deve ser configurado na Entrega e não na ordem de venda.

dnDoc.Lines.SerialNumbers.BaseLineNumber = dnDoc.LineNum

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?