Page 1 of 2

Ayuda con WEBSERVICE

Posted: Mon Nov 15, 2010 7:42 pm
by elmoiquique
Cuando trato de conectarme me da el siguiente error

ERROR DESCRIPTION:ERROR MSXML2.DOMDocument/3 DISP_E_MEMBERNOTFOUND: CXML

STACK CALLS

CALLED FROM: SOURCE\RTL\WIN32OLE.PRG=> TOLEAUTO.CXML(0)
CALLED FROM: SVE201.PRG=> CONWS (1203)


ESTE ES UNA PRTE DEL PROGRAMA

FUNCTION CONWS()
// osoapclient:=createobject("mssoap.soapclient")
// osoapclient:=nil
LOCAL oHttp,doc
LOCAL cLocation:="http://<hostSVE>svePerfilacionWSN/Sesion?WSDL"
LOCAL cXml:=""+;
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cl="cl.zofri.sve" xmlns:wsn="http://cl/zofri/sve/prf/wsn" xmlns:java="java:cl.zofri.sve.app.eo">'+;
'<soapenv:Header>'+;
'<cl:token></cl:token>'+;
'</soapenv:Header>'+;
'<soapenv:Body>'+;
'<wsn:login>'+;
'<wsn:usuario>90000059-0</wsn:usuario>'+;
'<wsn:clave>cy6u8ftS</wsn:clave>'+;
'<wsn:rutEmpresa>'+;
'<java:Dv>0</java:Dv>'+;
'<java:Nro>90000059</java:Nro>'+;
'</wsn:rutEmpresa>'+;
'<wsn:rutAgencia></wsn:rutAgencia>'+;
'</wsn:login>'+;
'</soapenv:Body>'+;
'</soapenv:Envelope>'
?cxml
// doc =createobject("MSXML2.DOMDocument")
// ohttp=createobject("MSXML2.XMLHTTP")
// ohttp:open("POST",clocation,.f.)
// ohttp:setrequestheader("soapaction","ws_graf")
// ohttp:setrequestheader("content-type","text/xml")
// doc:loadxml(cxml)
// ohttp:Send( cxml )
// ?ohttp:responsetext

doc = toleauto():new("MSXML2.DOMDocument")
ohttp=toleauto():new("MSXML2.XMLHTTP")

ohttp:open("POST",clocation,.f.)
ohttp:setrequestheader("soapaction","enviararchivowebservice")
ohttp:setrequestheader("content-type","text/xml")

doc:loadXML(cxml)
ohttp:Send(doc:cxml ) LINEA 1203
// ?ohttp:responsetext

RETURN .T.

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 7:58 am
by Carlos Mora
La traducción al 'cristiano' de ERROR DESCRIPTION:ERROR MSXML2.DOMDocument/3 DISP_E_MEMBERNOTFOUND: CXML sería que no existe la variable de instancia cXml.
Estás llamando a Send usando Dom:cXml... ¿Y si pruebas usando directamente cXml? Es decir:

Code: Select all

ohttp:Send(cXml)
Creo que los objetos del tipo DOMDocument no tienen la variable cXml.
Una pregunta de puro curioso ¿Para que necesitas crear un objeto DOMDocument? Sé que se usa mucho cuando haces Ajax con Javascript, porque manipulas los elementos y nodos del html para recoger y proyectar los resultados, pero probablemente en este caso te resulte suficiente con usar texto simple.

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 1:38 pm
by elmoiquique
Ya probe de esa forma y me da el mismo error,

Con respecto a tu pregunta es un ejemplo que esta aca en el foro y para que sirve lo desconozco, la verdad es primera vez que trabajo con webservices y no se nada como hacer la comunicacion con este y tampoco las repuestas, espo eso que copie le ejemplo.

Lo unico que necesito es comunicarme con el y que me de una respuesta

agradeceria tu ayuda

saludos

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 3:17 pm
by pcordonet
Hola,

Has probado con el programa soapUI: http://www.soapui.org

A mi me fué muy bien para depurar errores.

Pere

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 4:47 pm
by Carlos Mora
Hola Pere,

la herramienta que recomendaste tiene una MUY buena pinta. Creo que la añadimos a la lista de utilidades, me viene de perlas.
Muchísimas gracias

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 6:04 pm
by pcordonet
Hola Carlos,

de nada, estamos para ayudarnos.

Una cosa que he visto, supongo que esta direccion esta cambiada, porque sino, es normal que de error.

Code: Select all

LOCAL cLocation:="http://<hostSVE>svePerfilacionWSN/Sesion?WSDL" 
 
Esto <hostSVE> tiene que ser nombre de servidor.

Pere.

Re: Ayuda con WEBSERVICE

Posted: Tue Nov 16, 2010 7:00 pm
by elmoiquique
Hola Pere

Tenias Razon, me faltaba el nombre del servidor y con eso se soluciono mi problema hasta ahora, gracias por la ayuda.

logre comunicarme con el servidor y consumir de este mismo

y otra cosa muy buena herramienta la que acabas de publicar

Re: Ayuda con WEBSERVICE

Posted: Wed Nov 24, 2010 9:14 pm
by elmoiquique
Una Consulta
para buscar el resultado de un tag dentro del XML, lo busco de la siguiente manera


txt= res:selectsinglenode("//java:resmensaje")
tj1:=txt:text

cuendo existe el tag no hay problemas y almacena en tj1 el resultado, pero cuando no existe el programa se cae


como puedo hacer o validar de que exista ese tag

saludos

Re: Ayuda con WEBSERVICE

Posted: Sat Nov 27, 2010 7:50 pm
by elmoiquique
Ya lo solucione

if txt ! = NIL

Re: Ayuda con WEBSERVICE

Posted: Sat Nov 27, 2010 7:52 pm
by elmoiquique
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<cl:token xmlns:cl="cl.zofri.sve">fb27a2004f1fa9052--ceb1fac1-34-6-c213-7b12 5ff1-d860-3:6442daa2485:42432-b6792206f0fc915d-0c-b-f3c1-a4162c-17-2bd275df -e810b36674:d9a24352464:2</cl:token>
<cl:respuesta xmlns:cl="cl.zofri.sve">
<java:resCodigo xmlns:java="java:cl.zofri.sve.utl.bo">0</java:resCodigo>
<java:resMensaje xmlns:java="java:cl.zofri.sve.utl.bo">Se ejecutó correctamente el servicio.</java:resMensaje>
<java:resSeveridad xmlns:java="java:cl.zofri.sve.utl.bo">O</java:resSeveridad>
</cl:respuesta>
</env:Header>
<env:Body>
<m:obtenerCausalesRechazoResponse xmlns:m="http://cl/zofri/sve/cns/wsn">
<m:return><![CDATA[<srv alias="" id="executeSrvDataMultiple" knaToken="<header><token>fb27a2004f1fa9052--ceb1fac1-34-6-c213-7b12 5ff1-d860-3:6442daa2485:42432-b6792206f0fc915d-0c-b-f3c1-a4162c-17-2bd275df -e810b36674:d9a24352464:2</token><idUsuario>elmo.ceballos</idUsuario><CodigoTipoUsuario>TUSU3</CodigoTipoUsuario><RutUsuario>90000008-0</RutUsuario><RutEmpresa>90000008-0</RutEmpresa><RutAgencia></RutAgencia></header>"><result><srvs result="ok" rowCount="1"><data TTotal="14" id="consultarCausalesRechazo" result="ok" rowCount="3" rowCountTotal="3"><row CODI_TDOC="101" CONT_VALI="Validación de Negocio" CREC_CODI="201" CRMD_FECH_CREA="2010-11-20 00:00:00.0" CRMD_MENS="ERROR: Debe Ingresar Tipo de Adjunto "Nota de gasto",o completar los datos Nro y Fecha, -" CRMD_NRO_ITEM="0" LTIP_NOMB="Upload" MDOC_FECH_INGR="2010-11-20 21:08:51.0" MDOC_ID="201060739" MDOC_NDOC_USUA="000001" NUME_PROV="101-20108956" RUT="90000008-0" USUA_ID="elmo.ceballos"/><row CODI_TDOC="101" CONT_VALI="Validación de Negocio" CREC_CODI="200" CRMD_FECH_CREA="2010-11-20 00:00:00.0" CRMD_MENS="ERROR: Debe Ingresar Tipo de Adjunto "Reconocimiento de reembalaje y división",o completar los datos Nro, Fecha y Emisor. , -" CRMD_NRO_ITEM="0" LTIP_NOMB="Upload" MDOC_FECH_INGR="2010-11-20 21:08:51.0" MDOC_ID="201060739" MDOC_NDOC_USUA="000001" NUME_PROV="101-20108956" RUT="90000008-0" USUA_ID="elmo.ceballos"/><row CODI_TDOC="101" CONT_VALI="Validación de Negocio" CREC_CODI="323" CRMD_FECH_CREA="2010-11-20 00:00:00.0" CRMD_MENS="ERROR: El tipo de bulto informado no existe, 022" CRMD_NRO_ITEM="0" LTIP_NOMB="Upload" MDOC_FECH_INGR="2010-11-20 21:08:51.0" MDOC_ID="201060739" MDOC_NDOC_USUA="000001" NUME_PROV="101-20108956" RUT="90000008-0" USUA_ID="elmo.ceballos"/><statics TExecuteSQL="2" TGetConnection="0" TPopulate="2" TSQLParser="7" TXMLParser="0"/><prmsQuery><prm NRO_ATENCION="<srvs><row nume_aten='201060739'/></srvs>" NRO_PROVISORIO="<srvs><row nume_prov='20108956'/></srvs>"/></prmsQuery><query authentication="true" authenticationKey="consulta" con="zofriDesa" id="consultarCausalesRechazo" method="query" viewAcc="edit, del">

<params/>
</query></data></srvs></result></srv>]]></m:return>

</m:obtenerCausalesRechazoResponse>
</env:Body>
</env:Envelope>



Como Puedo leer lo que esta en rojo, por tag , ya que es solo una linea por el CDATA, puede ser por un AT(x,y)o hay alguna otra forma de leerlo
agradeceria la ayuda

Re: Ayuda con WEBSERVICE

Posted: Mon Jan 24, 2011 4:02 pm
by Miguel Salas
Ya baje el soapUI pero la verdad , ni idea de como seguirle, podrian ayudarme con un ejemplo, desde ya gracias mil

Re: Ayuda con WEBSERVICE

Posted: Mon Jan 24, 2011 4:43 pm
by pcordonet
Hola Miguel,

A lo mejor te puedo echar una mano con Soapui, en que punto te encuentras ??


Hola elmiquique,

En que harbour estas trabajando, yo lo hago con xharbour comercial, este tiene unas clases Txmldocument, txmlnode, .. que funcionan muy bien.
En este caso te podría echar una mano.


Un saludo.
Pere

Re: Ayuda con WEBSERVICE

Posted: Mon Jan 24, 2011 5:03 pm
by Miguel Salas
es 1.1.0 , open source, la vdd te lo agradecería bastante pq no tengo npi de como hacer esto,

saludos

Re: Ayuda con WEBSERVICE

Posted: Mon Jan 24, 2011 5:19 pm
by pcordonet
Hola Miguel,

Primero de todo tienes que saber la url del servicio web.

Tienes que crear un proyecto nuevo
Como es obvio "Project Name" es el nombre de proyecto.

Donde pone "initial WSDL/WADL" va la url anterior.

Y despues desmarcar totas las opciones y pulsar OK.

Pere.

Re: Ayuda con WEBSERVICE

Posted: Tue Jan 25, 2011 5:22 pm
by Miguel Salas
Gracias Pere

me esta marcando "erroe importin g wsdl" ya cheque con varias url y sigue. ¿?
saludos