rogerclavell
07/05/12, 10:43:37
Hola,
Os paso un ejemplo de como leer datos de las tablas de sap desde visual studio 2010 y el connector sap 3.0.
Imports SAP.Middleware.Connector
Private Sub leertabla()
'Parametros de conexión a SAP
Dim param As New RfcConfigParameters
param(RfcConfigParameters.User) = "tu_usuario"
param(RfcConfigParameters.Password) = "tu_password"
param(RfcConfigParameters.SystemID) = "sap_maquina"
param(RfcConfigParameters.Client) = "sap_mandante"
param(RfcConfigParameters.Name) = "sap_groupname"
param(RfcConfigParameters.AppServerHost) = "sap_ip"
param(RfcConfigParameters.SystemNumber) = "sap_numero_sistema"
param(RfcConfigParameters.Language) = "ES"
Try
'Conexión a SAP
Dim conex As RfcDestination
conex = RfcDestinationManager.GetDestination(param)
Dim rfcFunction As IRfcFunction = conex.Repository.CreateFunction("RFC_READ_TABLE") 'Función RFC de SAP
rfcFunction.SetValue("QUERY_TABLE", "MCHB") 'Tabla sobre la que queremos buscar
rfcFunction.SetValue("DELIMITER", "~") 'Delimitador de valores
'Campos que queremos mostrar
Dim tblFields As IRfcTable = rfcFunction.GetTable("FIELDS")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "MATNR")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "ERSDA")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "LGORT")
'Condición WHERE para realizar la busqueda
Dim tblOptions As IRfcTable = rfcFunction.GetTable("OPTIONS")
tblOptions.Append()
tblOptions.SetValue("TEXT", "MATNR EQ '000000000100000008'")
'Ejecutar la función
rfcFunction.Invoke(conex)
'Recuperar los datos que nos devuelve SAP
Dim tblResult As IRfcTable = rfcFunction.GetTable("DATA")
'Recorrer los datos que nos muestra SAP
Dim misResultados(tblResult.RowCount - 1, 0) As String
For i As Integer = 0 To tblResult.RowCount - 1
Dim sRes() As String = Split(tblResult.Item(i).GetString(0), "~") 'Separarlos por el delimitador
ReDim Preserve misResultados(tblResult.RowCount - 1, UBound(sRes))
For i2 As Integer = 0 To UBound(sRes)
misResultados(i, i2) = sRes(i2) 'Guardarlos en un vector de strings
Next
Next
Catch ex As Exception
MsgBox(ex)
End Try
End Sub
Espero sirva de ayuda.
Os paso un ejemplo de como leer datos de las tablas de sap desde visual studio 2010 y el connector sap 3.0.
Imports SAP.Middleware.Connector
Private Sub leertabla()
'Parametros de conexión a SAP
Dim param As New RfcConfigParameters
param(RfcConfigParameters.User) = "tu_usuario"
param(RfcConfigParameters.Password) = "tu_password"
param(RfcConfigParameters.SystemID) = "sap_maquina"
param(RfcConfigParameters.Client) = "sap_mandante"
param(RfcConfigParameters.Name) = "sap_groupname"
param(RfcConfigParameters.AppServerHost) = "sap_ip"
param(RfcConfigParameters.SystemNumber) = "sap_numero_sistema"
param(RfcConfigParameters.Language) = "ES"
Try
'Conexión a SAP
Dim conex As RfcDestination
conex = RfcDestinationManager.GetDestination(param)
Dim rfcFunction As IRfcFunction = conex.Repository.CreateFunction("RFC_READ_TABLE") 'Función RFC de SAP
rfcFunction.SetValue("QUERY_TABLE", "MCHB") 'Tabla sobre la que queremos buscar
rfcFunction.SetValue("DELIMITER", "~") 'Delimitador de valores
'Campos que queremos mostrar
Dim tblFields As IRfcTable = rfcFunction.GetTable("FIELDS")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "MATNR")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "ERSDA")
tblFields.Append()
tblFields.SetValue("FIELDNAME", "LGORT")
'Condición WHERE para realizar la busqueda
Dim tblOptions As IRfcTable = rfcFunction.GetTable("OPTIONS")
tblOptions.Append()
tblOptions.SetValue("TEXT", "MATNR EQ '000000000100000008'")
'Ejecutar la función
rfcFunction.Invoke(conex)
'Recuperar los datos que nos devuelve SAP
Dim tblResult As IRfcTable = rfcFunction.GetTable("DATA")
'Recorrer los datos que nos muestra SAP
Dim misResultados(tblResult.RowCount - 1, 0) As String
For i As Integer = 0 To tblResult.RowCount - 1
Dim sRes() As String = Split(tblResult.Item(i).GetString(0), "~") 'Separarlos por el delimitador
ReDim Preserve misResultados(tblResult.RowCount - 1, UBound(sRes))
For i2 As Integer = 0 To UBound(sRes)
misResultados(i, i2) = sRes(i2) 'Guardarlos en un vector de strings
Next
Next
Catch ex As Exception
MsgBox(ex)
End Try
End Sub
Espero sirva de ayuda.