MUNDOSAP

MUNDOSAP (foro/index.php)
-   Otros lenguajes: VB, JAVA (foro/forumdisplay.php?f=6)
-   -   Consultas a la BD de SAP desde un programa en VB (foro/showthread.php?t=32422)

Erika T 17/09/09 14:25:20

Consultas a la BD de SAP desde un programa en VB
 
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.:confused:

pedrol 24/09/09 15:36:47

holas

yo estoy mirando algo similar , he puesto un post abajo

puedes hacer peticiones utilizando SAP gui scripting
o tambien conectando a traves de una RFC

hay mucha documentacion y ejemplos en internet




un saludo
pedro luis garcia

Erika T 02/10/09 20:19:24

Hola Pedro, muchas gracias por atender a mi pregunta, pero segun lo que entendi del SAP gui, y corrigeme si me equivoco, es que este sirve para optimizar las transacciones SAP utilizadas habitualmente, digase cargar valores o crear botones y con ello variar la interface de SAP.

Lo que yo requiero es conectar un programa externo que esta hecho en VB 6 a la base de datos del SAP, la cual esta en ORACLE, para hacer consultas de precios y caracteristicas de los productos que estan en esa BD, pero no se como hacerlo.

Si pudieran orientarme se los agradeceria mucho.

ArtuAgui 27/03/10 15:59:04

Emeplo de descarga de datos desde VB
 
Espero que a alguien le pueda servir este código.
Extrae la órdenes previsionales de fabricación desde ayer, hasta 7 días de horizonte.


Si alguien conoce un ejemplo de lo contrario (subir o actualizar algún campo de una tabla, por favor me contacte at pirel dot com)

Saludos,
-ArtuAgui-

joedelphi2002 14/07/11 18:17:43

Dim Rst As ADODB.Recordset
Dim Cnn As ADODB.Connection


Set Rst = New ADODB.Recordset
Set Cnn = New ADODB.Connection
sQuery = "Driver={SQL Server};Server=SERVERSAP;Database=empresa;" 'Conexion 1
sQuery = "Provider=SQLOLEDB.1;Password=Nut1610;Persist Security Info=True;User ID=sa;Initial Catalog=empresa;Data Source=Serversap" 'Conexion 2
'Cualquiera de las dos conexiones funciona, la primera es por usuario de windows y la segunda por el SA, por seguridad puedes leer esta cadena de alguna archivo encriptdo, etc, es decir, ponerle la seguridad que queiras si es que no pueden ver la contraseña del SA los desarrolaldores
Cnn.Open sQuery 'abre la conexion a BD
Cnn.Execute sQuery 'Ejecuta un comando Insert o Update donde squery es el comando a ejecutar
Rst.Open sQuery, Cnn 'ejecuta una consulta a la BD y lo deja en el recordset

Espero te sirva

ihurtado 07/10/11 14:29:15

Duda sobre declaracion de variables
 


ArtuAgui, tengo una duda, como declaro las variables strExport1, strExport2, tblOptions , tblData , tblFields?
de antemano muchas gracias !

doraxploradora 14/11/11 17:22:03

conectar a una funcion en SAP desde Visual Basic- envia cabecera&detalle de 1 tiquet
 
' Conectores a las SAP.Functions.
Dim r3 As Object
Dim MyFunc As Object

' Parametros a enviar a la funcion.
Dim I_VENDOR As Object 'Proveedor como EXPORT

Dim I_HEADER As Object 'Cabecera del Pedido de Compras
Dim E_POSITION As Object 'Detalles como TABLA

' Resultado de la llamada a SAP.
Dim Result1 As Boolean

Dim ORDENDECOMPRA As Object
Dim ENTRADADEMERCANCIA As Object
Dim xPROVEEDOR As Object
Dim E_MESSAGE As Object 'Mensajes como TABLA



Private Sub Envia_Lineas()
' Establecer la conexion con los Add Ins de SAP.

Set r3 = CreateObject("SAP.Functions")

' Cargar los parametros de conexion
'R3.Connection.Messageserver = "SAPSERVQAS" ' Nombre del server
r3.Connection.System = "DEV" ' Sistema
r3.Connection.SystemNumber = "10" 'Instancia
r3.Connection.Applicationserver = "SAPSERVQAS" ' Nombre del server
r3.Connection.Client = "130" ' Mandante
r3.Connection.User = "d.castro" ' Usuario
r3.Connection.Password = "xxxx" ' Password
r3.Connection.language = "ES" ' Idioma

' Ejecutar la conexion en modo INVISIBLE.
If r3.Connection.Logon(0, True) <> True Then
MsgBox "No se ha podido establecer la conexión"
Else
' Establecer contacto con la funcion.
Set MyFunc = r3.Add("ZMMF001") 'Nombre de la funcion ZMMF001 en SAP

'DATOS PARA ENVIAR A SAP

' Cargar los parametros a enviar a la funcion - EXPORTING

' Datos del header- Cabecera del Ticket

Set I_HEADER = MyFunc.Exports("I_HEADER")

MyFunc.Exports.Item("I_HEADER").Value("LIFNR") = rc01(9, 0) 'Codigo del Proveedor
MyFunc.Exports.Item("I_HEADER").Value("BUKRS") = rc01(0, 0) 'Sociedad
MyFunc.Exports.Item("I_HEADER").Value("EKORG") = rc01(1, 0) 'Organizacion de Compras
MyFunc.Exports.Item("I_HEADER").Value("EKGRP") = rc01(10, 0) 'Grupo de Compras
MyFunc.Exports.Item("I_HEADER").Value("IHREZ") = "100" 'Referencia - Codigo del Chofer

' Cargar la tabla con los datos que vamos a enviar - TABLES.

' Datos del E_POSITION - Datos del detalle del ticket

Set E_POSITION = MyFunc.Tables("E_POSITION")

For I = 0 To UBound(rc01, 2)
E_POSITION.Rows.Add
E_POSITION.Value(I + 1, "BEDNR") = rc01(11, I) 'Ticket
E_POSITION.Value(I + 1, "WERKS") = rc01(12, I) 'Centro
E_POSITION.Value(I + 1, "LGORT") = rc01(13, I) 'Almacen
E_POSITION.Value(I + 1, "MATNR") = rc01(14, I) 'Material
E_POSITION.Value(I + 1, "KBETR") = rc01(15, I) 'Importe
E_POSITION.Value(I + 1, "MENGE") = rc01(16, I) - rc01(18, I) 'Cantidad menos cantidad penalizada
E_POSITION.Value(I + 1, "PEINH") = rc01(17, I) 'Cantidad Base
E_POSITION.Value(I + 1, "MENG2") = rc01(18, I) 'Cantidad Penalizada
Next


' Llamar o invocar a la funcion de SAP.
Result1 = MyFunc.Call

' Analizar el resultado de la llamada.
If Result1 = False Then
MsgBox "Error en el llamado a la funcion ZMMF001."
Else
MsgBox "Funcion ZMMF001 ejecutada OK."

'Grabar Tiquet de SAP
Set ORDENDECOMPRA = MyFunc.imports("E_PONUMBER")

MsgBox "La Orden de Compra es: " & ORDENDECOMPRA.Value

Set ENTRADADEMERCANCIA = MyFunc.imports("E_MBLNR")
MsgBox "La Entrada de Mercancia es: " & ENTRADADEMERCANCIA.Value


'Tabla de mensajes donde llegan los mensajes de error sean positivos o negativos

Set E_MESSAGE = MyFunc.Tables("E_MESSAGE")


Dim x As Integer

x = 1

Dim row As Object


For Each row In MyFunc.Tables("E_MESSAGE").Rows

'lstResult.AddItem MyFunc.Tables.Item("E_MESSAGE").Value(x, "TIPO") & " " & MyFunc.Tables.Item("E_MESSAGE").Value(x, "MSG")

MsgBox (MyFunc.Tables.Item("E_MESSAGE").Value(x, "TIPO") & " " & MyFunc.Tables.Item("E_MESSAGE").Value(x, "MSG"))

x = x + 1

Next


End If
' Terminar la sesion en SAP
r3.Connection.Logoff
End If
End Sub


Husos Horarios son GMT. La hora en este momento es 19:04:24.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web