OT borrar archivo de texto plano

OT borrar archivo de texto plano

Postby horacio » Tue Sep 27, 2016 1:45 pm

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.
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: OT borrar archivo de texto plano

Postby hmpaquito » Tue Sep 27, 2016 2:54 pm

-
Last edited by hmpaquito on Wed Sep 28, 2016 8:01 am, edited 1 time in total.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: OT borrar archivo de texto plano

Postby karinha » Tue Sep 27, 2016 3:13 pm

Code: Select all  Expand view  RUN

   DELETEFILE( "C:\NFEXML\CCE" + ALLTRIM( STR( WNUMERO ) + ".XML" ) )
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby horacio » Tue Sep 27, 2016 5:15 pm

Gracias Karinha por tu respuesta. Pruebo y comento.

Saudos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: OT borrar archivo de texto plano

Postby horacio » Wed Sep 28, 2016 1:03 pm

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
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 2:03 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby horacio » Wed Sep 28, 2016 2:36 pm

Karinha, para obtener el ticket de acceso utilizo esta rutina

Code: Select all  Expand view  RUN

//----------------------------------------------------------------------------//
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
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 2:48 pm

Horácio, tú intención és bajar esto?

Code: Select all  Expand view  RUN

<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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 2:53 pm

Intenta algo asi, porfa:

Code: Select all  Expand view  RUN

   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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 2:59 pm

cambia:

Code: Select all  Expand view  RUN

    cRespuesta := oWSAA : ResponseText
 


por:

Code: Select all  Expand view  RUN

    cRespuesta := oWSAA : ResponseBody
 



João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby horacio » Wed Sep 28, 2016 3:17 pm

Esto es lo que obtengo como respuesta del webservice

Code: Select all  Expand view  RUN

<?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
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 3:21 pm

aqui, no deberia seer asi?

Code: Select all  Expand view  RUN

    * 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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby karinha » Wed Sep 28, 2016 3:29 pm

Que tal hacer asi?

Code: Select all  Expand view  RUN

   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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: OT borrar archivo de texto plano

Postby horacio » Wed Sep 28, 2016 3:30 pm

Karinha, el xml que me muestras es el que yo le envío al webservice, el que postee es el que recibo.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 71 guests