Web Service

1,402 views
Skip to first unread message

luisandrey

unread,
Feb 26, 2014, 11:50:26 AM2/26/14
to publice...@googlegroups.com
Señores del foro
 
Quiero hacer un web service desde visual FoxPro y acudo a sus experiencia para, en la medida de lo posible, me ayuden con:
 
1. Un buen procedimiento o tutorial que me acerque un poco al tema.
2. Si tienen un ejemplo, seria super.
3. toda la documentación del tema que me puedan aportar, seria de inmensa ayuda.
 
Se los pido, porque yo se que muchos deben tener la información ya muy recopilada y compilada, mientras que si yo me pongo a buscar, me encontrare con muchas cosas de las cuales posiblemente, poco o nada me vaya a servir.
 
mil gracias.
 

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Feb 26, 2014, 12:14:26 PM2/26/14
to publice...@googlegroups.com
Hola, hacer un web service en VFP imposible bueno al menos eso se, pero si se puede consumir lo que ya esta hecho en un ambiente web como ASP. Net, PHP, te dejo un link de un vídeo para que veas el consumo quizás a eso te referías. 

Consumir Web Service desde VFP: http://www.youtube.com/watch?v=BQ6IU_DQh2U


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
Framework Multi-conexion v6.0 trabaja cualquier base de datos
(SQLServer, MySQL, Firebird, MariaDB, PostgreSQL, Oracle y etc.) 

Luis suescún

unread,
Feb 26, 2014, 12:56:28 PM2/26/14
to publice...@googlegroups.com
Ok Russvell.
 
Yo veo esto en las ayudas de VFP.
 

When deploying Visual FoxPro applications that use XML Web services, you must include the redistributable components from the SOAP Toolkit. If your application accesses only existing XML Web services, you must include only the SOAP Client merge module.

For applications that publish XML Web services, you must include the client-side and server merge modules from the SOAP Toolkit. In addition, you must include the specific server support files, for example, ASP listener and WSDL files. You should also consider using the XML Web services foundation class files, _WS3Utils.vcx and _WS3Client.vcx, to automate this process when running the deployed application for the first time.

If you automate the XML Web service publishing process, you can create a virtual directory and generate support files on the fly. However, it is recommended that you perform extensive Setup testing if you choose this approach for deployment.

 

Entonces, entiendo en el párrafo resaltado, que uno puede publicar web services en VFP.

Te agradezco mucho tu respuesta, y si me ayudas a aclarar esta duda entonces.

Un abrazo

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Feb 26, 2014, 1:14:25 PM2/26/14
to publice...@googlegroups.com
al parecer si se puede crear con visual foxpro la verdad desconocia de este tema te paso un link de microsoft donde enseña a crear Web Service, pero yo prefiero hacerlo con .Net ya que mi base de datos no es de Visual FoxPro.

luisandrey

unread,
Feb 26, 2014, 3:08:32 PM2/26/14
to publice...@googlegroups.com
Muchas Gracias por tu respuesta Russvell.
 
Yo me estaba poniendo colorado. pensé que estaba mas perdido que el hijo de Limbergh.
 
Bueno, mi base de datos es SQL, entonces crees que tampoco debería hacerse en VFP?
Te recibo entonces la ayuda que me puedas dar para desarrollarlo en .NET, alguna vez estuve haciendo cositas con C#.
 
Mil Gracias.

luisandrey

unread,
Feb 26, 2014, 4:11:53 PM2/26/14
to publice...@googlegroups.com
Mil Gracias Oscar.
revisare todo tu tema.
 
Lo estas consumiendo...?
Ok. me parece interesante, pero será que se puede publicar y consumir con VFP
 
Un Abrazo.
 

On Wednesday, February 26, 2014 3:16:37 PM UTC-5, Oscar Quiros Coto wrote:
En estos días e tenido que investigar al respecto, te pongo un par de ejemplos para que vea como se consume el servicio, es mas fácil de lo que había pensado.
Los pasos son;

. Averiguar la direccion exacta del servicio
. Averiguar los nombres de los metodos y los parametros
. Convertir el xml a un cursor.

Luego solo necesitas el cliente soap instalado en la estacion y todo listo.

Ejemplo1, para obtener el tipo de cambio del banco central en Costa Rica, y cargarlo en un cursor.

oSOAP = Createobject("MSSOAP.SoapClient30")
tc=osoap.ObtenerIndicadoresEconomicos('318','25/02/2014','25/02/2014','a','N')  && Puedes hacerlo en un rango de fechas.
XMLTOCURSOR(tc.item(1).firstChild.xml,'indicador_venta')
tc=osoap.ObtenerIndicadoresEconomicos('317','25/02/2014','25/02/2014','a','N')
XMLTOCURSOR(tc.item(1).firstChild.xml,'indicador_compra')
RELEASE tc

Lo anterior lo hice entre el lune sy ayer.
Agradezco a Russvell Jesus Soto Gamarra y a Victor Espina, que me regalaron un poco de su valioso conocimiento y tiempo.

Ejemplo2, seria un ejemplo de como montar un servicio web con php+apache+mysql, y al final como consumirlo en VFP.

Para consumirlo en vfp, solo que este ejemplo devuelve un arreglo:
ophp=CREATEOBJECT("MSSoap.SoapClient30")
arreglo=ophp.consultausuarios('M')
FOR i=1 TO ALEN(arreglo)
?arreglo(i).ITEM(1).firstChild.XML
ENDFOR

Saludos, espero te sirva de algo esta información.

Saludos.

Oscar Quiros Coto

unread,
Feb 26, 2014, 4:15:14 PM2/26/14
to publice...@googlegroups.com
Si se puede montar un servicio con VFP en tablas dbf, a mi parecer es mejor con php+mysql+apache.
Si tienes algo, lo compartes.
Por lo menos lo del tipo de cambio, lo consumo todos los dias, para actualizar mis tablas.

Saludos.
-- 
___________________________________________________
Soporte y Sistemas OQC, S.A.
Partner Autorizado de ESET en Costa Rica
Cel:(506) 87 11 00 11
Email:os...@ssoqc.com - oscarqu...@hotmail.com
Skype: oscar.quiros.coto
GTalk: os...@ssoqc.com

Victor Espina

unread,
Feb 26, 2014, 4:46:46 PM2/26/14
to publice...@googlegroups.com
No estoy seguro si es posible publicar un servicio web XML tradicional usando solo VFP, pero si que se puede hacer con servicios web tipo REST, usando ActiveVFP (https://activevfp.codeplex.com/).

Ahora, consumir servicios web tipo REST no es igual que consumir servicios web normales, pero no es nada complicado tampoco y se puede hacer perfectamente desde VFP.  Si hay interes, puedo montar un ejemplo sencillo en mi sitio web y publicar el codigo para consumirlo.

Saludos

Victor Espina

luisandrey

unread,
Feb 26, 2014, 4:50:23 PM2/26/14
to publice...@googlegroups.com, os...@ssoqc.com, oscarqu...@hotmail.com
Te entiendo Oscar.
 
Pero yo ya tengo todo mi sistema trabajando con SQL server y como front End VFp 9.0.
Hay espacio para MySql?
 
Muchas Gracias
 
Un Abrazo
Email...@ssoqc.com - oscarqu...@hotmail.com
Skype: oscar.quiros.coto
GTalk: os...@ssoqc.com

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Feb 26, 2014, 6:20:03 PM2/26/14
to publice...@googlegroups.com
Te paso un pequeño ejemplo de como crear web service en C# .Net esta hecho en Visual Studio 2010 y un link de un video donde se ve como se consume el Web Service desde VFP. https://www.youtube.com/watch?v=BQ6IU_DQh2U, revizas la parte del web.config ahí esta los parámetros de la conexión.
WebService.rar

luisandrey

unread,
Feb 26, 2014, 8:25:29 PM2/26/14
to publice...@googlegroups.com
Muchas Gracias Russvell.

lo estudiare y te estare contando.

un abrazo.

luisandrey

unread,
Feb 26, 2014, 8:27:27 PM2/26/14
to publice...@googlegroups.com
Victor, mil gracias.

te recibo todo lo que puedas sugerir.


un abrazo, hermano.

luisandrey

unread,
Feb 26, 2014, 8:36:12 PM2/26/14
to publice...@googlegroups.com, guille...@yahoo.com.ar
Hola Guillermo.

mil gracias por leer y responder.
si hablas del articulo de Luis Maria, no se si es que mi lentitud no me permite ubicarlo dentro de mi necesidad, me queda la duda.

un abrazo.


El miércoles, 26 de febrero de 2014 17:49:54 UTC-5, Guillermo Gimenez escribió:
No es imposible... es muuuuuy posible... en este mismo foro se hablo mucho del tema... hay un buen tutorial en portalfox tambien... me preocupa que no tengamos disposición a investigar un poco... pero bueh...

Saludos

Guille
--------------------------------------------
El mié 26-feb-14, MALKASOFT ADPI: http://www.developervfp.blogspot.com/ <rycj...@gmail.com> escribió:

 Asunto: [vfp] Re: Web Service
 Para: publice...@googlegroups.com
 Fecha: miércoles, 26 de febrero de 2014, 14:14
 
 Hola, hacer un web service
 en VFP imposible bueno al menos eso se, pero si se puede
 consumir lo que ya esta hecho en un ambiente web como ASP.
 Net, PHP, te dejo un link de un vídeo para que veas el
 consumo quizás a eso te referías. 
 Consumir Web Service desde VFP: http://www.youtube.com/watch?v=BQ6IU_DQh2U
 
 Saludos; 
 
 Ing. Russvell Jesus Soto
 Gamarra Blog:
 http://developervfp.blogspot.mx/Canal YouTube:
 http://www.youtube.com/rycjesusrjFramework
 Multi-conexion v6.0 trabaja cualquier base de
 datos(SQLServer, MySQL, Firebird, MariaDB,

Petaco Román

unread,
Feb 27, 2014, 8:19:43 AM2/27/14
to publice...@googlegroups.com
Victor, me interesa mucho si puede poner el ejemplo.
Muchas gracias!!!

Javier Román

Moises Daniel Vilchez Tello

unread,
Feb 27, 2014, 11:28:07 AM2/27/14
to Comunidad de Visual Foxpro en Español
Saludos Estimados Amigos,

Mi pregunta es, si exponemos los recursos de nuestra empresa para que sean consumidos por nuestros clientes, como podemos colocarle 'seguridad', si por ejemplo tenemos un web services donde vamos a exponer el estado de cuenta de un cliente y los parametros que necesita nuestro WS son: fechaInicial, fechaFinal, idCliente, idSucursal, como podemos evitar q otro cliente coloque un idCliente diferente y pueda ver el estado de cuenta de otro cliente.

Ojala me puedan captar la idea y darle seguridad.


Atte.
--
Moises Daniel Vilchez Tello
Chiclayo - Lambayeque - Peru

Luis Mata Figueroa

unread,
Feb 27, 2014, 11:38:52 AM2/27/14
to publice...@googlegroups.com
Obviamente

Cada cliente debe de tener una clave de acceso.

Luis Mata

Oscar Quiros Coto

unread,
Feb 27, 2014, 12:29:00 PM2/27/14
to publice...@googlegroups.com
El control de seguridad lo impones tu, yo diría con con el idcliente mas una contrasña seria suficiente.
Pero también puedes implementar algún tipo de estado, como activo e inactivo para el id cliente, para que en algun momento dado, deje de tener acceso a dicha información.
--
___________________________________________________
Soporte y Sistemas OQC, S.A.
Partner Autorizado de ESET en Costa Rica
Cel:(506) 87 11 00 11

Moises Daniel Vilchez Tello

unread,
Feb 27, 2014, 12:44:45 PM2/27/14
to Comunidad de Visual Foxpro en Español
bueno habia pensado en los token que otorgan los bancos para realizar, alguien tiene experiencia es esto?

Oscar Quiros Coto

unread,
Feb 27, 2014, 1:45:46 PM2/27/14
to publice...@googlegroups.com
Creo que seria mas fácil tratar de implementar una firma digital que un token.
Con el toquen tienes que tener un control de la lista de códigos asociada a cada aparato, y un manejo cada vez que se descordina, y/o cuando se daña o pierde, es mas complicado, a menos de que seas una institución que realmente amerite este tipo de control. 

Moises Daniel Vilchez Tello

unread,
Feb 27, 2014, 5:58:15 PM2/27/14
to Comunidad de Visual Foxpro en Español
Tienes razón, con los token es mas complicado la administración si sucede un siniestro, me podrias apoyar un poco mas con lo de la firma digital q mencionas, como se trataria.

Un abrazo desde  Chiclayo - Lambayeque- Perú

Victor Espina

unread,
Mar 3, 2014, 7:56:18 AM3/3/14
to publice...@googlegroups.com
Una forma relativamente facil y segura es crear un ID de sesion.  La idea es mas o menos asi:

a) El cliente debe invocar primero un metodo en el WebService que le permite "autenticarse", indicando un ID de cliente y un password.
b) Si los datos son correctos, el metodo de autenticacion devuelve un ID de sesion, encriptado y en formato Base64, el cual debe contener el ID del cliente, la fecha/hora de inicion de sesion y un ID unico de sesion.
c) Todos los demas metodos de tu WebService deben recibir ese ID de sesion como uno de sus parametros, ademas del ID del cliente.
d) Todos los metodos deben invocar un metodo interno que valide el ID de sesion y determinen si es correcto y valido
e) El ID de sesion es correcto y valido si, una vez desencriptado, el ID de cliente contenido en el ID de sesion coincide con el ID De cliente indicado en la llamada al metodo, y si la sesion tiene menos de "x" tiempo desde su creacion.
f) El cliente tambien deberia invocar un metodo al final de su proceso para "Cerrar" su sesion

Esto te permitiria llevar un registro de las sesiones abiertas, incluyendo que cliente la abrio, cuando la abrio, cuando la cerro, si fue cerrada manualmente o por "vencimiento", que metodos invoco, que parametros le envio, etc.

Saludos

Victor Espina

Email...@ssoqc.com - oscarqu...@hotmail.com
Skype: oscar.quiros.coto
GTalk: os...@ssoqc.com

Rafael Mellado

unread,
Mar 4, 2014, 2:52:55 AM3/4/14
to publice...@googlegroups.com
Se puede hacer perfectamente y que consuma DBF,  con VP7 tengo algunos hechos, si estás interesado refresco memoria y te paso información.

Oscar Quiros Coto

unread,
Feb 26, 2014, 3:16:37 PM2/26/14
to publice...@googlegroups.com

Guillermo Gimenez

unread,
Feb 26, 2014, 5:49:54 PM2/26/14
to publice...@googlegroups.com
No es imposible... es muuuuuy posible... en este mismo foro se hablo mucho del tema... hay un buen tutorial en portalfox tambien... me preocupa que no tengamos disposición a investigar un poco... pero bueh...

Saludos

Guille
--------------------------------------------
El mié 26-feb-14, MALKASOFT ADPI: http://www.developervfp.blogspot.com/ <rycj...@gmail.com> escribió:

Asunto: [vfp] Re: Web Service
Para: publice...@googlegroups.com
Fecha: miércoles, 26 de febrero de 2014, 14:14

Hola, hacer un web service
en VFP imposible bueno al menos eso se, pero si se puede
consumir lo que ya esta hecho en un ambiente web como ASP.
Net, PHP, te dejo un link de un vídeo para que veas el
consumo quizás a eso te referías. 
Consumir Web Service desde VFP: http://www.youtube.com/watch?v=BQ6IU_DQh2U

Saludos; 

Ing. Russvell Jesus Soto
Gamarra Blog:
http://developervfp.blogspot.mx/Canal YouTube:
http://www.youtube.com/rycjesusrjFramework
Multi-conexion v6.0 trabaja cualquier base de
datos(SQLServer, MySQL, Firebird, MariaDB,

Luis suescún

unread,
Mar 20, 2014, 9:27:55 AM3/20/14
to publice...@googlegroups.com
Rafael...
Que pena, estaba ausente del tema, pero lo retomo, claro te recibo todo en lo que me quieras ayudar.
 
mil gracias y un abrazo.
 

Rafael Mellado

unread,
Mar 22, 2014, 9:01:05 PM3/22/14
to publice...@googlegroups.com
Pasos para la construcción del Web Service:
Adjunto fichero

1) Generamos el proyecto seleccionamos multi-thread com server.dll (La ultima opción), este proceso nos va a generar la DLL
2) Copiar la Dll en la carpeta pública web del servidor ( p.e. c:\inetpub\wwwroot\wsdemo)
3) Registrar la DLL, ejecutar comando regsvr32 wsdemo.dll
4) Hay un asistente que nos va a ayudar a publicar el WS, dentro del VFP9 / Tools / Wizards / Web Services, (Deberiamos instalar el VFP9 en el servidor para utilizar el asistente)

-----
Cómo conectar con el WS

LOCAL loX,loX2
LOCAL lws2 as servicio web demo
LOCAL loWS

*Ejemplo1, haciendo pruebas antes de publicar
lox =NEWOBJECT("wsDemo","c:\proyectos\dplusv9\wsdemo\prg\wsdemo.prg")
?loX.wsVersion()

*Ejemplo2, Probando la DLL
lox2 =NEWOBJECT("wsDemo","c:\proyectos\dplusv9\wsdemo\prg\wsdemo.dll")
?loX2.wsVersion()

*Ahora conectamos con el servidor.
*Utilizamos las clase que está en la vf7 fundation Class 
loWS = NEWOBJECT("Wsclient","P:\vfp7\Ffc\_webservices.vcx")
loWS.cWSName = "servicio web demo"
lws2 = loWS.SetupClient("http://192.168.1.125/wsdemo/wsdemol.wsdl", "wsdemo", "wsdemoSoapPort")
? "Versión: " + lws2.wsVersion()

Sl2
Rafa Mellado
wsDemo.rar
Reply all
Reply to author
Forward
0 new messages