Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2012, 10:09
Avatar de NetFcruz
NetFcruz
 
Fecha de Ingreso: agosto-2012
Ubicación: Reynosa
Mensajes: 32
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Enviar XMl a Web Service asmx desde VB.NET

Hola amigos, me eh encontrado con un grandioso problema y peor aun siendo nuevo ene l mundo de la programacion. Espero me ayuden ya que al termino de este problema resuelto pondre la apliccion qu estoy realizando. Ya que muchos resuelven sus dudas y no comparten la ayuda que se les da, en este caso yo pondre mi solucion.

El problema es el siguiente: "Necesito enviar un xml a un webservice, pero este es un .asmx?WSDL, entonces tengo formado mi xmlcompleto y no se como iniciar las declaraciones de forma ordenda para enviar este xml como string o el xml en fichero o como debe ser".

Entonces yo eh agregado la referencia web a mi windows forms, claro es en vb.net 2010, eh declarado hasta aqui:
Código:
 
'Creo instancia del webservice
Dim CallWebService As New com.soriana.www2.wseDocRecibo
        Dim WSUrl As String = "http://www2.soriana.com/Integracion/RecibeCFD/wseDocRecibo.asmx"
        'Recojo el xml
        Dim xDoc As String = " C:\XML\Addenda.XML" 'New System.Xml.XmlDocument
        'xDoc.Load(" C:\XML\Addenda.XML")
        Dim xmlDoc = New XmlDocument
        xmlDoc.LoadXml(xDoc)
Despues de aqui ya no se que debe seguir, amigos podriar ayudarme a darle solucion, tengoun code que hace lo que quiero hacer pero esta en VFP9, miren tambien selos pongo ya que les puede servir este es el que quiero traducir par enviarlo de esta manera:

Código:
'este es el xml que trae generando + x_string que es un nuevo Nodo el cual los une 'y envia al mismo webservice que quiero enviar.

arch_xml = arch_xml + x_strg 

thisform.edit1.Value= arch_xml
thisform.Refresh 
add_file='\pubwinv\soriana\'+ALLTRIM(thisform.foLIO.Value)+STRtran(TIME(),':','_')+'.xml'

 STRTOFILE(arch_xml,add_file) 

*******************
**********
LOCAL lowseDocRecibo AS "XML Web Service"
* LOCAL lowseDocRecibo AS "MSSOAP.SoapClient30"
* Do not remove or alter following line. It is used to support IntelliSense for your XML Web service.
*__VFPWSDef__: lowseDocRecibo = http://www.soriana.com/recibecfd/wseDocRecibo.asmx?WSDL , wseDocRecibo , wseDocReciboSoap
LOCAL loException, lcErrorMsg, loWSHandler
TRY
	loWSHandler = NEWOBJECT("WSHandler",IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_ws3client.vcx")
	lowseDocRecibo = loWSHandler.SetupClient("http://www.soriana.com/recibecfd/wseDocRecibo.asmx?WSDL", "wseDocRecibo", "wseDocReciboSoap")
	* Call your XML Web service here.  ex: leResult = lowseDocRecibo.SomeMethod()
	
CATCH TO loException
	lcErrorMsg="Error: "+TRANSFORM(loException.Errorno)+" - "+loException.Message
	DO CASE
	CASE VARTYPE(lowseDocRecibo)#"O"
		* Handle SOAP error connecting to web service
	CASE !EMPTY(lowseDocRecibo.FaultCode)
		* Handle SOAP error calling method
		lcErrorMsg=lcErrorMsg+CHR(13)+lowseDocRecibo.Detail
	OTHERWISE
		* Handle other error
	ENDCASE
	* Use for debugging purposes
	MESSAGEBOX(lcErrorMsg)
FINALLY
ENDTRY

 m.lcErrorMsg = ""
 TRY
orespuesta = lowseDocRecibo. RecibeCFD(arch_xml)

CATCH TO loException  
  lcErrorMsg="Error: "+TRANSFORM(loException.Errorno)+" - "+loException.Message
    =MESSAGEBOX(lcErrorMsg+'---',0+64,'Alerta')
FINALLY
ENDTRY 
  
IF EMPTY(m.lcErrorMsg)  
   x_Status = STREXTR(orespuesta, [documentStatus="], ["])
   x_mensaje = STREXTRACT(orespuesta,'<text>','<')
   IF x_status='ACCEPTED'
   SELECT soriana
   APPEND BLANK
   REPLACE folio WITH thisform.foLIO.Value
   REPLACE XML WITH arch_xml
   REPLACE respuesta WITH orespuesta
   repla enviado WITH .t. 
   REPLACE fecha WITH DATE()
   REPLACE hora WITH TIME()
      =MESSAGEBOX('Archivo XML ha sido aceptado por soriana ',0+64,'Alerta')
      thisform.Release 
   ELSE
       =MESSAGEBOX(x_mensaje,0+64,'Alerta')

   ENDIF 
ENDIF
Espero les sirva eset code en vfp9 y me puedan auxiliar a traducir tmbn este codigo como en algoritmo. Para poderlo codear en vb.net.
Gracias...
__________________
!El conocimiento se LIMITA cuando dices NO PUEDO!

By NetFcruz

Última edición por NetFcruz; 22/10/2012 a las 10:23 Razón: Texto