Alterar o relatório ZPURE_ALV_FIELDCAT implementado nesse post, para que seja monstrado uma mensagem quando o usuário der um duplo clique.
Nessa mensagem, deve ser apresentado “Você deu duplo clique na coluna & e linha &.”, onde & deverá ser substituído pelo nome da coluna e linha onde ocorreu o duplo clique.
Implementar um relatório ALV, para mostrar todos os dados e todos os campos da tabela SFLIGHT. Também é requerido um novo campo chamado Taxa de Ocupação, onde é mostrado a relação entre capacidade máxima de passageiros e ocupação atual do vôo.
Se você não usou no seu desktop, provavelmente já usou acessando a internet ou até mesmo o servidor utilizado pela sua empresa esteja “virtualizado” e compartilhando a mesma máquina com outros servidores.
Agora imagine poder usar qualquer programa, independente de sistema operacional. Quer usar o Photoshop no Linux? Sem problemas. Quer rodar no Apple aquele programa exótico para Windows que só a empresa onde você trabalha tem, agora mesmo. [Read more →]
No decorrer dos anos a SAP vem evoluindo em vários sentidos. Vem aumentando a sua experiência na área de negócios, application server e também na parte visual.
Nesse sentido, ela evoluiu da tela verde dos terminais mainframe do R/2 para as listas (usando comandos WRITE), passando pelo ALV e agora pelo WebDynpro (WD).
O WebDynpro é a evolução natural para os browsers, levando a camada de apresentação para os browsers, saindo de cena o famoso Sapgui.
No entando, WD ainda tem muito chão para substituir por completo o Sapgui. Ainda há uma infinidade de programas que precisam ser migrados e isso levará muito tempo.
Enquanto isso, os programas baseados em dynpros (telas) tradicionais ainda ocuparão boa parte do seu tempo programando em ABAP. Por isso, apresento uma série de posts sobre ALV e como programar usando essa tecnologia. [Read more →]
É com muito orgulho que apresento o mais novo podcast da internet, o PodCafé, apresentado por mim e pelo meu amigo Alex Belle.
No Podcafé falamos basicamente de tecnologia. Programas para smartphones, videos, anúncios, testes de gadgets etc.
É interessante ver como duas pessoas, com interesses muito comum, tecnologia, podem ter diferentes visões sobre um tema e como podemos colaborar para chegarmos a uma conclusão mais interessante do que se tivéssemos sozinhos.
A idéia por trás do Podcafé é uma conversa informal. O objetivo é extamente uma conversa de café, onde estamos mais descontraídos e sem nenhuma regra. Falamos nossos pensamentos, argumentamos e muitas vezes mudamos de idéia.
A princípio pensamos em criar várias regrinhas e dar uma cara para o PodCafé. Mas não conseguimos dar cara alguma ainda, apenas deixamos as idéias fluir, como uma conversa de café.
Espero que quem nos ouvir aprenda alguma coisa e que possamos transmitir a nossa forma de agir e pensar.
Espero também que outros PodCafés apareçam e assim todos possam evoluir e aprender cada vez mais.
Segue abaixo o meu novo screencast onde eu mostro uma aplicacão usando ABAP WebDynpro. O meu objetivo não foi explicar os fundamentos ou conceitos do ABAP WebDynpro, mas mostrar o funcionamento básico.
O programa que eu fiz consiste em duas views. Na primeira view possui um campo onde o usuário digita um texto qualquer e um botão. Quando o botão é clicado, a segunda view é chamada, mostrando o texto digitado na primeira tela.
Parece um programa inocente, mas você verá como fazer os itens abaixo:
Como instrutor e blogueiro, frequentemente recebo e-mails de pessoas pedindo conselhos do que fazer com suas vidas profissionais. Eu entendo perfeitamente suas dúvidas e angústias. Aposto que a imagem que muitos de vocês devem ter de mim é que sou um profissional resolvido e decidido com minha vida profissional.
Pensa: estou á quase 10 anos no mundo SAP. Já trabalhei em muitas implementações, enfrentei inúmeros bugs e coisas esquisitas. Já programei, especifiquei, discuti arquitetura, solução funcional e até dei já pitacos em instalação de servidor. Já trabalhei com CMM, qualidade e avaliação de ferramentas. Já coordenei, planejei e até bronca já dei.
Olhando somente isso você pode pensar que já fiz de tudo. Até pode pensar como eu sou arrogante e estou esnobando aqueles que estão começando agora ou querendo começar. Lembrem-se, esse blog chama-se ABAP101. Vocês que estão começando agora ou querendo começar são exatamente o meu público.
Então por que estou dizendo essas coisas? [Read more →]
Essa semana participei de um workshop de negocionação onde tivemos oportunidade de fazer alguns exercícios. Foi interessante ver algúns conceitos sendo aplicados. O mais interessante foi negociar em inglês. Para muitas pessoas negociar já é uma aventura, agora em outro idioma, pode ser uma tarefa homérica.
No entanto, o ponto aqui não é exatamente o ato de negociar, mas quero descrever uma determinada situação que aconteceu num desses exercícios. [Read more →]
O princípio de herança nem sempre se aplica a todas as classes que possuem características comuns. Uma pessoa é capaz de Andar, assim como um carro é capaz de andar. Nem por isso eles fazem parte de algum material comum. No seu sistema você pode ter que se deparar com situações parecidas.
Você pode, por exemplo, criar um agendador de tarefas programadas que servirá para mandar uma mensagem por e-mail diariamente para todos os clientes da loja. De forma semelhante, diariamente ele também pode iniciar uma tarefa que verifica se todos os servidores estão online.
Perceba que você pode estar lidando aqui com objetos de duas classes diferentes: MensagemPromocional e VerificadorDeConectividade. As duas classes não possuem relação nenhuma a não ser pelo fato de que as duas serão manipuladas por um mesmo objeto Agendador.
O conceito de interfaces começa a ser entendido pelo que o próprio nome diz: Interface a forma em que a via de comunicação precisa tomar para estabelecer contato com o destinatário. Uma tomada comum possui uma interface que vai determinar o tipo de plug que um fio deve possuir caso queira instalar-se nela. Se o plug não for compatível com a interface da tomada, ele vai precisar ser adaptado. Existe a interface de dois pinos, a interface de duas placas de cobre, e a interface 2p+T que inclui um terceiro pino para o fio-terra, para não citar ainda outras interfaces. Se o plug em questão não implementar a interface exigida pela tomada, ele não vai conseguir se plugar a menos que utilize um adaptador que implemente esta interface.
E através desta interface você é capaz de ligar um número variado de equipamentos que possuam plugs que a implementem. Desde forno elétrico, fogão, geladeira, televisor, aparelho de som, equipamentos de ginástica, compuadores, carregadores de celular, etc. Consegue enxergar a dimensão?
Assim também é na OOP. As classes não são obrigadas a herdarem umas das outras para serem semelhantes. Uma Interface pode ser criada, que defina todas as operações comuns que as classes que a implementem precisem ter, e então basta implementá-las nas classes para que elas possam ser plugadas por outras.
E é aí que a diversão do polimorfismo realmente começa. Digamos que você tenha uma interface ITarefaAgendada que implemente um método ExecutarTarefa. Implemente esta interface nas classes MensagemPromocional e VerificadorDeConectividade, assim ambos precisarão pussuir o método ExecutarTarefa. Imagine que o método quando o Agendador disparar, irá procurar por todas as terefas agendadas e em cada uma irá disparar o método ExecutarTarefa. Isso tudo sem saber (e nem ligar) se a tarefa é uma MensagemPromocional ou um VerificadorDeConectividade.
Agora sim, você está começando a compreender o grande universo do polimorfismo.