FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour WIN_OLECREATEOBJECT() DUDAS
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
WIN_OLECREATEOBJECT() DUDAS
Posted: Sat May 07, 2022 02:22 PM

Estimados amigos
Tengo un sistema de facturaci贸n que usa Factura Electronica a AFIP
Para establecer la comunicaci贸n con el WebService antes usabamos WIN_OLECREATEOBJECT('MSXML2.XMLHTTP') y lo cambiamos a WIN_OLECREATEOBJECT('Microsoft.XMLHTTP'),porque parece que este es mas r谩pido...esto es correcto ?
Esta funci贸n anda en cualquier versi贸n de Windows ?
El principal problema que nos est谩 preocupando es que al consultar al WS hay veces que ( creemos que por saturaci贸n del servidor) el sistema se queda esperando la respuesta del WS durante un tiempo prolongado impidiendo al usuario seguir con su proceso de facturaci贸n, es posible incluir un Timeout() que cuando esto ocurra cancele la consulta y libere el sistema , o una vez iniciada la misma la 煤nica manera de salir es esperar la respuesta del WS ?
Si alguien tiene alguna soluci贸n o sugerencia para evitar este problema agradeceria mucho me la hicieran saber.

un abrazo a todos

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: WIN_OLECREATEOBJECT() DUDAS
Posted: Sat May 07, 2022 03:10 PM
El motivo de existir ( e incluso coexistir varios "protocolos" ) a los que hacer referencia, es sencilla: tema de compatibilidad con versiones anteriores. Internamente lo que ha hecho Microsoft ha sido cambiar el espacio de nombres que utiliza en su biblioteca/librer铆as en las nuevas versiones.
Sin entrar en detalles: las nuevas versiones son: "MSXML2.XMLHTTP.6.0", por lo que se supone que es la recomendada a utilizar, pero si est谩s utilizando ordenadores con SO m谩s antiguos, la que utilizas seguramente sea la adecuada.
En cualquier caso, te recomiendo que utilices un peque帽o fragmento de c贸digo que te permita valorar si est谩 funcionando o no, por ejemplo algo como esto en el que incluyo otros que no has mencionado:
Code (fw): Select all Collapse
聽 聽local aOle 聽 聽:= { "MSXML2.ServerXMLHTTP.6.0", "MSXML2.XMLHTTP", ; 聽// "MSXML2.XMLHTTP.6.0" // "MSXML2.XMLHTTP.3.0"
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "WINHTTP.WinHttpRequest.5.1", "Microsoft.XMLHTTP" }
聽 聽local oOle
聽 聽TRY
聽 聽 聽 聽oOle := CreateObject( aOle[ 1 ] )
聽 聽CATCH
聽 聽 聽 聽oOle := CreateObject( aOle[ 4 ] )
聽 聽END

Evidentemente es un ejemplo muy simple que habr铆a que "complicar" estableciendo "salidas" para poder ejecutar cualquiera de los que incluyas en tu array.
En cuanto a lo que comentas del timeout, existe y es f谩cil de implementar
Code (fw): Select all Collapse
聽 聽 聽 聽 聽 聽 oOle:WaitForResponse( 1000 ) 聽// 10000

Aunque algo as铆 seguramente sea m谩s adecuado
Code (fw): Select all Collapse
聽 聽local n 聽:= 0
.../...

聽 聽 while ( oOle:ReadyState != 4 .or. n < 10 )
聽 聽 聽 聽 oOle:waitForResponse( 1000 )
聽 聽 聽 聽 n++
聽 聽 end

y despu茅s seguramente valorar el resultado obtenido en
Code (fw): Select all Collapse
聽 聽? oOle:Status != 200

Espero te sirva de ayuda
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
Re: WIN_OLECREATEOBJECT() DUDAS
Posted: Sat May 07, 2022 04:23 PM

Hola Cristobal
Muchas gracias por tu ayuda, me ha sido muy esclarecedora...
Ya lo implement茅, ahora tengo que esperar que el servidor AFIP se sature para poder ver si funciona el timeout() :D :D
No se como simular el retardo en en server !!!
Abrazo

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: WIN_OLECREATEOBJECT() DUDAS
Posted: Sun May 08, 2022 08:56 AM
Existe el metodo
Code (fw): Select all Collapse
oOle:setTimeouts( resolveTimeout, connectTimeout, sendTimeout, receiveTimeout)

Pero no he tenido ocasi贸n de probarlo.
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces

Continue the discussion