abap para bw

Download Abap Para Bw

Post on 05-Sep-2015

8 views

Category:

Documents

5 download

Embed Size (px)

DESCRIPTION

Abap Para Bw

TRANSCRIPT

  • ABAP para Consultores de BW O objetivo deste curso complementar o profissional de BW com o conhecimento da linguagem ABAP, bem como dar uma viso generalista dos principais processos do R/3.

    Eu, como ex-consultor de ABAP, vejo a grande dificuldade em outros consultores que no so originrios de ABAP, em resolver questes relativamente simples, ou at mesmo proporem solues mais complexas do que a que poderia ser dada.

    Outro tema importante do curso ser a viso bsica de alguns processos do R/3,

    que tambm uma grande barreira para o consultor de BW.

    No mundo SAP o conhecimento verticalizado, por exemplo, um especialista no processo de vendas s conhece o seu mdulo, quando muito sabe um pouco da parte contbil ou outro processo que interaja com o seu, tendo grande dificuldades em solicitar novos desenvolvimentos ou mesmo ampliaes ao standard do produto. J o desevolvedor ABAP conhece especificamente a linguagem, fazendo por muitas vezes o papel investigativo de como o produto funciona e complementando o funcional. Esta forma de trabalho funciona de certa forma bem para os projetos de ambientes transacionais, at porque o mercado (clientes e consultorias) j sabe dos perfis dos profissionais e os projetos j contemplam ambos profissionais, funcionais e programadores ABAP.

    Entretanto, nos projetos de BW, geralmente o consultor est sozinho, tendo que desenvolver a soluo desde a parte da extrao dos dados, passando pela modelagem, at efetivamente o desenvolvimento das queries e apresentao Excel ou Web., ou seja, o consultor deve ser um pouco funcional, um pouco DBA, s vezes conhecer um pouco de VBA e se bobear ser um pouco Web designer.

    Acredito que esta estratgia tenha sido feita para diminuio dos custos do

    projeto, de qualquer forma, cada vez mais a realidade, e os profissionais devem se adequar a ela se quiserem se sobressair aos demais, em especial, nos momentos de mercado menos aquecido.

    Quando nos deparamos com o BPS, verificamos uma exigncia maior ainda de

    conhecimentos de programao, alm de uma viso generalista do sistema, em especial na implantao de projetos de oramento, onde todos os processos da Corporao so abordados. O que pretendo no curso no ensinar ABAP, mas demonstrar a sua importncia e quem sabe fazer com que voc goste de programar. Espero que ao final do curso ou mesmo daqui a algum tempo, voc possa falar como eu: Eu adoro ABAP.

  • 1. A linguagem ABAP O ABAP uma linguagem proprietria da SAP que est enraizada em todas as suas ferramentas, seja o seu carro chefe o R/3, bem como os novos aplicativos, BW, CRM, APO, etc., portanto, muito difcil imaginar que o ABAP seja substitudo pelo JAVA, por exemplo, como muitos apregoavam. Como veremos mais adiante o ABAP d muitas vantagens aos desenvolvedores no ambiente SAP, sendo tambm um dos motivos da sua longevidade e continuidade certa. Por exemplo, para se fazer um relatrio simples basta colocarmos os campos de critrios de seleo, selecionar os dados de uma ou mais tabelas e formatarmos uma estrutra de sada para uma funo ALV. Em que pese, como consultores de BW, s utilizarmos o ABAP em alguns pontos especficos, tais como exits, regra de trasnsformaes, etc, importante conhecermos o ambiente ABAP como um todo, at porque ampliando nossos conhecimentos poderemos propor solues que passem por um desenvolvimento anterior a fim de facilitar as coisas no BW. Antes de iniciarmos a programar um pouquinho, tomem nota de alguns detalhes da sintaxe:

    - Toda instruo deve terminar com ponto(.) - Comentrios so escritos com asterisco(*) no incio da linha ou com aspas() no

    meio da instruo - As strings devem estar entre apstrofes(). - Um comando pode ser continuado com dois pontos(:). Exemplo:

    DATA: dia type d, mes(2) type n.

    Ao longo do curso estaremos vendo comandos e sintaxes da linguagem.

    1.1. Tipos de programas

    Para cada necessidade dentro do sistema deve-se escolher um tipo de programa especfico, por exemplo, se queremos desenvolver um programa que far um clculo qualquer e atualize dados em uma tabela devemos escolher um programa executvel, j se queremos um programa onde o usurio entre com dados, tendo uma interface bem amigvel, deve-se escolher o Module Pool.

    Vejamos quais as principais opes disponveis...

    1.1.1. Programa Executvel (Report)

    Um programa executvel, mais popularmente chamado de Report, sem dvida o campeo de vendas nos ambientes transacionais, pois usado na elaborao de relatrios, que quase sempre representa boa parte dos GAPs do produto standard, alm permitir a execuo em background, podendo-se escalonar periodicamente a sua execuo.

  • Para se criar um Report podemos utilizar a transao SE38 ou a SE80.

    Transao SE38. Um programa no standard deve iniciar com Y ou Z. Clique no boto Criar

  • O Editor ABAP. Agora com o programador... e com o help (tecla F1) que o salvador da ptria dos programadores que no lembram sintaxe dos comandos.

    Um Report deve estar estruturado em eventos: INITIALIZATION : normalmente usado para preenchimento inicial de parmetros. START-OF-SELECTION: pode estar implcito, sendo a parte do cdigo que executada aps o preenchimento de parmetros, se houver. END-OF-SELECTION: Opcional para indicar a finalizao do programa, normalmente os programadores fazem no prprio evento anterior.

    Para no ficar to terico, vamos desenvolver nosso primeiro programa. Especificao 1:

    Saudar ao usurio com Bom dia, Boa tarde ou Boa Noite, conforme horrio do sistema. Codificao 1 Especificao 2: Saudar da mesma forma que na verso anterior, porm podendo-se modificar a hora do sistema. Codificao 2 Especificao 3:

  • Sofisticar para saudar a um cliente especfico. A tabela de clientes encontra-se na tabela KNA1. Campo para saudao NAME1. Codificao 3 Especificao 4: Idem a especificao anterior, porm deve-se permitir saudar a um conjunto de clientes. Codificao 4

    1.1.2. Include

    Um include apenas um pedao de cdigo dentro de um programa principal, podendo ser aproveitado em mais de um programa. Abordaremos esta questo no tpico Importncia da modularizao.

    1.1.3. Grupo de Funes

    Um Grupo de Funes, como o prprio nome sugere, serve para agrupar funes. As funes so executadas (chamadas) por um programa principal, recebendo deste dados de entrada e devolvendo dados de sada.

    Para se criar um Grupo de Funes utiliza-se a transao SE80, e as funes

    podem ser administradas na SE37.

    SE80

  • Um grupo de funes composto por um programa bsico, que leva o prefixo

    SAPL mais o nome dado na criao, um include com o sufixo TOP para declarao de variveis globais com o sufixo UXX que conter(o) a(s) funo(es)

    Duplo- Click

  • Uma configurao importante dentro da funo o Tipo de processo. Com a opo Modulo de acesso remoto, temos a famosa RFC (Remote Function Call), que pode ser chamada por outro ambiente, por exemplo, posso do BW atravs de um programa principal fazer uma chamada a uma funo que esteja no R/3.

    As demais abas completam a configurao da funo:

    Importao: recebe os dados do programa chamador. Esportao: retorna os dados ao programa chamador Modif: recebe os parmetros como entrada podendo ter os valores alterados durante a execuo da funo. Tabelas: da mesma forma que a aba anterior para variveis que contem mais de um registro, as chamadas tabelas internas. Excees: Possibilita o retorno de um tio de erro. Texto fonte: Editor para codificao ABAP. Fazendo um exemplo prtico: Dada uma data qualquer, retornar o dia til mais prximo de acordo com um calendrio especfico. Obs. A funo standard BKK_CHECK_HOLIDAY retorna se uma data dia til ou no. Codificao 5

    Funes que tem o prefixo BAPI so RFCs desenvolvidas pela SAP para permitir que se faa o input de dados nas transaes standard.

  • 1.1.4. Pool de mdulos (Module Pool)

    O Module Pool permite ao desenvolvedor fazer o desenho de telas mais elaboradas para o usurio. basicamente um container de telas, onde cada tela tem os seus componentes e a lgica de processamento.

    A maioria das transaes standard so feitas atravs deste tipo de programa, sendo importante entender o seu funcionamento, em especial, quando queremos investigar o que o standard est fzendo.

    A grande desvantagem que ele s executado de forma on-line, no permitindo, portanto, o escalonamento peridico ou mesmo eventual.

  • Acesso ao desenho grfico da tela

  • Voltando na lgica de Processamento, temos:

    Componentes de tela

  • Como vemos h dois eventos apenas no Module Pool, o BEFORE OUTPUT que executado antes da tela ser exibida e o AFTER INPUT que executado sempre que o usurio aciona um comando na tela (clica num boto, tecla Enter, etc).

    1.1.5. Classes

    A orientao a objeto algo mais recente dentro do SAP e talvez por isto muitos desenvolvedores acostumados programao convencional no a utilizem, entretanto, a sua utilizao por parte da prpria SAP cada vez maior. Um exemplo o CRM que praticamente todo construdo com orientao a objetos.

    Atravs do Class Builder (SE24) podemos administrar as classes. O comando CREATE OBJECT instancia um objeto dentro de um programa.

    1.2. Ampliaes do standard

    Sem dvida o grande sucesso do SAP se d pela possibilidade de adequar os programas standard s necessidades do cliente, so as famosas User-exits. Elas so uma vlvula de escape no processo padro, possibilitando atravs da programao especfica fazer pequenas alteraes no processo ou at mesmo mudar completamente o rumo da operao.

    Ns de BW j convivemos bastante com as user-exits, em especial, na extrao de dados, onde quase sempre um datasource standard tem que ser ampliado, ou ainda na execuo das queries, onde quase sempre temos as