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:
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.orgA 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 | Expand
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