OT borrar archivo de texto plano
OT borrar archivo de texto plano
Colegas, tengo un aplicativo para facturación electrónica. Me logeo con el webservice enviando un un xml y recibiendo otro xml ( Ticket de acceso ) que me permite consumir este servicio por doce horas. Si quiero loguearme nuevamente lo que hago es borrar los xml para volver a generarlos pero me encuentro con el problema que uno de ellos no puedo borrarlo y es el que me envía el webservise como respuesta. Me dá la sensación que el archivo está siendo utilizado por otro proceso pero no es así. Alguien tiene idea ? Muchísimas gracias.
Re: OT borrar archivo de texto plano
-
Last edited by hmpaquito on Wed Sep 28, 2016 8:01 am, edited 1 time in total.
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
Code: Select all | Expand
DELETEFILE( "C:\NFEXML\CCE" + ALLTRIM( STR( WNUMERO ) + ".XML" ) )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: OT borrar archivo de texto plano
Karinha, he probado tu solución pero no funciona. Lo que me devuelve el webservice es un string que lo grabo con hb_memowrit. He intentado borrar este archivo por fuera del aplicativo cuando este está corriendo y efectivamente me dice que no puedo eliminarlo porque otro proceso lo está usando. Alguien tiene idea. Muchas gracias.
Saludos
Saludos
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
horácio, tú anti virus está actualizado? tien otro aplicativo que está usando el archivo por algun motivo. baje un anti malware.
yo uso este, mui bueno:
http://www.iobit.com/pt/malware-fighter.php
y
http://www.iobit.com/pt/advancedsystemcarefree.php
y
https://www.piriform.com/ccleaner
Mira:
https://social.msdn.microsoft.com/Forums/es-ES/736e15f5-ef5f-4b7f-a7fc-e6268af4e654/error-al-intentar-borrar-un-archivo-otro-proceso-lo-est-utilizando?forum=vbes
Saludos.
yo uso este, mui bueno:
http://www.iobit.com/pt/malware-fighter.php
y
http://www.iobit.com/pt/advancedsystemcarefree.php
y
https://www.piriform.com/ccleaner
Mira:
https://social.msdn.microsoft.com/Forums/es-ES/736e15f5-ef5f-4b7f-a7fc-e6268af4e654/error-al-intentar-borrar-un-archivo-otro-proceso-lo-est-utilizando?forum=vbes
Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: OT borrar archivo de texto plano
Karinha, para obtener el ticket de acceso utilizo esta rutina
Lo que me devuelve es una cadena, que grabo posteriormente. Y es lo que no entiendo ya que el archivo que grabo no lo usa ningún otro proceso. Cuando corro el programa por 1ra. vez funciona ok, pero si vuelvo a pedir el ticket de acceso no me deja borrar este archivo. No me doy cuenta donde se queda "pegado" en otro proceso
Saludos
Code: Select all | Expand
//----------------------------------------------------------------------------//
Static Function LlamoAlWSAA( c_CMS_Base64 )
Local cXml := ''
Local oWSAA := ''
Local cWSAA_URL := 'https://wsaa.afip.gov.ar/ws/services/LoginCms?wsdl'
Local cRespuesta := ''
Memvar oVar
If( oVar : lProduccion )
cWSAA_URL := 'https://wsaa.afip.gov.ar/ws/services/LoginCms?wsdl'
Else
cWSAA_URL := 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'
End
oWSAA := CreateObject( 'MSXML2.XMLHTTP' )
If( Empty( oWSAA ) )
MsgStop( 'NO se Pudo Crear el Objeto oWSAA; se Cancela el Programa' )
Return( .f. )
End
* Armo el XML con el TRA
cXml += '<?xml version="1.0" encoding="UTF-8"?>' + CRLF
cXml += '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' + CRLF
cXml += '<soap:Body>' + CRLF
cXml += ' <loginCms xmlns="http://wsaa.view.sua.dvadac.desein.afip.gov">' + CRLF
cXml += ' <in0>' + c_CMS_Base64 + '</in0>' + CRLF
cXml += ' </loginCms>' + CRLF
cXml += '</soap:Body>' + CRLF
cXml += '</soap:Envelope>' + CRLF
* Llamo al Webservice y defino Opciones
oWSAA : Open( 'POST', cWSAA_URL, .f. )
oWSAA : SetRequestHeader( "SOAPAction:", "None" )
oWSAA : SetRequestHeader( "Content-Type", "text/xml;charset=UTF-8" )
* Envio el Archivo y Recibo la Respuesta del WS
oWSAA : Send( cXml )
//oWSAA : Status
* Si el status es diferente a 200, ocurri¢ alg£n error de conectividad con el WS ---
cRespuesta := oWSAA : ResponseText
if( Empty( cRespuesta ) )
MsgStop( "Error; cRespuesta esta VACIO" )
End
oWSAA := Nil
Release oWSAA
Return( cRespuesta )
Lo que me devuelve es una cadena, que grabo posteriormente. Y es lo que no entiendo ya que el archivo que grabo no lo usa ningún otro proceso. Cuando corro el programa por 1ra. vez funciona ok, pero si vuelvo a pedir el ticket de acceso no me deja borrar este archivo. No me doy cuenta donde se queda "pegado" en otro proceso
Saludos
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
Horácio, tú intención és bajar esto?
Saludos.
Code: Select all | Expand
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns:intf="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns:tns1="http://wsaa.view.sua.dvadac.desein.afip.gov" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="https://wsaa.afip.gov.ar/ws/services/LoginCms">
<!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://wsaa.view.sua.dvadac.desein.afip.gov">
<import namespace="https://wsaa.afip.gov.ar/ws/services/LoginCms"/>
<element name="loginCms">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="loginCmsResponse">
<complexType>
<sequence>
<element name="loginCmsReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
</schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="https://wsaa.afip.gov.ar/ws/services/LoginCms">
<complexType name="LoginFault">
<sequence/>
</complexType>
<element name="fault" type="impl:LoginFault"/>
</schema>
</wsdl:types>
<wsdl:message name="LoginFault">
<wsdl:part element="impl:fault" name="fault"/>
</wsdl:message>
<wsdl:message name="loginCmsResponse">
<wsdl:part element="tns1:loginCmsResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="loginCmsRequest">
<wsdl:part element="tns1:loginCms" name="parameters"/>
</wsdl:message>
<wsdl:portType name="LoginCMS">
<wsdl:operation name="loginCms">
<wsdl:input message="impl:loginCmsRequest" name="loginCmsRequest"/>
<wsdl:output message="impl:loginCmsResponse" name="loginCmsResponse"/>
<wsdl:fault message="impl:LoginFault" name="LoginFault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LoginCmsSoapBinding" type="impl:LoginCMS">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="loginCms">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="loginCmsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="loginCmsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="LoginFault">
<wsdlsoap:fault name="LoginFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LoginCMSService">
<wsdl:port binding="impl:LoginCmsSoapBinding" name="LoginCms">
<wsdlsoap:address location="https://wsaa.afip.gov.ar/ws/services/LoginCms"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Saludos.
Last edited by karinha on Wed Sep 28, 2016 3:00 pm, edited 1 time in total.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
Intenta algo asi, porfa:
saludos.
Code: Select all | Expand
Try
IF "10" $ cWinVersion()
oServer:= CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
ELSE
oServer:= CreateObject( "MSXML2.ServerXMLHTTP.5.0" )
ENDIF
Catch
MsgInfo('Erro na Criação do Serviço')
Return .f.
End
Try
oServer:Open( "GET", cUrl, .f. )
oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
oServer:SetRequestHeader( "Connection", "keep-alive" )
oServer:Send()
oServer:WaitForResponse( 10000 )
Catch
MsgInfo('Erro na Conexão com o Site...')
Return .f.
End
saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
cambia:
por:
Code: Select all | Expand
cRespuesta := oWSAA : ResponseText
por:
Code: Select all | Expand
cRespuesta := oWSAA : ResponseBody
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: OT borrar archivo de texto plano
Esto es lo que obtengo como respuesta del webservice
Saludos
Code: Select all | Expand
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<loginCmsResponse xmlns="http://wsaa.view.sua.dvadac.desein.afip.gov">
<loginCmsReturn>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loginTicketResponse version="1">
<header>
<source>CN=wsaahomo, O=AFIP, C=AR, SERIALNUMBER=CUIT 33693450239</source>
<destination>C=ar, O=pyafipws-sistemas agiles, SERIALNUMBER=CUIT 20267565393, CN=mariano reingart</destination>
<uniqueId>3526445017</uniqueId>
<generationTime>2016-09-28T11:17:53.170-03:00</generationTime>
<expirationTime>2016-09-28T23:17:53.170-03:00</expirationTime>
</header>
<credentials>
<token>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8c3NvIHZlcnNpb249IjIuMCI+CiAgICA8aWQgdW5pcXVlX2lkPSIzOTc2NzI3NDYiIHNyYz0iQ049d3NhYWhvbW8sIE89QUZJUCwgQz1BUiwgU0VSSUFMTlVNQkVSPUNVSVQgMzM2OTM0NTAyMzkiIGdlbl90aW1lPSIxNDc1MDcyMjEzIiBleHBfdGltZT0iMTQ3NTExNTQ3MyIgZHN0PSJDTj13c2ZlLCBPPUFGSVAsIEM9QVIiLz4KICAgIDxvcGVyYXRpb24gdmFsdWU9ImdyYW50ZWQiIHR5cGU9ImxvZ2luIj4KICAgICAgICA8bG9naW4gdWlkPSJDPWFyLCBPPXB5YWZpcHdzLXNpc3RlbWFzIGFnaWxlcywgU0VSSUFMTlVNQkVSPUNVSVQgMjAyNjc1NjUzOTMsIENOPW1hcmlhbm8gcmVpbmdhcnQiIHNlcnZpY2U9IndzZmUiIHJlZ21ldGhvZD0iMjIiIGVudGl0eT0iMzM2OTM0NTAyMzkiIGF1dGhtZXRob2Q9ImNtcyI+CiAgICAgICAgICAgIDxyZWxhdGlvbnM+CiAgICAgICAgICAgICAgICA8cmVsYXRpb24gcmVsdHlwZT0iNCIga2V5PSIyMDI2NzU2NTM5MyIvPgogICAgICAgICAgICA8L3JlbGF0aW9ucz4KICAgICAgICA8L2xvZ2luPgogICAgPC9vcGVyYXRpb24+Cjwvc3NvPgoK</token>
<sign>ZH6abCAlYdpuAd7983OLZFtNL6g4oYWc7UJtnaRKlq0BSY5Y59eoIdUv5+poJnOINIDgL7bvzHb2XdaWnSy03bU3AtBKEl2Gvs6ZVzshUkaukCHIVXOUIVF3UA7/PdIwYvq1TmnmDvGArdwLoX2wPSnHRjIXFNa2uWVTMtDlplA=</sign>
</credentials>
</loginTicketResponse>
</loginCmsReturn>
</loginCmsResponse>
</soapenv:Body>
</soapenv:Envelope>
Saludos
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
aqui, no deberia seer asi?
Code: Select all | Expand
* Armo el XML con el TRA
cXml := '<?xml version="1.0" encoding="UTF-8"?>' + CRLF
cXml += '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' + CRLF
cXml += '<soap:Body>' + CRLF
cXml += ' <loginCms xmlns="http://wsaa.view.sua.dvadac.desein.afip.gov">' + CRLF
cXml += ' <in0>' + c_CMS_Base64 + '</in0>' + CRLF
cXml += ' </loginCms>' + CRLF
cXml += '</soap:Body>' + CRLF
cXml += '</soap:Envelope>' + CRLF
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: OT borrar archivo de texto plano
Que tal hacer asi?
Code: Select all | Expand
cFile:= hb_base64Decode(cFile, cCodigo)
FWrite(txt_file, cFile)
FClose(txt_file) // close el archivo.xml
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: OT borrar archivo de texto plano
Karinha, el xml que me muestras es el que yo le envío al webservice, el que postee es el que recibo.
Saludos
Saludos