Substituição Usuário Logado

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
dfigueira
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Sex, 13 Jul 2012 2:39 pm

Estou com uma dificuldade em relação a gravar o usuário logado.
Por exemplo o usuário X abriu um atendimento automaticamente estou pegando o usuário da sessão com a função APEX_CUSTOM_AUTH.GET_USERNAME no campo "Valor Default (usado quando SOURCE e o cache da sessão não têm um valor)" utilizando um expressão PL/SQL, porém se outro usuário acessar o mesmo registro e realizar alguma alteração automaticamente é gravado o usuário que está na sessão e não mantém o valor que já existia como se o atendimento tivesse sido aberto pelo usuário que alterou.

Como posso proceder para que isso não ocorra? se alguém puder dar uma ajuda serei grato.

Abraços a todos.
Rafael_Santos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 72
Registrado em: Sex, 18 Nov 2011 4:51 pm

Não sei se entendi muito bem dfigueira, mas se você quer manter registro ou histórico seria um problema de modelagem de dados. Deveria existir um tabela tipo chamado e outra usuario e uma terceira chamado_usuario que armazenaria o usuário que realizou o chamado e o usuário que solucionou o chamado.

Espero ter ajudado, se não posta ai de novo, que tentaremos.

Abraços
dfigueira
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Sex, 13 Jul 2012 2:39 pm

Bom dia Rafael.
Na verdade eu estou utilizando o Login criado no Aplication Express mesmo, portanto não tenho uma tabela de usuários minha estrutura dentro da tabela de atendimentos tem todos atributos referentes aos atendimentos e ainda uma coluna user_name onde por default recupero o usuário logado através da função que passei no primeiro post. Aì o que ocorre é, O usuário Daniel abriu um atendimento , automaticamente o usuário é preenchido no campo user_name recuperando o usuário logado, por algum motivo o usuário Manuel teve que visualizar este atendimento e dar um andamento ou realizar alguma alteração de status ou coisa parecida, este valor que estava setado como Daniel automaticamente é setado pelo usuário que alterou como se fosse este que realizou a abertura.
Nas propriedades do campo já setei para alterar somente quando o valor for nulo porém não obtive sucesso.

Obrigado pela ajuda.

Abraços;
anderson.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 35
Registrado em: Sex, 20 Abr 2012 10:51 am

dfigueira,

não testei, mas experimenta nesta pagina desativa o cache na aba segurança.
Isso promete não salvar o conteudo em cache (acredito que este seja seu problema), com isso o browser será instruído a não salvar o conteúdo da página e a solicitá-lo novamente ao servidor.

Posta aí se der certo...

At,
Anderson
dfigueira
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Sex, 13 Jul 2012 2:39 pm

Caro Anderson_silva, alterei todas as propriedades da página em relação ao cache mas infelizmente continua ocorrendo a substituição, setei página de cache como não, timeout de cache 10 segundos, cache por usuário não e nunca para condição de cache na página.

Se tiver alguma outra dica por favor posta aí...um abraço e obrigado.
Rafael_Santos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 72
Registrado em: Sex, 18 Nov 2011 4:51 pm

Caro dfigueira,
acho que entendi seu problema.
Tente utilizar o pacote htmldb_application.g_user.
Creio que você possua um item que armazene o login do usuario logado na aplicação.
Se tiver:
1-Vá em Origem
2-Origem usada , utilize Apenas quando o valor atual em estado de sessão for nulo.
3-Tipo de Origem , utilize Expressão ou função em PL/SQL.
4-Manter Estado de Sessão, utilize Por Sessão
5-Expressão ou valor de origem, escreva htmldb_application.g_user
6-Vá em Somente Leitura
7-Tipo de Condição Somente para Leitura, utilize O Valor de Item da Expressão 1 é Não Nulo
Na página deve haver um item que armazena o código da PK
8-Expressão 1, escreva o nome do item que armazena o codigo da PK

Se der certo ou errado mande um feedback.

Abração
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante