DEFINE CLASS GestionarClientes AS SESSION OLEPUBLIC PROCEDURE INIT IF NOT USED("Test01") USE c:\devtools\vfparena\Test01.DBF IN 0 ENDIF ENDPROC PROCEDURE DESTROY *-- Cerrar tablas si es necesario ENDPROC PROCEDURE ListarClientes AS STRING LOCAL loXMLAdapter AS XMLADAPTER LOCAL lcXMLclientes AS STRING loXMLAdapter = CREATEOBJECT("XMLAdapter") SELECT * ; FROM Test01 ; ORDER BY nombre ; INTO CURSOR cur_Clientes loXMLAdapter.ADDTABLESCHEMA("cur_Clientes") loXMLAdapter.UTF8ENCODED = .T. loXMLAdapter.TOXML("lcXMLClientes") RETURN lcXMLclientes ENDPROC PROCEDURE AgregarCliente AS Boolean PARAMETERS tnCodigo as Number,; tcNombre AS String INSERT INTO Test01 (codigo, nombre) VALUES(tnCodigo, tcNombre) RETURN .T. ENDPROC PROCEDURE EliminarCliente AS Boolean PARAMETERS tnCodigo as Number DELETE FROM Test01 WHERE codigo = tnCodigo RETURN .T. ENDPROC PROCEDURE ERROR(nError, cMethod, nLine) COMRETURNERROR([Método "] + cMethod + ["], MESSAGE()) ENDPROC ENDDEFINEY aquí y un programa de ejemplo de como consumir ese web services desde VFP
LOCAL loGestionarClientes AS "XML Web Service" LOCAL loException, lcErrorMsg, loWSHandler TRY loWSHandler = NEWOBJECT("WSHandler",IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_ws3client.vcx") loGestionarClientes = loWSHandler.SetupClient("http://CDEV/WSDL_VFP9/GestionarClientes.wsdl", "GestionarClientes", "GestionarClientesSoapPort") lcXMLresult = loGestionarClientes.ListarClientes() XMLTOCURSOR(STRCONV(lcXMLresult,11),"cur_Clientes",4) BROWSE noedit USE IN cur_clientes CATCH TO loException lcErrorMsg="Error: "+TRANSFORM(loException.Errorno)+" - "+loException.Message DO CASE CASE VARTYPE(loGestionarClientes)#"O" CASE !EMPTY(loGestionarClientes.FaultCode) lcErrorMsg=lcErrorMsg+CHR(13)+loGestionarClientes.Detail OTHERWISE ENDCASE MESSAGEBOX(lcErrorMsg) FINALLY ENDTRYEspero que te sirva.