cancel
Showing results for 
Search instead for 
Did you mean: 

Modificar el Folio de una factura de venta

felipe_loyolarodriguez
Active Contributor
0 Kudos

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

View Entire Topic
Former Member
0 Kudos

Felipe, como anulo folios ya asignados en SAP B1 9.1, por error factura fue emitida 246 veces y necesito reutilizar folios...

Humberto_Neira
Product and Topic Expert
Product and Topic Expert
0 Kudos

Nicolas,

en que país operas?  sube tu consulta al partner para que te ayuden.

saludos

former_member188471
Active Contributor
0 Kudos

Nicolas, o sea hay 246 facturas con folios que no corresponden?

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes


El código solo cambia los folios en los documentos de SAP B1, en caso de que sean folios electrónicos lo mejor es verlo directamente con el proveedor de factura electrónica

Atte.