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.

Estimado,, Leandro,, agradezco el tiempo que te tomaste en ayudarme,,,, pero la opcion que me das es imposible, ya que es un servidor del gobierno y no creo que lo cambien solamente por mi problema...
En resumen es un problema de lenguaje entonces, ya que le he preguntado a varios que programan en otro lenguaje y ninguno tiene problemas hasta ahora todos pueden recuperar sin problemas,,,, vere que puedo hacer, ya que cambiarme ahora es imposible, ya tengo desarrollado casi el 100% de los programas en este lenguaje y es un trabajo de mas de 1 año,,, y debiera entrar en produccion en febrero del 2024,,, poco tiempo para entender y desarrollar en otro lenguaje...Le preguntare a Antonio si lo puede compilar en harbour a ver si pasa de esa forma
Agradezco... saludos
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.
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
#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.
leandro wrote:Ok vale, si es de entender.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...
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.
Claro que si amigo es un gusto, si quieres enviame un mail y confirmamos detalles por el interno.
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
Antonio 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ácilEstimado Antonio
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.
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
Antonio 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ácilA lo que me refiero es que si obtenemos el PDF via php podríamos compararlo con el obtenido y asi intentar entender que está ocurriendo
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.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...
Regards, saludos.
'<?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>'------=_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(Antonio Linares wrote:Estimado Elmo,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...
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
------=_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(Antonio Linares wrote:Me parece una excelente Idea,,, pero no he podido contactarme con Leandro,,,para hacer las pruebas pertinentesLa solución propuesta por Leandro de programarlo con php y llamar a este desde FWH parece ser el camino mas rápido y fácilA lo que me refiero es que si obtenemos el PDF via php podríamos compararlo con el obtenido y asi intentar entender que está ocurriendo