on 09-09-2011 1:02 PM
Estimados,
Les dejo este codigo en Visual Basic.NET para que puedan cambiar el folio de una factura que por error se le haya asignado, o porque se saltaron algun correlativo, etc.
Este metodo de modificacion usando en DI API de SBO es legal, no como el Update desde SQL.
Para usarlo deben seguir simples pasos.
1) Descargar Visual Basic, puede ser la version EXPRESS, o si ya tienen Visual Studio no lo hagan.
2) Inicien un nuevo proyecto de tipo CONSOLA
3) En la pestaña proyecto --> agregar referencias --> COM --> SAP Business one DI API 8.81 (si tienen 8.8 o 2007 aparecera la version que tengan)
4) Antes de pegar el codigo, ejecuten el proyecto en blanco, luego de eso pegan el siguiente codigo
Module Modificar_folio
Sub main()
'Definir variables
Dim oCompany As SAPbobsCOM.Company
Dim lRetCode, ErrorCode As Long
Dim ErrorMessage As String
'Iniciar objeto de la compañia
oCompany = New SAPbobsCOM.Company
'Definir datos de la coneccion
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2008 //Tipo de BD
oCompany.DbUserName = "sa"
oCompany.DbPassword = "*****" //Contraseña usuairo SA
oCompany.Server = "SERVER" //IP o servidor de SQL
oCompany.CompanyDB = "SBODemoCL" //BASE DE DATOS
oCompany.UserName = "manager"
oCompany.Password = "******" //contraseña usuario manager
oCompany.language = SAPbobsCOM.BoSuppLangs.ln_English //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()
Dim Retval As Long
Dim Document As SAPbobsCOM.Documents
Document = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices)
If Document.GetByKey(/*DocEntry del documento*/) = True Then
Document.FolioNumber = /*Folio que asignaras*/
Document.FolioPrefixString = "/*Prefijo del folio*/"
Retval = Document.Update()
Else
MsgBox("No se encontraron registros")
End If
Call oCompany.GetLastError(ErrorCode, ErrorMessage)
If (lRetCode != 0) Then //cambienlo por el otro operador no es igual
MsgBox("Falló la conección: " + Str(ErrorCode) + "," + ErrorMessage)
End If
If (Retval != 0) Then //cambienlo por el otro operador no es igual
MsgBox("Falló la actualización: " + Str(ErrorCode) + "," + ErrorMessage)
End If
End Sub
End Module
5) Luego solo resta colocar los datos que cambiaremos
If Document.GetByKey(5556) -- DocEntry de la factura
Document.FolioNumber = 445 -- Folio a corregir
Document.FolioPrefixString = "FC" -- Prefijo
Luego ejecutar y listo
Espero les sirva y sea una pequeña introduccion a lo que es el SDK de SBO.
Saludos
Felipe, como anulo folios ya asignados en SAP B1 9.1, por error factura fue emitida 246 veces y necesito reutilizar folios...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
102 | |
9 | |
6 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.