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"
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


0