Olá, jovens!
No nosso dia a dia de trabalho, muitos pedidos são feitos pelos nossos superiores ou pelos usuários sem que eles possam imaginar o transtorno que isso pode gerar, ou mesmo o trabalho que isso pode dar para ser executado.
Imagine a seguinte situação: sexta-feira, véspera de feriado à tarde, e seu chefe te pede algo fácil, segundo ele. Pede para que seja liberada uma opção do E-Bsiness Suite (EBS), como a tela de Cadastro de Clientes, para determinado login.
Você, que estava apreensivo com a frase "É algo fácil" dita pelo seu chefe, pensa aliviado: "Ufa, achei que seria algo mais complicado... Realmente o chefe pegou leve..."
Porém, ao se afastar da sua mesa, seu chefe se volta para você e solta aquela frase que você não gostaria de ouvir: "Ahhhhhhh, me esqueci de dizer!!!!"
Você então respira fundo, conta até 300 e sorri, afinal ele é seu chefe e pode esquecer o que quiser ao te passar uma informação. "Me esqueci que o fulano só pode consultar os dados, ele não pode alterar nada. É fácil isso, né?"
Lógico que é fácil. Se já existe a opção de consulta no EBS, basta liberar o acesso para o fulano e realmente isso será tranquilo. Mas e se não existe? E se o form não é ReadOnly?
Nesse caso, após tomar aquela xícara de água para acalmar, podemos utilizar uma dica que meu amigo Marcio Morimoto me passou e criar uma função passando os parâmetros corretos para o form de maneira a deixá-lo no modo somente leitura.
Para isso, basicamente, iremos nos logar como SysAdmin, verificar qual é o menu original (CORE) que "chama" a função para abrir o form de cadastro de clientes. Encontrado esse nome, basta criarmos uma nova função com os parâmetros de readOnly e, no menu desejado, direcionar para a execução dessa nova função. Fácil, fácil não é mesmo?
Vamos ver o passo a passo.
1) Se logar ao EBS, como SysAdmin.

- Em Login, digitar o login do SysAdmin.
- Em Senha, digitar a senha do SysAdmin.
2) Selecionar a responsabilidade adequada.

Clicar em "System Administrator".
3) Selecionar a opção para encontrar as definições de uma responsabilidade.

Clicar em Security.
Responsibility.
Define.
Importante: Neste momento, serão abertas duas janelas (ou abas) em seu navegador, além da tela do sistema EBS. Se elas forem fechadas, farão com que o sistema EBS feche também a tela do sistema.
4) Verificar, em alguma responsabilidade CORE, o nome do menu de clientes.

Clicar em F11 e buscar a responsabilidade que possui acesso ao form.
Importante: No nosso caso, podemos usar o "Gerente do Public Sector Receivables".
- Anotar o conteúdo do campo "Menu". Neste exemplo, "AR_NAVIGATE_GUI".
Importante: Neste passo, não existe mágica. Você terá que saber pelo menos uma responsabilidade que tenha acesso ao cadastro de clientes. Geralmente a responsabilidade de "Super Usuário" ou "Gerente" CORE do módulo tem esses acessos.
5) Ir até o form de consultas de menus.

Clicar em Application.
- Menu.
6) Pesquisar o menu anotado no passo 4 e a função desejada.

- Pesquisar, no campo "User Menu Name", o nome do menu anotado no passo 4.
Importante: 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". É essa função que dispara o form.
No nosso exemplo, "Função:Padrão de Clientes".
7) Ir até o form de consulta de funções.

Clicar em Application.
- Function.
8) Localizar a função CORE pelo nome anotado no passo 6.

- Pesquisar pelo campo "User Function Name".
9) Criar uma cópia somente leitura.

- Criar uma nova função clicando na linha de baixo.

Copiar o conteúdo dos campos abaixo:
Aba 1 - Description.
- Alterar o conteúdo apresentado no campo "Function". Esse é o nome da função, portato precisa ser alterado OBRIGATÓRIAMENTE. Geralmente acrescento "_RO" ao nome CORE.
- Alterar o conteúdo apresentado no campo "User Function Name". É interessante manter a descrição original e identificar que se trata de uma função ReadOnly nesse campo.
- Alterar o conteúdo apresentado no campo "Description". É interessante manter a descrição original e identificar que se trata de uma função ReadOnly nesse campo.

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

Aba 3 - Form.
Copiar o conteúdo de todas as opções dessa aba, exceto da coluna "Parameters".
Importante: Aqui jovens veem o pulo do gato para transformar o form em Readonly. Na coluna "Parameters" dessa aba é que iremos identificar que essa 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"
Muito Importante: Sempre em maiúsculo, sem espaço entre o "=" e as palavras.
Veja no nosso exempo:
Parametro original:
ADDR_MODE=STANDARD CUST_FIRST_CANVAS=CUST_CLASS ADDR_FIRST_CANVAS=ADDR_SU CUST_RECORD_COUNT=1
Parametro readonly:
ADDR_MODE=STANDARD CUST_FIRST_CANVAS=CUST_CLASS ADDR_FIRST_CANVAS=ADDR_SU CUST_RECORD_COUNT=1 QUERY_ONLY=YES
- Salvar a nova função (CTRL + S).
11) Ir até o form de consultas de menus novamente.

-
Clicar em Application.
Menu.
12)
Pesquisar o menu anotado no passo 4 e a função desejada.
- Pesquisar, no campo "User Menu Name", o nome do menu anotado no passo 4.
Importante: Se o form estiver dentro de um submenu, repetir a operação acima até encontrar a função.

13) Agora basta alterar a função CORE pela nossa função customizada.

- Pesquisar pela nossa função customizada (Read Only).

Após encontrar a função desejada, alterar para ser chamada a nova função criada no passo 9.
No nosso exemplo, "Padrão de Clientes - ReadOnly".
Importante: Neste caso, como estamos apenas criando um exemplo, estou alterando o menu CORE para utilizar a nova função. Eu particularmente não recomendo essa prática, ou seja, eu não altero nada do que é CORE do EBS. Em se tratando de uma situação real, eu criaria uma cópia do submenu que chama a função, criaria uma responsabilidade ou iria inserir mais uma opção de menu com esse submenu e, então, liberaria essa opção para o usuário.
Em um próximo post, veremos como se faz isso, ok ?
Feito isso, basta ir até a nova consulta e tentar alterar algum dado. Isso eu deixo com vocês.
Para encerrar, gostaria de agradecer algumas pessoas que ficaram sem agradecimentos no primeiro post, mas que contribuíram para este meu caminho da mesma forma como os demais: Max Moreno, Marcio Vigato, Dênis "Vamp" Ruiz , Donisete Santos (Donni), Ricardo Almeida (Ricardinho), João Lorite e Cristina Backer.
Não posso me esquecer também de mandar um abraço para um cara que me ensinou os primeiros passos no EBS, inclusive me ensinou esta dica que compartilho com vocês hoje: Mestre Marcio Morimoto.
E como não podia me esquecer disso, deixo algo para pensar:
Para quem tem pensamento forte, o impossível é só questão de opinião.E disso os loucos sabem...
Abraço e até a próxima.














8 Comentários
Qual a sua opinião?