Quando estamos dentro do EBS muitas variáveis de contexto são setadas, tudo isso é feito automaticamente se o setup foi feito corretamente.
Com todo esse contexto configurado o EBS restringe o acesso aos dados pesquisados, seja pelo ID da organização, responsabilidade, usuário, etc.
Mas algumas vezes precisamos realizar algumas consultas fora do EBS, por exemplo, executando uma query diretamente no banco.
Dependendo da query e das tabelas utilizadas, às vezes nem precisamos nos preocupar com o contexto. Mas se queremos realizar uma pesquisa exatamente como ela seria feita dentro do EBS, com as todas as restrições, temos que configurar a sessão onde a query será executada para “simular” que estamos dentro do aplicativo.
Existem alguns comandos para fazer isso, por exemplo:
Seta o ORG_ID na R12
Seta o usuário, responsabilidade e aplicação
OK, temos os comandos, mas como obter os valores dos parâmetros necessários?
Alguns são simples de conseguir, como o ID do usuário:
O ID da responsabilidade e da aplicação também podemos obter por uma query:
Para os outros, como o ORG_ID ou o SET_OF_BOOKS_ID/LEDGER_ID, podemos fazer o seguinte para agilizar (Existem outras maneiras):
1) Vá até a responsabilidade que você quer “simular” no SQL
2) Acesse o form personalization:
3) Preencha os campos obrigatórios com qualquer valor, vá até a aba Ações e faça conforme abaixo:
Ao pressionar o botão “Validate”, uma mensagem mostrará a informação desejada.
O comando FND_GLOBAL.ORG_ID retorna o ORG_ID corrente (A Oracle recomenda não utilizar mais o FND_PROFILE.VALUE(‘ORG_ID') na R12 para obter esse valor).
Para retornar o SET_OF_BOOKS_ID/LEDGER_ID, utilize o comando:
FND_PROFILE.VALUE(‘GL_SET_OF_BKS_ID')
Esses comandos podem ser utilizados para diversos outros fins, basta dar uma pesquisada.
► Quer ver mais sacadas como essa? É só baixar o eBook (Clique para baixar) com 11 incríveis usos para o EBS Personalization. São personalizações super úteis para Forms e WEB/OAF, todos com exemplos práticos. É Grátis! |
Muitas vezes quando executamos uma query e não é retornado nenhum registro no SQL, um dos motivos é o contexto não ter sido setado.
Bom, seria isso. Ficou bem explicado ou está confuso? Gostaria da opinião de vocês. Fiquem à vontade para mandar críticas e/ou sugestões que eu posso alterar alguma coisa para melhorar o entendimento.
Link permanente
Olá Eduardo. Achei a explicação bem clara e objetiva.
Abs,
Link permanente
Muito obrigado Gabi… 😉
Link permanente
Eduardo aqui na empresa precisamos passar o nome do usuario logado no EBS pela URL do menu, estamos desenvolvendo um sistema externo e precisamos saber o login do usuario logado no sistema, pensamos em passar essa variavel pela URL, mas o oracle não tem nenhuma opção que me dê esse retorno na url, tem alguma idéia de como posso fazer isso??
Link permanente
Aarão, peço desculpas pela demora na resposta. Achei que já tivesse respondido. Já resolveu seu problema? Se ainda não, me avise… Abs