SAP on HANA
Está na hora de nossos leitores entrarem em contato com HANA e o entender o que isso mudará em suas vidas de ABAPers. Preparado para o SAP on Hana?
Está na hora de nossos leitores entrarem em contato com HANA e o entender o que isso mudará em suas vidas de ABAPers. Preparado para o SAP on Hana?
Assista o vídeo da evolução do editor ABAP desde de 1992. A evolução para o Eclipse é uma das estratégias mais acertadas da SAP… mas como era antigamente?
Na busca pela solução de um problema, debugando, debugando e debugando novamente, me deparei com a criação dinâmica de objetos. Estudando mais a fundo, eis que surge assunto para mais um post! Afinal, quanto mais dinâmicos forem os programas e API´s, melhor será sua performance e re-usabilidade. O que faz com que consigamos criar o objeto / chamar o método dinamicamente, é a utilização de uma tabela, na qual informamos todos os parâmetros necessários (seja de importing, exporting, changing, etc), ou seja, podemos popular esta tabela de acordo com nossa necessidade em determinado ponto do programa.
Uma das técnicas de programação mais incompreendida e evitada, também é umas das mais poderosas, a Recursividade. Eu precisei usar a recursividade apenas uma única vez na vida com ABAPer e o resultado foi muito interessante. Nesse texto eu vou resolver um problema muito simples usando recursividade, exponenciação.
Depois de falarmos do Singleton, está na hora de falarmos de outro padrão de projeto, o Factory. O Factory é mais difícil de entender do que o Singleton. Mais do que isso, mais difícil de mostrar alguma aplicação prática. Nesse post eu mostrarei as duas coisas, explicar o funcionamento do Factory, bem como sua aplicação.
Estava procurando algum assunto para escrever, e uma luz do céu e-mail chegou com uma dúvida e que em todas as turmas da Academia ABAP tem, como importar ou exportar uma tabela interna para um módulo de função ou método. A solução pode ser respondida com uma simples frase: “Use um Table Type (Categoria de Tipos)”. Só com isso já seria suficiente para você sair do outro lado, mas fazendo jus ao “101” do nome do site, vou explicar passo a passo como fazer em um módulo de função. No próximo post, eu explicarei como fazer em um método.
Quando eu explico tratamento de exceção na academia ABAP, o pessoal não dá muita bola, até porque os alunos ainda estão tentando se recuperar das aulas de polimorfismo e interface, mas entender o funcionamento dela é vital para desenvolver boas soluções usando orientação a objetos (não somente para aprender a escrever a palavra exceção). Nesse post, vou explicar dois conceitos ligado ao tratamento de exceções baseado em classes, propagação e comando CLEANUP.
O que é um programa ABAP orientado a objetos? Se um programa usa somente CALL METHOD e nenhum PERFORM, então trata-se de um programa orientado a objetos? Acredito que não. O uso de sintaxe de orientação a objetos não é evidência suficiente de que o programa foi pensado na forma de objetos trocando mensagens entre si. Trago para vocês dois pogramas com saídas idênticas, mas um usando uma “orientação a objetos” capenga e outro que considero uma melhor forma de resolver o problema pensando em objetos.
Então você já aprendeu como declarar uma classe, chamar um método e aplicar os conceitos de herança e polimorfismo (já né?). Parabéns você completou a primeira parte do aprendizado em programação orientada a objetos. Agora só falta mais uns 95% para poder ser considerado um Mestre Jedi em Orientação a Objetos. Vamos ganhar mais um ponto porcentual e falarmos de Singleton.
Sem dúvida, uma das atividades mais realizadas por um programador ABAP é a emissão de relatórios. Como não estamos na era dos dinossauros, “não conhecemos” o relatório “write” e vamos direto aos “ALV’s”. Este post tem como objetivo exemplificar algumas funcionalidades de um ALV OO (Orientado a Objetos), são elas: Exclusão de botões do toolbar de um ALV OO Inclusão de botões no toolbar do ALV Utilização de eventos Como desabilitar um botão (ele aparece, mas não é possível clicar) Geração de um ALV sem necessidade de criação de um container Veja também: Como encontrar ícones Utilização de interfaces