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 view
#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.
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.
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á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ácil
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.
'<?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,
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: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á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á ocurriendo
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 36 guests