Chamar processo do AD em cód. java


#1

Boa tarde.
Olhei todos os tópicos do fórum e não encontrei nenhum que parecesse ter a mesma dúvida que eu. Ate li alguns tópicos inteiros.
Minha dúvida é a seguinte: tenho um relatório .jasper que é chamado a partir de uma classe java (um Formulário). Atualmente, esse relatório está incluído em uma lib que, cada vez que altero, tenho que gerar de novo e gerar um customization para atualizar. Fora que como temos o sistema em dois servidores diferentes (com ip’s diferentes) e o relatório tem um sub-relatório, se colocar o endereço de IP pra um, não funciona para outro.
O que eu queria saber se é possível eu criar um “Processo/Relatório” e colocar esse relatório/sub-relatório na pasta “WebApp.ear” e chamar na minha classe, esse processo do AD que por sua vez chama o relatório.
Não sei se fui bem clara, mas essa é minha dúvida.
Agradeço desde já a ajuda.

Cátia


#2

Modificando o que eu disse, achei o seguinte tópico: [url]Chamada de processo].
Apenas ficou uma dúvida: porque setar o “AD_Client_ID” e o “AD_User_ID”.
Obrigada


#3

Catia,

Dependendo do processo que vc vai executar as informações como AD_Client_ID, AD_Org_ID são relevantes e dependendo de como vc tentar rodar direto via Java você não terá essas informações dentro do seu processo.

Uma alternativa é você rodar o relatório em JasperReports diretamente pelo seu processo e você pode passar o ser JASPER como parâmetro, sugiro você dar uma olhada no código da Kenos no Mercurial, na branch LBR-39 sobre a Carta de Correção Eletrônica, lá tem um exemplo de como fazer isso.

Abs!


#4

Para não ter que ficar refazendo o empacotamento a cada vez que atualizo meu relatório no iReport, eu configurei o “processo/relatório” no AD e anexei o arquivo .jasper no registro. No campo onde informo o nome do arquivo eu preencho como “attachment:MeuRelatorio.jasper”. Desta forma ele funciona tanto no client como via web, e toda vez que preciso atualizar eu só removo o anexo antigo e substituo pelo novo.

Sds,
Marcelo


#5

Bom dia Marcelo.
Bom, no meu caso isso não funciona. Até temos vários relatórios que usamos o anexo.
Mas nesse caso, não é possível pois o relatório tem um sub-relatório.

Mas obrigada igual pela resposta :smiley:


#6

Obrigado, Catia.
Ainda não temos nenhum relatório com sub-relatórios no jasper, mas já fica a dica/preocupação para quando surgir a necessidade…


#7

Catia, tanto da forma que eu expliquei na branch LBR-39 quanto usando os anexos é possível usar sub-relatórios, os subs são enviados como parâmetro no relatório principal.


#8

Bom, em qual método eu vejo então?

Obrigada :wink:


#9

Catia,
Fiquei curioso com o assunto e andei procurando mais informações. Pelo que li em sourceforge.net/projects/adempie … ic/4646633 me parece que para usar um report com subreport, basta anexar os dois no processo e deixar vazio o parâmetro SUBREPORT_DIR do subreport.
Vou testar isso no sábado e informo o resultado aqui.

Sds,
Marcelo


#10

Só tenho uma dúvida na linha

SeuProcessoAdempiere proc = new SeuProcessoAdempiere(); // MUDE PARA O NOME DA SUA CLASSE proc.startProcess(Env.getCtx(), pi, null);
pois não é a partir de um processo que vou abrir o relatório, é um Formulário, onde eu seleciono várias notas fiscais e mando imprimir o relatório que fiz.

:question: