sábado, 21 de abril de 2012

Desvendando o AdAdmin


Olá Jovens

Hoje, vamos tentar desvendar o mundo do AD Administration, ou mais popularmente e carinhosamente chamado de ADADMIN. Essa é uma das ferramentas de administração do EBS para realização de tarefas de manutenção. Este é um dos mais famosos e principais utilitários em linha de comando do EBS.

O manual oficial do AdAdmin do R11 é o “Oracle® Applications Maintenance Utilities Release 11i (11.5.10.2) Part No. B19300-01” e está disponível nas páginas de documentação da Oracle. 

Este artigo foi baseado neste manual, além de informações adicionais fornecidas pelo instrutor de um curso que fiz no final do ano chamado Adriano Master Penedo. Grande abraço Adriano.

O ADADMIN se encontra no diretório $AD_TOP/bin do servidor de aplicação. Vamos confirmar se ele está lá:

 
Lindo, ele está lá. Começamos bem :)

Antes de olharmos tela a tela esta aplicação é sempre legal dar uma olhada no help:
adadmin help=y

Uma dica legal do help que vale a pena dar uma olhada é o “DEFAULTSFILE”. Essa opção não será abordada aqui na nossa conversa, mas esta opção combinada com a opção “MENU_OPTION” é muito legal para a economia de tempo. 

Para atiçar a curiosidade, basta dizer que, ao invés de responder todas as perguntas que veremos abaixo para acesso ao ADADMIN, chamaríamos o mesmo com o parâmetro DEFAULTSFILE e o mesmo já abriria na janela desejada, sem necessidade das respostas e entradas de senha.

A maioria das interações do usuário via ADADMIN são a partir de prompts de linha de comando sob a forma de avisos. Em não utilizando o  basta responder corretamente as perguntas abaixo para acessar a tela inicial.
No servidor de aplicação, executar: adadmin

Nesta primeira imagem, iremos responder 4 perguntas. As respostas e suas explicações estão em destaque.

Your default directory is '/u01/app/oracle/HOMOL14/homol14appl'. Is this the correct APPL_TOP [Yes] ? YES - Pois o APPL_TOP está correto.
Filename [adadmin.log] : adadmin.log - Eu geralmente deixo a sugestão, mas pode ser alterado.
You can be notified by email if a failure occurs. NO - Tudo o que for feito no ADADMIN será acompanhado de perto por você. Por isso, acho desnecessário o e-mail.
Please enter the batchsize [1000] : 1000 - Eu geralmente deixo a sugestão, mas pode ser alterado.

Nesta segunda imagem da inicialização, não temos interação com o processo. Apenas conferimos os dados.

Na terceira tela do processo,entramos com as senhas de system e apps, conforme demonstrado abaixo:

Nesta imagem acima, iremos responder mais 3 perguntas. As respostas e suas explicações estão em destaque:

You are about to use or modify Oracle Applications product tables in your ORACLE database 'HOMOL14' using ORACLE executables in '/u01/app/oracle/HOMOL14/homol14ora/8.0.6'. Is this the correct database [Yes] ? YES - A identificação do database está correta 
Enter the password for your 'SYSTEM' ORACLE schema: Fornecer a senha do usuário SYSTEM do banco de dados.
Enter the ORACLE password of Application Object Library [APPS] : Fornecer a senha do usuário APPS da aplicação.

Finalmente na última fase de inicialização executada pela ADADMIN, temos as configurações de linguagens. De novo, somente acompanhamos e conferímos.

Lindo, muito lindo quando tudo da certo não é mesmo. E se chegamos até aqui, a tela que deve estar sendo apresentada para o jovem e destemido ATG é a seguinte: 

  É isso ai jovem, essa é a tela inicial do adadmin. Aqui lhe serão apresentadas alguma opções divididas em blocos da seguinte maneira:

Menu 1 ==> Compilar/Recompilar arquivos da aplicação (Generate Applications Files menu)

Menu 2 ==> Manutenção de arquivos da aplicação (Maintain Applications Files menu)

Menu 3 ==> Compilar/Recompilar arquivos de BD (Compile/Reload Applications Database Entities menu)

Menu 4 ==> Manutenção de arquivos de BD (Maintain Applications Database Entities menu)

Menu 5 ==> Modo de manutenção (Change Maintenance Mode)

A partir de agora, valos explorar cada menu explicando o que cada opção pode nos oferecer. Ao selecionar o menu 1, deve ser apresentada a seguinte tela para o ATG:










Veja que no topo da tela fica registrada a opção escolhida por você. Neste menu, você tem acesso a executar tarefas de compilação/recompilação de arquivos da aplicação. Segue as opções:

Opção 1 ==> Compliar arquivos de mensagens (.msb). Este passo deve ser executado quando instruído em algum patch ou sob orientação do suporte Oracle

Opção 2 ==> Compilar forms (.fmb) disponíveis no $AU_TOP. Nesta opção após a compilação, os arquivos criados (.fmx) são automáticamente extraídos e copiados para o seu respectivo PRODUCT_TOP. A execução dessa opção deve ser quando observado algum problema em algum form específico. As opções para regenerar os forms são:
  • Todos os forms de todos os produtos (Loucura total se executar isso)
  • Forms de produtos específicos
  • Forms especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 3 ==> Compilar reports disponíveis no $AU_TOP. Funciona da mesma maneira da opção 2, porém somente manipulando arquivos .rdf. As opções para regenerar os reports são:
  • Todos os reports de todos os produtos (Loucura total se executar isso)
  • Reports de produtos específicos
  • Reports especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 4 ==> Gerar arquivos de gráficos (.ogd) para arquivos de definições de gráficos (.ogx). Honestamente nunca utilizei esta opção e não sei exatamente qual a sua finalidade. Até em pesquisas pelo My oracle Support eu não achei nada muito específico. Deve ser por isso que na R12 essa opção foi removida.

Opção 5 ==> Gera novamente Jar Files da aplicação no $JAVA_TOP. Após isso, estes arquivos são copiados para o $APPL_TOP automaticamente. Esta opção recria as bibliotecas java (appsborg.zip e appsborg2.zip). Somente deve ser executado após um upgrade no Developer ou por orientação do suporte Oracle.

Ou seja, vimos que no menu 1 temos várias opções referentes a compilação/recompilação dos arquivos de aplicação. Vamos agora dar uma olhada no menu 2:


Neste menu podemos executar a manutenção dos arquivos da aplicação para mante-los integros e atualizados, bem como relinks de programas com bibliotecas do sistema operacional.

Opção 1 ==> Executa o relink dos produtos, seja de todos ou de produtos específicos, com as susas respectivas bibliotecas. Essa opção deve sempre ser executada com a base de dados parada. Esta opção geralmente deve ser utilizada após recomendação do suporte Oracle.
Importante: Não é possível utilizar esta opção para relink de utilitários do AD. Para esta tarefa, devemos utilizar o adrelink.

Opção 2 ==> Cria um env file (arquivo de configuração de ambiente) no caso de servidores Unix. O arquivo de configuração de ambiente é colocado diretamente sob o $APPL_TOP. Também nunca utilizei esta opção e talvez, coincidência ou não, a opção não faz mais parte do ADADMIN na R12.

Opção 3 ==> Executa cópia de arquivos de alguns PRODUCT_TOPS para outros top's, como:
  • Java Files para $JAVA_TOP
  • HTML Files para $OAH_TOP
  • Multimídia para $OAM_TOP
  • Reports para $AU_TOP
Importante: A opção “force” nunca deve ser utilizada, salvo sob orientação do suporte Oracle.

Opção 4 ==> Conversão de CharSet da aplicação. Ela prepara os arquivos de $APPL_TOP para a conversão, realizando após isso a corversão.Esta opção tem uma sub-opção que permite efetuar uma busca por excecão antes de realizar a conversão real. Este é um procedimento delicado e que deve ser muito testado antes de ser executado em produção.

Opção 5 ==> Snapshot da aplicação. Guarda um histórico de patches aplicados e versões de arquivos.

Opção 6 ==> Busca no APPL_TOP e acusa se existem arquivos faltantes.

Na opção acima então, podemos executar várias das rotinas de manutenção dos arquivos de aplicação.

É isso ai. Até agora tudo tranquilo né. Nenhum bicho de sete cabeças pulou da tela, nada nos assustou, tudo funcionou lindamente. Vamos então continuar, agora entrando nas tarefas de banco de dados da AdAdmin, ou seja, o menu 3.




Neste menu é permitida a compilação de arquivos relativos ao banco de dados do EBS. Obviamente que existem outras formas de fazer o que estes menus nos oferecem, mas o ideal é que a ferramenta seja utilizada, sempre. Os menus são bem intuítivos e suas opções falam por si só, portanto aqui teremos uma breve explicação de cada opção.

Opção 1 ==> Nesta opção é possível recompilar objetos inválidos do APPS Schema. Aqui fica apenas um observação: se houver muitos objetos inválidos em sua instance, você deve inverstigar o problema a fundo ao invés de ficar recompilando os objetos pois isso definitivamente não é normal e nem saudável para a sua base.

Opção 2 ==> Aqui podemos recompilar a estrutura de dados dos menus no APPS. Ao carregar um novo menu na tabela FND_MENU_ENTRIES ou se após uma alteração de menu a execução do concurrent de recompilação falhar, essa opção deve ser executada

Opção 3 ==> No item 3, podemos recompilar as estruturas de dados dos famosos FlexFields nas FND Tables. Esta opção geralmente será utilizada quando algum patch alterar configurações de FlexField em sua aplicação. Se isso ocorrer, geralmente o Readme do patch trará uma sessão de pós-requisitos onde solicitará a execução desta tarefa. Os FlexFields geralmente são compilados em sua primeira utilização, dispensando a execução desta tarefa a cada criação, porém a compilação dos dados de um FlexField em um momento específico (por exemplo, quando a utilização do sistema é baixa), pode amenizar possíveis problemas de desempenho em tempo de execução.

Opção 4 ==> Por último, mas não menos importante recompilamos os objetos JAVA (Java Class) no banco de dados. Esta opção recarrega todos os arquivos JAR próprios do banco de dados. Execute esta tarefa se todos as classes Java dos aplicativos Oracle forem removidos de seu banco.

A opção 4 do menu principal é bem tranquila e intuítiva para a sua utilização. Agora veremos as tarefas de manutenção do banco de dados que podem ser feitas no AdAdmin.

Nesta opção 4 do menu principal, iremos relizar as manutenções necessárias nos arquivos e objetos de banco de dados do EBS. Aqui, como no menu 3 tudo é muito iintuítivo.



Opção 1 ==> Valida o schema do APPS para ver se o mesmo está integro. O Relatório de saída será gerado em $APPL_TOP/admin//out/. Por se tratar de uma validação simples, pode ser executado sempre que necesário.
Opção 2 ==> Verifica a integridade de grant's e sinônimos que o usuário APPS deve possuir sobre as tabelas dos módulos. Identificado algum problema, recria os grant's e synonym's para o APPS.
Importante: Se houver muitos obletos inválidos em sua base, você deve resolver este problema rapidamente junto ao My Oracle Support.

Opção 3 ==> Executa apenas após a inclusão de um novo idioma no EBS. Nesta opção as tabelas e as views “amarradas” à linguagem serão recriadas .
Opção 4 ==> Manutenção da tabela DUAL. Essa tabela, como é de conhecimento de todos deve existir no schema SYS e deve possuir apenas uma linha. Inconsistências nesta tabela podem levar

Opção 5 ==> Manutenção do MRC. Aqui, como eu não conheço o MRC intimamente, vou transcrever o trecho do manual do AdAdmin. Se as funcionalidades do Multiple Reporting Currencies (MRC) estão instaladas, esta opção é chamada para efetuar a manutenção do schema Multiple Reporting Currencies.
O MRC é implementado usando o esquema APPS. Isso significa que a manutenção (ou conversão) somente irá recriar as triggers MRC no schema APPS. Não é necessário validar o esquema APPS antes de executar esta tarefa.
Para maiores informações sobre o MRC, basta pesquisar por “Multiple Reporting Currencies in Oracle Applications” no Metalink.

A opção 5 do menu principal é mais fácil de todas. Aqui você coloca e retira o EBS do modo de manutenção que deve ser habilitado para otimizar o desempenho e reduzir o tempo ocioso das sessões de AutoPatch.




Não existe muito o que explicar aqui, pois a própria tradução dos itens já diz tudo.

Opção 1 ==> Ativar o modo de manutenção.
Opção 2 ==> Desativar o modo de manutenção.

Quando você escolhe alterar entre os modos de manutenções, esse status fica demonstrado no superior da tela para que o ATG consiga se localizar em qual modo o EBS está no momento. Esse modo de manutenção é utilizado para a aplicação de patches.

Ufaaaaaaaaa!! Acho que terminamos esse passeio pelo AdAdmin. O artigo ficou um pouco longo, mas acredito que valha a pena para termos um instrumento de consulta rápida sobre este utilitário.

quarta-feira, 18 de agosto de 2010

Como recompilar um form ?

Boa tarde jovens amigos !!! Macebos companheiros...

Hoje segue um dica bem simples, porém bastante usada pelos nossos destemidos amigos ATG's desse mundão por ai.

Imagine a cena: Um desenvolvedor ou mesmo um analista chega para vocẽ, mestre ATG e solicita: "Bom dia sábio ATG, recompila o form X lá na Produção para mim, por favor. O form já está no seu e-mail !!!". Obviamente o pedido vem com aquela cara de cachorro que caiu da mudança que por um segundo você até acredita na sinceridade do distinto quando te chama de sábio não é :)

Continuando... Na primeira vez que me pediram isso eu pensei: "O que é que eu tenho a ver com isso? Quer recompilar form faz você que é desenvolvedor, seu @#&*$# !!!".

Claro que ele faria isso se ele tivesse acesso direto ao servidor de produção, mas se sua empresa for minimamente organizada isso não vai acontecer. Dessa forma, fica a cargo do bom e velho ATG fazer isso. E isso é bem simples conforme abaixo:

1) Acessar o servidor de aplicação
ssh mario@servidor
su - appsprod

2) Ir até o diretório para compilação do form
cd $AU_TOP/forms/

onde:
NLS => PTB ou US (no meu caso que tenho somente as duas linguagens instaladas).

3) Se for um form que já existe e está sendo alterado, faça uma cópia antes apenas para desencargo de consciência.
cp .fmb .fmb-

4) Recompilar o form
f60gen .fmb userid=apps/ compile_all=yes

Importante: Após este processo, é criado um arquivo com o mesmo nome do form, porém com a extensão fmx.

5) Mover o arquivo de extensão fmx para a pasta de destino - fazer uma cópia do fmx anterior antes, também somente por desencargo.
cd $_TOP/forms/

Onde:
MODULO_TOP => TOP do módulo a que pertence o form (AR, AP, RI, etc)
NLS => PTB ou US

6) Refazer a operação para a outra Language, se necessário.

E pronto, jovem mancebo. O form já está recompilado, a sua fama de mestre dos magos está garantida e quem sabe até aquele chocolate que o pessoal usa para te subornar de vez em quando possa estar lá na sua mesa.

Simples e fácil.

Abraço
Mario

sexta-feira, 13 de agosto de 2010

O SysAdmin não se loga mais? Alteraram a MO: Operation Unit? O que fazer ?

Bom dia Jovens Mancebos

Como tem passado? Espero que bem... Por aqui a correria de sempre...

Hoje, vamos falar de uma pequena dica, mas de um valor inestimável.

Durante o projeto de implantação do EBS aqui na empresa, o valor de uma profile foi alterado para nulo em nível de site, impossibilitando até o SysAdmin se logar à aplicação. No nosso caso estamos trabalhando em Multi-Org.

O erro apresentado é o seguinte - Daqueles bem legais e explicativos do EBS:
Error Page
You have encountered an unexpected error. Please contact the System Administrator for assistance.
Click here for exception details.

Quer saber qual é a profile?
É a MO: Operating Unit. Ela não deve ter o seu valor alterado para NULL jamais em nível de site.

Como sou brasileiro e não desisto jamais, após recuperar o meu ambiente fiz o que está descrito abaixo para evitar o problema:
1) Um backup do valor atual da profile na base de dados:
CREATE TABLE ou_profile_site_value_MARIO as
SELECT * FROM fnd_profile_option_values
WHERE PROFILE_OPTION_ID = 1991
AND APPLICATION_ID =0
AND level_id = 10001;

2) Baseado no Note 393560.1, criei o seguinte Form Personalization para bloquear a alteração:
- Login to the application as SYSADMIN
- Responsibility : System Administrator
- Function: Profiles --> System
- Selecione no menu: Help --> Diagnostics --> Custom Code --> Personalize
- Create a new Rule

Na aba Condition, acrescentar:
- Seq : 10
- Description : MO: Operating Unit
- Level : Function
- Enabled : Check

- Especificar a condição:
- Trigger Event : WHEN-VALIDATE-RECORD
- Trigger Object : PROFILE_VALUES
-Condition : :PROFILE_VALUES.PROFILE_OPTION_NAME = 'ORG_ID' AND :PROFILE_VALUES.SITE_VISIBLE_VALUE IS NULL
- Processing Mode : Not in Enter-Query Mode

Veja a figura abaixo:




Na aba "Actions", acrescentar:
- Seq : 10
- Type : Message
- Description : MO: Operating Unit
- Language : All
- Enabled : Check
- Message Type : Error
- Message Text : You must specify a profile option value at Site level for the profile option 'MO: Operating Unit'.

Veja a figura abaixo:


Salvar o FP. Ir até a tela de profiles e tentar alterar o valor. Neste momento vale a pena uma pequena oração para garantir :)

Se tudo correr bem, a mensagem abaixo será apresentada.


E uma dica final: É uma boa manter os seguintes notes sempre à mão:
Note 387581.1 (How to Restore System Profile 'MO: Operating Unit' When it Has Been Set to Blank).
Note 393560.1 (How To Prevent the Profile Option MO: Operating Unit being set to NULL at Site Level?)

Abraço jovens
Mario

quarta-feira, 25 de novembro de 2009

Encaminhar Ordem de Compra para novo aprovador

Boa tarde, jovens mancebos

Após um pequeno período de inatividade, acho que poderemos realmente retomar os posts com mais regularidade.

Agora vamos ao que interessa. Imaginem a cena: o key-user entra louco na sua sala , olha para você com aquela cara de cachorro que caiu da mudança e fala bem assim:
- "Cara, me ajuda. Tem uma ordem de compra urgente e o aprovador não está ai. Tem como redirecionar a bendita para que eu aprove ?"

Legal, você como ATG gente fina que é, olha bem para o jovem e diz:
- "Cara, beleza mas vai te custar aquele chocolate gostoso" :)

Claro que na sua empresa isso não acontece, uma OC urgente sem aprovação.. Na minha também não, estamos apenas imaginando :)

Deixando as ironias e brincadeiras de lado, vai lá como ajudar o pequeno aflito:

Passos:
1) Logar como sysadmin
2) Em "System Administrator", procurar pela seção "Workflow : Administrator Workflow"
3) Clicar em "Status Monitor"
4) Efetuar a busca com os parãmetros abaixo:
  • Em "Workflow Type" digitar "PO Approval"
  • Em "Type Internal Name" digitar "POAPPRV"
  • Em "User Key" digitar o número da OC desejada
5) Após encontrado o Workflow desejado, marcar o Radio Button na listagem disponível e clicar em "Activity History"
6) Na coluna "Activity", localizar o processo "Approve PO Notification with PDF"
7) Ao encontrar o processo, clicar no link disponível na coluna "Reassign"
8) No campo "Reassign", buscar pelo login que o aflito mancebo te indicou
9) Deixar marcada a opção "Delegate your response"
10) Em "Comments", digitar uma mensagem se desejado para explicar o que houve
11) Clicar em "Submit" e...

Agora, basta apreciar a mensagem abaixo como o sinal de mais um sucesso do jovem e destemido ATG... No caso, você :)
The notification "OU_VISIO - Standard Purchase Order 9999 for BRL requires your approval. " in workflow "1270" has been reassigned from MANCEBO_ANTIGO to MANCEBO_NOVO.

É uma dica simples, mas bastante usada nas empresas dos outros :)

Vou começar uma série de como cadastrar usuários, responsabilidades, menus, etc. Aguardem jovens...

E qualquer dúvida, basta postar ai nos comentários...

Abraço
Mario

terça-feira, 21 de julho de 2009

Liberar organizações para usuários e responsabilidades

Bom dia

Hoje estou um pouco sem tempo, por isso aqui vai uma dica bem rápida e simples, mas bastante útil. Quem me passou os caminhos para estes pequenos setup's foi o meu amigo Fábio Prado, o maior artilheiro de casados X solteiros que eu conheci e consultor Oracle nas horas vagas.

Em caso de sistemas MultiOrg, algumas opções do OPM necessitam que seja liberado para o usuário quais organizações ele tem direito a trabalhar. Isso é bem simples de ser feito, conforme abaixo:

Responsabilidade: OPM System Administrator
- Clicar em "System Setup" -> "User Organizations"
- Pesquisar o nome do usuário
- Acrescentar as organizações desejadas

Outra dica interessante é liberar para as responsabilidades quais as organizações as mesmas podem acessar:

Responsabilidade: Inventory
- Clicar em "Setup" -> "Organizations" -> "Organization Access"
- Pesquisar o nome da responsabilidade
- Acrescentar as organizações desejadas

Como isso é um processo mais funcional do que propriamente do ATG, me corrijam se escrevi alguma barbaridade, por favor .

Abraço
Mario

quinta-feira, 16 de julho de 2009

Form ReadOnly

Bom dia

Quantas vezes o seu chefe pede para que seja liberada uma opção do EBS, como a tela de Cadastro de Clientes por exemplo, mas no final da conversa ele te fala: "Mas o fulano só pode consultar os dados, ele não pode alterar nada.".

Legal, se já existe a opção de consulta no EBS, basta liberar o acesso para o fulano. Mas e se não existe ? Neste caso você pode criar uma função passando os parâmetros para o form de maneir a deixá-lo como readonly.

Vamos ver o passo a passo:

Como Sysadmin

1) Pesquisar na responsabilidade desejada, o nome do menu utilizado na mesma
Clicar em "System Administrator" -> "Security" -> "Responsibility" -> "Define".
Pesquisar a responsabilidade desejada.
Anotar o conteúdo do campo "Menu".

2) Localizar no menu desejado, o nome da função que aciona o form
Clicar em "System Administrator" -> "Application" -> "Menu".
Pesquisar pelo nome do menu anotado no passo 1. Pesquisar pelo campo "User Menu Name" passo 2.
Se o form estiver dentro de um submenu, repetir a operação acima até encontrar a função.
Após encontrar a função desejada, anotar o nome da função que está na coluna "Function". É está função que dispara o form.

3) Localizar a função e criar uma cópia somente leitura
Clicar em "System Administrator" -> "Application" -> "Function".
Pesquisar o nome anotado no passo 2. Pesquisar pelo campo "User Function Name".
Criar uma nova função.
Copiar o conteúdo dos campos abaixo:
Aba 1 - Description
Alterar o conteúdo apresentado no campo "Function". Este é o nome da função, portato precisa ser alterado OBRIGATÓRIAMENTE.
Alterar o conteúdo apresentado no campo "User Function Name". É interessante identificar que se trata de uma função ReadOnly neste campo.
Alterar o conteúdo apresentado no campo "Description". É interessante identificar que se trata de uma função ReadOnly neste campo.

Aba 2 - Properties
Copiar o conteúdo de todas as opções desta aba.

Aba 3 - Form
Copiar o conteúdo de todas as opções desta aba.

Na coluna "Parameters" é que iremos identificar que está função deverá chamar o form de maneira ReadOnly. Para isso, basta acrescentar a seguinte string ao final dos parâmetros existentes:
" QUERY_ONLY=YES" (Sempre em maiusculo)

4) Salvar a nova função e disponibilizar a mesma em algum menu existente, ou criar um menu.

Essa é uma dica interessante e bastante utilizada no nosso dia a dia. Dica passada pelo mestre dos magos Marcio Morimoto.

Abraço
Mario

segunda-feira, 13 de julho de 2009

Alterar logo e página de login do EBS

Boa tarde

Hoje vamos ver uma forma de alterar algumas configurações básicas da página inicial do EBS e da página de login. Alterar mensagens, alterar logos, etc.

Todas estas informações estão disponíveis no metalink (Notes 275876.1 e 468971.1). Aqui segue apenas uma compilação de como fazer para:

1) Alterar profile para apresentação de mensagens e opções adicionais na página de login
2) Acrescentar a mensagem no rodapé da pagina
3) Alterar o display do campo login
4) Alterar o hint (texto) que aparece no exemplo de login
5) Alterar os logos das páginas INICIAL, LOGIN E RESPONSABILIDADES
6) Outras opções

=========================================
1) Alterar profile para apresentação de mensagens e opções adicionais na página de login

Profile: Local Login Mask

Regra para utiização: Somar os valores das opções desejadas e coloca na profile:

Hint for Username (USERNAME_HINT) ==> 01
Hint for Password (PASSWORD_HINT) ==> 02
Cancel button (CANCEL_BUTTON) ==> 04
Forgot Password link (FORGOT_PASSWORD_URL) ==> 08
Registration link (REGISTER_URL) ==> 16
Language Images (LANGUAGE_IMAGES) ==> 32
Corporate Policy Message (SARBANES_OXLEY_TEXT) ==> 64

Exemplo: Se desejar que na tela de login apareça os Hints do Username e Password, além das linguagens disponíveis, deve ser feita a conta:
Exemplo: 1 + 2 + 32 = 35

Então agora baste setar o valor em nível de site da profile "Local Login Mask" com 35.

IMPORTANTE: É necessário efetuar o bounce do APACHE.

=========================================
2) Acrescentar uma mensagem no rodapé da pagina
Na responsabilidade "Application Developer", clicar em "Messages"

Procurar por "FND_SSO_SARBANES_OXLEY_TEXT"

Alterar o "Current message text" com a mensagem desejada em PTB e US.

Essa mensagem foi criada para satisfazer as empresas que devem se adequar a uma lei americana chamada SOX (SARBANES-OXLEY). Como aqui no Brasil poucas empresas tem essa necessidade, essa mensagem pode ser utilizada para publicar mensagens curtas.

IMPORTANTE: É necessário efetuar o bounce do APACHE.

=========================================
3) Alterar o display do campo login

Na responsabilidade "Application Developer", clicar em "Messages"

Procurar por "FND_SSO_USER_NAME"

Alterar o "Current message text" com o texto desejado em PTB e US.

Se desejar alterar o display do campo senha, procurar por "FND_SSO_PASSWORD" e repetir o procedimento.

IMPORTANTE: É necessário efetuar o bounce do APACHE.

=========================================
4) Alterar o hint (texto) que aparece no exemplo de login

Na responsabilidade "Application Developer", clicar em "Messages"

Procurar por "FND_SSO_HINT_USERNAME"

Alterar o "Current message text" com o texto desejado em PTB e US.

Se desejar alterar o hint do campo senha, procurar por "FND_SSO_HINT_PASSWORD" e repetir o procedimento.

IMPORTANTE: É necessário efetuar o bounce do APACHE.

=========================================
5) Alterar os logos das páginas INICIAL, LOGIN E RESPONSABILIDADES

------------------------------
- Página Inicial
------------------------------
No servidor de aplicação

Ir até:
cd /u01/app/oracle/INSTANCE/INSTANCEcomn/portal/INSTANCE_server/

Efetuar cópia de segurança da imagem "appsmed3.gif"
cp appsmed3.gif appsmed3.gif-ORIGINAL

Copiar a imagem customizada para este local com o nome "appsmed3.gif"

------------------------------
- Página de login
------------------------------
No servidor de aplicação

Ir até:
cd $OA_MEDIA (/u01/app/oracle/INSTANCE/INSTANCEcomn/java/oracle/apps/media/)

Efetuar cópia de segurança da imagem "FNDSSCORP.gif"
cp FNDSSCORP.gif FNDSSCORP.gif-ORIGINAL

Para alterar o logo, existem duas formas:
Copiar a imagem customizada para este local com o nome "FNDSSCORP.gif"

ou

Ir até :
cd $OA_HTML (/u01/app/oracle/INSTANCE/INSTANCEcomn/html)

Efetuar backup do arquivo "AppsLocalLogin.jsp":
cp AppsLocalLogin.jsp AppsLocalLogin.jsp-ORIGINAL

Editar o arquivo "AppsLocalLogin.jsp":
vim AppsLocalLogin.jsp

Alterar a linha abaixo (comentar a linha atual e gerar uma nova linha):
from :
ImageBean imgBean1 = new ImageBean("/OA_MEDIA/FNDSSCORP.gif", FND_ORACLE_LOGO);

to :
ImageBean imgBean1 = new ImageBean("/OA_MEDIA/IMAGEM CUSTOMIZADA.gif", FND_ORACLE_LOGO);

Alinhar o logo com a mensagem "E-Business Suite":

Ir até:
cd $OA_HTML (/u01/app/oracle/INSTANCE/INSTANCEcomn/html)

Efetuar backup do arquivo "AppsLocalLogin.jsp":
cp AppsLocalLogin.jsp AppsLocalLogin.jsp-ORIGINAL

Editar o arquivo "AppsLocalLogin.jsp":
vim AppsLocalLogin.jsp

Comentar a linha 620:
// cbean2.setVAlign(UIConstants.V_ALIGN_BOTTOM);

-------------------------------
- Página das responsabilidades
-------------------------------
No servidor de aplicação

Ir até:
cd $OA_MEDIA (/u01/app/oracle/INSTANCE/INSTANCEcomn/java/oracle/apps/media/)

Efetuar cópia de segurança da imagem "FNDSSCORP.gif"
cp FNDSSCORP.gif FNDSSCORP.gif-ORIGINAL

Copiar a imagem customizada para este local com o nome desejado. Se quiser, pode sobrescrever a imagem default "FNDSSCORP.gif".

Se a imagem default for sobrescrita, os passos abaixo são desnecessários. Se não, executar:

Na aplicação, alterar a profile abaixo:

Acessar a responsabilidade: System Administrator -> Profile -> System
Profile: Corporate Branding Image for Oracle Applications
Valor alterado: .gif

IMPORTANTE: É necessário efetuar o bounce do APACHE.

Bom, basicamente é isso. Nos notes acima existem mais opções de alteração do lay-out das páginas do EBS. O mais importante é que estas pequenas alterações não são encaradas como customizações pela Oracle e por isso o seu suporte está garantido.

Abraço
Mario

terça-feira, 7 de julho de 2009

Responsabilidades por usuários

Bom dia

Dica básica, porém bem interessante para quem quer levantar os usuários e suas responsabilidades no EBS:

Como apps:

SELECT
SUBSTR(USU.USER_NAME,1,30) AS NAME,
SUBSTR(APPL.APPLICATION_SHORT_NAME,1,15) AS APPLICATION_SHORT_NAME,
SUBSTR(APPLTL.APPLICATION_NAME,1,50) AS APPLICATION_NAME,
RESP.RESPONSIBILITY_KEY,
RESPTL.RESPONSIBILITY_NAME
FROM
APPS.FND_USER_RESP_GROUPS_DIRECT URESP
JOIN APPS.FND_USER USU ON
USU.USER_ID = URESP.USER_ID
JOIN APPS.FND_RESPONSIBILITY RESP ON
RESP.RESPONSIBILITY_ID = URESP.RESPONSIBILITY_ID AND
RESP.APPLICATION_ID = URESP.RESPONSIBILITY_APPLICATION_ID
JOIN APPS.FND_RESPONSIBILITY_TL RESPTL ON
RESPTL.RESPONSIBILITY_ID = URESP.RESPONSIBILITY_ID AND
RESPTL.APPLICATION_ID = URESP.RESPONSIBILITY_APPLICATION_ID
JOIN APPS.FND_APPLICATION APPL ON
APPL.APPLICATION_ID = RESP.APPLICATION_ID
JOIN APPS.FND_APPLICATION_TL APPLTL ON
APPLTL.APPLICATION_ID = RESP.APPLICATION_ID
WHERE
RESP.END_DATE IS NULL AND
RESPTL.LANGUAGE = 'PTB' AND
APPLTL.LANGUAGE = 'PTB' AND
USU.END_DATE IS NULL AND
RESP.END_DATE IS NULL AND
URESP.END_DATE IS NULL AND
USU.USER_NAME != 'SYSADMIN'
ORDER BY
APPL.APPLICATION_SHORT_NAME,
APPLTL.APPLICATION_NAME,
USU.USER_NAME;

Aqui não está sendo considerado o SYSADMIN e somente está sendo filtrado o que é PTB. Com algumas alterações fica fácil de conseguir várias informações.

Claro que existe também um concurrent no EBS que gera um relatório com essa informação. Essa maneira acima é apenas mais uma forma de conseguir as responsabilidades dos usuários.

Até amanhã...

Abraço
Mario

Início

Boa tarde

Este primeiro post como não poderia deixar de ser é apenas uma apresentação de quem sou e o que desejo com este Blog.

Sou profissional da área de TI a 6 anos, trabalho como DBA a 3 e sou ATG a quase 2 anos. Sou Engenheiro de Software por formação, pós-graduado em Administração de banco de dados Oracle e supervisor de banco de dados de uma empresa em São Bernardo do Campo, São Paulo.

A intenção do blog é de ajudar aqueles que, como eu, estão iniciando suas atividades nesse mundo Oracle com dicas práticas e rotineiras de nosso dia a dia. As dicas postadas são dicas utilizadas por mim para resolução de problemas ou melhorias de ambiente.

Que fique bem claro desde o início que essas são experiências minhas, ou seja, o que serve no meu caso pode ser que não sirva no seu, porém a idéia é ajudar aqueles que sequer sabem por onde começar e o que pesquisar. As dicas contidas aqui vão desde coisas básicas até algumas mais avançadas. Essas dicas não são necessariamente a melhor maneira de se fazer as coisas, porém é uma maneira que foi utilizada em um momento de necessidade e apresentou resultados satisfatórios.

Não coloque nenhuma dessas dicas em prática sem antes testar a solução em seu ambiente de testes. Não me responsabilizo pelo que acontecer :)

Dicas de outros assuntos de meu interesse serão postadas neste espaço também, principalmente de Linux e PostgreSQL.

No mais espero que a nossa convivência seja agradável e produtiva a todos. Críticas e sugestões serão sempre bem vindas, desde que sejam feitas com respeito e educação.

Abraço
Mario

Postagem em destaque

[ORACLE] Useful scripts for the day-to-day life of a DBA (Part 3) - System metrics

Hello everyone.   Hope you're doing well! As I said here , I've created a repository on GITHUB to share some scripts that I like t...