¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Desenvolvimento de aplicativo PDV para feiras: Integração com SAP e simulação de upload de documentos.

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

Olá,

Desenvolvi um aplicativo de PDV para vender produtos (livros) em estandes em feiras onde geralmente não há conexão com a internet,...

O aplicativo (PDV de Estandes) lê os itens através de um leitor de código de barras ou teclado e gera os tickets de compras, devoluções, fechamentos de caixa diários, relatórios...

O objetivo deste aplicativo é, ao encerrar uma feira, gerar uma série de modelos com tudo o que é necessário para ser carregado no SAP por Transferência de Dados (DTW)..., essas feiras estão se tornando cada vez mais comuns e eu perco muito tempo validando os processos e carregando a faturação das feiras por DTW.

Minha intenção é, através de outro aplicativo vb.net utilizando o SapBobcom.dll, simular um carregamento de faturas, notas de crédito, pagamentos,...

Já tenho isso mais ou menos encaminhado, mas preciso fazer uma simulação prévia antes de carregar e, se algo falhar, que nada seja carregado... como a simulação por DTW faz.

Minha dúvida é se alguém sabe como fazer essa simulação prévia antes de carregar documentos (faturas) e, no caso de falha, que nada seja atualizado. Minha ideia inicial era criar listas e usar list.add() para carregar tudo ou nada, mas desconheço o processo e se é possível..

Seria algo como fazer um rollback em um processo de sql server ou um método de simulação através do sapbobscom.dll, ou sabem se é possível vincular tudo em uma lista e fazer um ret = lista.add(), por exemplo?

Espero ter me explicado!!

Anexo um código simples de carregamento de uma fatura (tenho algo mais elaborado para carregar os modelos gerados, mas tenho que fazer um por um...) :

'Definir variáveis

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 da companhia

'oCompany = New SAPbobsCOM.Company

'Definir dados de conexão

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

oCompany.DbUserName = "sa"

oCompany.DbPassword = "********" 'Senha do usuário SA

oCompany.Server = "SERV" 'IP ou servidor SQL

oCompany.CompanyDB = "VVPeru_STDJOR" 'BANCO DE DADOS

oCompany.UserName = "manager"

oCompany.Password = "*****" 'Senha do usuário manager

oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish_La 'idioma do SQL, se estiver em espanhol, use SAPbobsCOM.BoSuppLangs.ln_Spanish

oCompany.UseTrusted = False

'Conectar ao 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("Erro " + oCompany.GetLastErrorDescription())

Else

MsgBox("Bom")

Dim newCode As String = oCompany.GetNewObjectKey()

MsgBox(newCode)

End If

End If

Catch ex As Exception

MsgBox(ex.ToString)

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

1 Respuestas

0
Cargando...

Iepppp! Encontrei uma solução usando o método oCompany.StartTransaction()

Aqui está o meu código para quem possa estar interessado!

'Iniciar objeto da empresa

'oCompany = Novo SAPbobsCOM.Company

'Definir dados da conexão

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

oCompany.DbUserName = "sa"

oCompany.DbPassword = "********" 'Senha do usuário SA

oCompany.Server = "SERV" 'IP ou servidor SQL

oCompany.CompanyDB = "VVPeru_STDJOR" 'BANCO DE DADOS

oCompany.UserName = "manager"

oCompany.Password = "*******" 'Senha do usuário manager

oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Spanish_La 'idioma do SQL, se estiver em espanhol, use SAPbobsCOM.BoSuppLangs.ln_Spanish

oCompany.UseTrusted = False

'Conectar ao banco SAP B1

lRetCode = oCompany.Connect()

Se lRetCode = 0 Então

oCompany.StartTransaction()

oDoc = oCompany.GetBusinessObject(BoObjectTypes.oInvoices)

oDoc.CardCode = "J00984"

oDoc.FolioPrefixString = "12"

oDoc.FolioNumber = "58950"

oDoc.NumAtCard = "12-020-58950"

oDoc.DocDate = Hoje

oDoc.DocDueDate = Hoje

oDoc.TaxDate = Hoje

oDoc.Series = 107

oDoc.DocumentSubType = BoDocumentSubType.bod_Bill

oDoc.Comments = "Teste de upload da fatura: 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)

Se ret Então

oDoc.CardCode = "C00984"

oDoc.FolioPrefixString = "12"

oDoc.FolioNumber = "58951"

oDoc.NumAtCard = "12-020-58951"

oDoc.DocDate = Hoje

oDoc.DocDueDate = Hoje

oDoc.TaxDate = Hoje

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?