leandro wrote:Ok vale, en la tarde le pego la revisada al código que enviaste.
ok, quedo atento
leandro wrote:Ok vale, en la tarde le pego la revisada al código que enviaste.
elmoiquique wrote:No te puedo enviar un adjunto por email,,,se devuelve por el attach,,, aca coloco el fuente que trabaja hace lallamda ,,se comunica y recibe la respuesta iincompleta
Code: Select all | Expand
#include "Fivewin.ch" #include "Xml.ch" #include "hbxml.ch" #include "common.ch" #Include "winapi.ch" #Include "objects.ch" FUNCTION OTWS() //Obtener Token Web Service LOCAL oHttp,Doc,cxmLbody,oIni,oDlg2,oSay,oText,response,res LOCAL ts_token:="",cErrormsg:="" LOCAL ts_exit:=.f.,tw_servidor:='',ts_mente:=.t. LOCAL ts_servidor:="http://sve.zofri.cl/svePerfilacionWSN/Sesion?WSDL" LOCAL ts_usuario:="nilce.navarrete" LOCAL ts_clave:="5700masa" LOCAL ts_nro:="99511570" LOCAL ts_dig:="0" if !isinternet() msgalert('Computador Sin Conexion a Internet','Verifique') return .f. endif //CONSTRUYE XML, PARA SOLICITAR TOKEN DE SESION cXmlBody := '' + ; '<?xml version="1.0" encoding="utf-8"?>' + ; '<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>'+alltrim(ts_usuario)+'</wsn:usuario>'+; ' <wsn:clave>'+alltrim(ts_clave)+'</wsn:clave>'+; ' <wsn:rutEmpresa>'+; ' <java:Dv>'+ts_dig+'</java:Dv>'+; ' <java:Nro>'+ts_nro+'</java:Nro>'+; ' </wsn:rutEmpresa>'+; ' <wsn:rutAgencia></wsn:rutAgencia>'+; ' </wsn:login>'+; ' </soapenv:Body>'+; '</soapenv:Envelope>' ohttp:=tipclienthttp():new(ts_servidor) if .not. ohttp:open() msgstop('Servidor Web '+ts_servidor,'Fuera de Servicio') return .f. endif doc = CreateObject( "MSXML2.DOMDocument" ) ohttp = CreateObject( "MSXML2.XMLHTTP" ) ohttp:Open( "POST" , ts_servidor , .F. ) ohttp:SetRequestHeader( "SOAPAction" , "token" ) ohttp:SetRequestHeader( "Content-Type" , "text/xml; charset=utf-8" ) doc:LoadXML( cXmlBody ) TRY ohttp:Send( doc:xml ) CATCH cErrorMsg:='No Se Pudo Enviar Documento XML...'+CRLF+CRLF+; 'Sin Conexion a Internet o Servidor Con Problemas' msginfo(cErrorMsg,"Intente Nuevamente") return .t. END response = ohttp:responseText If .Not. Empty( Alltrim( response ) ) res = CreateObject( "MSXML2.DOMDocument" ) res:LoadXML( ohttp:responseText ) txt = res:selectSingleNode( "//cl:token" ) if txt != NIL ts_token := txt:Text txt = res:selectSingleNode( "//java:resMensaje" ) cRetorno := txt:Text else ts_token:="" cRetorno = "### Hubo un Problema Con El Servidor, Mensaje No Pudo Ser Entregado ###" endif if empty(alltrim(ts_token)) cRetorno = "### No Fue Posible Generar Proceso ###" Endif endif msginfo(cretorno,'Resultado del Proceso') Release doc Release ohttp Release res Release response RDOCLPT(TS_TOKEN) RETURN .T. //----------------------------------------------------------------------------- ///---------------------------------------------------------------------------- ///---------------------------------------------------------------------------- ///RECUPERA DOCUMENTO ADJUNTO A IMPRIMIR ///---------------------------------------------------------------------------- FUNCTION RDOCLPT(TS_TOKEN) LOCAL oHttp,Doc,cxmLbody,oIni,nHandle LOCAL ts_exit:=.t.,tw_servidor:='',ts_mj1:='',ts_modulo:=.f. LOCAL ts_servidor:="http://sve.zofri.cl/sveProcDocWSN/Emision?WSDL" if empty(ts_token) msginfo('Debe Obtener un Token de Inicio para Autentificarse en Web Service','Token de Sesion') return .f. endif cXmlBody:= '' +; '<?xml version="1.0" encoding="utf-8"?>' + ; '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cl="cl.zofri.sve" xmlns:wsn="http://cl/zofri/sve/prd/wsn">'+; ' <soapenv:Header>'+; ' <cl:token>'+ts_token+'</cl:token>'+; ' </soapenv:Header>'+; ' <soapenv:Body>'+; ' <wsn:emisionDocumento>'+; ' <wsn:codigoAduaneroDoc>101-23-042489</wsn:codigoAduaneroDoc>'+; ' <wsn:tipoEmision>E</wsn:tipoEmision>'+; ' </wsn:emisionDocumento>'+; ' </soapenv:Body>'+; '</soapenv:Envelope>' TRY oHttp := CreateObject( 'MSXML2.XMLHTTP' ) CATCH oHttp := CreateObject( 'Microsoft.XMLHTTP' ) END doc = CreateObject("MSXML2.DOMDocument.6.0") oHttp:Open( "POST" , ts_servidor+' HTTP/1.1' , .F. ) oHttp:SetRequestHeader( "Accept-Encoding","gzip,deflate" ) oHttp:SetRequestHeader( "Content-Type", "text/xml;charset=UTF-8" ) oHttp:SetRequestHeader( "SOAPAction" , "" ) oHttp:SetRequestHeader( "Content-Length", "622") ohttp:setrequestHeader( "Host", "sve.zofri.cl:80" ) oHttp:SetRequestHeader( "Connection:", "Keep-Alive" ) oHttp:SetReQuestHeader( "User-Agent" , "Apache-HttpClient/4.5.5 (java 16.0.1)") doc:LoadXML( cXmlbody ) TRY // ohttp:Send( doc:xml ) ohttp:send(cxmlbody) CATCH cErrorMsg:='No Se Pudo Enviar Documento XML...'+CRLF+CRLF+; 'Sin Conexion a Internet o Servidor Con Problemas' msginfo(cErrorMsg,"Intente Nuevamente") return .t. END response = ohttp:responseText //crear un archivo para leer tag cFilename:="texto.xml" MEMOWRIT( cfilename, response, .F. ) ?'PAUSA' //leer archivo para extraer el factura pdf CTXT:=MEMOREAD(CFILENAME) pdfin:=at("%PDF-1.4",CTXT) pdfend:=At("%EOF",CTXT) largo:=pdfend-pdfin Cresp:=substr(CTXT,pdfin,largo+4) //SE CREA EL ARCHIVO PDF CPDF:="TEXTO.PDF" MEMOWRIT( cPdf, CRESP, .F. ) RETURN .T.
Estimado Leandro,,, hasta el dia de hoy no he recibido respuesta de Antonio,,, al parecer es un problema del Lenguaje,,, porque he tratado de miles de formas, pero ha sido imposble, ya estoy mareado con tanto codigo y soluciones... Creo que por mi parte ya he hecho de todo para solucionar el problema,,,, no creo que sea por version no actualizada,,, asi que me inclino por un problema del Lenguaje que no es capaz de hacer lo que solicita...leandro wrote:Ok vale, si es de entender.
Me cuentas si logras solucionarlo con Antonio; si no, me avisas y te apoyo en la creación de un WS en php que recoja la info y te la baje para ser usada en tu aplicación.
Quedo atento.
Estimado AntonioAntonio Linares wrote:La solución propuesta por Leandro de programarlo con php y llamar a este desde FWH parece ser el camino mas rápido y fácil
A lo que me refiero es que si obtenemos el PDF via php podríamos compararlo con el obtenido y asi intentar entender que está ocurriendoAntonio Linares wrote:La solución propuesta por Leandro de programarlo con php y llamar a este desde FWH parece ser el camino mas rápido y fácil
Estimada Karinha,,, Junto con Saludar mi Nombre es Elmo,,, con respecto a tu comentario preferiria llamarlo decepcion o frustracion,, con respecto al problema que no he podido solucionar,,, te cuento en resumen porque mi frustracion,,, este es un proyecto que llevo a un poco mas de un año de desarrollandolo que ha sido implementado por ADUANAS, para la ZONA FRANCA , aca en Chile y esta proximo a comenzar el 1 de noviembre del 2023 y finaliza su etapa de produccion el 31 de abril del 2024,,, en este proyecto se ven involucrados alrededor de 6000 empresas,,, las cual iran ingresando poco a poco a partir de noviembre finalizando en abril... de esas empresas algunas son mis clientes y el primero que empieza es en febrero del proximo año,,, donde va mi frustracion,,, debido al incoveniente de programacion no lo he podido terminar y menos probar... Me he juntado con algunos desarrolladores que estan involucrados en el mismo proyecto le he preguntado por el problema que tengo y ellos si han podido realizar e incluso me han mostrado parte de la programacion donde ellos si pueden consumir el WS y lograr el proposito final, cabe señalar que ellos programan en otros lenguajes WinDev, VIsual Basic, .Net y otros, ahora ellos ya finalizaron solo dando retoques finales y ofreciendo su producto a estas empresas que ya van a iniciar,,, y por el contrario yo no he podido ofrecer el mi producto, ya que no esta terminado y menos probado...karinha wrote:Elmoiquique (no sé tu nombre), entiendo tu arrebato, pero te confieso que no entiendo lo que realmente quieres. Él sería: Enviar correo electrónico con pdf y xml adjunto? És esto? Por favor explica con más calma.
Regards, saludos.
Code: Select all | Expand
'<?xml version="1.0" encoding="utf-8"?>' + ;
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cl="cl.zofri.sve" xmlns:wsn="http://cl/zofri/sve/prd/wsn">'+;
' <soapenv:Header>'+;
' <cl:token>'+ts_token+'</cl:token>'+;
' </soapenv:Header>'+;
' <soapenv:Body>'+;
' <wsn:emisionDocumento>'+;
' <wsn:codigoAduaneroDoc>201-23-370995</wsn:codigoAduaneroDoc>'+;
' <wsn:versionDoc>1</wsn:versionDoc>'+;
' <wsn:tipoEmision>E</wsn:tipoEmision>'+;
' </wsn:emisionDocumento>'+;
' </soapenv:Body>'+;
'</soapenv:Envelope>'
Code: Select all | Expand
------=_Part_2382_1164276092.1696025213279
Content-Type: application/xop+xml; charset=utf-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-ID: <soapPart>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header xmlns:work="http://bea.com/2004/06/soap/workarea/"><cl:token xmlns:cl="cl.zofri.sve">c72599064c208f3f2--48404ce9-44-c-9211-9973 f851-2793-4:94608e6670d:3765b-72589267c002f2f0-34-4-4ce0-a49cf9-13-29439fc5 -a713d49986:8b6076d63d6:b</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><work:WorkContext xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:work="http://bea.com/2004/06/soap/workarea/"><java class="java.beans.XMLDecoder">
<string>weblogic.app.sveParametrosEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveCoexistenciaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.svePerfilacionEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveProcDocEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.1</string>
<string>weblogic.app.knaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveAplicacionEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveReglasEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveAuditoriaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string/>
</java></work:WorkContext></env:Header><env:Body><m:emisionDocumentoResponse xmlns:m="http://cl/zofri/sve/prd/wsn"><m:return><Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid:return=aa27c5a6-f005-40d4-a43b-f901af0d963e@http://cl/zofri/sve/prd/wsn"/></m:return></m:emisionDocumentoResponse></env:Body></env:Envelope>
------=_Part_2382_1164276092.1696025213279
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <return=aa27c5a6-f005-40d4-a43b-f901af0d963e@http://cl/zofri/sve/prd/wsn>
%PDF-1.4
%??4 0 obj
<</Type/XObject/ColorSpace[/Indexed/DeviceRGB 255(
Estimado Antonio,,,, este es el XML de respuesta que me genera el lenguaje, como podras ver esta incompleto, empieza con PDF,, pero no tiene el final...Antonio Linares wrote:Estimado Elmo,
Por qué piensas que el PDF está incorrecto ? TEXTO.PDF comienza con %PDF-1.4 y termina con %%EOF.
La longitud parece correcta aunque no visualiza nada
No será que el servicio que lo genera, lo genera incorrectamente ? Si el PDF estuviese incompleto no terminaria en %%EOF
Code: Select all | Expand
------=_Part_2382_1164276092.1696025213279
Content-Type: application/xop+xml; charset=utf-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-ID: <soapPart>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header xmlns:work="http://bea.com/2004/06/soap/workarea/"><cl:token xmlns:cl="cl.zofri.sve">c72599064c208f3f2--48404ce9-44-c-9211-9973 f851-2793-4:94608e6670d:3765b-72589267c002f2f0-34-4-4ce0-a49cf9-13-29439fc5 -a713d49986:8b6076d63d6:b</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><work:WorkContext xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:work="http://bea.com/2004/06/soap/workarea/"><java class="java.beans.XMLDecoder">
<string>weblogic.app.sveParametrosEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveCoexistenciaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.svePerfilacionEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveProcDocEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.1</string>
<string>weblogic.app.knaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveAplicacionEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveReglasEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string>weblogic.app.sveAuditoriaEAR</string>
<int>214</int>
<string>weblogic.workarea.StringWorkContext</string>
<string>1.61.0</string>
<string/>
</java></work:WorkContext></env:Header><env:Body><m:emisionDocumentoResponse xmlns:m="http://cl/zofri/sve/prd/wsn"><m:return><Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid:return=aa27c5a6-f005-40d4-a43b-f901af0d963e@http://cl/zofri/sve/prd/wsn"/></m:return></m:emisionDocumentoResponse></env:Body></env:Envelope>
------=_Part_2382_1164276092.1696025213279
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <return=aa27c5a6-f005-40d4-a43b-f901af0d963e@http://cl/zofri/sve/prd/wsn>
%PDF-1.4
%??4 0 obj
<</Type/XObject/ColorSpace[/Indexed/DeviceRGB 255(
Me parece una excelente Idea,,, pero no he podido contactarme con Leandro,,,para hacer las pruebas pertinentesAntonio Linares wrote:A lo que me refiero es que si obtenemos el PDF via php podríamos compararlo con el obtenido y asi intentar entender que está ocurriendoAntonio Linares wrote:La solución propuesta por Leandro de programarlo con php y llamar a este desde FWH parece ser el camino mas rápido y fácil