Intentare mostrarles todas las cosas que me pasan día a día en mis pruebas, en mi trabajo, etc.
martes, 5 de noviembre de 2013
Error 0x80070005 Acceso Denegado
sábado, 28 de julio de 2012
Largo de nombres de tablas en DB2 con Genexus 9.0
Investigando y obteniendo ayuda de artech, encontramos que este problema se da con Genexus 9 ya que DB2 anterior a la versión 10, no soportaba mas de 18 caracteres, entonces genexus por mas que se configuraba en las propiedades del modelo que el largo de las tablas era 30 igual daba error y no dejaba impactar la base, segun algunos sac para la version Evo1 U3 de genexus esto se soluciona.
Pero existe un workaround, en el archivo config.gx que si no existe se debe de crear en la raiz del modelo, copiar lo siguiente:
Luego de esto se sigue trabajando igual, no cambia nada en la operativa diaria.
sábado, 14 de mayo de 2011
Conversor de colores
viernes, 11 de febrero de 2011
orphaned case en Genexus
En algunas situaciones en KB genexus 9, al compilar me ha saltado este error “orphaned case”, esto se da cuando tenemos algún Datastor, que no tienen definido bien el tipo de motor que se usa, esto pasa cuando creamos un modelo nuevo, y no definimos bien la parte de Datastor.
Lo que hay que hacer es elegir el motor que van a trabajar y con esto se soluciona, lo que van a tener que hacer es además generar los objetos que dan problemas.
domingo, 2 de enero de 2011
Genexus, grilla solo con variables
Varias veces me paso que con genexus tengo que tener una grilla la cual solamente tenía variables, y no entendía por que no andaba, y optaba por varias opciones para que funcionara, normalmente usar una tabla auxiliar.
Pero ayudando a un amigo (Gerardo) y el que es un poco más terco que yo, se dedicó a investigar y encontrar como se podía solucionar, y (obviamente) la encontró.
La solución es tener algún for each line en el código, aunque este no haga nada pero genexus pide tener un for each line para desplegar los valores en la grilla. Estoy de acuerdo con ustedes que es una solución al problema, pero la gente de artech debería de solucionar estos temas de fondo.
viernes, 23 de abril de 2010
Tranferir licencias GX
Tengo un equipo el cual voy a formatear, y necesito respaldar mis licencias Genexus.
Para esto vamos a utilizar el equipo que yo tengo, otro equipo con Genexus la versión que esté utilizando que tenga los upgrade igual a mi equipo.
Entonces en el otro equipo tengo que ejecutar el LicenceManajer, esto está en el menú de inicio de programas en el menú de Genexus, y tiene un icono de una llave.
Entonces ejecutamos el LM, luego que aparece la ventana arriba a la derecha tenemos un botón Transfer, seleccionamos la licencia que guardaremos (debemos hacer un archivo y el proceso por cada una de las licencias a guardar) hacemos click en el botón, y nos lleva a la ventana que mas vamos a utilizar.
En esta ventana tenemos varias cosas para hacer, la idea es generar un archivo .trf, desde el equipo al que le voy a agregar las licencias, luego desde mi equipo exportar las licencias a ese archivo, y por ultimo levantar estas licencias en el otro equipo, y ahí la licencia queda segura en el otro pc, luego que instale mi equipo, se hace lo mismo pero tomando como base la licencia que tiene el otro equipo, es decir al revés que como lo hicimos primeramente.
Entonces con el LM en la pantalla que nombre arriba, vamos a generar un .trf, entonces tenemos que marcar abajo a la izquierda “Register Transfer”, marcar la ruta donde queremos guardar el archivo y presionamos OK. Esto genera un archivo .trf, que tenemos que pasarlo en este caso a mi equipo.
Estando en mi equipo ejecuto nuevamente el LM y me paro en la pantalla que nombre arriba, y en la ruta marcamos donde este el .trf que pasamos a mi equipo, luego seleccionamos “Tranfer Out”, y la cantidad de licencias que pasaremos, normalmente 1, pero pueden ser mas (de un solo generador por ejemplo 1 licencia de Java), y presionamos ok, y se sobrescribe el .trf.
Por ultimo tenemos que volver el .trf al otro equipo, podemos sobrescribir el que ya habíamos generado, y vamos a ver que el tamaño es mayor. Luego ejecutamos el LM, y debemos seleccionar la ruta del archivo (por defecto se guarda la ultima utilizada), y debemos seleccionar “Tranfer In”.
Si seguimos los pasos que puse acá, debería de aparecer la licencia en la pantalla principal del LM. Para que todo esto funcione los 2 equipos deben de tener genexus al mismo upgrade de developer y del generador que estemos traspasando.
miércoles, 20 de enero de 2010
Mysql y Genexus en linux
lower_case_table_names=1
esto en la sección [mysqld] del my.cnf . Si no tienen el my.cnf (deberían de tenerlo porque es donde se configura mysql, para no dejarlo por defecto y arreglarlo a nuestras necesidades) deben de ver el archivo que arranca el motor (normalmente /etc/init.d/mysql) ahí debe mostrar donde debe de existir este archivo (my.cnf) y solo poner las 2 lineas, primero la sección y luego el lower case.
Por que pasa esto? bueno genexus crea las tablas en minúsculas, pero al intentar acceder a alguna tabla la busca en mayúscula, entonces no encuentra lo que busca, por eso se le dice al motor que no sea key sensitive.
sábado, 7 de noviembre de 2009
Configurar Informix para usar con Genexus
Recordando viejas épocas puede crear una base de datos con dbaccess, para esto tenes que entrar al equipo Linux y loguearte con el usuario informix, luego ejecutas dbaccess y te sale un administrador para ejecutar consultas, eliminar crear, tablas, bases, etc.
Entonces con esto llego a crear la base de datos, luego eligió el dbspace (alguno que este configurado), luego en la parte de logs le pongo none (aquí empieza el problema).
Entonces para que genexus pueda utilizar la base de datos esta debe de ser transaccional, entonces cuando creas la base debes elegir log o buggered log, pero como no lo hice ahora con unos comanditos vamos a solucionar el problema.
Ejecutamos lo siguiente
ondblog buf <nombreBase> (si vas a configurar buffered log)
ondblog unbuf <nombreBase> (si vas a configurar unbuffered log)
onbar -b -F
Volver al inicio
jueves, 5 de noviembre de 2009
Ejecutar Reorg en linux y windows
Lo que nos pasa normalmente es que queremos ejecutar la reorg de genexus directamente desde gx, ya que al configurar el DBMS bien, entonces gx hará todo por nosotros, pero a veces cuando la reorg es muy grande, o se tiene que hacer por internet, esto puede durar mucho.
Entonces lo mejor es respaldar la reorg y luego directamente ejecutarla.
Si el equipo es un Linux como es mi caso se debería de ejecutar el siguiente script
export DISPLAY=:0
java -cp GxUtils.jar:.:GXClassR.jar:Reorg.jar:mysql.jar Reorganization -force
si es Windows se debe de ejecutar este script
"ruta de java"\java -cp GxUtils.jar;.;GXClassR.jar;Reorg.jar;mysql.jar Reorganization -force -nogui
Para que esto funcione se deben de tener los jars GxUtils y GXClassR de genexus, el archivo que se genera al guardar la Reorg (daremos una pequeña explicación después), y el jdbc de conexión, que en este caso es mysql pero puede ser cualquiera, sql por ejemplo, todos en una sola carpeta.
El archivo de la reorg se puede exportar directamente de genexus, para esto en el modelo, luego de correr la reorg en el equipo local, se ejecuta el programa WinDeveloper, esto lo que hace es llamar a un programa (que tiene muchas cosas para hacer por ejemplo hacer un war de la aplicación) win, java en mi caso, que te deja exportar el programa de reorganización, entonces buscamos en el menu y ejecutamos la exportación de la reorg, luego podemos incluir en el archivo Reorg.jar los sesteos de conexión de la base de datos (usuario, contraseña, servidor) o podemos no incluirlos (cosa que aconsejo), si elegimos esta ultima opción, entonces en la misma carpeta donde están los jars debemos de poner el reorg.cfg que tenga los datos del servidor, que es idéntico a el client.cfg.
Entonces con todos estos archivos en una carpeta, nos paramos en la carpeta y ejecutamos el script que menciones (se puede crear un bat o sh dependiendo del sistema).
Al correr el script si todo esta perfecto, se debería de impactar la base de datos, si el sistema es windows se mostrara la clásica ventana de reorg de genexus.
Lo mas importante es tener los parámetros de conexión bien, ya sea en el Reorg.cfg como en el modelo de gx si se elije que el Reorg.jar tenga estos parámetros.
Luego como (en mi caso) la aplicación es java, en el servidor tengo que tener instalado java.
sábado, 19 de septiembre de 2009
Genexus 9, Confirm en web
Estoy trabajando con gx 9 web y quiero hacer lo que en las versiones win es el conocido Confirm().
Un ejemplo de esto en win seria preguntarle si esa seguro si quiere realizar determinada acción, entonces el código seria algo así
Confirm("Estas seguro de borrar el archivo?',N)
if confirmed()
// eliminamos el archivo
endif
Bueno en web esto no anda entonces lo que se utiliza es un poco de los eventos html para esto.
Entonces seria algo así, tenemos un botón el cual al cliquearlo queremos que nos pregunte si realmente estamos seguros.
En el evento start ponemos algo asi
btn.JSEvent('onclick',"confirm('Realmente desea ...?')")
donde btn es el nombre del botón
luego en el evento del botón, solamente tenemos que poner el código para eliminar o hacer lo que deseamos.
Esto lo que produce es nos muestra una ventana Windows, en la cual nos pone el texto "Realmente ..." y nos pide que Aceptemos o Cancelemos, y se ejecuta el código del evento solamente si Aceptamos.