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:
Entradas (Atom)