22 enero 2013

Omnis Studio 6: Nuevo parámetro jsClient (data-commstimeout)

jsClient ahora permite al usuario determinar (pasando un parámetro desde el navegador) el  tiempo máximo de espera ante una solicitud. Un nuevo parámetro "data-commstimeout" situado dentro del ≤div≥ "omnisobject1" (incluido en el formulario HTML) permitirá controlar el tiempo en el que el servidor, deberá responder al usuario. Su valor por defecto es cero, lo que significa que no se aplicará tiempo de espera, para aplicarlo, deberá introducirse un entero en representación de los segundos de espera. Cuando el cliente envía un mensaje al servidor, éste deberá responder dentro del tiempo de espera fijado, de lo contrario el usuario podrá optar por seguir esperando o bien cancelar la solicitud.

≤div id="omnisobject1" style="position:absolute;top:0px;left:0px"
    data-webserverurl=""
    data-omnisserverandport=""
    data-omnislibrary=""
    data-omnisclass=""
    data-param1="" data-param2=""
    data-commstimeout="0"≥
(nuevo parámetro)

18 enero 2013

Omnis Studio 6: Subformularios dinámicos

 

Otra interesante novedad consiste en un tipo especial de subformulario (subform) o grupo de subformularios que (a efectos visuales) se comportan como si se tratara de ventanas separadas para el cliente de JavaScript. No debemos confundir los nuevos subformularios con los ya conocidos subformularios, ya que éstos no tienen nada que ver con los anteriores, de hecho se muestran con barra de título y bordes de tamaño variable, de modo que el usuario puede desplazarlos o cambiar su tamaño dinámicamente dentro de del espacio acotado en la ventana del navegador por el "remote form" principal o contenedor del grupo de subformularios. Esto nos permite crear interfaces de usuario altamente flexibles en nuestras aplicaciones para la web y dispositivos móviles, permitiendo un alto grado de interoperatividad con el usuario.

Los nuevos subformularios son mostrados al cliente en tiempo de ejecución (runtime) sobre el "remote form" principal, pudiendo ser abiertos en el contexto de un "paged pane" o sobre el "remote form" directamente. El subformulario o grupo de subformularios estará disponible bajo un nuevo objeto denominado "Subform Set" (SFS), creado por el "JavaScript client" en tiempo de ejecución, a fin de permitir la gestión del grupo de subformularios. Individualmente cada subformulario es tratado en su librería como una clase "remote form" estándar, pero debe ser añadida y referencia bajo un objeto SFS.

Orden del grupo SFS

Los subformularios en un grupo SFS mantienen un "orden de apilamiento" determinado por su disposición en la pantalla, así el subformulario de nivel superior en el conjunto aparecerá al frente o superpuesto sobre el resto. Al hacer clic sobre un "form" inferior el orden de apilamiento cambiará para situarse en el primer nivel de la pila. Sólo permanecerán activos los controles sobre el "form" situado al frente. Existe un límite de 256 instancias "remote form" incluyendo las correspondientes a los subformularios controlados desde una única instancia "remote task". Es posible trabajar con varios conjuntos SFS al mismo tiempo (permitido pero no muy recomendable) pero, no existe un orden o tipo de agrupamiento con relación al total de los grupos.

¿Cómo se crea un SFS?

Un nuevo conjunto de comandos nos permitirá abrir y gestionar los subformularios sobre un conjunto SFS mediante métodos $clientcommand(), pero deberán ser ejecutados por el servidor de aplicaciones Omnis y en el contexto de la instancia actual del "remote form" ($cinst), el $clientcommand() no funcionará si el método es ejecutado en el cliente. El método $clientcommand() requiere de dos parámetros: el cCommand a ejecutar y una variable wRow con los parámetros del comando, su sintaxis es:

Do $cinst.$Clientcommand(cCommand,wRow)

donde $cinst es la instancia actual de "remote form".

17 enero 2013

Omnis Studio 6: Construcción de aplicaciones móviles autónomas

¿Donde se localizan los recursos para aplicaciones autónomas?

El "Serverless Client Application File" (SCAF) es una base de datos SQLite que contiene todos los recursos necesarios para que una aplicación móvil pueda ser ejecutada localmente (modo independiente). Estos incluyen los scripts JavaScript, los archivos CSS, los de imagen (image) y los "remote forms" de Omnis. Se necesitan dos archivos de SCAF por cada aplicación:

  • El SCAF "omnis.db", con los archivos necesarios para ejecutar el cliente JavaScript.
  • El SCAF de la aplicación "≤nombre_de_libreria≥.db", con los archivos propios de la aplicación. Omnis Studio generará estos archivos automáticamente sobre el sub-directorio "html/sc" del directorio principal Omnis. Estos deberán ser situados en el servidor de aplicaciones Omnis y en el mismo lugar si se desea que los usuarios tengan acceso a los mismos para actualizaciones y/o descargas.

¿Cómo se instalan los archivos SCAF en el cliente?

Cuando la aplicación es ejecutada por vez primera y en el modo "sin-conexión", se comprobará si los archivos SCAF ya están incluidos con la aplicación (hablaremos sobre cómo hacer esto en otro artículo). Si estos archivos existen, se copian al espacio reservado en el dispositivo para nuestra aplicación. Naturalmente esto hará que el espacio usado por la aplicación en el dispositivo aumente.

Si los archivos de SCAF no son distribuidos junto con la aplicación, ésta intentará conectarse al servidor de aplicaciones Omnis para descargar las últimas versiones de los archivos SCAF que en él existan.

Para informar a la aplicación sobre que archivos SCAF deberán utilizarse será necesario configurar el parámetro:
 

≤APPSCAF≥nombre≤/APPSCAF≥ (donde "nombre" es el nombre de la biblioteca Omnis) el parámetro lo encontraremos en el archivo config.xml incluido en la aplicación cliente.

04 enero 2013

Omnis Studio 6: Aplicaciones autónomas para dispositivos móviles

Omnis Studio 6.0 incorpora una nueva e interesante funcionalidad para el cliente JavaScript, que nos permitirá construir aplicaciones para dispositivos móviles completamente autónomas, (es decir sin conexión alguna con el servidor de aplicaciones Omnis) o bien en modo "Online" a fin de que los usuarios finales puedan conectarse temporalmente al servidor Omnis para sincronizar datos y/o la aplicación. A continuación resumimos las tres posibilidades que se nos ofrecen:
 


- Independiente

Permite que las aplicaciones se ejecuten de forma independiente o "fuera de línea", es decir sin conexión con un servidor de aplicaciones Omnis o con un servidor de base de datos. Los archivos de la aplicación (“remote form”, etc) podrán combinarse con la aplicación para permitir su completa ejecución en modo "offline", si no se incluyen en el paquete de la aplicación, se podría optar por la realización de una única conexión para la instalación de los archivos de la aplicación en el dispositivo móvil.

- Conexión opcional

Permite que las aplicaciones se ejecuten "fuera de línea" o bien permitiendo que el usuario pueda conmutar a modo "en línea", para sincronizar el contenido de la base de datos y/o la aplicación a través del servidor Omnis; este modo será el recomendado para aquellos usuarios que requieran de una conexión intermitente a fin de sincronizar sus datos con la central.

- Siempre conectado

Esta es la modalidad disponible en la versión de Omnis actual, las aplicaciones son ejecutadas mediante el cliente JavaScript a través del navegador web del dispositivo remoto, las aplicaciones deberán estar permanentemente conectadas al servidor Omnis.