Buen día.
E estado trabajando en una pequeña aplicación para poder subir facturas a SAP a partir de un archivo CSV, por ciertas circunstancias no puedo usar el DTW ya que el archivo es incompleto y por eso no puedo usar el DTW, el programa me funciona correctamente hace las facturas les hace el pago pero mi problema es cuando 2 personas estan usando el mismo programa.
Esta es la porción del código con la que se crean las facturas y se hace el pago.
esta porción esta dentro de un bucle.
oInvoice = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices)
oInvoice.CardCode = dgvFacturas(10, X).Value
oInvoice.DocType = SAPbobsCOM.BoDocumentTypes.dDocument_Items
oInvoice.DocDate = dtpFecha.Value
oInvoice.TaxDate = dtpFecha.Value
oInvoice.DocDueDate = dtpFecha.Value
oInvoice.NumAtCard = dgvFacturas(0, X).Value
oInvoice.Series = 64
oInvoice.SalesPersonCode = BusinessPartners.SalesEmployeeCode
Clientes.GetByKey(dgvFacturas(10, X).Value)
oInvoice.UserFields.Fields.Item("U_IdDoc").Value = Clientes.UserFields.Fields.Item("U_DUI").Value
oInvoice.Lines.ItemCode = ItemCod
oInvoice.Lines.Quantity = dgvFacturas(6, X).Value
oInvoice.Lines.TaxCode = Impuesto
oInvoice.Lines.DiscountPercent = Desc
oInvoice.Lines.WarehouseCode = oWareHouse.WarehouseCode
oInvoice.Lines.AccountCode = CuentM
lRetCode = oInvoice.Add()
**Entry = oCompany.GetNewObjectKey()** <-------- Este parece ser mi problema, ya que cuando me falla me aparece otra key y no el docentry>
If lRetCode <> 0 Then
oCompany.GetLastError(lErrCode, sErrMsg)
MsgBox(lErrCode & " " & sErrMsg)
Exit Sub
Else
---------------------------------------------------------
Dim oPago As SAPbobsCOM.Payments
oPago = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oIncomingPayments)
oPago.Series = 14
oPago.CardCode = dgvFacturas(10, X).Value
oPago.DocDate = dtpFecha.Value
oPago.DueDate = dtpFecha.Value
oPago.TaxDate = dtpFecha.Value
oPago.CashAccount = CV
oPago.Invoices.InvoiceType = 13
**oPago.Invoices.DocEntry = Entry** ----------- no siempre toma el Docentry correcto
oInvoice.GetByKey(Entry)
oPago.CashSum = oInvoice.DocTotal
Call oPago.Invoices.Add()
lRetCode = oPago.Add()
oCompany.GetLastError(lErrCode, sErrMsg)
dgvFacturas.CurrentCell = dgvFacturas.Rows(X).Cells(6)
Monto = lblMontoVendido.Text
Monto = Monto - dgvFacturas.Item(6, dgvFacturas.CurrentRow.Index).Value
lblMontoVendido.Text = Monto
---------------------------------------------------------
End If`
mi pregunta es, ¿como puedo obtener el docentry de la factura recién creada? una alternativa que pensé es buscar por medio del correlativo (el numero que trae impreso) de la factura haciendo una query con un recordset para buscar la factura primero y obtener el docentry pero quiero saber si hay una forma mas directa o si tienen otra sugerencia para poder hacer que varias personas usen el programa con la misma sociedad.
De antemano gracias por cualquier ayuda o sugerencia que puedan hacer.