Avalados por :

Desarrollo de aplicación TPV para ferias: Integración con SAP y simulación de subida de documentos

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

Hola buenas,

He desarrollado una aplicación TPV para vender productos (libros) en Stands en ferias donde no suelen tener conexión a internet,...

La aplicación (Stands TPV) mediante lector de código de barras o por teclado lee los artículos y genera los tickets de compras, devoluciones, cierres de caja diarios, informes...

La finalidad de esta aplicación es que cuando se cierra una feria, esta, genera una serie de plantillas con todo lo necesario para subirlo a SAP por Data Transfer (DTW)..., estas ferías cada vez son más comunes y pierdo mucho tiempo validando los procesos y subiendo por DTW la facturación de las ferias.

Mi propósito es mediante otra aplicación vb.net utilizando SapBobcom.dll que simule una subida de boletas, notas de crédito, pagos,...

Esto ya lo tengo mas o menos encaminado pero tengo la necesidad de hacer una simulación previa antes de hacer la subida y si falla algo que no suba nada de nada... tal como lo hace la simulación por DTW.

Mi duda es alguien si sabe como hacer esta simulación previa a la subida de documentos (facturas) y en el caso que falle algo, que no se actualice nada. Mi idea inicial era hacer Listas y poner una list.add() para que lo suba todo o nada pero desconozco el proceso y si es posible..

Sería algo como hacer un rollback en un proceso de sql server o un método de simulación mediante sapbobscom.dll o sabéis si es posible enlazarlo todo en lista y hacer una ret = lista.add() por ejemplo?

Espero haberme explicado!!

Adjunto un código simple de subida de una factura (esto lo tengo más elaborado para que cargue de las plantillas generadas pero tengo que ir uno a uno...) :

'Definir variables

Dim oCompany As New SAPbobsCOM.Company

Dim lRetCode, ErrorCode As Long

Dim ErrorMessage As String

Dim folio, nextfolio As String

Dim Retval As Long

Dim oDoc As SAPbobsCOM.Documents

Dim DocLines As SAPbobsCOM.Document_Lines

Try

'Iniciar objeto de la compañia

'oCompany = New SAPbobsCOM.Company

'Definir datos de la coneccion

oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'Tipo de BD

oCompany.DbUserName = "sa"

oCompany.DbPassword = "********" 'Contraseña usuairo SA

oCompany.Server = "SERV" 'IP o servidor de SQL

oCompany.CompanyDB = "VVPeru_STDJOR" 'BASE DE DATOS

oCompany.UserName = "manager"

oCompany.Password = "*****" 'contraseña usuario manager

oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish_La 'lenguaje de SQL, si esta en español usa SAPbobsCOM.BoSuppLangs.ln_Spanish

oCompany.UseTrusted = False

'Conectar a la base de SAP B1

lRetCode = oCompany.Connect()

If lRetCode = 0 Then

'Document = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices)

oDoc = oCompany.GetBusinessObject(BoObjectTypes.oInvoices)

oDoc.CardCode = "J00984"

oDoc.DocDate = Today

oDoc.DocDueDate = Today

oDoc.CardCode = 24

oDoc.Series = 107

oDoc.Lines.ItemCode = "000119"

oDoc.Lines.Quantity = 1

oDoc.Lines.SalesPersonCode = 24

oDoc.Lines.WarehouseCode = "03"

If oDoc.Add <> 0 Then

MsgBox("Error " + oCompany.GetLastErrorDescription())

Else

MsgBox("Good")

Dim newCode As String = oCompany.GetNewObjectKey()

MsgBox(newCode)

End If

End If

Catch ex As Exception

MsgBox(ex.ToString)

End Try

Mucahs gracias y saludos!!

Jorge

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Iepppp! He encontrado una solución mediante el método oCompany.StartTransaction()

Aquí os paso mi código para el que le pueda interesar!

'Iniciar objeto de la compañía

'oCompany = New SAPbobsCOM.Company

'Definir datos de la conexión

oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'Tipo de BD

oCompany.DbUserName = "sa"

oCompany.DbPassword = "********" 'Contraseña usuario SA

oCompany.Server = "SERV" 'IP o servidor de SQL

oCompany.CompanyDB = "VVPeru_STDJOR" 'BASE DE DATOS

oCompany.UserName = "manager"

oCompany.Password = "*******" 'contraseña usuario manager

oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish_La 'lenguaje de SQL, si está en español usa SAPbobsCOM.BoSuppLangs.ln_Spanish

oCompany.UseTrusted = False

'Conectar a la base de SAP B1

lRetCode = oCompany.Connect()

If lRetCode = 0 Then

oCompany.StartTransaction()

'Document = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices)

oDoc = oCompany.GetBusinessObject(BoObjectTypes.oInvoices)

oDoc.CardCode = "J00984"

oDoc.FolioPrefixString = "12"

oDoc.FolioNumber = "58950"

oDoc.NumAtCard = "12-020-58950"

oDoc.DocDate = Today

oDoc.DocDueDate = Today

oDoc.TaxDate = Today

oDoc.Series = 107

oDoc.DocumentSubType = BoDocumentSubType.bod_Bill

'oDoc.Series = "12-020"

oDoc.Comments = "Prueba subida Boleta : 6 - app UtilsSAPBobsCOM - " & oDoc.NumAtCard

oDoc.SalesPersonCode = 24

oDoc.DocType = BoDocumentTypes.dDocument_Items

oDoc.Lines.ItemCode = "000119"

oDoc.Lines.Quantity = 1

oDoc.Lines.WarehouseCode = "03"

oDoc.Lines.UnitPrice = 29

oDoc.Lines.WTLiable = BoYesNoEnum.tNO

oDoc.Lines.SalesPersonCode = 24

oDoc.Lines.Add()

oDoc.Lines.ItemCode = "000132"

oDoc.Lines.Quantity = 1

oDoc.Lines.WarehouseCode = "03"

oDoc.Lines.UnitPrice = 25

oDoc.Lines.WTLiable = BoYesNoEnum.tNO

oDoc.Lines.SalesPersonCode = 24

oDoc.Lines.Add()

oDoc.Lines.ItemCode = "000133"

oDoc.Lines.Quantity = 5

oDoc.Lines.WarehouseCode = "03"

oDoc.Lines.UnitPrice = 32

oDoc.Lines.WTLiable = BoYesNoEnum.tNO

oDoc.Lines.SalesPersonCode = 24

'oDoc.Lines.Add()

ret = validaDocAdd(oCompany, oDoc)

If ret Then

oDoc.CardCode = "C00984"

oDoc.FolioPrefixString = "12"

oDoc.FolioNumber = "58951"

oDoc.NumAtCard = "12-020-58951"

oDoc.DocDate = Today

oDoc.DocDueDate = Today

oDoc.TaxDate = Today

oDoc.Series = 107

oDoc.DocumentSubType = BoDocumentSubType.bod_Bill

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?