Jamás me había interesado esto, pensé siempre que era mejor una aplicación desde cualquier lenguaje, sin embargo el poco tiempo y la necesidad me han hecho ver las macros como una buena herramienta para mitigar ciertas tareas repetitivas y tediosas.
para empezar genere esta pequeña macro para poder enlazar a objetos de SAP. necesitaba cerrar anticipos de manera automática por ser un número grande.
para esto primero agregar herramientas/referencia dentro de vb en la pestaña de programador en Excel.
agregamos este código, explico en cada renglón por que el objeto o la variable.
tengo poco tiempo pero esto lo posteo a ver si puede servir a alguien, cabe mencionar que la DI API es de la versión 2007.
para empezar genere esta pequeña macro para poder enlazar a objetos de SAP. necesitaba cerrar anticipos de manera automática por ser un número grande.
para esto primero agregar herramientas/referencia dentro de vb en la pestaña de programador en Excel.
agregamos este código, explico en cada renglón por que el objeto o la variable.
Sub SAP()
'---Datos SAP...
Dim oCompany As SAPbobsCOM.Company 'objeto de compañías de sapbobscom
Dim lRetCode, ErrorCode As Long 'variables para errores
Dim ErrorMessage As String 'mensaje de error variable
Dim Retval As Long 'variable de error regresado por sap
Dim vItem As SAPbobsCOM.Documents 'objeto de documento en SAP
Dim numdocentry As Long 'variable para mover el registro del objeto
' Importar
Set oCompany = New SAPbobsCOM.Company 'asignas al objeto para manejar la bd.
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'tipo de base de datos,
'hay diferentes dependiendo del manejador de la bd
oCompany.DbUserName = "Tudbuser"
oCompany.DbPassword = "tupasswordsql"
oCompany.Server = "127.0.0.1"
oCompany.CompanyDB = "basededatosSAP"
oCompany.UserName = "userSAP"
oCompany.Password = "passSAP"
oCompany.UseTrusted = False
lRetCode = oCompany.Connect()
Set vItem = oCompany.GetBusinessObject(oDownPayments)
Row = 2
Do While Sheets(1).Cells(Row, "A") <> ""
numdocentry = Sheets(1).Cells(Row, "A")
vItem.GetByKey (numdocentry)
'vItem.NumAtCard = Sheets(7).Cells(Row, "C")
vItem.Comments = "anticipo cancelado macro"
vItem.Update ' El objeto se actualiza puede ser create, delete, update
Retval = vItem.Cancel
Row = Row + 1
Loop
oCompany.Disconnect 'desconectar compañía
MsgBox "Exportado "
'Importar a SAP
MsgBox "Exportado ..!"
'---Datos SAP...
Dim oCompany As SAPbobsCOM.Company 'objeto de compañías de sapbobscom
Dim lRetCode, ErrorCode As Long 'variables para errores
Dim ErrorMessage As String 'mensaje de error variable
Dim Retval As Long 'variable de error regresado por sap
Dim vItem As SAPbobsCOM.Documents 'objeto de documento en SAP
Dim numdocentry As Long 'variable para mover el registro del objeto
' Importar
Set oCompany = New SAPbobsCOM.Company 'asignas al objeto para manejar la bd.
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'tipo de base de datos,
'hay diferentes dependiendo del manejador de la bd
oCompany.DbUserName = "Tudbuser"
oCompany.DbPassword = "tupasswordsql"
oCompany.Server = "127.0.0.1"
oCompany.CompanyDB = "basededatosSAP"
oCompany.UserName = "userSAP"
oCompany.Password = "passSAP"
oCompany.UseTrusted = False
lRetCode = oCompany.Connect()
Set vItem = oCompany.GetBusinessObject(oDownPayments)
Row = 2
Do While Sheets(1).Cells(Row, "A") <> ""
numdocentry = Sheets(1).Cells(Row, "A")
vItem.GetByKey (numdocentry)
'vItem.NumAtCard = Sheets(7).Cells(Row, "C")
vItem.Comments = "anticipo cancelado macro"
vItem.Update ' El objeto se actualiza puede ser create, delete, update
Retval = vItem.Cancel
Row = Row + 1
Loop
oCompany.Disconnect 'desconectar compañía
MsgBox "Exportado "
'Importar a SAP
MsgBox "Exportado ..!"
End Sub
tengo poco tiempo pero esto lo posteo a ver si puede servir a alguien, cabe mencionar que la DI API es de la versión 2007.
No hay comentarios:
Publicar un comentario