Configurações Personalizadas por Terminal - JSF

Boa tarde pessoal,

Estou com uma dúvida conceitual… mas não estou conseguindo visualizar uma solução.

No nosso sistema JSF + Primefaces aqui, tenho impressões via Jasper e algumas em modo texto, através do applet JZebra, pra formulario continuo, cupom não fiscal e etc.

O problema é que preciso parametrizar essa impressão por terminal… de maneira que se for acessado de determinado terminal, gere jasper, se for em outro, gere modo texto…

Pensei em configurar por usuário, mas os usuários mudam de terminal constantemente… então não posso usar isto…

Pensei também em fazer configurações específicas por MAC ADRESS, mas vih que naum tenho como acessar isto por questões d segurança…

Alguém tem alguma dica pra me dar?

Um abraço

O MAC Address talvez não, mas o ip você consegue obter em todas as requisições recebidas, não?

Sim mas… o IP pode ser automático via DHCP… não tenho como saber se o terminal é o mesmo de ontem, por exemplo…

Sim mas… o IP pode ser automático via DHCP… não tenho como saber se o terminal é o mesmo de ontem, por exemplo…[/quote]
Para determinadas situações, é necessário determinar regras.
Para que isso funcione, ou você usa aplicações desktop ou você determina que os IPs sejam fixos. Talvez exista alguma opção, mas essa é a primeira coisa que me vem a cabeça.

[Edit]

A aplicação vai ser acessada e imediatamente realizar a ação? Por que senão, creio que uma pessoa que vai gerar um relatório .jasper execute determinada ação na tela, da mesma forma que alguém que vai imprimir uma etiqueta zebra ou um relatório em txt o faça, não?

Sim mas… o IP pode ser automático via DHCP… não tenho como saber se o terminal é o mesmo de ontem, por exemplo…[/quote]
Para determinadas situações, é necessário determinar regras.
Para que isso funcione, ou você usa aplicações desktop ou você determina que os IPs sejam fixos. Talvez exista alguma opção, mas essa é a primeira coisa que me vem a cabeça.[/quote]

Sim… concordo… na verdade essa será minha última opção… não gostaria de engessar o produto em nada…

Mas ainda assim teria um problema… o sistema roda em um servidor na nuvem, não em um servidor interno na rede do terminal… como consequência, o ip que me aparece é o ip da internet do usuário… ou seja, todos os usuários deste cliente me retornam o mesmo endereço IP…

Sabe alguma maneira de recuperar o Ip da placa de rede?

[EDIT]

É que a exigência eh que quando a venda seja lançada, o sistema jah imprima diretamente… sem intervenção do usuário…

Sabe como é né… manda quem pode, obedece quem tem juízo… não posso mudar isso =/

Mas essa rotina deve ter alguma forma de identificação, não? Tipo um “TipoVenda”?

naum… pior que não… eh a mesma operação… completamente igual… soh que em determinados terminais vai imprimir texto… em outras jasper… :S…

Por acaso tem como salvar alguma configuração no navegador de forma fixa? tipo cookie?

naum… pior que não… eh a mesma operação… completamente igual… soh que em determinados terminais vai imprimir texto… em outras jasper… :S…

Por acaso tem como salvar alguma configuração no navegador de forma fixa? tipo cookie?[/quote]
Como você sabe quando é que imprime um e quando imprime outro?

naum… pior que não… eh a mesma operação… completamente igual… soh que em determinados terminais vai imprimir texto… em outras jasper… :S…

Por acaso tem como salvar alguma configuração no navegador de forma fixa? tipo cookie?[/quote]
Como você sabe quando é que imprime um e quando imprime outro?[/quote]

Ai que está… não sei… o problema é justamente isso… preciso de algo mais ou menos assim:

O cara, estando no terminal que vai imprimir em Jasper… vai em determinado local e informa que vai emitir jasper neste terminal…

Estando em outro terminal que vai emitir texto… vai lah e informa que este terminal emite texto…

O sistema, ao precisar imprimir… precisaria saber se akele terminal emite jasper ou texto… e com base nisso… executa uma ou outra coisa… por isso a necessidade de identificar o terminal…

naum… pior que não… eh a mesma operação… completamente igual… soh que em determinados terminais vai imprimir texto… em outras jasper… :S…

Por acaso tem como salvar alguma configuração no navegador de forma fixa? tipo cookie?[/quote]
Como você sabe quando é que imprime um e quando imprime outro?[/quote]

Ai que está… não sei… o problema é justamente isso… preciso de algo mais ou menos assim:

O cara, estando no terminal que vai imprimir em Jasper… vai em determinado local e informa que vai emitir jasper neste terminal…

Estando em outro terminal que vai emitir texto… vai lah e informa que este terminal emite texto…

O sistema, ao precisar imprimir… precisaria saber se akele terminal emite jasper ou texto… e com base nisso… executa uma ou outra coisa… por isso a necessidade de identificar o terminal…[/quote]
Mas você vai precisar definir ações específicas, menus, botões, links que permitam que o usuário faça a impressão do pdf (jasper), txt ou use o applet da zebra. O applet é o menor dos problemas, já os outros você terá que definir esta situação.

Tudo já está pronto… jah funciona perfeitamente… o que muda eh o seguinte…

Quando o sistema está configurado (globalmente) pra emitir jasper… e o cara lança uma venda… ao clicar no salvar… o sistema faz o submit… gera o jasper… e jah abre uma dialog com a impressão pronta na tela… soh clikcar em imprimir e jah era…

Quando está configurado pra emitir texto… ao clicar no salvar da venda… o sistema jah carrega o applet… imprime texto… e jah era… sem clique, sem nada…

ou seja… ou o sistema jah abre a dialog com a impressão pronta na tela no caso do jasper… ou o applet eh carregado automaticamente no response…

a questão é… isso o sistema vai ter q fazer uma coisa ou outra… mas de acordo com o terminal em questão…

Se fosse um sistema desktop, colocaria um arquivo de propriedades e já era…
Salvo se você fizer o applet ler esse arquivo…

[quote=drsmachado]Se fosse um sistema desktop, colocaria um arquivo de propriedades e já era…
Salvo se você fizer o applet ler esse arquivo…[/quote]

Exatamente… em um app Desk que tenho… utilizo o registro do windows… mas neste caso…

Acho que vou gravar cookie… o problema é se o usuário apagar os cookies neh… o que acha dessa solução?

Não gosto de cookies. Enfim, ainda acredito que possa existir alguma outra solução, apenas não sei qual.