Re: [internet-l] Como usar uma PROC interna do GX no Expression data type

Testei a dica do Ricardo, mas não resolveu.

Vejam o erro que retorna:
 java.lang.RuntimeException: ClassNotFoundException Can't execute dynamic call procedure1 - procedure1

Aí resolvi copiar o .class para a pasta classes (originalmente está em classes/com/tche/testes) e passa e dar o seguinte erro:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: procedure1 (wrong name: com/tche/testes/procedure1)  	at java.lang.ClassLoader.defineClass1(Native Method)  	at java.lang.ClassLoader.defineClassCond(Unknown Source)  	at java.lang.ClassLoader.defineClass(Unknown Source)  	at java.security.SecureClassLoader.defineClass(Unknown Source)  	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)  	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)  	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)  	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)  	at com.genexus.db.DynamicExecute.dynamicExecute(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.evalExternalFunctionCall(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.evalFuncCall(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.eval(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.evaluate(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.evaluate(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.eval(Unknown Source)  	at com.genexus.util.ExpressionEvaluator.evaluate(Unknown Source)
.........

Alguma idéia?

Greg


Em 13 de julho de 2012 10:47, Sérgio Schaaf <sergio.schaaf@stctecno.com.br> escreveu:
Gert, olá.

Eu nunca fiz em Java.
Só em C# e funcionou bem para mim.

Obrigado,



skype :sergio.schaaf
Tel : +055 11 9965 0773



Em 13 de julho de 2012 10:02, Gert Zimmermann <greg.tche@gmail.com> escreveu:
Olá Ricardo e Sergio,

estou com o mesmo problema na chamada de procedures em expressions.
Eu utilizo java.

Vocês conseguiram resolver o problema?

Greg



Em 10 de novembro de 2011 11:37, Sérgio Schaaf <sergio.schaaf@stctecno.com.br> escreveu:
Este erro eu já vi alguma vez.
Não me recordo o motivo agora.

Bem, a PRC que tenho aqui não é main. E não tem nenhuma outra propriedade modificada.
Ela tem o namespace GeneXus.Programs, o nome da classe está em minúsculas e pude encontrar o método Execute sim.
Isto é.. parece que está igual a sua PRC.
E, ainda que q o nome da classe está em minúscula eu tenho este código de teste :

&expression.Expression = "CalculoPercentualCompostoPrc(Composto,CustoDigitado)"

Isto é.. a chamada da PRC não está escrita e minúsculas.

Pelas dúvidas, a sua PRC é main ?

Obrigado,



skype :sergio.schaaf
Tel : +055 11 9965 0773



Em 10 de novembro de 2011 12:00, Ricardo Oliveira RANKING <ranking@nelore.org.br> escreveu:

Sergião bom dia.. 

Imaginei mesmo que fosse isto e fiz conforme vc me explicou abaixo . trocou o erro agora tá dando

"  5.00:Método 'GeneXus.Programs.prc_somavaloresdetalhe.execute' não encontrado., FÓRMULA: prc_SomaValoresDetalhe(  1 ,  22 , 14 , 22 , 1 )"


A chamada lá na string do expression datatype é assim :

prc_SomaValoresDetalhe(  1 ,  22 , 14 , 22 , 1 )

Método não encontrado ?? como assim se lá no .CS tem o método Execute???

Abraço

Ricardo



Em 10 de novembro de 2011 11:51, Sérgio Schaaf <sergio.schaaf@stctecno.com.br> escreveu:

Olá Ricardo.

Eu tive alguns problemas para colocar isso para funcionar. Faz tempo, não sei se me recordo bem se é o mesmo problema que vc está passando.
Vc não precisa colocar o namespace da classe da PRC, basta mesmo o nome da PRC.
Mas precisa estar compilada... E o que pode ocorrer é que ela não está compilada justamente porque não tem uma chamada explicita para ela dentro do seu código GX (claro... ela está sendo chamada dentro de uma fórmula que é uma string !).
Bem... o clássico o começo do teu programa de cálculo

if 1 = 2
   prcFormula.call(parm1, parm2,...)
endif

deveria resolver este problema..

Se não funcionar retorne, ai reviso o código que tenho por aqui.

Obrigado,



skype :sergio.schaaf
Tel : +055 11 9965 0773



Em 10 de novembro de 2011 11:32, Ricardo Oliveira RANKING <ranking@nelore.org.br> escreveu:


Tenho um expression datatype e preciso chamar uma PROC interna nossa.

Só que ao chamá-lo dá uma messagem de erro dizendo Failed to load type ( err = 5 ).

"    5.00:Failed to load type: GeneXus.Programs.prc_somavaloresdetalhe.udp, FÓRMULA: prc_SomaValoresDetalhe.Udp(  1, 22, 14, 22, 1 ) "

O que significa melhor esta frase do help do Wiki , sobre o Expression Datatype ?

"The GeneXus Procedures to be executed must be in the same assembly as the caller program."


E como devo chamar algo assim na expressão ? " prcCalculaValor( A, B, C ) "  ou "Genexus.Programas.prcCalculaValor( A, B, C ) "



Abraço

--
Ricardo C. Oliveira
RCO Proc. de Dados - www.rcop.com.br
"Uma empresa do Grupo Prime de Julgamentos"





--
Ricardo C. Oliveira
RCO Proc. de Dados - www.rcop.com.br
"Uma empresa do Grupo Prime de Julgamentos"





--
[]'s
Greg
------------------------
Gert Zimmermann
(54)9995-4623




--
[]'s
Greg
------------------------
Gert Zimmermann
(54)9995-4623

--
Has recibido este mensaje porque estás suscrito al grupo "GeneXus" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a genexus@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a genexus+unsubscribe@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/genexus?hl=es.

0 Response to "Re: [internet-l] Como usar uma PROC interna do GX no Expression data type"

Publicar un comentario