A continuacion una macro con la que desde excel se conecta a sap a una funcion z
la cual tiene que estar marcada en atrubibutos como RFC, en este ejemplo nomandamos parametros solo obtenemos los 10 primeros registros de la tabla KNA1 y los mostramos en el excel.
Sub Conectar()
Dim R3 As Object
Dim MyFunc As Object
' Parametros para exportar a la función RFC
Dim PI_CODIGO As Object
' Tablas para exportar a la función RFC
Dim PT_TABLA As Object
' Tablas para importar de la función RFC
Dim PT_OUTPUT As Object
' Resultado de la conexión con SAP
Dim Result As Boolean
' Otras variables
Dim iRow, iRowAux As Integer
'************************************************************************
' Flujo de proceso
'************************************************************************
' Establecer la conexión con los SAP add-ins
Set R3 = CreateObject("SAP.Functions")
' Ejecutar la función RFC en modo visible (te saldrá el popup de SAP GUI para poner usuario y contraseña
If R3.Connection.logon(0, False) <> True Then
MsgBox ("Error conectando al sistema")
End
Else
' Indicar la función RFC
Set MyFunc = R3.Add("ZTESTKNA1")
' Cargar parametros a ser enviados a la RFC – EXPORTING
' Set PI_CODIGO = MyFunc.exports("PI_CODIGO")
' PI_CODIGO.Value = Range("A1").Value
' Cargar tablas a ser enviadas a la RFC – TABLES
' Set PT_TABLA = MyFunc.Tables("I_KNA1")
' PT_TABLA.Rows.Add
' PT_TABLA.Value(1, "NAME1") = Range("B1").Value
' PT_TABLA.Value(1, "CAMPO2") = Range("B2").Value
' PT_TABLA.Value(2, "CAMPO1") = Range("C1").Value
' PT_TABLA.Value(2, " CAMPO2") = Range("C2").Value
' Llamar a la función RFC y guardar el resultado
Result = MyFunc.CALL
If Result = False Then
MsgBox ("Error llamando a la función")
Else
' Recuperar las tablas de salida – TABLES
Set PT_OUTPUT = MyFunc.Tables("I_KNA1")
For iRow = 1 To PT_OUTPUT.RowCount
ActiveCell.Offset(iRow, 0) = PT_OUTPUT(iRow, "NAME1")
Next
' Salir del sistema SAP
R3.Connection.logoff
End If
End If
End Sub
jueves, 16 de febrero de 2012
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
Buenas, me esta dando un error numero 429 en esta linea
Set R3 = CreateObject("SAP.Functions")
que podría ser?
Saludos.
Tienes que tener las librerias de SAP instaladas, para esto hay que tener instalado SAP GUI en la PC, si ya la tienes reinstala SAP GUI Completo.
Saludos
Felipe Carrales
Buenas amigo Felipe, la verdad no se que sea ese error, no conozco el lenguaje visual Basic, soy es Ábsp. El error sigue dando aunque tengo el SAP GUI instalado completo.
Que más podría ser?
Saludos Cordiales
Publicar un comentario