Tips: Error ORA-00920 invalid relational operator GeneXus Oracle

May 11th, 2013

El problema se detecta en ejecución, resultado de una cláusula “where” mal armada.

Que fue lo que pasó?

En las últimas versiones de GeneXus, son sentencias válidas poner:

if atributo

cuando antes se tenía que poner

if atributo = true por ejemplo

Lo mismo pasa si en vez de un “if” lo tenemos en un “where”

Código de ejemplo:

For Each

Where …

Where PersonaCodigo

Defined by AtributoX

//Codigo …

EndFor

 

Puede ser que por error nos olvidamos de poner el “= a alguna cosa” en el for each para un atributo que no es boolean.

Esto por ahora GeneXus no lo está detectando ni al salvar, ni al especificar y si no prestamos atención a la navegación solo lo vamos a encontrar cuando el sistema intenta resolver la query generada.

Que en este ejemplo generó el siguiente código

 WHERE (T1.PersonaCodigo) AND ….

 

Aporte de Antonio de la Fuente. Muchas gracias!

Gracias por seguir mi blog.
Hasta la póxima,

Fabricio De los Santos

__________________________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Caracteres acentuados com GeneXus e Tomcat

May 9th, 2013

Caracteres acentuados com GeneXus e Tomcat fabricio de los santos

Antes de começar, quero deixar claro, que existem várias formas de resolver este problema que na verdade depende muito do cenário.

Em particular neste caso, um arquivo era subido numa aplicação com GeneXus como campo Blob a um banco de dados mysql.
Quando o arquivo não tinha acentuação por exemplo arquivo.ext (sendo ext qualquer extensão pdf, docx, jpg, etc) a descarga que era feita num WebPanel visualizador, era feita sem problema nenhum.

Mas quando o arquivo tinha por exemplo ( “~” – “´” – “^” ) ai a url que era formada pelo nome do arquivo, não era interpretada corretamente pelo servidor.

Como o requerimento era que nada podia ser modificado do arquivo (por exemplo, codificar o nome do arquivo, para ser reconhecido sem caracteres especiais) o foco foi para o servidor, neste caso Apache Tomcat.

A solução foi adicionar o atributo URIEncoding=”UTF-8″ no TAG “Connector” do arquivo “server.xml

O arquivo deve ficar similar a

<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″
URIEncoding=”UTF-8″ />

Uma dica para o teste!

Após reiniciar o tomcat, feche o browser onde estava testando, e abra outro para testar, não se deixe enganar pelo cache do browser

:)

Espero que ajude.

Obrigado por seguir meu blog.
Até a próxima,

Fabricio De los Santos

__________________________________________________________
Coaching and Mentoring GeneXus, ScrumMaster, Project Manager
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Entrevista a Nicolas Jodal CEO de GeneXus

May 7th, 2013

Una muy buena entrevista a Nicolas Jodal.

Quien está en el mundo GeneXus, sabe que cada charla, presentación o conversación informal que se pueda tener con Nicolás, es una gran oportunidad para aprender a entender los distintos caminos por los cuales la tecnología, y en especial todo lo referente al desarrollo de software, debemos transitar en nuestra carrera profesional.

Este video que lo tiene como protagonista, de un Ciclo de Entrevistas Dove Men Care del periodista Aldo Silva, muestra lo que mueve a Nicolás Jodal para llevarlo a ser una de las personas más exitosas del Uruguay.

Nicolás explica algo que creo TODOS en nuestra profesión vivimos cada día, que es la busqueda de la INNOVACIÓN, de nuevas ideas, de estar SIEMPRE VIGENTES, y nunca quedarnos OBSOLETOS.

Muy buen video. Felicitaciones Aldo y Nicolás.

 

 

 

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Teatro – En el TIEMPO de las MARIPOSAS

April 22nd, 2013

OBSERVACIONES: ESTE POST NO ES TÉCNICO para post técnicos de Fabricio De los Santos haga click aquí

Ayer fuimos a ver una obra dirigida por Alicia Dogliotti y producida por Utópica Producciones, llamada “En el tiempo de las mariposas”.

De verdad la anécdota de la historia, es que inicialmente íbamos a otra obra, pero llegamos un poco tarde, era a las 19.30 y llegamos, 19.31 creo, así que como corresponde no pudimos entrar. Esos horarios quebrados para mí son un problema… porque me cuesta calcular bien el tiempo. Comentario aparte, vimos que estaba llegando mucha gente para la obra de las 20.00 hs. Realmente teníamos poco tiempo, porque debíamos estar a las 21.30 en otro lugar, entonces le pregunto a la persona de la caja, cuanto duraba la obra y me comentó que 1 hora 15 minutos aproximadamente, así que no lo pensé dos veces y cambiamos las entradas.

Era la Sala 1 del teatro Circular, con capacidad para 200 personas, que digamos estaba casi llena, entonces pensamos que realmente habíamos tenido suerte, parecía una buena pieza.

Y así lo fue, un espectáculo que te atrae desde el inicio hasta el fin, con una actuación espectacular de todos los actores, y un manejo de tiempos presente, pasado, que me gustó mucho realmente, muy bien producida y dirigida.

Además de todo lo bueno que vimos, salimos de allí con un complemento de historia, para mí desconocida hasta ayer.

Obviamente, cuando llegué a casa, me puse a investigar quien era Rafael Trujillo y las hermanas Mirabal, al leer me daba cuenta que todo lo que estaba escrito, ya lo sabía, lo había vivido personalmente, había viajado en la máquina del tiempo, gracias a la obra “En el tiempo de las Mariposas”

EXCELENTE EN TODO!

Felicitaciones a todos, en especial a los actores!

No dejen de verla!

Info: Cartelera.com.uy

Fotos: Utópica Producciones

 

Fabricio De los Santos

www.fabriciodelossantos.com

 

Tela em branco GAM – GeneXus Tips

March 9th, 2013

Numa nova aplicação aplicamos a segurança com GeneXus GAM.

Após setar a propriedade “Enable Integrated Security” em true, criar o banco de dados de GAM e executar um “Build All”, o resultado desejado seria que ao clicar em qualquer WebPanel do Developer Menu, o sistema navegara até a tela de login de GAM.

Em vez de acontecer isso o browser apresentava o WebPanel selecionado em branco.

Sem poder achar o problema com Firebug no FireFox depois de ter limpado o cache, a resposta estava nas propriedades de GeneXus.

O que aconteceu foi o seguinte, quando o GAM importa os objetos, um deles é o objeto de exemplo de login para Web e Smart Devices. Tendo o cuidado de não deixar esses objetos da forma original, eles foram renomeados.

Quando renomeamos um objeto, em geral todos os vínculos são remanejados para que todo funcione corretamente, mas neste caso a propriedade “Login Object for Web” não pegou o novo nome do objeto ficando em branco como mostra a imagem.

genexus gam tela em branco fabricio de los santos delfasoft

Resultado, quando clicamos no webpanel o sistema não sabia a que tela tinha que navegar ficando no webpanel selecionado mostrando a tela em branco.

A solução simplesmente setar na propriedade “Login Object for Web” o nome do objeto renomeado.

Tomara que ajude.

Obrigado por seguir meu blog, até a próxima.

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Como criar um novo Environment em GeneXus

March 1st, 2013

O amigo Rafael, futuro Profissional GeneXus, estava seguindo um vídeo tutorial de GeneXus mas não estava conseguindo criar um novo Environment.

Então aqui vai a dica, espero seja útil para ele e os outros profissionais que estão querendo entrar no mundo GeneXus.

1) Dentro do Knowledge Base Navigator selecione “Preferences”

criar novo environment em genexus delfasoft fabricio de los santos

2) Clique no primeiro node da árvore como mostra a imagem seguinte

criar novo environment em genexus delfasoft fabricio de los santos

3) Clique com botão direito e escolha a opção “New Environment”

criar novo environment em genexus delfasoft fabricio de los santos

4) Digite o nome do novo Environment e configure com a sua preferença

criar novo environment em genexus delfasoft fabricio de los santos

5) O novo Environment aparece criado como mostra a seguinte imagem

criar novo environment em genexus delfasoft fabricio de los santos

6) Clique no botão direito e selecione a opção “Set As Target Environment”

criar novo environment em genexus delfasoft fabricio de los santos

Agora já pode começar a trabalhar no novo Environment.

Desejo possa ter ajudado, boa sorte.

Até a próxima,

 

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

k2baudit 3.0 A melhor ferramenta para auditar com GeneXus

March 1st, 2013

k2baudit k2btools delfasoft fabricio de los santos

Pouco tempo atrás no Blog de K2BTools em espanhol foram apresentadas as novas funcionalidades que chegam no K2B Tools 7.0, nesta oportunidade vamos falar de K2B Audit, outro produto que integra a suíte de k2btools.

Para aqueles que não conhecem este produto, anexamos aqui uma breve descrição:

K2B Audit é uma ferramenta que permite auditar as alterações realizadas ao banco de dados de qualquer aplicação GeneXus  de forma completamente transparente ao desenvolvedor, gerando triggers dentro do banco de dados.

Ao trabalhar a nível de DBMS, se auditam as alterações realizadas tanto desde a aplicação GeneXus, como desde qualquer outra aplicação como também aquelas operações realizadas de forma manual diretamente no banco de dados.

Durante a execução da aplicação, são gravados os registros de auditoria em cada operação realizada nas tabelas que desejamos auditar. Posteriormente podemos consultar quais foram as alterações realizadas a um registro particular, vendo os valores anteriores e posteriores as alterações, em que momento foram realizadas, e que usuário fez a mudança.

Para ter uma melhor ideia da solução, invitamos a assistir o vídeo em espanhol que aparece embaixo, pertencente a canal de k2btools em youtube, que mostra em maior detalhe as capacidades da ferramenta.

Novas funcionalidades

Esta versão de K2B Audit possui várias melhoras, aumentando a quantidade de dados incluídos dentro dos registros de auditoria e a capacidade de poder fazer consultas por distintas dimensões. Desta forma a análise é enriquecida no histórico das alterações de cada registro.

Seleção de atributos para auditar

A partir desta versão o desenvolvedor poderá determinar dentro de uma transação auditada, quais atributos devem ser auditados e quais não. Para isso existe uma propriedade chamada “Audit Attribute” no nível de atributo dentro de uma transação.

Esta propriedade é visível nos atributos que forma parte da tabela base da transação associada.

k2baudit k2btools delfasoft fabricio de los santos

Para atributos que se encontram na tabela base da transação, mas não estão na transação que se está trabalhando, existe outra propriedade para determinar se estes atributos devem ou não ser auditados.

Descrição dos atributos auditados

Nesta nova versão, no momento de gerar os triggers, será atualizada a descrição dos atributos no banco de dados de auditoria. Com essa informação, usuários não familiarizados com o esquema de banco de dados poderão contar com descrições mais simples de entender.

Informação de UTL incluída em dados de auditoria

Adiciona-se uma funcionalidade nos triggers para armazenar. Junto com dados que foram alterados numa operação, informação de UTL em que a operação foi realizada também é armazenada. Por exemplo, agora poderá saber em que data foi realizado um commit da UTL, ou qual foi o objeto que realizou o commit.

Alem disso, foram incluídas opções para explodir dados de auditoria para que, partindo de uma operação auditada, podamos ver todas as operações que foram realizadas dentro da mesma UTL.

k2baudit k2btools delfasoft fabricio de los santos

Estes câmbios facilitaram a tarefa de analisar os registros de auditoria no momento que recolhem mais informação sobre como foram realizados esses câmbios, e que programa o fez.

K2BAuditAnalyzer

K2BAuditAnalyzer inclui também várias melhoras. Temos que lembrar que esta ferramenta é a que permite ao usuário final consultar e, forma amigável e potente, toda a informação de auditoria recolhida durante a operação da aplicação. 

Dentro das melhoras devemos destacar que, nesta nova versão o desenvolvedor poderá configurar como deseja executar o processo de conversão de registros de auditoria, para que sejam consultados pelo usuário. 

Isto é importante no caso em que temos bancos de dados com alta carga de operações, onde a informação recolhida é muita, pelo que o processo de conversão pode demorar muito tempo.

Em K2B Audit 3.0, são incluídos parâmetros que o usuário pode ajustar permitindo inclusive executar várias instancias em paralelo, para aproveitar ao máximo os recursos disponíveis. Também em quanto os processos que se executam, poderá ter um status de quantos registros vão sendo convertidos. Ao finalizar poderá obter valores de quanto tempo demorou a conversão e quantos registros foram convertidos. 

A nova versão está chegando… aguarde. Até a próxima,

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Como criar uma aplicação com GeneXus Evolution 2 e K2BTools

February 28th, 2013

k2btools delfasoft fabricio de los santos

Olá, meu nome é Fabricio De los Santos, respiro GeneXus a mais de 17 anos.

Tenho trabalhado com a ferramenta desde as primeiras versões em DOS e posterior a isso, acredito que passei por todas elas.

Quero compartilhar com você algumas informações, dicas e também falar do futuro desta maravilhosa ferramenta e seus produtos relacionados.

Todos conhecemos as vantagens de GeneXus e as prestigiosas aplicações que podemos desenvolver com ele. A produtividade é enorme e os sistemas uniformes que obtemos são um produto de excelente qualidade.

Sabe se existe uma forma de melhorar ainda mais sua produtividade?

Sim existe.

O GeneXus permite interagir com ferramentas externas para automatizar o desenvolvimento dentro de GeneXus, e qual é a melhor?

Bem, existem várias ferramentas, mas eu não vou entrar em comparações, vamos colocar a  mão na massa e vou te mostrar o que K2BTools (a ferramenta que escolhi para desenvolver nossas aplicações) pode te oferecer.

K2BTools não é uma ferramenta de patterns, é muito mais que isso, mas… vamos deixar os mistérios e ir direto aos fatos.

Este post é o primeiro de uma serie de posts, onde vou te mostrar como vamos construindo uma de nossas aplicações estrela o “dELFAPRO”.

Este sistema é aquele de necessidade básica para toda empresa que precisa gerenciar projetos, então fica fácil saber do que estamos falando, na hora de seguir os posts como tutoriais.

Então vamos lá!

Criando a KB em GeneXus Evolution 2 

k2btools delfasoft fabricio de los santos

Criamos nossas primeiras transações

Organization

Representa todas as organizações. Por exemplo: empresas clientes

k2btools delfasoft fabricio de los santos

OrganizationArea

Representa as distintas áreas das organizações. Por exemplo: Comercial, Administrativa, etc.

k2btools delfasoft fabricio de los santos

OrganizationContact

Representa os contatos de cada organização. Por exemplo: João Batista, etc.

k2btools delfasoft fabricio de los santos

Aplicando K2BTools

Com as transações criadas agora podemos começar a aplicar os patterns de K2BTools

Para isto abrimos as transações (primeiro, Organization) e clicamos na aba de baixo “Patterns” e logo clicamos na aba de cima “Entity Services” e marcamos a caixa de “checkbox” como mostra a seguinte imagem.

k2btools delfasoft fabricio de los santos

Porque abrimos primeiro a transação Organization?

Hierarquicamente, é a tabela que contem áreas e contatos, vemos isso no diagrama de tabela que o GeneXus nos fornece.

k2btools delfasoft fabricio de los santos 

k2btools delfasoft fabricio de los santos

Neste post vamos ver o “Entity Services” e “Trn Form” da transação “Organization” mas fica tranqüilo, que vamos tentar chegar a todas as pontas.

Analisando a Estrutura da árvore de Instancia de Patterns Entity Services de K2BTools 

Vamos a analisar a primeira seção da árvore

k2btools delfasoft fabricio de los santos

Depois de nodo raiz Entity Services Patterns Instance aparece o nodo principal que origina nossa instancia de patterns que é a transação Organization.

Com a prática na ferramenta, você começara a enxergar  facilmente como vai ficar a cara de sua tela e todas as relacionadas com a transação que está aplicando o pattern.

WorkWith

Aqui o nodo está representando que as chamadas possíveis para a transação Organization dependerão das propriedades gerais configuradas nas preferences de trabalho com o Pattern Entity Services (veja imagem seguinte)

k2btools delfasoft fabricio de los santos

Isso para as chamadas que sejam para inserir, alterar ou apagar um registro.

Também aqui se define se existirá um ícone para mostrar a informação, exportar a Excel ou gerar um relatório em pdf.

Attributes

Indica quais serão os atributos que compõem a grid

Orders

Quais são as possíveis formas de ordenar os dados na tela.

Quando existe só uma ordem definida os patterns K2Btools desenham a tela para que os dados apareçam nessa ordem. Quando definimos a possibilidade de mais de uma ordem, o código gerado cria um combo Box para que o usuário possa escolher a ordem que quer ver os dados no momento de execução.

Meu conselho. Defina índices de usuário se é necessário para que o sistema não tenha sua performance afetada.

Filters

São os atributos pelos quais queremos que o usuário possa filtrar os dados exibidos em tela

EntityManager

Representa a informação que o sistema vai mostrar de um determinado registro.

Ele está composto por Fixed Data e Components

No nodo Fixed Data teremos os elementos que sempre vamos querer ver quando seja solicitado a visualização de um registro

O nodo components terá uma aba para mais dados e objetos do registro selecionado e outras abas com dados a transações relacionadas com a transação Organization.

Nos próximos posts, entraremos mais em detalhe destes componentes.

O que quero mostrar agora é que logo de salvar já podemos ver que K2BTools tem gerado objetos novos na Base de Conhecimento para poder trabalhar com os registros de Organization  

k2btools delfasoft fabricio de los santos

Vemos aqui o form do novo objeto WWOrganization, onde facilmente apreciamos os modos habilitados para inserção de dados, gerar reporte pdf e exportar a Excel, acima a direita. Os modos para update, delete e display no grid a esquerda e os filtros acima.

Não recomendo mudar o form gerado pelo K2BTools patterns e aconselho sempre trabalhar na instancia quando queira fazer alterações de visual ou no objeto, como condições, etc.

Agora devemos aplicar o Patterns Trn Form de K2BTools para que a ferramenta desenhe a tela para poder manipular um registro determinado da transação Organization.

Fazemos igual que fizemos para aplicar o Entity Services. Abrimos a transação clicamos abaixo na aba “Patterns” depois acima na aba “Trn Form”, e clicamos no checkbox “Apply Pattern to save” como mostra a seguinte imagem.

k2btools delfasoft fabricio de los santos

Eu apaguei o atributo OrganizationId para não aparecer na tela, porque ele é autonumber dessa forma podemos ver como o GeneXus tinha deixado a tela inicialmente e como o K2BTools me apresenta a solução. 

k2btools delfasoft fabricio de los santos

Bem,  agora vamos fazer a mágica do F5 para ver as nossas primeiras telas.

Eu tenho um banco de dados MYSQL configurado para criar as tabelas desta aplicação. 

k2btools delfasoft fabricio de los santos

O browser me abre com as seguintes opções.

Vamos trabalhar com as “Organizações” 

k2btools delfasoft fabricio de los santos

k2btools delfasoft fabricio de los santos

K2BTools me apresenta um menu com a opção de “Organizações”  e quando queremos inserir um registro basta com clicar no ícone de inserir.

k2btools delfasoft fabricio de los santos

Finalmente o resultado

k2btools delfasoft fabricio de los santos

No próximo post continuamos construindo esta aplicação e começaremos a explorar mais profundamente todas as funcionalidades de K2BTools.

 

Até a próxima,Até a próxima,

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Para desenvolvedores GeneXus e designers – logotipos inteligentes

February 26th, 2013

Criatividade:

Este post não é técnico mas achei muito interessante a matéria de Exame.com mostrando e explicando detalhes de logotipos de marcas que muitos deles eu não tinha percebido até hoje.

Como desenvolvedor GeneXus quem não passou já por ter que procurar uma imagem, ou criar um logo para um sistema X.

Você gasta hora procurando, pensando, até que em fim encontra ou cria “esse logo genial” e acha que sua criatividade é o máximo, que você “é o cara”, que aquele logo é exatamente o que você precisa, mas na verdade, eu pelo menos não tenho base teórica suficiente como para expor o meu talento artístico.

As vezes quem puder é melhor contratar alguém que este no assunto, mas quando não podemos… aqui publico o link que pode ajudar a abrir nossa mente ou pelo menos se não abre, você vai aprender algo novo nestes 20 logos da matéria e continuará sendo o Picasso do Paint mas agora com um pouco mais de fundamentos :)  

Tomara que ajude. Aqui vai o link.

Logotipos Inteligentes

Obrigado por seguir meu blog.

Até a próxima,

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br

Importar um xpz em GeneXus Evolution 2 – Tip 1

February 23rd, 2013

Algumas vezes queremos importar um xpz que foi enviado por outra pessoa e depois de selecionar o arquivo, aparece a árvore a esquerda do dialogo de importação como mostra a figura, mas ao clicar no botão “Import >>” nada acontece.

Erro ao Importar xpz em GeneXus Evolution

Um dos possíveis motivos se você tem sua KB compartilhada na rede (ou seja não está usando GeneXus Server) poderia ser que outro desenvolvedor tem a KB e um dos objetos que pretende ser atualizados também aberto.

Nesse caso a janela de output mostraria

========== Import started ==========

error: Object ‘ObjetoX’ locked by ‘Usuário’

Import Failed

Peça para o outro desenvolvedor fechar o objeto e tente novamente.

Obrigado por seguir meu blog.
Até a próxima,

Fabricio De los Santos

__________________________________________________________
ScrumMaster, Project Manager, Coaching and Mentoring GeneXus
K2B Tools Agent – The best Patterns Tool to integrate with GeneXus
www.fabriciodelossantos.com
www.delfasoft.com.br