1. O documento apresenta 11 usos diferentes de personalização no Oracle EBS. 2. Os usos incluem como aumentar o limite de registros exibidos por página, adicionar dicas de texto, criar botões de exportação, limitar o tamanho de campos e mascarar conteúdo. 3. O objetivo é fornecer exemplos práticos de personalização no EBS para que os leitores possam aplicar em seus próprios sistemas.
1. 11 INCRÍVEIS USOS PARA O
ORACLE EBS PERSONALIZATION
POR EDUARDO SCHURTZ
2. Seja muito bem-vindo!
Eduardo aqui...
Não é uma das tarefas mais fáceis encontrar algo sobre Oracle EBS Personaliza-
tion que não seja corriqueiro na documentação disponível. Até tem bastante coisa
boa, mas geralmente os materiais estão espalhados pela internet e não são muito
didáticos.
Perde-se um bom tempo procurando, tempo que poderia estar sendo aplicado em
atividades mais produtivas.
Pensando nisso, resolvi criar este eBook onde abordo vários exemplos de OAF/
WEB Personalization e Form Personalization.
São todos exemplos práticos, alguns eu já tinha abordado no meu blog e outros
são exclusivos deste eBook.
E caso tenha interesse em se tornar um especialista e conquistar um diferencial no
mercado, conheça o meu curso de Oracle EBS Personalization.
Espero que goste!
3. SUMÁRIO
Introdução....................................................................................................................2
1. Como aumentar o limite de registros visualizados por página web........................4
2. Como adicionar “tips” (dicas) de texto nas páginas web......................................... 7
3. Como criar um botão para exportar registros de página web................................11
4. Como limitar a quantidade de caracteres de um campo........................................15
5. Como mascarar o conteúdo de um campo............................................................. 18
6. Como alterar a query de uma lista de valores (LOV)............................................. 21
7. Como automatizar seus testes................................................................................26
8. Descobrindo a query de uma tela web...................................................................30
9. Visualizando a saída de concurrents de outros usuários.......................................34
10. Descobrindo os valores dos parâmetros para setar o contexto fora do EBS.......38
11. Facilitando a procura da execução de concurrents..............................................42
Contato.......................................................................................................................46
4. COMO AUMENTAR O LIMITE DE
REGISTROS VISUALIZADOS POR
PÁGINA WEB
#0
COMO AUMENTAR O LIMITE DE
REGISTROS VISUALIZADOS POR
PÁGINA WEB
#1
5. #1 Como aumentar o limite de registros visualizados por página web
5
#1 Como aumentar o limite de registros visualizados por página web
Quando temos uma tela web com listagem de registros, existe um limite de quanti-
dade para os registros visualizados. Esse limite varia de tela para tela.
Se o limite, por exemplo, é de 10 registros por vez e você fez uma consulta que re-
tornou 100 registros, vai precisar clicar no botão de “próxima página” 9 vezes.
Se o limite fosse aumentado para 50, você conseguiria ver todos os 100 registros
em apenas duas telas, clicando no botão de “próxima página” apenas uma vez.
Utilizei como exemplo a tela de cadastro de fornecedores do Payables, onde o limite
de registros visualizados é de 15 por vez:
Aumentarei esse limite para 50.
Como fazer:
Esses registros são mostrados na tela por meio de um objeto “tabela”, então é este
objeto que deve ser personalizado.
Logo acima da tabela, no canto superior esquerdo, tem um link de personalização
chamado “Personalize Suppliers Table”. Clique nele:
6. #1 Como aumentar o limite de registros visualizados por página web
6
Vai abrir uma tela com a estrutura de personalização, com cada objeto que pode ser
personalizado.
Clique no ícone do lápis correspondente ao objeto “Table: Suppliers Table”:
Agora abrirá uma tela com todas as opções que podem ser personalizadas deste
objeto.
A propriedade para o nosso exemplo é a “Records Displayed”, perceba na imagem
abaixo que a definição original é 15.
Vamos alterar para 50, apenas para o nível de responsabilidade, então deve
ser alterada na coluna “Responsibility: Payables”:
Depois é só clicar no botão “Apply” e voltar para a tela principal clicando em “Re-
turn to Application”.
E está feito! Já serão mostrados 50 registros por vez, não mais 15.
Se você quiser ver mais detalhes dessa personalização e também verificar o resulta-
do final, gravei um vídeo demonstrando cada etapa, clique aqui para assistir.
8. 8
#2 Como adicionar “tips” (dicas) de texto nas páginas web
Essa é uma personalização simples, mas muito interessante.
Nem sempre o conteúdo de uma página é auto-explicativo, dificultando o entendi-
mento de pessoas que estão acessando pelas primeiras vezes.
Não seria ótimo poder adicionar mensagens de orientação para ajudar o usuário a
entender melhor cada área da página?
E assim mostrar o caminho correto que ele deve seguir?
Os ganhos são vários:
• Menos gastos com treinamento
• Menos chamados abertos
• Menos erros de operação
Talvez você já tenha notado, mas em algumas telas web do Oracle EBS já podemos
visualizar essas dicas de maneira nativa:
No exemplo acima, temos a seguinte dica:
The Allow Withholding Tax option is enabled only when the Withholding Tax op-
tion is enabled in both the supplier and payables options for the operating unit
Ou seja, só é possível marcar o campo “Allow Tax Withholding” se a opção “With-
holding Tax” estiver habilitada nas Opções do Payables e do Fornecedor para
a unidade operacional.
Perceba como isso é importante: Se alguém sem familiaridade com essa tela
tentar marcar essa opção e não conseguir, sem a mensagem provavelmente ela não
saberá o que fazer e terá que abrir um chamado ou perder tempo tentando desco-
brir.
Vou mostrar agora como criar as nossas próprias mensagens, utilizando como ex-
emplo a página de “Tax Details” do cadastro do fornecedor.
9. 9
#2 Como adicionar “tips” (dicas) de texto nas páginas web
Na área de “Supplier Sites”, clique em “Personalize Default Single Column”:
Vamos criar um novo item nessa área clicando em “Create Item”:
Em “Item Style”, escolha “Tip”, forneça um ID para esse novo objeto, escreva a sua
mensagem e clique em “Apply”:
10. 10
#2 Como adicionar “tips” (dicas) de texto nas páginas web
Retorne clicando em “Return to Application” e confira o resultado:
Útil, não?
E neste exemplo eu inseri o texto diretamente na página, mas é possível criar men-
sagens no dicionário de mensagens do EBS e customizar ainda mais a mensagem.
12. 12
#3 Como criar um botão para exportar registros de página web
Uma das vantagens do OAF personalization é poder criar novos objetos na
tela, coisa que infelizmente não é possível no form personalization.
Neste exemplo vou demonstrar como criar um botão para exportar detalhes dos
contatos de um fornecedor.
Vamos lá:
Clique em “Personalize Page” (Topo superior direito da tela).
Depois em “Create Item” para o objeto “Page Layout”:
Na próxima tela, configure da seguinte maneira:
13. 13
#3 Como criar um botão para exportar registros de página web
Em “Item Style”, escolha “Export Button”.
Forneça um ID para o objeto.
Em “Text”, informe o texto do botão.
Em View Instance, digite “ContactsVO” (O conteúdo para o campo “View Instance”
você pode obter pelo link “About This Page”, aba “Page”, coluna “View Object”)
Clique em “Apply” e depois em “Return to Application” para retornar.
Pronto!
14. 14
#3 Como criar um botão para exportar registros de página web
Ao clicar no botão de exportar, vai aparecer a popup para você informar onde quer
salvar o arquivo com os contatos:
16. 16
#4 Como limitar a quantidade de caracteres de um campo
Não sei você, mas eu já tive problemas sérios com informações muito grandes que
foram digitadas em alguns campos do EBS.
Por mais que a tela permita uma grande quantidade de caracteres, 260 por exemp-
lo, em alguns cenários é interessante limitar esse tamanho.
Algum outro processo pode não estar preparado para receber tantos caracteres,
gerando erro.
Já vi isso acontecer algumas vezes.
O procedimento nesses casos é abrir um chamado na Oracle reportando o proble-
ma, para que resolvam em um próximo patch.
Mas isso pode demorar. Então a solução é personalizar esse campo problemático
até que a Oracle resolva.
Veja como é simples (Utilizarei como o exemplo o campo “Contact First Name” do
cadastro de Fornecedores:
Clique em “Personalize Page” (Topo superior direito da tela).
Procure por “Message Text Input: Contact First Name” e clique no lápis ao lado:
Na propriedade “Maximum Length”, veja que valor padrão é 150. Vamos limitar
para no máximo 20 caracteres no nível da responsabilidade:
17. 17
#4 Como limitar a quantidade de caracteres de um campo
Clique em “Apply” e depois em “Return to Application”.
Agora só é possível informar no máximo 20 caracteres:
19. 19
#5 Como mascarar o conteúdo de um campo
Toda empresa tem informações confidenciais.
Então faz todo o sentido “esconder” essas informações de quem não deve ter acesso
a elas.
Um jeito prático de fazer isso é mascarando o conteúdo de campos que contenham
esses dados sigilosos.
Considere que algumas pessoas com acesso à tela de pedidos do OM, não devam
visualizar o valor unitário de cada item (É apenas um exemplo).
A personalização ficaria assim:
Em “Trigger Event”, escolha “WHEN-NEW-RECORD-INSTANCE”.
Em “Trigger Object”, escolha “LINE”
Na aba “Actions”:
20. 20
#5 Como mascarar o conteúdo de um campo
Em “Type”, escolha “Property”.
Em “Object Type”, escolha “Item”.
Informe o nome do campo em “Target Object”, aqui no exemplo seria o “LINE.
UNIT_SELLING_PRICE_DSP”.
Em “Property Name”, escolha “CONCEAL_DATA”.
E em “Value”, escolha “TRUE”.
Pronto, agora o conteúdo desse campo está mascarado:
22. 22
#6 Como alterar a query de uma lista de valores (LOV)
Nem sempre a query padrão de uma lista de valores atende as necessidades da em-
presa.
Seja por uma regra de negócio, um detalhe para melhorar a visualização da lista,
etc.
Veja por exemplo a lista de valores do campo de listas de preço, que fica na tela de
ordens de venda do OM:
Perceba que algumas listas não possuem descrição.
E se a gente só quisesse mostrar listas de preço que tenham a descrição preenchi-
da?
É fácil…
Vamos lá:
Primeiro precisamos saber qual o nome da lista de valores (LOV) para este campo.
Clique no campo “Price List”, vá até o menu Help > Diagnostics > Properties >
Item.
23. 23
#6 Como alterar a query de uma lista de valores (LOV)
Na janela “Object Properties”, escolha “Lov Name” em “Property”:
“PRICE_LIST” é o nome da lista.
Precisamos criar um novo “Record Group” (objeto do form que armazena a query)
para a lista de valores.
Vamos à personalização:
Em “Trigger Event” escolha “WHEN-NEW-ITEM-INSTANCE”.
Em “Trigger Object”, “ORDER.PRICE_LIST”. (“ORDER” é o bloco e “PRICE_
LIST” é o nome do campo).
Na aba “Actions” teremos duas ações:
A primeira para criar o novo “Record Group” e a segunda para associar esse novo
“Record Group” à lista de valores.
24. 24
#6 Como alterar a query de uma lista de valores (LOV)
Primeira ação:
Em “Type”, escolha “Builtin”.
Em “Builtin Type”, selecione “Create Record Group from Query”.
No campo “Argument”, você precisa colocar a nova query com a cláusula WHERE
modificada. Eu peguei a query original e adicionei a cláusula abaixo:
QLHV.description IS NOT NULL
OBS: A query original da LOV você pode obter via trace ou abrindo o form no Ora-
cle Forms Builder.
Segunda ação:
Em “Object Type”, selecione “LOV”.
Em “Target Object”, coloque o nome da LOV a ser alterada, no nosso exemplo é
“PRICE_LIST”.
25. 25
#6 Como alterar a query de uma lista de valores (LOV)
Informe “GROUP_NAME” em “Property Name“.
E para finalizar, informe o nome do novo “Record Group” que você definiu na ação
anterior, no meu exemplo foi “PRICE_LIST_LOV_CUSTOM”.
Agora é só salvar, fechar a tela de pedidos e abrir novamente para que os resultados
tenham efeito:
Somente listas de preço com descrição preenchida foram mostradas.
27. 27
#7 Como automatizar seus testes
Esse é um uso um pouco “diferente” de EBS Personalization, mas confesso que são
esses tipos que eu mais gosto, como você pode ver lá no meu blog, em EBS Hacks.
Quando estamos realizando testes no EBS, seja para uma nova customização ou
processo, em alguns casos temos a necessidade de digitar as mesmas informações,
repetidamente.
Vou dar um exemplo para deixar mais fácil de entender, imagine o seguinte
cenário:
Uma nova customização precisa ser testada e ela precisa que vários pedidos de ven-
da sejam criados pela tela, com praticamente as mesmas informações (E por algu-
ma razão, o recurso de “Copiar Pedido” não pode ser utilizado).
Ao invés de digitar manualmente esses pedidos, podemos criar uma personalização
para que toda vez que o form entre em modo de novo registro, os campos já sejam
preenchidos.
Vamos lá:
Primeiramente você precisará do nome de todos os campos que precisam ser
preenchidos, essa informação você consegue em Help > Diagnostics > Exam-
ine.
Aqui no exemplo, preencherei os seguintes campos:
Customer
Ship To Location
Bill To Location
Order Type
Price List
Currency
A tela principal da personalização ficaria assim:
28. 28
#7 Como automatizar seus testes
Em “Trigger Event”, escolhemos “WHEN-NEW-RECORD-INSTANCE”.
Informe “ORDER” em “Trigger Object”.
Na condição, queremos que a personalização dispare apenas quando for um novo
registro, então informamos:
:SYSTEM.RECORD_STATUS = ‘NEW’
OBS: Muito importante, não esqueça de definir o nível de contexto dessa personal-
ização apenas para o seu usuário.
Agora na aba “Actions”:
Criaremos uma linha do tipo “Property” para cada campo a ser preenchido.
29. 29
#7 Como automatizar seus testes
E para cada linha:
“Object Type” será “Item”.
“Target Object” será <NOME DO BLOCO>.<NOME DO CAMPO>, ou seja, “OR-
DER.” + o nome do campo que você anotou
“Property Name” será “VALUE”
E para finalizar, em “Value” informe o valor que deseja que o campo receba para os
seus testes.
Agora, toda vez que a tela entrar em modo de inclusão de registro, todos os campos
serão automaticamente preenchidos.
OBS: Se preencher diretamente os IDs, será ainda mais rápido.
31. 31
#8 Descobrindo a query de uma tela web
Quando precisamos descobrir a query ou um campo e/ou tabela de um form é mui-
to fácil, basta acessar: Diagnostics > Examine do menu Help.
Mas com as telas web a coisa ficou um pouco mais complicada, mas não impossível.
Acesse a tela web desejada. No exemplo abaixo utilizarei a tela de informações de
contato da conta bancária do Cash Management, buscaremos a origem do campo
“Sobrenome”:
Vá até o fim da tela, no canto inferior esquerdo, deve existir um link “Sobre esta
Página”, clique nele:
Depois clique em “Expandir Tudo”:
32. 32
#8 Descobrindo a query de uma tela web
Agora vamos procurar pelo campo “Sobrenome” e seu respectivo “Objeto” na colu-
na “View Object”:
Se o objeto estiver na forma de link, é só clicar nele e pronto. Mas em algumas
situações ele estará apenas na forma de texto, então copie esse texto e procure por
ele mais abaixo, na área “Detalhes de Referências do Componente Comercial“, em
“View Object“:
33. 33
#8 Descobrindo a query de uma tela web
Encontrando, basta clicar e pronto, a query por trás da tela é mostrada:
Aí está! Agora você tem a query.
35. 35
#9 Visualizando a saída de concurrents de outros usuários
Quando estamos em projeto, algumas vezes precisamos analisar a saída de concur-
rents que foram executados por outras pessoas, por exemplo:
• Quando um consultor está testando uma customização e precisa mostrar a
saída para o desenvolvedor
• Quando um usuário percebe um erro em determinado concurrent e precisa
mostrar para o consultor
O jeito mais comum é solicitar ao executor que salve a saída em um arquivo e envie
para o responsável, mas muitas vezes não é a maneira mais eficaz: O executor pode
demorar para enviar, ele pode enviar em um formato não satisfatório para análise,
etc.
Eu prefiro apenas solicitar o ID da solicitação a ser analisada, assim eu mesmo con-
sulto a solicitação.
Outra situação interessante: Você precisa analisar a saída de várias solicitações mas
não está conseguindo se comunicar com o executor, então é só pesquisar por todas
as solicitações daquele usuário e verificar as saídas por conta própria.
Mas tem um detalhe, o botão “Verificar Saída” é desabilitado para visualizar a saída
de solicitações de outros usuários no EBS, apenas o botão de “Verificar Log” está
disponível. Isso faz todo o sentido por uma questão de segurança.
Se você tem acesso à responsabilidade “Administrador do Sistema”, existe um ma-
cete utilizando o form personalization:
Acesse a responsabilidade “Administrador do Sistema” e vá em: Solicitações >
Exibir
36. 36
#9 Visualizando a saída de concurrents de outros usuários
Pesquise pelas solicitações desejadas e acesse a tela de personalização: Ajuda >
Diagnósticos > Personalizar Código > Personalizar
Agora é só criar a personalização:
37. 37
#9 Visualizando a saída de concurrents de outros usuários
Cada vez que você navegar em um registro da tela de solicitações, a personalização
será executada (Por isso o evento WHEN-NEW-RECORD-INSTANCE).
Atenção: Muito importante colocar como contexto apenas o seu usuário, assim a
personalização funcionará apenas para você.
Depois é só sair da tela de solicitações e entrar novamente, para que a personal-
ização tenha efeito.
OBS: Por questões de segurança, isso não deve ser feito em ambiente de produção,
apenas se a empresa permitir
39. 39
#10 Descobrindo os valores dos parâmetros para setar o contexto fora do EBS
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 pesquisa-
dos, seja pelo ID da organização, responsabilidade, usuário, etc.
Mas algumas vezes precisamos realizar algumas consultas fora do EBS, por exemp-
lo, 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 config-
urar 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:
40. 40
#10 Descobrindo os valores dos parâmetros para setar o contexto fora do EBS
Para os outros, como o ORG_ID ou o SET_OF_BOOKS_ID/LEDGER_ID, podem-
os fazer o seguinte para agilizar (Existem outras maneiras):
Vá até a responsabilidade que você quer “simular” no SQL e acesse o form person-
alization:
Preencha os campos obrigatórios com qualquer valor, vá até a aba Ações e faça
conforme abaixo:
41. 41
#10 Descobrindo os valores dos parâmetros para setar o contexto fora do EBS
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.
Muitas vezes quando executamos uma query e não é retornado nenhum registro no
SQL, um dos motivos é o contexto não ter sido setado.
43. 43
#11 Facilitando a procura da execução de concurrents
Muitas vezes precisamos procurar pela execução de concurrents para analisar suas
saídas e/ou logs. O problema é que muitos concurrents têm o nome parecido e o
campo que mostra o nome é muito pequeno:
Assim temos que navegar até o campo nome e olhar a descrição completa, um a
um.
Quando se sabe o nome exato do concurrent, é só filtrar por esse nome, mas muitas
vezes só sabemos ou lembramos algumas partes do texto.
Pensando em um jeito de agilizar esse processo, criei uma personalização para
mostrar o nome completo do concurrent diretamente na tela. Toda vez que troco de
registro, a personalização mostra o nome da solicitação corrente. Fiz assim:
Utilizei o prompt do campo ID da Solicitação para mostrar o nome:
Então a personalização ficou assim:
44. 44
#11 Facilitando a procura da execução de concurrents
… agora a ação:
No prompt do campo, eu coloco o nome do concurrent + quebra de linha + prompt
original do campo (Na verdade, coloquei só o texto “ID” para economizar espaço)
O resultado final é esse:
Toda vez que trocar de registro, esse texto irá mudar com o nome do concurrent
atual.
E com esse finalizo os 11 exemplos...
45. 45
CONCLUSÃO
Espero de verdade que tenha gostado deste material.
Guarde com você e consulte sempre que necessário.
O Oracle EBS Personalization é uma ferramenta fantástica para profissionais Ora-
cle e-Business Suite.
Recomendo agora dar uma olhada no meu curso de Personalization, tem tudo
isso que foi abordado no eBook e muito mais.
Qualquer dúvida, sugestão e/ou crítica é só entrar em contato, meus dados estão na
próxima página.
Forte Abraço
Eduardo Schurtz
46. Eduardo Schurtz
Nomeado Oracle ACE em “Applications & Apps
Technology” pela Oracle em 2015, o primeiro do Bra-
sil nessa categoria (e único pelo menos até edição
deste eBook).
Consultor Oracle e-Business Suite e Empreendedor
Digital.
... tem mais conteúdo aqui:
EDUARDOSCHURTZ.COM/ORACLE
ORACLEEBSPERSONALIZATION.COM
CONTATO