anonymous Log in
Search
Recents:
v3.0
sd
URL Dinámica - No queda fijo.
24/02/21 14:17

Fernando

Replies: 3

Saludos a tod@s.

APP OFLINE, GX17U00 y GX17U01

Estoy intentando utilizar el método SetApplicationServerURL(&Url) que tiene
el external object Network y me estoy encontrando con algunas dificultades
para entender su comportamiento.

* En el SD panel del logon del usuario, cuando este se conecta por
primera vez se le solicita información que orienta al sistema a detectar
cual será el servidor desde donde y hacia donde se realizara la
sincronización.
* Ingresada la información pertinente y luego de validar el dato
ingresado se realizar el Network.SetApplicationServerURL(&Url)
AQUÍ UN COMPORTAMIENTO POCO DESEADO, la aplicación se reinicia, por lo que
hubo que guardar en una variable de contexto la información anterior
introducida.
* Posteriormente el sistema realiza el proceso de sincronización y
carga inicial de los datos.
* A partir de aquí el usuario utiliza la aplicación sin problemas y
los datos se sincronizan correctamente al servidor asignado.

EL PROBLEMA : Cuando el usuario CIERRA la aplicación esta información de la
URL vuelve al estado inicial declarado en las propiedades “Front
End”.”Services URL”, por lo que todo cuando pudo haber realizado hasta el
momento se va a perder al introducir la URL correcta.
LA SOLUCION (WorkAround) : Aunque resulta muy antiestético y peligroso si no
se hace, es instruir al usuario a entrar a la opción (3 puntos)
“Preferencias”.”Url del Servidor” y solo aceptar la URL que allí le aparece.
* Esta solución tiene el problema de que , nuevamente la aplicación se
re-inicia.
* El usuario puede observar la URL del servidor, por lo que la
seguridad del servidor queda expuesta.
* Obviamente hace muy engorroso este proceso inicial y molesta al
usuario cuando lo olvida.

La consulta por si alguien esté utilizando este método es la siguiente:
* Es este el comportamiento que necesariamente debemos soportar y
controlar por programación.
* Si SI
* Hay alguna forma de controlar si el usuario realizo el proceso de
los (3 puntos); existe algún evento que se ejecuta después del cambio y
antes de que se re-inicie la aplicación?.
* Si NO
* Que no estoy teniendo en cuanta en este procedimiento.
* Como se puede hacer este proceso más transparente.
* Existe alguna forma de que posterior al cambio ocultar los 3 puntos.
(Preferencias…..)

Desde ya muchas gracias, y sirva el presente para aquell@s que están
pensando en utilizar este método.


CUIDEMONOS, juntos saldremos de esto.

Atentamente.

Replies

jpgonzab

24/02/21 15:44
Fernando, ¿cómo estás? Bastaría con guardar la nueva Url en el dispositivo con el método ClientStorage.Set/SecureSet la primera vez que se solicita y las veces siguientes leer el valor desde allí con ClientStorage.Get para ejecutar Network.SetApplicationServerURL en el ClientStart. El "reiniciado" de la aplicación no se puede evitar porque al configurar un nuevo valor, se leen los datos de la nueva dirección ya que puede haber cambios entre los servicios. Entiendo que puede haber un punto de mejora guardadando en el dispositivo la Services Url introducida mediante el External Object Network al igual que ocurre con la ingresada mediante la pantalla de Preferences. Allí ya no habría necesidad de hacer lo que te mencionaba arriba y además evitaría el tema del reiniciado porque la aplicación se iniciaría directamente con el nuevo valor. Saludos, On Wed, Feb 24, 2021 at 2:17 PM Lic. Fernando Valdez

Fernando

24/02/21 16:23
Gracias Juan Pablo, Si es una opción que manejo no me gusta nomas que al iniciar la aplicación aparece el SPLASH luego se hace Network.SetApplicationServerURL(&Url) y vuelve a aparececer el SPLASH. Pero si esto no reinicia la base de datos lo voy a utilizar se la siguiente manera: 1. Al momento de iniciar la aplicación voy a guardar la URL introducida o resuelta por el programa en una variable de contexto (ClientStora.Set…), ejemplo SrvHost 2. La siguiente vez que el usuario se vuelve a conectar voy a consultar si Network.ApplicationServerURL <> SrvHost , y en este caso voy a ser lo sugerido, Network.SetApplicationServerURL(SrvHost). El punto 2 se puede va a evitar si el usuario realiza el “ANCLADO” de la URL con la opción (3 puntos) Referencia > UrlServidor. Ok, esto último como para completar la idea. Esperemos que pronto puedan encontrar la forma de “ANCLAR” la URL con una sola acción y transparente al usuario final. Gracias nuevamente. Atentamente. Lic. Fernando Valdez G. Analista de Sistemas Informaticos Cel. 0971 909582

jpgonzab

24/02/21 16:30
Fernando, Entiendo el problema que genera la solución propuesta, pero hoy en día es la forma de realizarlo. Tomo tus comentarios como sugerencia para una mejora en el manejo de Dynamic Services Url mediante el External Object Network.. Muchas gracias, On Wed, Feb 24, 2021 at 4:23 PM Lic. Fernando Valdez


Back to sd