Webservice

1,200 views
Skip to first unread message

Edwin Duran

unread,
May 11, 2019, 10:25:59 AM5/11/19
to Comunidad de Visual Foxpro en Español
Buen día, le comento que es la primera vez que voy a trabajar con webservice,  en el siguiente link me dice las funciones que existen https://dgii.gov.do/wsMovilDGII/WSMovilDGII.asmx

y desde visual  encontré este código pero no he podido poner a funcionar, tengo vfp9 con windows 10

*------Ejemplo para consumir un webservice--------------* 
*------jecutar una consulta y como resultado obtener un cursor 
LOCAL loWSPrueba AS "XML Web Service"
LOCAL loException, lcErrorMsg, loWSHandler
TRY
loWSPrueba = CREATEOBJECT("MSSOAP.SoapClient30")
* Llamo al metodo que cree en el Web Service
oXML = loWSPrueba.GetContribuyentes("130763862")
IF VARTYPE(oXML.item(1).firstChild)="O" &&Verifico si se creo el objeto oXML 
* Convierto el Dataset a Cursor VFP 
XMLTOCURSOR(oXML.item(1).firstChild.xml,"TmpPedido") 
ENDIF
CATCH TO loException
lcErrorMsg="Error: "+TRANSFORM(loException.Errorno)+" - "+loException.Message
DO CASE
CASE VARTYPE(loWSPrueba)#"O"
lcErrorMsg = "Falla de conexion al Web Service"
CASE !EMPTY(loWSPrueba.FaultCode)
* SOAP error al llamar al metodo
lcErrorMsg=lcErrorMsg+CHR(13)+loWSPrueba.Detail
OTHERWISE
* Otros errores
ENDCASE
MESSAGEBOX(lcErrorMsg,16,"Error...")
FINALLY
* si todo esta bien hacemos un browse a nuestro cursor
IF USED("TmpPedido")
SELECT TmpPedido
BROWSE 
ENDIF 
ENDTRY

Ricardo Soldini

unread,
May 20, 2019, 7:00:03 PM5/20/19
to Comunidad de Visual Foxpro en Español
Hola Edwin 
ese codigo funciona perfecto (yo lo uso) 
tienes que tener habilitado el sopadsk que viene con el ejemplo (eso instala el MSSOAP.SoapClient3 en tu computadora
despues debes instalar ese soap en todas las maquinas que utilizaran la aplicacion que accede a webservice

lo otro asegurate de que puedes consumir el webservice manualmente a traves del task panel
asi tendras la certeza de que estas poniendo adecuadamente la direccion web del servidor que intentas acceder

Edwin Duran

unread,
May 21, 2019, 7:38:54 AM5/21/19
to Comunidad de Visual Foxpro en Español
Gracias, el SoapClient3 lo instale e intenet correrlo del taskpanel y tampoco ahí funciono

Victor Espina

unread,
May 30, 2019, 1:34:09 PM5/30/19
to Comunidad de Visual Foxpro en Español
El SOAPClient no funciona son el protocolo HTTPS (pero si con HTTP).   La unica forma de poder manejarte con esos webservices desde VFP es hacer un wrapper en .NET.  Mira este articulo:


Basicamente lo que haces es usar el asistente de webservices de .NET para crear una clase proxy que es la que se comunica con el webservice y te permite invocar los metodos expuestos por el WS y obtener las respuestas en formato XML.   Luego, creas una clase con metodos "publicos" que pueddas instanciar e invocar desde VFP (tal como se explica en el articulo) y desde esos metodos invocas a los metodos de la clase proxy.

Saludos

Victor Espina

Edwin Duran

unread,
May 30, 2019, 1:59:21 PM5/30/19
to Comunidad de Visual Foxpro en Español
gracias

James Suárez

unread,
Jun 4, 2019, 3:01:19 AM6/4/19
to Comunidad de Visual Foxpro en Español
supongo que no conoces mi librería kodnet https://github.com/voxsoftware/kodnet

Edwin Duran

unread,
Jun 4, 2019, 9:00:20 AM6/4/19
to Comunidad de Visual Foxpro en Español
Si, pero como no tengo nociones de .net no la he probado.
Reply all
Reply to author
Forward
0 new messages