Entradas

Funcionalidades de GeneXus que vale la pena conocer: Properties Data Type

Imagen
  El   Properties   Data Type ( https://wiki.genexus.com/ commwiki/servlet/wiki?31606, Properties %20Data%20Type ) es un tipo de datos que permite manejar en memoria un conjunto de valores de clave y valor.  Tiene los métodos, Set, Clear, Get, Remove, ToJson, FromJson y Count.  Para recorrerlos todos, se puede hacer for & property  in &myProperties        msg(& property .Key)        msg(& property .Value)  endfor Es muy util en varios escenarios, por lo que conviene conocerlo.  Puede servir para hacer acumulados en memoria para guardar los filtros seleccionados por el usuario y muchos mas.  Algunos ejemplos de uso, se puede ver en: https://wiki.genexus.com/commwiki/servlet/wiki?37750,Consuming+JSON+with+GeneXus+Properties+Data+Type

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.

Imagen
Algunas veces en el código tenemos que poner una fecha como constante. Una alternativa a esta función, es usar el formato #yyyy-mm-dd# , como constante. Por ejemplo:   &InitialDate =# 2007 - 01 - 01 # &DateTime = #2020-01-01 10:00:00# Esta funcionalidad está desde hace varias versiones, pero por algún motivo, no se usa demasiado. He visto que usan ymdtod(2020,01,01) que para mi queda bastante mas confuso. Más información en el siguiente link: Date Constants

Caracteristicas de GeneXus que vale la pena conocer: GXServer Quality Assistant

 En GeneXus 17 Upgrade 2, se va a agregar una funcionalidad que permite mejorar la calidad de nuestro código: GXServer Quality Assistant.  Al momento de subir el código se analiza el mismo y a través de avanzados algoritmos de inteligencia artificial nos da un diagnóstico de la calidad del código que intentamos subir.  Algunos de los mensajes que pude probar: GQA001 - In that state, don't even think about uploading that object. GQA002 - Don't update that object. The code of the same can be improved.  GQA003 - The object you are uploading will have errors in the next 5 days.  GQA004 - We recommend that you monitor it intensively.  GQA005 -  Not much effort was put into programming this object. It is recommended that you put the batteries  GQA006 -  Do you think that with this object you are going to solve a problem? I do not think so.  GQA007 - Your contribution has not been the best, you can and should try harder.  GQ...

Características de GeneXus que vale la pena conocer: Dynamic Transaction (UNION)

Imagen
Problema: Tengo una tabla de Operaciones, que tienen movimientos que son generados por otras operaciones, como pueden ser DUA, Líneas de Duas, Conocimientos, Lineas y se pone como Referencia en la tabla de operaciones.  Como hacer un "integridad referencial" desde una tabla a varias tablas?.  En la tabla de Operaciones, voy a tener unos atributos, LuciaRefTpo y LuciaRefID, que tiene el tipo y el identificado de la referencia.  Esto se puede crear como un  Dynamic   Transaction , que es una transaccion que se le y se hace el Data Provider asociada a la transacción.  Los atributos con que armo la referencia son los campos claves de las demas tablas.  Va a generar una vista en la base de datos, que hace la UNION de la concatenacion de la tablas.  Luego, puede usarse como una tabla normal, con integridad referencial que chequea contra todas las tablas, haciendo que no se puedan grabar Operaciones, que no tengan una referencia valida.  Y tamb...

Caracteristicas de GeneXus que vale la pena conocer: Progressive Web Application (PWA)

Imagen
Con GeneXus se pueden hacer aplicaciones web progresivas o PWA. Son una buena opción para desarrollar aplicaciones WEB que se comporten como nativas. Son Responsive, permiten ser usadas aun sin conexión y acceden a varios de los periféricos de las computadoras o celulares.  Hay un buen video que explica que es una  PWA  y otro de como hacerlas con GeneXus.  Tambien hay informacion en el wiki de GeneXus https://wiki.genexus.com/commwiki/servlet/wiki?42601,How%20to%20create%20a%20PWA%20using%20GeneXus https://wiki.genexus.com/commwiki/servlet/wiki?42600,Toc%3AProgressive+Web+Applications+in+GeneXus

Características de Genexus que vale la pena conocer: DataSelectors con USING o IN

Imagen
Los   Data Selectors   con objetos GeneXus que permiten almacenar condiciones (WHERE) y formas de ordenar (ORDER BY) de forma que puedan ser reutilizados en varios objetos.  Tienen varias ventajas:  * El código queda mas fácil de leer y se escribe menos * Encapsulan conceptos, como podría ser DOCUMENTO_ACTIVO (que tuviera un ESTADO <> 'ANU') y podria usarse en todos los lugares donde solo se necesitan los DOCUMENTOS no anulados.  * Centralizan el código, por ejemplo, si se necesita cambiar el concepto de DOCUMENTO_ACTIVO, se cambia solo el data selector y todos los objetos que lo usan, van a ver reflejado el cambio en las condiciones.  Una opción poco conocida de los data selector es que permiten usarse con USING (con lo cual agregan sus condiciones lo que se tenga el for each) o con IN , con el cual se hace una subconsulta para resolver la consulta.  Por ejemplo, si tengo la tabla  Empresa *EmpresaID EmpresaActiva ...

Características de GeneXus que vale la pena conocer: LocalDB

Imagen
En GeneXus 17 Upgrade 1 , una característica interesante para aquellos desarrolladores que trabajan con muchas bases de conocimiento en su maquina, es que pueden usar LocalDB.  LocalDB es una funcionalidad de SQL Server Express, que esta orientada a desarrolladores.  Que ventaja tiene esto?  Con GeneXus usando LocalDB, la base de datos va ser conectada cuando se abra la base de conocimientos GeneXus y desconectada (detach) luego que la base de conocimiento sea cerrada. Esto hace que el archivo de base de datos no va a estar bloqueado cada en forma permanente y esto va a hacer mucho mas fácil el borrado, movido o clonado de las KB y todo los directorios que usan.  Para quienes usen LocalDB, va a ser mucho mas fácil hacer utilitarios para el manejo de KB.  Además, se puede liberar memoria en las maquinas de desarrollo que hoy es utilizada por SQL Server en mantener las bases de datos conectadas. 

Características Genexus que vale la pena conocer: Custom Builds

Imagen
 Es una forma de hacer comandos dentro de GeneXus que pueda saltarse algunos pasos para hacer más rapido algunos procesos de desarrollo.  Sirve para automatizar algunas tareas repetitivas.  Por ejemplo, puedo hacer un  Custom   Build  para generar todos los SDT (si estoy en .NET).  Puedo usarlo para seleccionar todos los objetos que se contiene 'Cliente' en sus objetos y sólo se generan los SDT cuando ejecute el  Custom   Build .  Para crear y editarlo se hace Tools / Options /  Custom   Builds y si se puede elgir el Scope ( build  all, Rebuild All, Run with this only, etc) y se pueden habilitar varios pasos ( haciendo click en los tres puntitos ...) Aparecen en el menu contextual que se aparece con el boton derecho sobre el objeto:  Más información en:  https://wiki.genexus.com/ commwiki/servlet/wiki?43849, Options+-+ Custom + Build    Esto hay que hacerlo en cada instalación de GeneXus. 

Características GeneXus que conviene conocer: Create Selected Object

Imagen
  Si en el editor de texto, estoy en un objeto que NO EXISTE AUN, puedo crearlo facilmente, haciendo CLICK con el boton derecho del mouse y seleccionando Create Selected Object.  Esto me va a presentar un dialogo para elegir el tipo de objeto y donde lo quiero poner.  Va a tomar los parametros que tiene el codigo (con sus tipos de datos) y va a definir dicho objeto.  En el ejemplo:  Tenia en el codigo  &ExisteRecId = ExistRecID(CpRecId).  Va a crear un procedure, en el módulo PROYECTO, con la rule parm(in:&CpRecId              //Igual que CpRecId           out: &ExisteRecId );  //Boolean Es algo que esta bueno cuando estamos haciendo refactoring o simplificación de objetos.  Luego, hay que programar el codigo del objeto creado. 

Funcionalidades de GeneXus que vale la pena conocer - Exportar módulo cómo binario

Imagen
Cuando se tienen aplicaciones GeneXus complejas, es natural que se hagan varias KB para dividir el problema, y hacer mas fácil el mantenimiento de las mismas.  En GeneXus 15 (y mejoro en la 16) se agrego la funcionalidad de poder exponer un modulo como binario, de tal forma de poder pasar un modulo a otra KB de forma mas fácil que hasta ahora.  Suponiendo que tenemos una KB que expone objetos públicos procedures y business component. Se puede elegir un módulo, y empaquetarlo como binario. Se genera un archivo de extension OPC. Esto va a ser visto como un modulo y se verán solo los objetos públicos y sus parámetros, pero no los fuentes.  Estos modulos no necesitan ser especificadas, por lo que se hacer mucho mas rapido el build de una KB que use ese tipo de modulos.  Es una forma mas radical de dividir una KB en modulos, donde algunos de los modulos se tienen solo en binario y se desarrollan en otra KB.  Las KB quedan mas chicas y permiten ace...