27 mayo 2015

Uso del nuevo archivo de configuración del servidor de aplicaciones

Desde Omnis Studio 6.1 se incluye un nuevo archivo de configuración en formato JSON denominado "config.json" y situado en la carpeta "studio".

Es utlizado para configurar el servidor de aplicaciones Omnis, incluyendo propiedades de arranque, modo de uso y otras concernientes al uso de servicios web (Web Services). También incluye una sección específica para activar la caché de clases Java y otros elementos.

Habitualmente la configuración del servidor Omnis Server puede hacerse mediante seleccionar la opción "Server Configuration" del menú "File" desde el propio Omnis Server, pero, ahora también podrá hacerse mediante la edición del fichero "config.json" usando para elo cualquier editor de texto compatible, pero el archivo debe ajustarse al formato JSON.

La primera parte del archivo "config.json" contiene la siguiente distribución:

{
    "server": {
    "port": 5988,
    "stacks": 20,
    "timeslice": 1,
    "webServiceURL": "",
    "webServiceConnection": "",
    "webServiceLogging": "full",
    "webServiceLogMaxRecords": 100,
    "webServiceStrictWSDL": true,
    "RESTfulURL": "",
    "RESTfulConnection": "",
    "start": false,
    "retryBind": false,
    "showBindRetryMessage": true,
    "bindAttempts": 10
    }
}

donde...
 
  • port, stacks, timeslice 
  • Permiten definir el modo en que se ejecutará el servidor Omnis.

  • webService...
  • Definen los servicios web basados en SOAP/WSDL.

  • RESTful...
  • Definen los servicios web basados en REST.

  • start
  • Si es "true" significa que el servidor Omnis será activado automáticamente al arrancar.

  • retryBind
  • La propiedad "retryBind" deberá establecerse a "false" si no se desea que el servidor Omnis vuelva a intentar la conexión al puerto especificado, tras un primer intento. Por defecto o si el parámetro es omitido "retryBind" es "true".

  • showBindRetryMessage
  • Si "retryBind" es "true", "showBindRetryMessage" determinará si se mostrará o no, un mensaje de estado durante el tiempo que se esté re-intentando la conexión.

  • bindAttempts
  • Si "retryBind" es "true", "bindAttempts" anula el número predeterminado de intentos de conexión, obligando al servidor Omnis a realizar un intento cada segundo.
 

20 mayo 2015

Texto HTML en botones

Una nueva característica soportada por los controles JavaScript "Button" y "TransButton" nos permiten aportar textos con etiquetas HTML a los botones.

Para ello deberemos fijar su nueva propiedad "$textishtml" a "true"
, ésto afectará al modo en que será tratado el texto indicado para el botón (propiedad $text), el cual podrá ahora contener etiquetas HTML, ésto significa que podremos hacer uso de cualquier etiqueta HTML para aportar estilo al texto. Por ejemplo, podríamos insertar un salto de línea mediante la etiqueta "≤br≥".

La activación de la propiedad "$textishtml", no impide el uso del resto de atributos ya presentes para los controles de botón mencionados, por lo que no habrá problema alguno en seguir usando los elementos habituales para la asignación de estilo, tipo de letra y color.

Tenga en cuenta que modo-diseño no podremos observar el resultado de aplicar la etiqueta HTML (sólo veremos el código HTML) y si usamos atributos dentro del código HTML deberán ir situados entre comillas simples.

13 mayo 2015

Probando nuestros "remote forms"

Si estamos usando Firefox durante el desarrollo de aplicaciones con Omnis, podemos usarlo para probar los diferentes diseños y tamaños de pantalla pensados para su uso en dispositivos móviles y tabletas mediante su utilidad "Vista de diseño adaptable", indicar que se trata de una característica del navegador Firefox y que Omnis puede aprovechar, pero que no parece estar disponible (por el momento) en otros navegadores.

Pero quiero hablar de ello en éste "blog", ya que nos puede ahorrar mucho tiempo a los desarrolladores Omnis, durante la fase de diseño de nuestras aplicaciones, ya que nos evitará tener que probar o testar la aplicación en múltiples dispositivos. Sin embargo, le recomiendo que finalmente también pruebe su aplicación sobre el o los dispositivos que usted desee estén soportados por su aplicación.


Para que Omnis pueda hacer uso de dicha funcionalidad del navegador, deberá establecer su propiedad "gResponsiveDesign" a "true", podrá encontrarla dentro del archivo "ssz.js" ubicado bajo el directorio "html/scripts" dentro del raíz Omnis. Tenga en cuenta que deberá reiniciar Omnis para que el cambio tenga efecto.


Finalmente y para activa el modo en Firefox, diríjase al menú "Herramientas" opción "Desarrollador web" y seleccione "Vista de diseño adaptable".


Una vez hecho ésto, podremos probar nuestros "remote form" seleccionando los diferentes tamaños de pantalla y orientaciones bajo el menú desplegable de la ventana del navegador Firefox, nuestro "remote form" cambiará según lo especificado en su propiedad $screensize. Cuando hayamos concluido con las pruebas, deberemos volver a cambiar la configuración de "gResponsiveDesign" del fichero "ssz.js" para dejarlo en modo "false".

06 mayo 2015

Paso de parámetros a un "remote form" mediante URL

Ahora es posible el paso de parámetros hacia un "remote form" o "remote task", desde el propio cliente de JavaScript y desde la URL de llamada a la página web que contiene su "remote form". Dichos parámetros aparecerán añadidos a los que ya pueda llevar emparejados la invocación al "remote form", recuerde que habitualmente el paso de parámetros estaba limitado a los incluidos en la propia página HTML mediante el uso de las etiquetas "data-param1", "data-param2", etc.

Los parámetros adicionales pueden ser añadidos en la URL que apunta al "remote form" mediante el siguiente formato:
 
http://127.0.0.1:5988/jschtml/rfSetCurField.htm?x=y&a=b 

El cliente JavaScript añadirá éstos parámetros mediante una columna opcional denominada "URLparams" añadida a la variable "row" que transfiere al método $construct() del "remote form" o "remote task". Los datos contenidos en "URLparams" son guardados en formato JSON, por ejemplo, si los parámetros del URL son "x=y&a=b", el fichero JSON contendrá la entrada {"x":"y","a":"b"}. Si lo desea, podrá hacer uso de la nueva función estática OJSON para convertir su formato original, a formato "row" de Omnis, mediante...

Do OJSON.$jsontolistorrow(pRow.URLparams) Returns lRow

...donde "lRow" es una variable Omnis de tipo "row". Suponiendo el ejemplo anterior, el valor de la expresión "lRow.x" sería "y" y el de "lRow.a" sería "b".