Entradas

Mostrando las entradas de 2023

¿Por qué no deberías utilizar ServerDate() o ServerNow() en GeneXus?

Imagen
Históricamente en los sistemas Cliente-Servidor, la aplicación se ejecutaba en el PC del usuario. Por esto, para obtener la fecha de forma consistente, ésta se obtenía desde el DBMS. Hoy en día, generalmente disponemos de un sistema Web con una arquitectura en 3 capas, donde el usuario utiliza un navegador el cual se conecta al servidor de aplicaciones y este último, si es necesario, al DBMS. Debido a que todos los usuarios se conectan, a través del Browser, al servidor de aplicaciones, ya no es necesario consultar la fecha-hora desde la base de datos. En su lugar, lo mejor es retornarla directamente desde este servidor de aplicaciones. Pero, ¿Que es lo que hacen estas funciones? Estas funciones obtienen la fecha desde el DBMS mediante una query. Por ejemplo, en MSSql se utiliza: SELECT GETDATE() Esto quiere decir que cada vez que obtienes la fecha mediante estas funciones, el servidor de aplicaciones debe hacer un consulta al DBMS. Suponiendo que estamos trabajando con un sistema W...

GeneXus - Como ejecutar un procedimiento Java main por consola

Imagen
Los procedimientos marcados como main/command-line son sumamente útililes para realizar varias tareas que por su definición no son compatibles con la ejecución en línea. Entre ellas podemos encontrar procesos batch, tareas programadas y otros. La ejecución de estos procedimientos en otros generadores como .Net es trivial, ya que se crea un .exe y se ejecuta directamente. En Java esto no es tan sencillo ya que para ejecutar hay que invocar el intérprete de java con la ruta de las diferentes librerías que componen el proyecto (classpath). Luego de investigar al respecto, encontré que la forma más sencilla para esto es mediante el comando: java -cp build\classes\java\main;build\libs\* com.<kbname>.a<proc.main> Ej.: java -cp build\classes\java\main;build\libs\* com.mykb.amyproc Hay que tener en cuenta que esto funcionará a partir de GeneXus 18.

¿Actualizaste a MacOS Ventura y te dejó de funcionar la generación de apps con GeneXus 17? ¡Solucionado!

Imagen
Si les pasó actualizar MacOS a la versión Ventura, seguramente les dejó de funcionar la generación de aplicaciones creadas con GeneXus 17. Aquí les explico como poder seguir utilizando GeneXus 17 sin hacer un downgrade de MacOS. Instalar la versión de xcode compatible con Ventura. En mi caso instalé la v14.2. Si no lo tienen instalado, deben instalar GeneXus 18. Respaldar la carpeta GeneXus17\iOS y copiar a esta, los siguientes archivos de la carpeta GeneXus18\iOS: MacTransfer.exe, MacTransfer.exe.config, MacTransfer.scpt y Renci.SshNet.dll Abrir la terminal de MacOS y ejecutar: brew install cocoapods Hacer un rebuild de la app en GeneXus17 y probar que ésta funcione correctamente. Si esto no les llega a funcionar, la otra opción es hacer el downgrade con lo cual pueden incurrir en perdida de datos.