Translate

sexta-feira, 26 de abril de 2013

Como trocar o gerador do aplicativo GeneXus

Quando há a necessidade de se trabalhar com mais de uma versão de um aplicativo, e cada uma delas sendo mantida em linguagens diferentes, há a possibilidade de manter dois ou mais geradores funcionando dentro de um mesmo projeto, ou seja, dentro de uma mesma KB, sem a necessidade e uma nova programação.

Existem alguns casos onde o limite da própria linguagem faça com que necessite de algumas modificações dentro da programação ou dentro de alguma funcionalidade. Mas estes casos não são frequentes.

Para adicionar ou trocar o gerador que se está trabalhando basta acessar Preferences [1]:



Depois clique com o botão direito do mouse no Ambiente atual de sua KB [2] e selecione a opção New Environment.

Irá surgir uma tela de configuração para este novo ambiente (gerador):



Agora basta configurar as opções desejadas e compilar neste novo gerador através da opção Rebuild All.

Simples assim...


quarta-feira, 10 de abril de 2013

Como alterar o tamanho dos campos no grid em Genexus EV1 upgrade 5 .NET Web

Para se alterar o tamanho dos campos dentro um Grid numa página web (WebForm) conseguimos fazer seguindo os passos:

- Dentro da aba WebForm, nas propriedades do grid setamos a opção Autoresize: FALSE.

- Dentro do grid, clicar com o botão direito, entrar na opção Columns.

- Selecionar qual a coluna que possui os campos desejados e entrar nas suas propriedades.

- Setar a opção AutoResize como FALSE e HorizontalAlignment como LEFT.

 
Se faltar um destes passos acima, não há como alterar o tamanho do campo no grid. Após feito tudo corretamente basta alterar o tamanho do grid na Webform diretamente ou dentro das propriedades do grid.
 
Simples assim...

Como adicionar outro número de linhas dentro de um grid

Imagine que necessitamos de introduzir dentro um grid (transação Web) um certo número de linhas diferentes (pelo GeneXus o default é 1 linha >>> new row =1).

Para isso utiliza-se a função AddLine() como um evento dentro da aba EVENTS:

Event 'AddLine'
     Nome do Grid.AddLine(número de linhas desejadas)
End Event


Desta forma, é necessário a introdução de um botão que tenha este evento (OnClickEvent: AddLine).

Alterar os nomes que GeneXus utiliza - Ev1

Por padrão Genexus utiliza seu próprio jeito de colocar as palavras no plural. Então, desta forma, muitos atributos podem sofrer uma tradução errada com a norma da Língua Portuguesa. Exemplo : Atributo chamado Perfil, pode aparecer como Perfils no plural.

Para modificar esta situação é necessário mudar o nome de como GeneXus poderá tratar tais objetos. Para isso deve modificá-lo onde está destacado na imagem abaixo (dentro de Preferences):



Simples assim...

Erro ao enviar uma KB com o mesmo nome de outra que já foi excluída no Server

Muitas vezes apagar uma KB do Server e mandar uma outra com o mesmo nome é sinônimo de erro. Isto ocorre devido a este nome ser gravado dentro do Server.

O erro mostrado por GeneXus ocorre porque fica gravado que esta KB já esteve existente no Server. Por isso é necessário:


1- Eliminar a KB do catálogo do Server: C:\GeneXusServer\Catalog

2- Eliminar a KB da base de dados: abrir a KB chamada GeneXusServerStorage e abrir a tabela KBCatalog, eliminar a linha correspondente a KB que deseja eliminar.

Simples assim...

Developermenu.cs(151,13): error CS0246: Nome de espaço para nome ou tipo 'retorno' não pôde ser encontrado. Precisa de uma diretiva using ou de uma referência de conjunto de módulos (assembly)?

Este erro ocorre quando apaga-se alguns objetos da KBase que ainda possuem referências dentro da mesma. Assim é necessário apagar estas referências órfans.


Para fazer de uma maneira rápida e eficiente eu sugiro que você realize uma limpeza de KBase. Para isso é importante que se realize um backup dos objetos (como figuras que foram inseridas por você mesmo ou modificadas à mão e é de seu interesse que isso não desapareça, ou algo semelhante em User Control). Assim, livre de erros você pode ir até o diretório de sua KBase: C:/Models/KBase, e deletar todos os diretórios (apenas as pastas contidas dentro deste caminho citado) bem como os arquivos de extensão '.ari'; o restante deve continuar dentro da KBase.

As referências que os arquivos '.ari' promove pode conter informações de transações que você apagou anteriormente e por isso devem ser deletados.



Simples assim...

Erro : com.ms.vjsharp.lang.ThrowableWrapper: Falha na recuperação de factory de classes COM do componente com CLSID {F24F2CEB-1D90-411B-B171-F911172FF9E8} devido ao seguinte erro: 80040154.

Ao tentar gerar um arquivo Excel ou arquivo Word pode surgir este erro acima, de código 80040154. Isto acontece quando queremos gerar um arquivo do tipo Excel sem a necessidade de possuir o MS Office instalado no computador e existem algumas DLL do Jakarta que precisamos ter  dentro do diretório da KBase: DATA00x\bin.

As DLL se encontrar no link:

Simples assim.

Exemplo: Gerando arquivo Excel a partir de template - GeneXus 9.0 - .net

Abaixo está o link onde se encontra um arquivo .xpz contendo um exemplo onde é possível gerar um arquivo excel a partir de um template já existente.

Template = de nome 'Pasta1', trata-se de um modelo onde quer se basear todos os arquivos gerados, seguindo este padrão.

Arquivo gerado = de nome 'Teste1', trata-se do arquivo gerado baseado no modelo template.

Válido ressaltar que deve-se mudar os caminhos dos arquivos para a respectiva máquina onde será executado.

Link:


Simples assim...

Tomcat 32 bits em Windows 7 64 bits

As aplicações GeneXus ainda são do tipo de 32 bits, e com certeza muitos usuários apresentam máquinas potentes de 64 bits visando utilizar toda a memória do computador e unir vantagens no desenvolvimento de aplicações.

Porém, ao trabalhar com gerador JAVA sempre fica a dúvida de qual Tomcat e JDK devemos possuir em nossa máquina para não termos dores de cabeça na hora do apontamento dos caminhos de servlet e static que GeneXus (Evolution 1) faz de forma automática.

Para isso separei as versões que não costumam gerar problemas, são versões 32 bits. Mesmo quando temos computadores de 64 bits aconselho instalar estas versões.

Neste caso, devemos apontar a instalação para o diretório C:\Programs Files (x86)\ para que a instalação ocorra de forma correta. Isto porque a instalação ocorreria por padrão no caminho C:\Programs Files\, que nesta máquina seria para aplicações de 64 bits.

O JDK que separei se encontra disponível em:
http://www.4shared.com/file/I7w4s5ue/jdk-6u25-windows-i586.html

O Tomcat está disponível em:
http://www.4shared.com/file/vsKY7CJ-/apache-tomcat-6018.html

Caso o Tomcat não levante seu serviço, bastar que copie a dll que está no JDK\bin\msvcr71.dll para o diretório do Tomcat\bin.

Mande levantar o serviço do Tomcat.


Simples assim...

Erro "Could not complete operation" em GeneXus 9.0

Não se sabe o motivo desse erro surgir quando se programa em GeneXus com geradores .NET, JAVA ou mesmo Visual Basic.

Ele é mostrado em uma janela quando especificamos e geramos dentro do GeneXus.

Para sanar o problema é sugerido duas soluções:

1- Verificar se o arquivo Model.ini que fica dentro da KBase possui algum espaço e retirá-lo;

2- Realizar uma limpeza de KBase conforme postado em outra postagem:
Developermenu.cs(151,13): error CS0246: Nome de espaço para nome ou tipo 'retorno' não pôde ser encontrado. Precisa de uma diretiva using ou de uma referência de conjunto de módulos (assembly)?

Agradecimentos: Denis Misseno Waterley

Simples assim...

Listar objetos de uma KB com a sua descrição - GeneXus 9.0

Para listar todos os objeto que há dentro de uma KB em GeneXus 9.0 basta selecioná-los no lado esquerdo, clicar com o botão direito e selecionar a opção LIST.

No lado direito, irá abrir os objetos, e não há como selecionar para copiar em outro lugar, você deverá clicar com o botão direito e selecionar a opção imprimir.

Simples assim...

Não foi possível carregar arquivo ou assembly 'vjslib, Version=2.0.0.0'

Este erro ocorreu quando tentei criar um arquivo do tipo Excel a partir de uma carga que fiz em um grid, dentro de uma Webpanel.


Isso ocorreu pois faltava uma biblioteca de J# da Microsoft, que pode encontrada em:
http://www.microsoft.com/downloads/thankyou.aspx?familyId=f72c74b3-ed0e-4af8-ae63-2f0e42501be1&displayLang=en


Basta baixar e executar.


Simples assim...

"Classe não registrada" em GeneXus 9.0, Windows 7, 32 bits

Quando obter este erro ao abrir ou tentar gerar outro ambiente ou de protótipo ou de produção no geneXus 9.0, seguir os seguintes passos:


- excutar o prompt de comando como administrador,

- escrever: cd C:\Windows\System32 >> apertar enter <<

- escrever as linhas, uma de cada vez, seguidas do botão enter:


C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files\Artech\GeneXus\GeneXus90\GXThemeEditor.exe"
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files\Artech\GeneXus\GeneXus90\WizardNewModel.exe"
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files\Artech\GeneXus\GeneXus90\GXWSDLInspector.exe"


Simples assim...

Thread[main,5,main] - getDBMSVersion()0 SQLState 08S03 Statement : Unknown server host name 'WIN-AOEREI3TP6T\SQLEXPRESS'.

Erro encontrado no gerador JAVA, aplicação WEB, banco de dados SQL SERVER 2008 R2, GeneXus EV 1.


Esse erro ocorre por dois motivos:

- o nome do banco de dados não é aceito quando o gerador é JAVA;
- existem protocolos que barram, de alguma forma, a criação de tabelas no banco dentro do SQL SERVER.


Desta forma, para evitar que isso aconteça entre em:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2008\Configuration Tools\SQL Server Configuration Manager


Deixe apenas o protocolo TCP/IP habilitado.



E em suas propriedades (acesso com o botão direito do mouse) deve inserir o número da porta 1433 na aba IPALL.



Após este procedimento realizado, reiniciar os serviços do SQL SERVER.



Agora, no GeneXus, trocar o nome do banco (no meu caso: 'WIN-AOEREI3TP6T\SQLEXPRESS') para localhost.


Simples assim.

Exceção Não Tratada: System.IO.FileNotFoundException: Não foi possível localizar o arquivo 'C:\Models\GeneXus 90\\DATA00X\web\bld12.info'. – GeneXus 9.0.

Erro gerado ao tentar compilar uma webpanel sem acesso a Banco de dados em JAVA no GeneXus 9.0.


O erro apresenta seguinte mensagem que pode ser visualizada no output do genexus: 

Exceção Não Tratada: System.IO.FileNotFoundException: Não foi possível localizar o arquivo 'C:\Models\GeneXus 90\<Nome da KBase>\DATA00X\web\bld12.info'


Basta trocar o caminho Make Path, pois o GXJMake não está conseguindo compilar a aplicação, novo caminho deve apontar para o NMAKE.EXE (da Microsoft).

Simples assim...

NMAKE: fatal error U1077 'copy' return code '0x1'

O NMAKE.EXE não consegue compilar a aplicação. Os caminhos de servlet e todos os outros como o classpath estão corretos.



Deve-se trocar o NMAKE.EXE.

O erro foi apresentado com a instalação prévia (antes de instalar GeneXus) do Visual Studio 10. O NMAKE original se encontrava no caminho: C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\NMAKE.EXE.


A substituição deve ser feita para o mesmo local, juntamente com o arquivo NMAKE.ERR.



Simples assim...

GeneXus Std Classes parou de funcionar

Para solucioná-lo basta trocar o caminho Make Path, pois o GXJMake (que vem na instalação do GeneXus) não está conseguindo compilar a aplicação.

O novo caminho deve apontar para o NMAKE.EXE (SDK da Microsoft, Windows).

Simples assim...

Licenças - Site code does not match

Essa informação pode ocorrer com uma certa frequencia ao tentar autorizar licenças para produtos GeneXus.


Para se evitar este tipo de problema deverá ser realizado um pedido de licenças executando o License Manager do GeneXus como Administrador para Windows Vista e Windows 7.


Após efetuar o pedido online, não fechar o License Manager e aguardar para processar as chaves enviadas pela administração de licenças.


Também se faz necessário que o produto Protection Server deve estar instalado na máquina que está solicitando o pedido.



Link para download do Protection Server: http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,8,77,O,S,0,,3416;0;0;GXPRT;/%20%20/;/%20%20/;M




Simples assim...

Texto Justificado em Webpanel - geneXus

Para inserir um texto que foi escrito dentro de uma webpanel basta acessar a opção de visualização em HTML  dentro do GeneXus,


E introduzir em cada parágrafo a opção <p align='justify'>,


 
Agradecimentos: Felipe Marcos


Simples assim...

Run-time error '53': File not found: RBUILDER.DLL - GXPlorer

Esse erro ocorre porque tentas-se efetuar a instalação do GXPlorer (versão de Upgrade) sem antes efetuar a instalação da primeira versão.


Os upgrades, diferentemente de alguns outros produtos geneXus é um programa a aprte que visa complementar o que já deve estar instalado.


Solução: Instalar a primeira versão do software em questão.


Simples assim...

Como adicionar arquivo (classe) Java dentro da KB - GeneXus Evolution 1

Algumas vezes é necessário inserir um pequeno código JAVA dentro da KB para que a aplicação (que também deve ser JAVA) funcione de forma correta.


Outras vezes, ao transferir uma KB de GeneXus 9.0 para a Ev 1, as classes Java que foram inseridas dentro da KB também devem ser inseridas de forma manual para dentro da nova KB.


Existem duas formas de realizar tal processo:


1 - Poderá adicionar como um objeto externo, acessando a aba Tools > Application Integration > Java Class Import e seguir o wizard que irá abrir em nova janela;

2 - Poderá inserir dentro da KB no diretório onde estão sendo criadas as classes Java da aplicação (poderá acessar através do caminho Tools > Explore Target Environment Directory) copiando as classes para este diretório e depois inserindo as na propriedade Classpath;




Simples assim...

Error HTTP 404 - JAVA WEB - GeneXus 9.0

Esse erro foi encontrado após realizar a configuração conforme manda a documentação. Desta forma deve-se lembrar que aquela documentação encontrada precisa de alguns ajustes quando não se está trabalhando com o TOMCAT 5.5.


No caso estaremos usando GeneXus 9.0, banco SQL Server 2008 R2, Gerador Java, ambiente WEB e Tomcat 6.0.18.




O que deve-se fazer de diferente da documentação encontrada são:


1- Adicionar um arquivo chamado <Nome da Kb>.xml dentro do caminho C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost




2- Neste arquivo deverá conter apenas as linhas (as quais não mudam independente do nome da KB ou configuração):


<?xml version="1.0"?>
-<Context privileged="true" reloadable="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context>




3- E o Classpath deve conter os caminhos do servlet-api.jar, bem como do driver JDBC


gxclassr.zip;iText.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;C:\Program Files\Artech\GeneXus\GeneXusXEv1\gxjava\drivers\jtds-1.2.jar;.;


(acima mostra-se como deverá estar escrito, incluindo a formação de ponto e virgulas)




É possível notar que eu utilizo o driver que já está dentro GeneXus Ev1 que se encontra na minha máquina, desta forma, este apontamento deverá mudar de acordo com as suas necessidades, bem como o caminho do servlet-api.jar.


Agradecimentos: Alex Melo (Suporte Artech do Brasil)


Simples assim...

OutOfMemoryError

Este erro ocorre devido a pouca memória alocada pela JVM ao iniciar. Para alocar mais memória ao iniciar a JVM, através do GeneXus existe uma opção dentro das propriedades do interpretador.

Na aplicação WIN mostra o seguinte erro:
Exception in thread "main" org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space)

Na aplicação WEB mostra o erro:
javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space

Para alterar a opção do interpretador e aumentar a memória alocada pela JVM ao iniciá-la, acesse a aba Properties do ambiente da aplicação.



Neste caso estamos alocando 512 Mb para a memória da JVM.

Simples assim...

Como modificar Work With Pattern

Se deseja utilizar as vantagens que o pattern Work With mas quer modificar algo como telas ou sequencias de como são realizadas as chamadas, ou mesmo modificar o comportamento da navegação; faça que o work with  não atualize.


Para isso é necessário modificar um valor padrão dentro das propriedades do pattern.


Basta marcar a opção "Do not update" e modificar o pattern do jeito que você desejar.


Simples assim...

GeneXus Server - "error: Referência de objeto não definida para uma instância de um objeto. Update Failed"

Esta mensagem ocorre quando está trabalhando em uma KB que ainda possui referência a algum objeto que foi excluído ou pelo próprio usuário ou por outro (o que é mais provável). Algum objeto X foi excluído da KB que deveria ser a versão mais atual, porém, alguém possa ter mandado para o Server novamente este objeto X por engano.

Assim o objeto deve ser excluído pelo usuário que subiu este objeto erroneamente.

Esta mensagem geralmente está associada a objetos apagados que ainda possuem referencia, portanto é necessário verificar qual é este objeto para solucionar este erro.

Simples assim...

Não leitura de tabelas em aplicação hosteada na web - GeneXus

Uma atualização do Framework 2.0, utilizada em GeneXus 9.0 pode ter afetado de alguma forma a comunicação com o banco de dados em aplicação hosteada na web.


Uma possível solução é a adição da seguinte linha no arquivo web.config:


<add key="aspnet:MaxHttpCollectionKeys" value="5000" />


Isto pode acontecer em aplicações com versões anteriores a 9.0 também.


Simples assim...

Como inserir imagem em Help de Objetos - GeneXus Ev 1

Após criar um objeto qualquer em GeneXus, como um transação, por exemplo. Poderá navegar até a aba Help, que está dentro da visualização do objeto.
 
Ao digitar "[[" você verá que irá aparecer uma lista contendo diversos objetos que pode ser utilizados no HELP, inclusive arquivos que deseja inserir dentro deste HELP.

Ao selecionar imagem, o comando digitado anteriormente como "[[" aparecerá como "[[Image.". Ao inserir "." no comando, novamente uma lista, agora contendo as imagens da Kb irá surgir.


Basta selecionar a imagem e estará pronto.


Simples assim...

Erro HTTP 403.18 - Forbidden A solicitação especificada não pode ser processada no pool de aplicativos configurado para esse recurso no servidor Web - GeneXus Ev 1

Obtive este erro em Windows 7 64 bits, com IIS 7.0.

Ocorreu devido a configuração do IIS que não possui usuário ASP NET habilitado.

Para solucionar este erro entre no Painel de Controle > Programas e Recursos, haverá a opção do lado esquerdo contendo 'Ativar ou desativar os recursos do Windows', clique sobre ela.

Irá abrir uma janela onde haverá a possibilidade de configurar o IIS conforme a figura abaixo.

Simples assim...

Internal error: Function call failed (Erro de rede ou específico à instância ao estabelecer conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provider: Provedor de Pipes Nomeados, error: 40 - Não foi possível abrir uma conexão com o SQL Server))

Este é um erro que ocorre quando o Genexus não consegue se conectar com o Banco de Dados. Neste caso, o SQL Server Express 2005.


Para solucionar este erro acesse através do Menu Iniciar > SQL Server 2005 Express > Configuration Tools/Manager.


Nele haverá as opções de protocolos, selecione a versão do SQLEXPRESS (caso tenha mais de uma versão).


Selecione o Protocolo de 'TCP/IP', habilite-o (Enable), e clique com o botão direito selecionando 'Propriedades'. 


Na aba IPALL, deixe conforme a figura abaixo, com TCP Port: 1433.

Depois disso finalize todos os processos do SQLServer e habilite novamente.

Simples assim...

Como saber qual gerador da aplicação

Para saber qual o gerador que compilou a aplicação é possível inserir umas linhas de códigos dentro do Event Start de sua aplicação.


O resultado será mostrado em mensagem.


Código:


csharp [!&compilador!] = "CSHARP";

JAVA [!&compilador!] = "java";

msg('Compilador => ' + &compilador)






Simples assim...

[InvalidCastException: Conversão especificada não é válida.]

Este erro ocorre geralmente quando há alguma modificação realizada em um atributo envolvendo o seu tipo (numeric, character, varchar...).


O texto completo do erro fica semelhante a este:


[InvalidCastException: Conversão especificada não é válida.]
GeneXus.Data.GxSqlCursorDataReader.GetString(Int32 i) +209
GeneXus.Data.GxDataRecord.GetString(IGxDbCommand cmd, IDataRecord DR, Int32 i) +57
GeneXus.Data.NTier.ADO.GXFatFieldGetter.getString(Int32 id, Int32 size) +33
GeneXus.Programs.pedido__default.getResults(Int32 cursor, IFieldGetter rslt, Object[] buf) +7129
GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms, Boolean batch) +646
GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms) +11
GeneXus.Programs.pedido.Load0618() +125
GeneXus.Programs.pedido.getByPrimaryKey() +3012
GeneXus.Programs.pedido.standaloneStartupServer() +11929
GeneXus.Programs.pedido.standaloneStartup() +13
GeneXus.Programs.pedido.ExecuteStartEvent() +13
GeneXus.Programs.appmasterpage.START012() +187
GeneXus.Programs.appmasterpage.webExecute() +123
GeneXus.Programs.pedido.webExecute() +279
GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +332

[Exception: GXApplication exception]
GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +440
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75



O que indica que houve uma conversão que não foi tratada de forma correta no banco.


Assim, basta remover esta modificação alterando o atributo para o tipo que estava definido anteriormente e ver que este erro não será mais mostrado.


Porém a intenção do desenvolvedor é a alteração do tipo do atributo.


Desta forma, assim que retornar para o tipo antigo, você deverá realizar um processo de Build All e posteriormente seguir com a alteração desejada. Após isso, realizar um Build All novamente.


Com isso o banco de dados deverá entender que a modificação foi realizada pelo GeneXus e realizar o impacto devido.


Simples assim...

Error: The content type text/html of the response message does not match the content type of the binding (multipart/related; type="application/xop+xml").

Este erro ocorre ao tentar conectar ao GeneXus Server através da internet. E ao acessar localmente (dentro do local de desenvolvimento, por exemplo) o erro não ocorre.


A mensagem do erro completo é:




TITLE: Error
------------------------------The content type text/html of the response message does not match the content type of the binding (multipart/related; type="application/xop+xml"). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML dir=ltr><HEAD><TITLE>The page cannot be displayed</TITLE><STYLE id=L_defaultr_1>A:link {FONT: 8pt/11pt verdana; COLOR: #ff0000}A:visited {FONT: 8pt/11pt verdana; COLOR: #4e4e4e}</STYLE><META content=NOINDEX name=ROBOTS><META http-equiv=Content-Type content="text-html; charset=UTF-8"><META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD><BODY bgColor=#ffffff><TABLE cellSpacing=5 cellPadding=3 width=410><TBODY><TR><TD vAlign=center align=left width=360><H1 id=L_defaultr_2 style="FONT: 13pt/15pt verdana; COLOR: #000000"><ID id=L_defaultr_3><!--Problem-->The page cannot be displayed</ID></H1></TD></TR><TR><TD width=400 colSpan=2><FONT id=L_defaultr_4style="FONT: 8pt/11pt verdana; COLOR: #000000"><ID id=L_defaultr_5><B>Explanation: </B>There is a problem with the page you are trying to reach and it cannot be displayed.</ID></FONT></TD></TR><TR><TD width=400 c'.




Pode ocorrer quando o IIS instalado no Server. Mesmo trocando o certificado para um novo, o "bind" no IIS deve apontar para o novo, e não para o antigo.


Simples assim...

Reconfigurar Tela de Developer Environment do GeneXus em Windows 7.

Muitas vezes mexemos demais arrastando as telas que possuem snippets como properties ou toolbox do Genexus para melhorar o trabalho e personalizar a tela de desenvolvimento.

Porém, algumas alterações ficam ruins e precisamos voltar ao que era antes para que seja possível uma nova personalização.

Para retornar o Ambiente de Desenvolvimento ao estado inicial (forma default) do Developer Environment devemos apagar um arquivo de nome GeneXusWorkspace.xml que está localizado em C:\Users\<Seu Perfil>\AppData\Roaming\Artech\GeneXus\10Ev1.

Assim a tela voltará a forma original.


Simples assim...

Erro: error CS0221: Valor de constante '2097152' nÆo pode ser convertido em um 'short' (use sintaxe 'unchecked' para substituir)

Este erro ocorre quando temos uma variável de filtro com um tamanho (indicado na mensagem de output do GeneXus) que não pode ser interpretado internamente, portanto deve-se utilizar um número mais 'redondo'.


De exemplo temos um output com a seguinte mensagem completa:



exemplo.cs(1482,86): error CS0221: Valor de constante '2097152' nÆo pode ser convertido em um 'short' (use sintaxe 'unchecked' para substituir)


A variável que estava sendo utilizada era baseada em um atributo LongVarChar de 2097152 de tamanho. Quando temos um valor assim dentro de uma transação, o erro mencionado não ocorre. O erro apenas ocorre quando adicionamos uma variável baseada neste atributo para servir de filtro dentro de uma webpanel.



Assim, deve-se utilizar um valor mais arredondado como 100000 por exemplo.


Simples assim...

Erro ao inspecionar um objeto externo JAVA - Unsupported major.minor version 51.0 - GeneXus Evolution 1

Ao tentar importar uma classe JAVA como um objeto externo através da opção Java Class Import


E obter o seguinte erro:




========== Inspect C:\Users\Felizardo\Desktop\<Pasta do JAR>\<Nome do JAR>.jar started ==========
Inspection proccess started
Inspecting C:\Users\Felizardo\Desktop\<Pasta do JAR>\<Nome do JAR>.jar
error: Inspecting Computer.Comunicacao$enuTipoComunicacao...failed
error: Error: java.lang.UnsupportedClassVersionError: Computer/Comunicacao$enuTipoComunicacao : Unsupported major.minor version 51.0
error: Inspection proccess failed
Inspect Failed




Significa que o JDK que utilizou para compilar a sua classe está numa versão diferente da que está utilizando atualmente. Por isso será necessário recompilar seu arquivo JAR ou trocar o JDK de sua máquina onde está instalado o GeneXus.


A primeira opção é a mais aconselhada, pois uma alteração de configuração de JDK seria mais demorada principalmente quando se possui mais de uma KB em sua máquina.


Mas existem essas duas opções.




Simples assim...

Classes not found - Ao produzir um JAR com objeto externo - GeneXus Ev 1

Ao tentar gerar um arquivo JAR, durante o processo poderá surgir a mensagem:

Classes not found
The following classes weren't found

Basta clicar em Ignore que o processo de deploy do JAR ocorrerá sem problemas.

Esse comportamento já foi reportado por um SAC da Artech.

Simples assim...

Reorganização JAVA em ambiente LINUX - Erros comuns.

Para que seja executada a reorganização JAVA em ambiente LINUX e levar esta reorganização para o cliente, a linha de comando abaixo deve ser executada:



java -Djava.awt.headless=false -cp gxclassR.zip:<DRIVER DO BANCO.JAR>:Reorg.jar Reorganization -force -nogui



Juntamente com esta linha de comando, é preciso ter um arquivo chamado REORGPGM.GEN (com letras maiúsculas, senão não será reconhecido pelo LINUX) dentro da pasta da aplicação. 


Este a um arquivo chamado de arquivo flag, necessário para que a reorganização seja bem sucedida.







Erros:


Já está documentado que a reorganização deve ser executada com a linha de comando:

java -cp Reorg.jar:gxclassr.zip:< DRIVER DO BANCO.JAR > <Nome do pacote (se houver)>.Reorganization –nogui –force

Porém é possível obter com esta linha de comando os seguintes erros:

Unrecognized option: -force (ou Unrecognized option: -nogui)
Error: Could no create the Java Virtual MachineError: A fatal exception has occured. Program will exit 




Se utilizar outra linha de comando citada como correta mas não ter o arquivo REORGPGM.GEN com as letras maiúsculas, é possível obter o erro:

Erro: Nao foi possivel localizar nem carregar a classe principal Reorganization





Simples assim...

Erro com Stored Procedure: System.Reflection.TargetInvocationException: Uma exceção foi acionada pelo destino de uma chamada. ---> System.InvalidCastException: Conversão especificada não é válida. - GeneXus Evolution 1 ou 2 com Oracle

Ao tentar executar uma Stored Procedure simples com o Banco de Dados Oracle, mesmo uma que realize um cálculo e não acesse o banco propriamente dito e se obtém o seguinte erro:

System.Reflection.TargetInvocationException: Uma exceção foi acionada pelo destino de uma chamada. ---> System.InvalidCastException: Conversão especificada não é válida.

Pode ser resolvido ou copiando uma dll chamada Oracle Data Acess para dentro da pasta bin do modelo. Porém não deve-se esquecer que o registro desta dll deverá ser feita. [ANEXO ao post]

Se mesmo assim não funcionar, o seguinte erro será apresentado:

java.lang.UnsatisfiedLinkError: Não é possível carregar a DLL 'OraOps10.dll': Não foi possível encontrar o módulo especificado. (Exceção de HRESULT: 0x8007007E)
em GeneXus.Metadata.ClassLoader.CreateInstance(Assembly assemblyInstance, String typeName, Object[] parms)
em GeneXus.Data.GxODPOracle.CreateParameter(String name, Object dbtype, Int32 gxlength, Int32 gxdec)
em GeneXus.Data.NTier.ADO.Cursor.bindParms(Object[] ptb)
em GeneXus.Data.NTier.ADO.Cursor.createCursor(IGxDataStore ds, GxErrorHandler errorHandler)
em GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms, Boolean batch)
em GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms)
em GeneXus.Programs.uteste.E12VEC2()
em GeneXus.Programs.uteste.actionEventDispatch(Object eventSource)
em com.genexus.ui.GXWorkpanel.runEvent.run()

Neste caso deve-se mudar a propriedade de Oracle Data Provider para Microsoft Data Provider.

Simples assim...


Dll : download

Erro : com.ms.vjsharp.lang.ThrowableWrapper: Falha na recuperação de factory de classes COM do componente com CLSID {F24F2CEB-1D90-411B-B171-F911172FF9E8} devido ao seguinte erro: 80040154.

Ao tentar gerar um arquivo Excel ou arquivo Word pode surgir este erro acima, de código 80040154. Isto acontece quando queremos gerar um arquivo do tipo Excel sem a necessidade de possuir o MS Office instalado no computador e existem algumas DLL do Jakarta que precisamos ter  dentro do diretório da KBase: DATA00x\bin.

As DLL se encontrar no link:


http://sourceforge.net/projects/jbyjsharp/files/Jakarta%20POI/

Simples assim.
..

Arquivo TXT gerado com caracteres escondidos e diferentes - GeneXus 9.0, GeneXus X Evolution 2.

Com o mesmo procedimento que gera um arquivo txt pode ocorrer diferenças no arquivo gerado.


Há um caso onde o mesmo procedimento no GeneXus 9.0 gerava um arquivo e este era processado em outro lugar.


Com a migração para Evolution 2 o arquivo gerado parecia ser o mesmo quando aberto com o bloco de notas.


Porém, se utilizar um software livre, chamado HxD, é possível verificar que existem caracteres estranhos (ou diferentes) sendo inseridos no início do arquivo.


Desta forma é necessário passar o encoding UTF-8 para que não sejam gerados estes caracteres.


Além disso há uma diferença na passagem deste encoding.


Para verificar como se faz há um SAC sobre a diferença entre os geradores:

http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,S,0,,31800


Simples assim...

Como alterar Labels do Modelo - GeneXus 9.0

Quando há a necessidade de se alterar a fonte dos labels dentro do GeneXus 9.0 por algum motivo (como ocorrem em algumas impressoras, as quais não suportam determinadas fontes), basta trocar as labels de todo o modelo.


Como fazer:


1 - Menu > File > Knowledge Base Preferences: na opção Labels selecione a
nova fonte.

2 - Confirme também as propriedades de usuário: Menu > Tools > Global
Preferences e User Preference: na Opção Labels selecione a nova fonte.

3 - Alteração do relatório: Abra a Proc do Relatório > Aba Layout > Dê um
duplo click em qualquer Print Block > Agora com a janela de propriedades da
form aberta > selecione a aba Fonts > no quadro de Label Fonts selecione a
opção Default.

Pronto, todos os labels utilizados no relatório que não tiveram sua fonte e
tamanhos default alterados serão convertidos.


Simples assim...

Erro: Foi feita uma tentativa de se carregar um programa com um formato incorreto - .NET com MySQL

Esse erro ocorre devido a falta de uma dll.

Primeiro tem de ter instalado o driver MYSQLDRIVERCS:

http://sourceforge.net/projects/mysqldrivercs/

Depois tem de instalar libmysql.dll no system32, podendo eliminar a que já existe na pasta web\bin.

Caso não funcione você poderá instalar essa dll posteriormente na pasta web/bin.

 

Simples assim...

Erro: 'F5 compilation utility unable to create OLE dispatcher code 154, facility 4 severity 1.'

Este erro pode acontecer ao rodar a aplicação (apertando F5).

O erro no output fica assim:





'F5 compilation utility unable to create OLE dispatcher code 154, facility 4 severity 1.'

 

Para solucionar basta executar o arquivo GXComp.exe a partir do Windows Explorer.



Simples assim.

Como abrir um link em uma nova aba - GeneXus X Evolution 2.

As vezes desejamos abrir um link através da nossa aplicação em uma nova aba. Para isso a função link deve ser utilizada conforme abaixo:


<Texto>.Link = Link("http://www.google.com.br")
<Texto>.LinkTarget = "blank"


Simples assim...

Error: CS0006: NÆo foi poss¡vel encontrar o arquivo de metadados 'bin\GeneXus.Programs.Common.dll'

Quando estamos utilizando um ambiente .NET (NET Environment) pode ser que aconteça de que a dll do erro não seja copiada a partir do diretório de instalação do GeneXus para dentro da pasta do modelo.

Neste caso não é adequado copiá-la a mão, pois pode gerar outros erros que podem solicitá-la novamente.

O Output do GeneXus referente a este erro fica parecido com o que se segue:


Compiling hmpindexpainel...failed ( error code=1)
Compilador do Microsoft (R) Visual C# 2008 versÆo 3.5.30729.5420
 para Microsoft (R) .NET Framework versÆo 3.5
Copyright (C) Microsoft Corporation. Todos os direitos reservados.

error CS0006: NÆo foi poss¡vel encontrar o arquivo de metadados 'bin\GeneXus.Programs.Common.dll'

index Compilation Failed
========== Web config update started ==========
Virtual directory already exists, path will be modified.
Updating web config ...
Web config update Success
Run index Failed

Desta forma, o ideal é a criação de um novo ambiente (NET Environment) e a exclusão do anterior. Assim, o Genexus deverá copiar automatiamente e de forma correta.

Simples assim...

Abrir arquivo PDF, Aplicação hosteada - JAVA, LINUX.

Para abrir arquivo PDF em uma aplicação que será hosteada na Web, deve-se tomar cuidado na hora de apontar o caminho da aplicação, pois muitos servidores não oferecem este caminho.

Desta forma há uma implementação para capturar este caminho utilizando linguagem JAVA.

Segue o código para abrir arquivo PDF em LINUX, aplicação gerada em JAVA.

 java [!&caminho_txt!] = getHttpContext().getDefaultPath() + '/';
        &arqv_txt = &caminho_txt + 'contrato_tcu.txt'
        &arqv_pdf = &caminho_txt + 'contratogx_' + &dadoscliente.cli_id.ToString().Trim() + '.pdf'
        contrato_tcu_10.Call(cli_id, &arqv_txt, &arqv_pdf ,&dadoscliente)
        &rt = Strsearch(&cliente.BaseUrl, '/servlet/')
        &nom_arq_pdf_link = &cliente.BaseUrl.Substring(1,&rt) + 'contratogx_' + &dadoscliente.cli_id.ToString().Trim() + '.pdf'
        link(&nom_arq_pdf_link)




Simples assim...

Erro: warning: unmappable character, possible loss of precision, operator + cannot be applied to, inconvertible types. Conversão de KB, de 9.0 para X Evolution 1, modificando o gerador .NET para JAVA.

Ao tentar converter uma KB da versão 9.0 de GeneXus para versão X Evolution 1 que possui atributos com descrição que possuem caracteres especiais (do tipo '/'). Podemos nos deparar com o seguinte erro de conversão:




StructSdtTTGedHistoricoArea.java is unavailable
ttgedhistoricoarea_bc.java is unavailable
SdtTTGedHistoricoArea.java is unavailable
hwmeolalunoprincipal_impl.java:1066: possible loss of precision
found   : int
required: short
         AV16Indice = (!(0==AV7Pag) ? (AV7Pag*AV77LinhasGrid) : (AV77LinhasGrid)) ;
                                    ^
.\hwmgedtransfrec_impl.java:6131: cannot find symbol
symbol  : class SdtTTGedHistoricoArea
location: class hwmgedtransfrec_impl
   private SdtTTGedHistoricoArea AV83BC_TGedHistoricoArea ;
 
                                                                                      ^
.\hwmgedmedidasadotadas_impl.java:1368: warning: unmappable character for encoding Cp1252
         new ppmontamensagem(remoteHandle, context).execute( "AVISO: Ã?rea de Conhecimento/Disciplina não está informada!", (byte)(0), GXv_char15) ;
                                                                      ^
.\hwteolagendarprovasec_impl.java:2072: illegal start of expression
      chkavCtlsel.setThemeClass( = chkavCtlsel.getThemeClass()+GXt_char3 ;
                                 ^
.\hwteolagendarprovasec_impl.java:2072: ')' expected
      chkavCtlsel.setThemeClass( = chkavCtlsel.getThemeClass()+GXt_char3 ;
                                                                        ^
.\ppgedhistoricoescolar.java:3345: cannot find symbol
symbol  : class SdtTTGedHistoricoArea
location: class ppgedhistoricoescolar
   private SdtTTGedHistoricoArea AV52BCTGedHistoricoArea ;
           ^
.\hwmgedtransfrec_impl.java:5148: cannot find symbol
symbol  : class SdtTTGedHistoricoArea
location: class hwmgedtransfrec_impl
      AV83BC_TGedHistoricoArea = new SdtTTGedHistoricoArea(remoteHandle);
                                     ^
 
.\ppgedhistoricoescolar.java:2185: operator + cannot be applied to SdtTTGedHistoricoArea.getgxTv_SdtTTGedHistoricoArea_Gedhistareaqtdflt,int
                              AV52BCTGedHistoricoArea.setgxTv_SdtTTGedHistoricoArea_Gedhistareaqtdflt( (int)(AV52BCTGedHistoricoArea.getgxTv_SdtTTGedHistoricoArea_Gedhistareaqtdflt()+AV146GedHistAreaQtdFlt_Aux) );
                                                                                                                                                                                    ^
.\ppgedhistoricoescolar.java:2185: inconvertible types
found   : <nulltype>
required: int
                              AV52BCTGedHistoricoArea.setgxTv_SdtTTGedHistoricoArea_Gedhistareaqtdflt( (int)(AV52BCTGedHistoricoArea.getgxTv_SdtTTGedHistoricoArea_Gedhistareaqtdflt()+AV146GedHistAreaQtdFlt_Aux) );
                                                                                                            ^
hwteolagendarprovasec_impl.java:2072: illegal start of expression
      chkavCtlsel.setThemeClass( = chkavCtlsel.getThemeClass()+GXt_char3 ;
                                 ^
ppeolbuscaquestao1.java:581: decToDouble(java.math.BigDecimal) in com.genexus.DecimalUtil cannot be applied to (java.lang.Number&java.lang.Comparable<? extends java.lang.Number&java.lang.Comparable<?>>)
            AV20EolCntExmTempo = (short)(DecimalUtil.decToDouble(((AV80EIntervalo.doubleValue()!=0) ? (((AV44ESegundos.divide(DecimalUtil.doubleToDec(3600), 18, java.math.BigDecimal.ROUND_DOWN)).subtract(DecimalUtil.doubleToDec(AV25EHoras))).multiply(DecimalUtil.doubleToDec(60))) : AV25EHoras*60))) ;
                                                    ^
hwmgedlancaragendaceja_impl.java:3535: possible loss of precision
found   : int
required: short
         A450GrhAtrTotalCHAtribuida = ((A446GrhAtrTotNrmAulas+A448GrhAtrTotNmrAulasOS>0) ? A446GrhAtrTotNrmAulas+A448GrhAtrTotNmrAulasOS : A434GrhAtrCHAdm) ;
                                                                                         ^
14 errors




Estes erros podem ser vistos em diversos objetos ao dar um Build All ou Build With This Only. Esta conversão além de ser da versão 9.0 para X Evolution 1 também trocou de gerador onde na primeira versão estava rodando com .NET e após a conversão ocorre a utilização do gerador Java.


Solução para este tipo de erro: Após a conversão  efetuada e apresentando estes erros, a melhor forma seria buscar cada transação que apresenta este tipo de erro, modificar a descrição de cada atributo retirando estes caracteres e gerar um xpz contendo os objetos da KB.

Uma vez este processo realizado bastaria importar este xpz em uma KB nova, sendo esta agora a KB oficial da aplicação.

OBS: é de extrema importância ter um backup desta KB mesmo com problemas (o ideal seria também ter da KB original, da versão 9.0). Talvez as modificações feitas na KB original, da versão 9.0 poderia ser uma solução mais rápida também.


Simples assim...

Agradecimentos: Junior Kaibro.