Transações em ABAP
Sobre a linguagem ABAP
ST05 - Trace Banco de Dados - Saiba exatamente de onde vem os dados no SAP!
Uma ferramenta muito importante no SAP é a ST05, o trace de banco de dados. Com ele conseguimos mapear de onde estão vindo as informações em alguma transação específica.
Muitos funcionais ( e este é um erro bem comum ) acreditam que apenas dando o F1 no campo já conseguem saber a informação:
O grande problema é que o SAP chama tanto tabela como estrutura de "Table". Assim quando o funcional vai especificar algo para o Programador acaba cometendo o erro de achar que esta estrutura é uma tabela:
Para saber exatamente de onde o sistema está consultando os dados temos a ST05. Vamos a um exemplo bem simples. Vamos descobrir onde estão as informações das tabelas no SAP. Afinal o SAP precisa guardar em algum lugar o nome das tabelas existentes.
Vamos entrar na SE11:
Antes de qualquer coisa vamos na transação ST05 (/ost05)
Nesta versão de SAP temos esta "cara" da transação. As outras são similares.
Vamos ativar o trace:
E vamos voltar para a outra tela (SE11) e apertar F4 no campo de tabelas:
Voltando agora na ST05, vamos desativar o Trace:
Processar!
Aqui temos todas as tabelas que foram acessadas deste a ativação e desativação do trace.
Se procurarmos um pouco na coluna de ObjectName encontraremos as tabelas onde são guardadas todas as tabelas do SAP.
Este procedimento pode ser feito pra qualquer transação standard, em qualquer processamento. Qualquer geração de documento, contabilização, etc.
Assim você saberá exatamente de onde aquela transação está buscando as informações do SAP.
Gostou? Aprenda mais com a AbapFox!
AbapFox - Faça o Sap Falar.
Existe uma biblioteca no SAP chamada OLE que permite fazer varias coisinhas legais, como mexer com EXCEL e WORD. E outras coisinhas também como falar!
Este exemplo é bem simples e legal.
Quer abrender ABAP? Então venha para a www.abapfox.org
Sem DUMPS? - Como Garantir que seu código não de Dump em aplicações Críticas
Sabe aquela implementação da Badi na NF que não pode dar nenhum erro de sintaxe? Caso contrário toda a produção para?
Pois é, isso é muito arriscado e se algum elemento de dados ou qualquer outra coisa não subir direito a produção inteira pode parar e a tensão sobe.
Para evitar este tipo de situação existe uma forma simples mas muito eficaz para fazer com que se existir algum erro, o código "pule" esta etapa e não gere nenhum DUMP.
A Primeira coisa a fazer é encapsular o que você quer fazer em uma função. Porque disso? por que a função não é validada sintaticamente. Isso quer dizer que ela já não vai dar algum erro na sua assinatura (nos seus parâmetros) se eles estiverem com algum erro.
A segunda é encapsular a primeira função em uma função standard que verifica o grupo de função se há algum erro de sintaxe. Assim, você só executará a sua função se ela estiver em um grupo de função sem erro de sintaxe.
E claro um Try/Catch para algum erro na assinatura da primeira função. Segue o código:
Dessa forma você tem a garantia que seu código nunca vai parar o sistema.
No parâmetro i_global_program da Função RS_SYNTAX_CHECK, entre com o programa global do grupo de função da sua função.
Gostou da publicação? Então clica na raposinha e curta nossa fanpage \o/
Quer aprender ABAP definitivamente, sem precisar sair de casa?
Acesse: www.abapfox.org
AbapFox Game - Chess - Projeto no GitHub
Quer aprender a fazer um Xadrez em Abap? Veja no video abaixo:
Projeto no GitHub
Gostou da publicação? Então clica na raposinha e curta nossa fanpage \o/
Quer aprender ABAP definitivamente, sem precisar sair de casa?
Acesse: www.abapfox.org
Assinar:
Postagens (Atom)
0 comentários: