FoxPro/Visual FoxPro - SAP llamada a una RFC desde VFP

 
Vista:

SAP llamada a una RFC desde VFP

Publicado por CQR (1 intervención) el 13/01/2011 10:06:29
Buenas amigos,
Tengo un programa en VB que se conecta a un sistema SAP y graba una tabla de datos en SAP.
La RFC creada espera el envío de una tabla.
Os pego el código de VB tal cual.
-------------------------------------------------------------------------------------
' Establecer la conexion con los Add Ins de SAP.
Set R3 = CreateObject("SAP.Functions")
' Cargar los parametros de conexion
R3.Connection.HostName = "xxx" ' Nombre del server
R3.Connection.System = "xxx" ' Sistema
R3.Connection.SystemNumber = "xxx" ' Sistema
R3.Connection.Client = "xxx" ' Mandante
R3.Connection.User = "xxx" ' Usuario
R3.Connection.Password = "xxx" ' Password
R3.Connection.Language = "xx" ' Idioma

' Ejecutar la conexion en modo visible.

If R3.Connection.Logon(0, False) <> True Then
MsgBox "No se ha podido establecer la conexión"
Else
MsgBox "CONEXION OK"
' Establecer contacto con la funcion.

Set MyFunc = R3.Add("nombre_de_la_rfc")

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

Set TABLA = MyFunc.Tables("nombre_de_la_tabla")

TABLA.rows.Add

TABLA.Value(1, "MANDT") = "111"
TABLA.Value(1, "N_DOC") = "aaa"
TABLA.Value(1, "TIPO") = "ttt"
TABLA.Value(1, "EJERCICIO") = "1"
TABLA.Value(1, "EXPEDIDOR") = "tttt"
TABLA.Value(1, "NIF_EXPEDIDOR") = "ttt"

' Llamar a la funcion de SAP.
Result = MyFunc.Call

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

' Terminar la sesion.
R3.Connection.logoff
End If
-------------------------------------------------------------------------------------

Bien, este código funciona perfectamente, ahora el problema surge cuando lo intento hacer en VFP, en esta línea...
TABLA.value(1, "MANDT") = "800"
Supongo que la sintaxis no es la correcta.... podeis ayudarme por favor???

MUCHAS GRACIAS POR ADELANTADO....


*********************************************************************.
&& CREANDO LA FUNTION DEL OBJETO
FuncControl = CREATEOBJECT("SAP.FUNCTIONS")
FuncControl.LogFileName = "c:\tmp\Table + viewlog.txt"
FuncControl.LogLevel = 8
&& CREANDO EL OBJETO DE CONEXION
conexion = FuncControl.Connection
&& PARAMETROS DE LA CONEXION
conexion.Client = "xxx" && codigo del mandante
conexion.Language = "xx" && Idiioma
conexion.TraceLevel = 6
conexion.System = "xxx"
conexion.ApplicationServer = "xxx" && IP server
conexion.SystemNumber = "xx"
conexion.User = "xxxx" && usuario
conexion.Password = "xxx" && password
If conexion.Logon() = .T.
wait windows "Se conecto"
Else
wait windows "No se conecto"
Endif

MyFunc = FuncControl.Add("nombre_de_la_rfc")
TABLA = MyFunc.Tables("nombre_de_la_tabla")

TABLA.rows.add
TABLA.value(1, "MANDT") = "800"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:SAP llamada a una RFC desde VFP

Publicado por Juan Manuel Cruz (512 intervenciones) el 13/01/2011 10:56:46
Por si acaso, recuerda q los índices en VB empiezan en 0, mientras que en VFP empiezan en 1...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SAP llamada a una RFC desde VFP

Publicado por Saul (728 intervenciones) el 13/01/2011 17:14:58
Bueno yo usaria una conexion directa a SQL 2005, y de alli grabo directamente a la tabla

creo que seria lo mejor a mi pareser

Suerte..

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SAP llamada a una RFC desde VFP

Publicado por X (1 intervención) el 07/03/2014 02:13:10
Pudiste Resolver tu problema yo estoy en el mismo caso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SAP llamada a una RFC desde VFP

Publicado por Pedro (1 intervención) el 26/09/2014 16:30:21
Que tal

yo tengo el mismo caso y haber si alguine me puede ayudar

Yo Quiero usar una RFC_Read_table ya pude conectarme a SAP,

Para pasar los parametros de entrada no tengo problema, el problema es cuando quiero decirle la condicion y los campos que quiero que traiga....



m.Myfunc = Thisform.oR3.Add("BBP_RFC_READ_TABLE")
m.oDeli = m.Myfunc.Exports('DELIMITER')
m.oTable = m.Myfunc.Exports('QUERY_TABLE')
m.oNODATA = m.Myfunc.Exports('NO_DATA')
m.oRowCount = m.Myfunc.Exports('ROWCOUNT')
m.oRowSkip = m.Myfunc.Exports('ROWSKIPS')
m.TblOptions = m.Myfunc.Tables("OPTIONS")
m.tblFields = m.Myfunc.Tables("FIELDS")
m.tblData = m.Myfunc.Tables("DATA")

m.oDeli.Value = "|"
m.oTable.Value = "EQUI"
m.oNODATA.Value = ""
m.oRowCount.Value = 100
m.oRowSkip.Value = 0

Para asignar las condiciones lo hago asi

m.TblOptions.Rows.Add
oCondi= m.TblOptions.Data
oCondi[1,1] = "EQTYP = 'T'"

Pero para decirle que campos quiero lo hago asi
odatos = m.tblFields.Data
odatos[1,1] = "EQUNR"
* odatos[2,1] = "EQTYP"

resul = Myfunc.Call()

y me manda un error

FIELD_NOT_VALID
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar