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...