Archive for enero, 2014

Error 1068 Servicio SQLServer usado por GeneXus

viernes, enero 31st, 2014

Error SqlServer GeneXus Fabricio De los Santos

“Todo comenzó…” cuando la versión de GeneXus Tilo aparentemente estaba de huelga y no quiso levantar. Enseguida mi primer sospechoso fue el último Night Build de la versión beta, pero me di cuenta que en realidad el problema estaba en el SQLServer que es usado por GeneXus para Administrar la Base de Conocimientos desde la versión X.

Al verificar los servicios veo que el servicio de SQLServer R2 no estaba levantado. Al intentar levantarlo manualmente me devolvía el siguiente error. El log de los eventos, no me aportaba ningún otro dato adicional.

Error 1068 GeneXus Fabricio De los Santos

Confieso que aquí es donde empecé a preocuparme un poco, por todo el trabajo que se venía si tenía que instalar nuevamente el SQLExpress, levantar backups, etc.

Entonces, repasando que situación podría haber provocado este error, mi segundo sospechoso fue el CCleaner, el cual había usado el día anterior.

El mensaje que mostraba parecía bastante claro “Error 1068: No se puede iniciar el servicio o grupo de dependencias”, entonces  ejecuté “msconfig” y en el tab “General” en vez de “Inicio selectivo” marqué la opción “Inicio normal” para que Windows levante todos los servicios, ya que quizás había deshabilitado algún servicio dependiente por error.

Una vez reiniciado el equipo, el servicio de SQLServer todavía no levantaba. Entonces intenté iniciarlo manualmente y fui a chequear el log de Eventos del sistema. El mensaje de error que me aparecía ahora me acercaba un poco más a la solución del problema.

“The log scan number (274:328:1) passed to log scan in database ‘master’ is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.”

Error SQLServer mdf GeneXus Fabricio De los Santos

En alguna otra oportunidad había tenido un error similar donde, por algún motivo la base de datos master que viene por defecto en el SQLServer estaba corrupta y la solución que apliqué en su momento, fue copiar de otra instalación los archivos “master.mdf” y “mastlog.ldf” al directorio “C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER_R2\MSSQL\DATA” donde en mi caso tengo instalado este SQLServer, así que repetí la receta.

Una vez copiada, inicié el servicio y todo volvió a funcionar.

Lo único que me queda por saber es “qué fue lo que realmente causó el problema”, pero como se podrán imaginar, ahora que funciona todo nuevamente, me conformo con compartirlo y tenerlo documentado por si algún día vuelve a pasar.

Muchas gracias por seguir mi blog.

Hasta el próximo post!


Fabricio De los Santos GeneXus
Fabricio De los Santos
_________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager, K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
Siga meus blogs em www.fabriciodelossantos.com

http 500 com imagem em GeneXus

martes, enero 28th, 2014

genexus http 500 fabricio de los santos

 

Tempo atrás tive a grande oportunidade de dividir um projeto com o querido Gabriel Icasuriaga. Na época tivemos um erro de http 500 com GeneXus Evolution 2, java e MySql.

A mensagem que apresentava na tela era a seguinte:

javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘MyAttributeParticularNameThumb_’ in ‘field list’

O problema tinha origem nos atributos blob que estávamos usando para as imagens. Se bem tínhamos definido um atributo similar ao mencionado acima (o atributo real tinha outro nome), no meio houve uma mudança no tamanho dos campos que aparentemente não afetava nenhuma tabela, mas não consideramos que GeneXus adiciona automaticamente outro atributo com o nome similar adicionando os caracteres “_GXI” que significa GeneXus Identifier para guardar a URI do arquivo, por tanto o atributo gerado na sentença SQL não coincidia com o nome na tabela por causa do limite do nome do atributo.

Colocando a nomenclatura correta considerando o tamanho certo o problema foi solucionado.

Gabriel tinha me pedido postar isso algum dia no blog, então aqui está Gabriel.

Muitas Saudades amigo.

 

Até o próximo post. Grande abraço!


Fabricio De los Santos GeneXus
Fabricio De los Santos
_________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager, K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
Siga meus blogs em www.fabriciodelossantos.com

GeneXus Smart Devices Tips I

viernes, enero 24th, 2014

GeneXus Smart Devices Tips - Fabricio De los Santos

Uns dias atrás o colega Wagner me contava que tinha seguido alguns dos tutoriais de GeneXus que tenho publicado no blog, e me perguntava se já tinha feito algum Tutorial de GeneXus para Smart Devices.

Minha resposta acredito que foi contrária ao desejo dele, porque respondi que ainda estava apanhando muito com o gerador GeneXus para Smart Devices e não tinha condições de criar um tutorial neste momento.

Ai pensei, eu tenho apanhado muito porque entre outras coisas é uma plataforma nova, o uso deste tipo de celular também é novo, tanto assim que pessoas que ainda não tem um smartphone pensam que um IPHONE é igual a um GALAXY, mas depois que entra neste mundo entende que são coisas muito distintas, começando pelo uso. Quem está acostumado ao teclado do aparelho da Apple, quase que nem consegue escrever no cavalinho da Samsung.

Em fim primeira dica antes de querer desenvolver alguma coisa, COMPRE um Smartphone e aprenda a usar. Por custo acredito que o melhor é começar por algum dispositivo com o Sistema Operativo Android e depois na medida que vai avançando e entendendo com certeza vai escolher o que é melhor para você. Algo que muitos sabem BlackBerry já era e Windows Phone, humm na minha opinião não vai rolar muito, mas quem sabe.

Agora que já tem seu Smart Device pronto, aqui vão as quatro restantes dicas deste post, mas cuidado tem muitas feras no mundo GeneXus com muita experiência nesta nova plataforma, posso estar dizendo alguma coisa que para mim funciona bem de uma forma e pode existir outra melhor forma de fazer, RECOMENDO entrar nos foruns de Smart Devices de GeneXus.

Algumas coisas que foram úteis para mim não precisamente nesta ordem.

DICA 2

Você pode trabalhar e testar sua aplicação com o emulador, mas posso assegurar que o que vai testar no emulador esta muito longe de como vai ficar no celular, começando pelo uso a menos que você tenha um monitor touchscreen vai ter que clicar com o mouse, a experiência de usuário é terrível, então conectando seu celular com o cabo USB ao computador vai rodar diretamente sua APP no celular. Pode ser que algum tipo de aparelho ou não sei se o Sistema Operativo tenha que fazer alguma coisa mais, pode procurar informação do KBN de GeneXus, lembro que no Blog de Gustavo Carriquiry fala algo disso também.

DICA 3

O pior INIMIGO algum erro que fale “JSON”

Este personagem é muito detestável mas depois de muito apanhar notei que ele aparece muitas vezes quando colocamos funções (que estamos acostumados a usar em GeneXus win e web) em objetos tipo Panel de Smart Devices. Ou seja uma função “val”, “substr” por exemplo pode dar este tipo de erro quando é colocada em paneis, então você tem que fazer o uso delas em procedimentos e ai não tem problema. Sei que pode ser um pouco incomodo mover a lógica a um procedimento, mas com isto você já poupou dias perdidos e muitos cabelos tentando resolver esses erros JSON.

DICA 4

Operações simples também podem dar problema em paneis

Talvez relacionada com a dica 3 mas quis colocar separada porque achei que o JSON merecia um item destacado.

Numa oportunidade a APP não apresentava nenhum erro mas não conseguia parsear de nenhuma forma o dado de uma variável. Fazendo um debug (com mensagens simplesmente) o valor de uma variável tinha um comentário do programa, era uma coisa mais ou menos assim:

&valorstring = ‘<Texto>’ + &VarStr

//Resolvo &valorstring

Na mensagem o dado guardado na variável &valorstring era: “<Texto> + &VarStr //Resolvo &valorstring”

O problema estava no uso do “+” para concatenar num panel, levei para um procedimento e listo.

Não sei se este tipo de coisas funcionaram em curto o meio prazo em paneis da forma que esperamos em GeneXus, mas vamos resolvendo desta forma, ninguém vai morrer por isso.

DICA 5 para terminar com este post

Algumas coisas se executam no binário e outras no servidor.

Para mim é difícil identificar ainda onde vai rodar cada linha de código, algumas vou aprendendo outras ainda nem investiguei, mas a minha recomendação é quando você executa com F5 ou RUN no PC esperando que atualize sua APP no celular, desinstale a APP no celular antes e depois execute o F5 ou RUN.  Tenho como costume colocar um número de versão visível na APP para saber o que estou rodando, por exemplo se fosse agora seria 2014012401 – ANO MES DIA e número de versão do dia. Notei que em algumas ocasiões esse número de versão não mudava mesmo quando tinha alterado ele, é como se o outro câmbio realizado na APP não era necessário trocar o binário mas isso afetava sim a APP por algum outro motivo, então agora sempre desinstalo antes de dar o RUN do objeto main que quero testar e tenho certeza de que é a versão nova.

Até aqui cheguei hoje, já teremos mais 5 dicas num próximo post. Só siga o mesmo TAG  GeneXus Smart Devices Tips

As plataformas de Smart Devices estão em constante mudança é por isso que é difícil seguir de perto e estar na última linha de desenvolvimento com cada uma delas, mas tenho certeza que estes workarounds apresentados hoje não serão necessários no futuro já que a Excelência de GeneXus e sua equipe é única e insubstituível.

Até o próximo post. Grande abraço!


Fabricio De los Santos GeneXus
Fabricio De los Santos
_________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager, K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
Siga meus blogs em www.fabriciodelossantos.com

Problema de Chrome y GeneXus

martes, enero 21st, 2014

Problema de Chrome y GeneXus Fabricio De los Santos

Luego de la actualización de GeneXus Upgrade 4 y una actualización de Google Chrome, algunas imagenes y botones comenzaron a aparecer en lugares incorrectos. Lo grandioso de la Comunidad GeneXus, es que me encontraba trabajando ayer domingo y puse en twitter la consulta y al poco tiempo Gabriel @gabrielgramajo me informó que era un bug y que se solucionaría con el Upgrade 5.

Eso era muy bueno porque no tenía que buscar más si el error era mío. Lo malo es que no podía esperar al nuevo Upgrade.

Un poco más tarde Ricardo @RCOproc me dice que había un SAC de que tenía que modificar el gxgral.js

Esto ya me estaba dando el workaround que precisaba, pero la bolilla que faltaba la terminó completando Enrique @ealmeida pasandome el link del SAC que voy a poner a continuación.

En el SAC hay varias opciones donde recomiendan como mejor la primera que aparece.

Teniendo en cuenta que esto se va a arreglar con el Upgrade 5 opté por una opción que no es la primera pero SI LA MÁS RÁPIDA que es una sugerencia que hizo Felipe Neves a quien también debo agradecer.

Programar por ejemplo en el start de la masterpage lo siguiente:

form.HeaderRawHTML = ‘<style>.AdjustTD,td [data-align=”center”] *,td [style=”text-align:-khtml-center;text-align:-moz-center”] *,td [style=”text-align:-khtml-center”] * {text-align:center; margin: 0 auto;}</style>’

Así que eso fue lo que hice y resolví mi problema

Como uso K2BTools en los webpanels que no tengo MasterPage se lo agrego en el Sub ‘U_OpenPage’

Les dejo el link del SAC y bueno a esperar que se resuelva en el próximo Upgrade o Preview

Dos alegrías problema resuelto y muy agradecido con la Comunidad GeneXus, que constantemente brinda su apoyo.
Hasta el próximo post!

Fabricio De los Santos GeneXus
Fabricio De los Santos
_________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager, K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
Siga meus blogs em www.fabriciodelossantos.com