Objetos SQL Worker de Omnis Studio 6.0
¿Qué son?
Bajo el capó de la nueva versión Omnis Studio 6.0, nos encontramos que la mayor parte de los DAM's soportan un nuevo objeto denominado "statement worker". El "SQL Worker Object" puede ser añadido como subclase en una clase "Object" con su "statement worker", tras lo cual podremos utilizar el objeto "worker", para la ejecución (en modo desatendido o multitarea) de sentencias SQL de larga duración (tales como SELECT), lo cual liberará su aplicación para continuar con otros procesos. Más importante aún, liberará la "interface" del usuario, de modo que su aplicación pueda seguir respondiendo ante los eventos que se puedan producir y no sólo ésto, también podrá disponer (si es necesario) de varios "SQL Worker Object", asignando cada uno de ellos a una tarea o "statement worker" independiente.
¿Qué, no son?
No será posible sustituir los objetos de sesión DAM ya existentes, por los nuevos "Worker Object", ya que éstos funcionan de modo asíncrono. Esto significa que la ejecución de un $fetch() no devolverá resultados de modo inmediato, será necesario esperar a que la tarea "statement worker", (que está siendo ejecutada en modo desatendido) haya concluido, será entonces cuando se produzca el "call back" o retorno de llamada desde el propio objeto, el cual suministrará también el conjunto de resultados correspondiente a su ejecución. Naturalmente usted podrá escribir código en el método correspondiente para el tratamiento del evento.
¿Quiere saber más?
Si es miembro activo del programa ODPP de Omnis y desea probar los nuevos "SQL Worker Object", así como el resto de las nuevas funcionalidades que aporta Omnis Studio 6.0, puede solicitar su participación en el programa beta desde la web de TigerLogic.
También siga atento a éste blog, donde seguiremos publicando pequeños artículos, sobre la nuevas funcionalidades de Omnis Studio.
Etiqueta
Home » Archivos para 2012
11 de diciembre de 2012
22 de octubre de 2012
Nueva versión Omnis Studio 5.2.3
Según parece no podemos esperar mucho de ésta versión, ya que en realidad se trata de un trabajo de mantenimiento y por lo tanto no tiene grandes novedades aunque si una destacable.
Algunos de los problemas corregidos son:
Algunos de los problemas corregidos son:
- Problema al utilizar Omnis Data Bridge, Omnis se volvía muy lento al cabo de unos días, debido a un consumo anormal de memoria.
- El método $control no se activaba cuando el $event se ejecutaba en el cliente.
- Problemas con STRINGTABLE cuando el "form" contenía un "Data grid" definido por el usuario ($userdefined = ktrue).
- Problemas al cargar scripts desde un "subform" perteneciente a otra biblioteca.
- Mal funcionamiento del selector de fecha según los diferentes husos horarios.
- Error con Internet Explorer 8 en Windows XP.
- Problemas con STRINGTABLE y Omnis App Server.
- Ocasionalmente las listas de datos no se mostraban completas (sólo la primera columna)
Pero sin duda, lo que si es una novedad y (creo que largamente esperada) es que ahora es posible
la justificación de un texto en un informe a ambos márgenes, ésto se consigue mediante la asignación de "kJustifiedJst" a la propiedad "$align" del campo de texto.
Podréis descargar la nueva versión desde el siguiente enlace: Descargarla justificación de un texto en un informe a ambos márgenes, ésto se consigue mediante la asignación de "kJustifiedJst" a la propiedad "$align" del campo de texto.
29 de junio de 2012
Nueva versión Omnis Studio 5.2.2
En la versión anterior la (5.2.1) vimos la incorporación de importantes novedades, como la inclusión del comando (ejecutable desde el lado del cliente) "JavaScrip:". Pero al mismo tiempo TigerLogic, ha seguido atento a las peticiones que les han ido llegando por parte de desarrolladores de todo el mundo, como consecuencia de ello, ya tenemos lista para su descarga una nueva versión 5.2.2, que soluciona varios de los problemas encontrados y en circunstancias muy concretas.
Si desea conocer con detalle los problemas solucionados pulse sobre éste enlace.
11 de junio de 2012
Sobre el nuevo comando JavaScript:
La versión 5.2.1 de Omnis Studio nos proporciona un nuevo comando denominado JavaScript: (incluyendo los dos puntos) que nos permite ejecutar cualquier código JavaScript sobre el navegador del cliente, incluyendo la ejecución de código JavaScript incrustado o vinculado a la página HTML que contiene el formulario desde donde se ha activado el "remote form".
Omnis no realiza ningún tipo de verificación sobre del código insertado, simplemente ejecutará el comando JavaScript:, por lo que cualquier error que contenga deberá ser tratado mediante la consola JavaScrip del propio navegador. Tampoco será posible incluir notaciones entre corchetes, ya que el código incluido en éstos, es evaluado en el servidor y antes de la ejecución del comando.
Un ejemplo sencillo sería mostrar un mensaje en el navegador mediante el método JavaScript "alert()", del siguiente modo:
javascript: alert("Hola Mundo");
Puesto que el comando ejecuta código JavaScript nativo, el método deberá ser ejecutado desde el lado del cliente, es decir debe ser un método Omnis definido para ser ejecutado sobre el cliente, de hecho, el comando JavaScript: sólo aparecerá sobre la lista de comandos del editor de métodos, si está habilitada la ejecución de métodos en el cliente. Omnis no permitirá que el comando JavaScript: pueda ser ejecutado sobre el servidor (se produciría un error).
A continuación, mostramos un ejemplo de como ejecutar código JavaScrip, que ha sido incrustado en la página HTML que contiene a su vez la llamada al "remote form" inicial.
Retomando el comando del ejemplo anterior "alert()", integraremos una función JavaScript en la página HTML, del modo siguiente:
Omnis no realiza ningún tipo de verificación sobre del código insertado, simplemente ejecutará el comando JavaScript:, por lo que cualquier error que contenga deberá ser tratado mediante la consola JavaScrip del propio navegador. Tampoco será posible incluir notaciones entre corchetes, ya que el código incluido en éstos, es evaluado en el servidor y antes de la ejecución del comando.
Un ejemplo sencillo sería mostrar un mensaje en el navegador mediante el método JavaScript "alert()", del siguiente modo:
javascript: alert("Hola Mundo");
Puesto que el comando ejecuta código JavaScript nativo, el método deberá ser ejecutado desde el lado del cliente, es decir debe ser un método Omnis definido para ser ejecutado sobre el cliente, de hecho, el comando JavaScript: sólo aparecerá sobre la lista de comandos del editor de métodos, si está habilitada la ejecución de métodos en el cliente. Omnis no permitirá que el comando JavaScript: pueda ser ejecutado sobre el servidor (se produciría un error).
A continuación, mostramos un ejemplo de como ejecutar código JavaScrip, que ha sido incrustado en la página HTML que contiene a su vez la llamada al "remote form" inicial.
Retomando el comando del ejemplo anterior "alert()", integraremos una función JavaScript en la página HTML, del modo siguiente:
Ahora ejecutaremos la función desde Omnis, usando el comando JavaScript del siguiente modo: JavaScript:
show_alert();
De éste modo podremos usar el comando JavaScript: para (por ejemplo) "provocar" eventos sobre Google Analytics y realizar el seguimiento de ciertas acciones o eventos de nuestra aplicación.
Para esto tendremos primero que agregar el código Web de Google Analytics proporcionado por Google en nuestra página HTML (que contiene la llamada al "remote form") y ejecutar la función gaq.push() desde Omnis. De éste modo podemos llegar a crear un controlador de eventos mediante el nuevo comando JavaScript:
Un modo de implementar ésta función sería mediante la creación de un método $init con las siguientes funciones:
JavaScript:
document.getElementById ("jsTEMP1_1076_client").onselect=function(
event) {__ form.callMethodEx ("selected", 0, event); };
JavaScript:
window.addEventListener("keydown", function (event) {
__form.callMethodEx ("keydown", 0, event)}, true);
Debemos tener en cuenta que ambos ejemplos hacen uso de "__form.callMethodEx" para ejecutar un método del "remote form" instanciado. El segundo parámetro (cero en nuestro ejemplo), es un "flag" o bandera que controla cómo debe ejecutarse "callMethodEx" y siempre deberá ser cero.
Podremos hacer uso del método $init para suministrar información adicional acerca de (por ejemplo) el estilo de los controles en el formulario. Por ejemplo:
Do $cinst.$objs.$sendall($cinst.$addboxshadow($ref))
"$addboxshadow" contiene el método del "remote form" pasado mediante el parámetro pObj.
El siguiente comando JavaScript:, agregará una sombra a la caja si el navegador lo soporta.
JavaScript: pObj.elem.style.boxShadow = "0px 0px 5px 5px # 888888";
1 de junio de 2012
Nueva versión Omnis Studio 5.2.1
Omnis Studio 5.2.1 ofrece ahora mayor velocidad y facilidad de uso,
nuevos métodos del lado del cliente, además de nuevos componentes para
el control de mapas y gráficas. (Para más información vea el documento: Novedades de Omnis Studio.
- Capacidad para ejecutar métodos en el cliente, en lugar de en el servidor Omnis.
- Interfaz de usuario más rica y un nuevo comando JavaScript que permite la ejecución de código nativo del lado del cliente.
- Nuevo componente "Mapa": Permite mostrar una ubicación sobre un mapa de Google, con los marcadores y con total control sobre el tipo de mapa y nivel de zoom.
- Nuevo componente "Gráfica": Muestra una gráfica a partir de los datos contenidos en una variable de tipo lista de Omnis. (Para ver una muestra, pulse aquí)
15 de mayo de 2012
Webinar en Castellano
Nos llegan buenas noticias desde TigerLogic, desde hoy los ya famosos Webinars de formación on-line, se amplían con dos nuevos idiomas (Español e Italiano). Sin duda una buena noticia para todos los desarrolladores de habla hispana.
Además la hora y el día (en el caso del español) ha sido pensada para que la mayor parte de sudamérica, pueda participar de los cursos de formación on-line.
Información e inscripción en: http://www.tigerlogic.com/tigerlogic/omnis/developers/webinar_es.jsp
13 de marzo de 2012
Las 22 claves para el éxito de una página Web
- Enfoque su contenido hacia una audiencia lo más aperturista posible.
- Participe en los foros donde su público se reúne.
- Cree un contenido amigable.
- Use Twitter, Facebook y Google+ para compartir mensajes y crear nuevos enlaces.
- Instale Google Analytics, para analizar los resultados.
- Añada imágenes, fotos e ilustraciones (conteniendo enlaces hacia su web)
- Realice actividades de investigación sobre palabras clave al escribir sus mensajes.
- Haga múltiples referencias a sus propios mensajes y a los de los demás.
- Participe en redes sociales de intercambio como Likedin, Reddit y StumbleUpon.
- Blog invitado (publique comentarios de sus visitantes).
- Mejore el diseño en su Web.
- Interactuae con comentarios en otros blogs.
- Participe en websites de consulta como Wikipedia, Answers.com y Quora.
- Posibilite la suscripción a través de Feed y E-mail.
- Asista y organizar eventos.
- Firme los correos electrónicos con enlaces a la web.
- Encueste a sus lectores.
- Muestre un ranking de las consultas más populares
- Introduzca valoraciones hacia su web.
- Incluya en sus perfiles públicos enlaces hacia su web.
- Descubra que webs, contienen enlaces hacia la suya.
- Sea constante y no permita que se produzcan altibajos.
1 de marzo de 2012
AppleScrip para montar y desmontar discos
set diskName to "NombreDelDisco"
tell application "Finder"
if disk diskName exists then
eject disk diskName
else
tell current application
set deviceLine to (do shell script "diskutil list | grep \"" & diskName & "\" | awk '{ print substr($0,69,9) }'")
if deviceLine = "" then
display dialog "El disco \"" & diskName & "\" no pudo encontrarse." buttons {"OK"} default button 1 with title "Error" with icon caution
end if
set foundDisks to paragraphs of deviceLine
repeat with i from 1 to number of items in foundDisks
set this_item to item i of foundDisks
if this_item contains "disk" then
do shell script "diskutil mountDisk/dev/" & this_item
end if
end repeat
end tell
end if
end tell
6 de febrero de 2012
Error. Code # 801: , in worng place
El título de ésta entrada, obedece a un problema que se presenta cuando usamos OMSQLDAM, consultando una tabla, que contiene a su vez una columna numérica con decimales (usando "," como separador de decimales) y al ejecutar sobre ella la sentencia SQL indicada a continuación desde la ventana del "Interactive SQL":
SELECT SUM(ColumnaDecimal) FROM Tabla
El resultado de ésta consulta es el descrito, como título de ésta entrada ¿Cuál es la solución?
En un principio podría pensarse, que cambiando el parámetro de sesión $sqldecimalseparator sería suficiente, pero cual será nuestra sorpresa al ver que, tras cambiar éste parámetro obtenemos el mismo mensaje de error.
La solución nos llega por gentileza de un avezado desarrollador Omnis, Elías Gil de Caceres (España), la solución reside en el uso del método $root.$prefs.$separators.
Este método nos permite conocer o fijar los caracteres de separación que OMNIS deberá usar, su único parámetro será una cadena de 5 caracteres (dp,thou,func,imdp,imsep), si se omite el parámetro el método nos devolverá su estado actual, de otro modo se fijaran los que especifiquemos.
Método: $separators([cSeps])
Parámetro:
Carácter 1 (dp): carácter usado como separador de decimales
Carácter 2 (thou): carácter usado como separador de miles
Carácter 3 (func): carácter usado como separador entre los parámetros de una función
Carácter 4 (imdp): carácter usado a la hora de importar/exportar cifras decimales
Carácter 5 (imsep): carácter usado como delimitador durante una importación/exportación
De modo que: $root.$prefs.$separators('.,,.,') nos permitirá, fijar el modo de uso anglosajón y evitar así que se produzca el error ya mencionado. Usaríamos: $root.$prefs.$separators(',.,,,') para fijar de nuevo el modo español, donde la "," es usada como separador de decimales.
Los argumentos de éste método serán guardados en el archivo omnis.cfg, desde el cual Omnis tomará su estado inicial. Damos las gracias, en especial a Elías Gil de Caceres (España) por su aportación a éste blog.
13 de enero de 2012
Manual de Programación
Obtenga el Manual de Programación Omnis Studio en Casellano
¡¡ Gratis !!
Adquiriendo una licencia o una actualización de cualquier producto Omnis Studio a través del distribuidor oficial (http://www.softpi.com), recibirá una copia en formato PDF.
Si desea más información, mande un e-mail a: framosmu@softpi.com
Suscribirse a:
Entradas (Atom)