Hola, quisiera saber como se puede realizar la conexión a la BD de SAP desde un programa en VB 6, solo para consultar datos sobre los productos contenidos en la BD. Si puedieran ayudarme se los agradeceria mucho.
Sub Captura_OPs()
'
' Captura las Órd. Previsionales de fabricación
'
Dim R3, MyFunc, App As Object
Dim SEL_TAB, NAMETAB, TABENTRY, ROW As Object
Dim Registro As String
Dim Longitud as Long
'**********************************************
'Crear objeto y parámetros de conexión
'**********************************************
Set R3 = CreateObject("SAP.Functions")
R3.Connection.System = "ABC"
R3.Connection.SystemNumber = "01"
R3.Connection.ApplicationServer = "server.mysap.com"
R3.Connection.Client = "012"
R3.Connection.User = "username"
R3.Connection.Password = "password"
R3.Connection.Language = "ES"
If R3.Connection.Logon(0, True) <> True Then
MsgBox ("Conexión SAP imposible")
Exit Sub
End If
'************************************************* ****
'Call RFC function TABLE_ENTRIES_GET_VIA_RFC
'************************************************* ****
Set MyFunc = R3.Add("RFC_READ_TABLE")
Set strExport1 = MyFunc.Exports("QUERY_TABLE")
Set strExport2 = MyFunc.Exports("DELIMITER")
Set tblOptions = MyFunc.Tables("OPTIONS")
Set tblData = MyFunc.Tables("DATA")
Set tblFields = MyFunc.Tables("FIELDS")
'************************************************* ****
'Exportar órdenes de fabricación
'************************************************* ****
' Definición de la Tabla a exportar
strExport1.Value = "PLAF" ' <--------- Tabla
strExport2.Value = "|" ' <--------- Delimitador de campos
' (EQ means =, LT means <, GT means >)
' Defino criterios para el Query
tblOptions.AppendRow
tblOptions(1, "TEXT") = "PLWRK EQ '1234'"
tblOptions.AppendRow
tblOptions(2, "TEXT") = "AND PAART EQ 'PE'"
Desde = Format(Now() - 1, "YYYYMMDD")
Hasta = Format(Now() + 7, "YYYYMMDD")
tblOptions.AppendRow
tblOptions(3, "TEXT") = "AND PSTTR LT " & Hasta
tblOptions.AppendRow
tblOptions(4, "TEXT") = "AND LGORT EQ 'P001'"
' Definición de campos a recuperar
tblFields.AppendRow
tblFields(1, "FIELDNAME") = "MATNR" 'Material
tblFields.AppendRow
tblFields(2, "FIELDNAME") = "GSMNG" 'Cantidad
tblFields.AppendRow
tblFields(3, "FIELDNAME") = "VERID" 'Versión de fabricación
tblFields.AppendRow
tblFields(4, "FIELDNAME") = "PSTTR" 'Fecha inicio de la orden
debut_extract = 1
' Ejecución RFC
If MyFunc.Call = True Then
If tblData.RowCount > 0 Then
For introw = 1 To tblData.RowCount
Registro = tblData(introw, "WA")
Longitud = Len(Registro)
'
' Proceso el registro extraído
' ...
'
Next
End If
End If
' Desconexión
R3.Connection.logoff
End Sub
Sub Captura_OPs()
'
' Captura las Órd. Previsionales de fabricación
'
Dim R3, MyFunc, App As Object
Dim SEL_TAB, NAMETAB, TABENTRY, ROW As Object
Dim Registro As String
Dim Longitud as Long
'**********************************************
'Crear objeto y parámetros de conexión
'**********************************************
Set R3 = CreateObject("SAP.Functions")
R3.Connection.System = "ABC"
R3.Connection.SystemNumber = "01"
R3.Connection.ApplicationServer = "server.mysap.com"
R3.Connection.Client = "012"
R3.Connection.User = "username"
R3.Connection.Password = "password"
R3.Connection.Language = "ES"
If R3.Connection.Logon(0, True) <> True Then
MsgBox ("Conexión SAP imposible")
Exit Sub
End If
'************************************************* ****
'Call RFC function TABLE_ENTRIES_GET_VIA_RFC
'************************************************* ****
Set MyFunc = R3.Add("RFC_READ_TABLE")
Set strExport1 = MyFunc.Exports("QUERY_TABLE")
Set strExport2 = MyFunc.Exports("DELIMITER")
Set tblOptions = MyFunc.Tables("OPTIONS")
Set tblData = MyFunc.Tables("DATA")
Set tblFields = MyFunc.Tables("FIELDS")
'************************************************* ****
'Exportar órdenes de fabricación
'************************************************* ****
' Definición de la Tabla a exportar
strExport1.Value = "PLAF" ' <--------- Tabla
strExport2.Value = "|" ' <--------- Delimitador de campos
' (EQ means =, LT means <, GT means >)
' Defino criterios para el Query
tblOptions.AppendRow
tblOptions(1, "TEXT") = "PLWRK EQ '1234'"
tblOptions.AppendRow
tblOptions(2, "TEXT") = "AND PAART EQ 'PE'"
Desde = Format(Now() - 1, "YYYYMMDD")
Hasta = Format(Now() + 7, "YYYYMMDD")
tblOptions.AppendRow
tblOptions(3, "TEXT") = "AND PSTTR LT " & Hasta
tblOptions.AppendRow
tblOptions(4, "TEXT") = "AND LGORT EQ 'P001'"
' Definición de campos a recuperar
tblFields.AppendRow
tblFields(1, "FIELDNAME") = "MATNR" 'Material
tblFields.AppendRow
tblFields(2, "FIELDNAME") = "GSMNG" 'Cantidad
tblFields.AppendRow
tblFields(3, "FIELDNAME") = "VERID" 'Versión de fabricación
tblFields.AppendRow
tblFields(4, "FIELDNAME") = "PSTTR" 'Fecha inicio de la orden
debut_extract = 1
' Ejecución RFC
If MyFunc.Call = True Then
If tblData.RowCount > 0 Then
For introw = 1 To tblData.RowCount
Registro = tblData(introw, "WA")
Longitud = Len(Registro)
'
' Proceso el registro extraído
' ...
'
Next
End If
End If
' Desconexión
R3.Connection.logoff
End Sub
Comentario