sexta-feira, 31 de outubro de 2008

Principais Comandos ABAP em um Report

Um Report ABAP tem a seguinte estrutura:

Declarações

Como o próprio nome diz no primeiro item são apenas declarações de variáveis, tabelas internas, estruturas. Qualquer dúvida você pode consultar o post sobre Tipo de Dados que fiz. Já no segundo item temos a Tela de Seleção como o nome diz é onde você defina uma tela com alguns campos onde o usuário pode escolher os dados que serão apresentados, por exemplo data, numero de documento, entre outros, abaixo você pode ver um exemplo de tela de seleção e seu código ABAP.

Eventos

Como já disse anteriormente um Report/Programa Executável tem alguns eventos que sempre são chamados, os principais são:

  • INITIALIZATION – Antes de mostrar a tela de Seleção do programa passa por este ponto antes, então aqui pode ser utilizado para iniciar algumas variáveis, e alguns outros checks.
  • AT SELECTION-SCREEN – Após alguns comandos do usuário passa aqui, pode-se testar o que o usuário digitou.
  • START-OF-SELECTION – Toda tela de seleção tem um botão, conforme você pode ver acima na imagem é um relógio com um check verde, toda vez que apertar ele, é onde você manda executar, portanto ele vai passar aqui para você começar a tratar os dados e apresentar ao usuário.
  • END-OF-SELECTION – Após o START-OF-SELECTION o SAP chama este evento.

Subrotinas

Nas Subrotinas você crias seus FORMs. FORM é um bloco de código ABAP que você pode chamar de outros lugares. É utilizado para modularizar o código e facilitar a manutenção e diminuir a digitação. Em outras lingaguens de programação é chamado de Métodos, Funções, Procedure. Por exemplo você em várias partes do programa somar o valor de uma DATA + 10 dias ai você cria um form soma_data e sempre que chamar ele vai fazer o calculo, evitando ter que reescrever várias vezes o mesmo código, e no caso de ter que mudar a soma de 10 dias para 15, você muda em só um lugar.

O Editor ABAP

Para criar um programa ABAP você precisa utilizar o Editor ABAP, para acessá-lo através do menu principal do SAP navegar conforme abaixo:


Menu SAP -> Ferramentas -> ABAP Workbench -> Desenvolvimento -> Editor Abap

Ou então digitar SE38 na barra de comando do SAP conforme abaixo:

Agora ira abrir a tela abaixo, onde para criar um programa basta digitar um nome e apertar em Criar, Atenção conforme dito a alguns posts atrás os nomes de programas no SAP devem começar com Z ou Y.

Apertando em criar vai aparecer a tela abaixo, onde você deve preencher o Titulo e o Tipo do Programa, normalmente o TIPO é Programa Executável ou Programa Include, a maioria dos utros não são criados pela SE38, apesar da SAP permitir. Após preencher aperte em Gravar

Após está tela vai aparecer uma tela pedindo para inserir um Pacote, a principio vamos ignorar isto, apenas aperte em Objeto Local. Pronto aqui está o inicio do seu Primeiro Programa ABAP

Nesta tela temos tudo que precisamos para fazer um programa ABAP, abra até aqui e vá testando os botões Menus, no meu próximo Post vamos ver os principais comandos utilizados num Programa Executavel/Report.

segunda-feira, 20 de outubro de 2008

ABAP - Tipos de Programas

No ABAP temos 9 tipos de programa, conforme imagem.

O mais utilizados são Programa Executável(Report), Pool de Módulos(Module Poll ou ONLINE), e Grupo de Funções. Vamos ver um detalhamento das características de cada um.
  • Executável/Report - como seu próprio nome diz, estes programas são utilizados para fazer relatórios de apresentação de dados, ou então executar tarefas em background/job. Este são os unicos programs que podem ser chamados através do comando SUBMIT, e também sempre que executados passam por eventos como INITIALIZATION, START-SELECTION, etc.
  • Module Poll/Online - são bem similares aos Reports exceto pelo fato de não ter os eventos e não funcionam através de SUBMIT. Esses programas são mais utilizados para interface com o usuário com telas, mensagens, etc. Eles podem ser praticamente substituido pelos Reports, basta usar Includes nos reports, porém não é indicado. Esses programas o podem ser chamados através de transações associada a alguma tela do programa.
  • Grupo de Funções - Esse é o unico programa que pode conter Modulo de funções, um grupo de função nada mais é do que um conjunto de Funções(que também é um tipo de programa mas não está na imagem por ser feito em outra transação). Esse tipo é usado para fazer códigos reutilizaveis por vários programas, por exemplo a função standard do SAP POPUP_TO_CONFIRM onde apresenta uma mensagem POP-UP de confirmação para o usuário.
Como eu disse esses são os 3 mais utilizados, o que mais se utiliza mesmo são reports, que são muitos utilizados para fazer relatórios e também para pegar dados de um TXT e inserir nas tabelas SAP, já funções é usado bastante as Standard do SAP sempre tem alguma pra auxiliar você a fazer algo mais rápido no Report/Module Poll, e Module Poll também são muito utilizados mas não tanto qto um Report, nem sempre tem um programa com bastante interação do usuários e quando tem tem que dar a sorte de ser o ABAPER escolhido pra faze-lo.

domingo, 19 de outubro de 2008

Tipos e Declarações de Variavéis

Todas as variavéis em ABAP tem que explicitamente declaradas. A declaração de variavéis começa sempre com o comando DATA. A sintaxe tem que ser assim:
DATA TYPE .
Os tipos padrão do SAP são:
No tipos C e P é necessário declarar o tamanho da variavél, se não declarar é considerado tamanho 1. O tamanho é declaro entre parênteses junto com o nome da variável, exemplo data var(10) type c.

As datas são armazenadas da seguinte maneira , então 20081019 é igual a 19/10/2008.

Tem 2 tipos muito usados no ABAP, que são:
  • Tabelas internas como o próprio nome diz são como se fosse tabelas do banco de dados, com vários registros e vários campos, como se fosse uma Matriz/Array NxN.
  • Estruturas é como se fosse 1 registro de uma tabela interna, seria uma Matriz/Array 1xN.
Declaração de Estrutura/Tabelas Internas
O código abaixo está declarando uma estrutura com 2 campos, para acessar esses campos no ABAP, é utilizado <nome_estr>- <campo_estr> conforme o comando WRITE utilizado abaixo.
DATA:
Begin of estrutura,
campo1 type d,
campo2 type i,
end of estrutura.
WRITE: estrutura-campo1, estrutura-campo2.
Agora você vai me dizer não teria que finalizar cada linha com "."(ponto-final), não necessariamente, existe está maneira acima pra evitar repetir os comandos, no caso eu evitei de escrever DATA no início de cada linha, para fazer isto basta usar o ":"(dois-pontos) após o comando ABAP e colocar ","(virgula) para separar cada comando.

No caso de Declaração de Tabela interna é bem parecido, conforme você pode ver abaixo:
DATA:
Begin of tab OCCURS 0,
campo1 type d,
campo2 type i,
end of tab.
Como você pode ver a única diferença é o OCCURS 0 que indica que vai ter mais de uma linha, no lugar do 0 você pode definir qualquer número, este número é utilizado pelo SAP pra reservar área na memória.

Para acessar dados numa tabela interna seria necessário um loop para ver cada linha, mas a maneira é a mesma de uma estrutura <nome_tab>-campo_tab>

ABAP - O começo

ABAP (Advanced Business Application Programming) é uma linguagem de programação de alto nível desenvolvida pela empresa de software SAP. É a principal linguagem utilizada no produto mais conhecido desta empresa, o SAP R/3, um software ERP. O ABAP tem uma sintaxe semelhante ao COBOL.

Nas versões mais nova do SAP, como a Netwaver, já é possivel programar em ABAP e/ou JAVA, aos poucos a SAP está adotando o JAVA para programação no SAP.

Antes de aprender ABAP, assim como qualquer outra linguagem de programação, é bom ter conhecimento em Lógica da Programação. Quem ainda não conhece nada recomendo dar uma olhada em alguns artigos, um que achei muito bom é este PDF que enontrei no google, também tem muitos outros é bom dar uma olhada no google que sempre tem muita coisa.

Sintaxe ABAP
No ABAP não tem muitas regras. Você pode escrever tudso em uma única linha. As regras básicas que devem ser respeitadas são:
  • Separar as palavras com pelo menos 1 espaço.
  • Ao fim de cada declaração inserir um "."(ponto-final)
Os textos literais tem que ser apresentados entre aspas simples, exemplo 'Isto é um texto literal.'. Em outras linguagens são conhecidos como String. Caso queira deixar este texto em duas linhas deve-se incluir um & ao final da primeira linha, exemplo:
USERPROMPT = 'Por favor, aguarde' &
'enquanto processamos seu pedido.'.
O ABAP não é case-sensitive, ou seja, pode escever os comandos tanto em maiusculo e/ou minusculo que o interpretador irá reconhecer.

Comentários
Existe duas possibilidades de fazer comentario no ABAP, um *(asterisco) no início da linha, ou umas "(aspa duplas) em qualquer parte do código. Exemplo:
***************************************
* Program: BOOKINGS
* Author: Joe Byte, 07-Jul-2007
***************************************
Report ZTEST.
DATA: variavel. "Variavel teste
Toda parte azul no código acima é considerada comentário.

Nome do Programa
Por padrão todo programa que não faz parte dos programas padrões da SAP devem começar com Z ou Y. Você não vai conseguir criar um Programa chamado relatório_contas só é possivel um zrelatório_contas ou yrelatório_contas. Isto existe para diferenciar os programas da SAP.

Está restrição acontece para todos os Objetos dentro do SAP Programas, Tabela, etc.

Muitas empresas adotam nomenclaturas padrão por exemplo ZMMTTXXXX, onde:
  • Z - padrão
  • MM - módulo SAP que corresponde (MM, FI, SD, ...)
  • TT - Tipo do objeto (programa, tabela, função, exit, etc)
  • XXXXX - nome do objeto ou código tipo 0001, 0002
Isso varia em cada consultoria.

sexta-feira, 17 de outubro de 2008

Instalação MINI-SAP

Peguei o manual abaixo no site http://sapjunior.blogspot.com, achei muito bom. Eu particularmente não gosto muito do Mini-SAP, pois dá muito problemas na Instalação e também se não tiver uma máquina muito boa fica muito dificil de mexer nele pois fica muito lento.

Requisitos necessários:

*NT 4.0, Windows XP, Service Pack 4 ou maior. Já ouvi muitos comentários que não funciona no Vista.
* Internet Explorer 4.01 ou maior.
* No mínimo 128 MB RAM. ( Recomendo no mínimo 256 )
* No mínimo 256 MB memória cache.
* No mínimo 2.2 GB espaço em disco
(60 MB DB software, 1.9 GB para o SAP, 100 MB para o SAP Gui + espaço livre provisório para a instalação).

Importante: certifique-se que seu Windows foi instalado com NTFS, caso não tenha sido, será obrigatório instalar o Windows novamente. Demora: 30 minutos a 1 hora.
O MiniSAP vem com dois CDs. O CD do Kernel contém os arquivos para o Kernel e o Frontend. O CD de dados contém o arquivos compactados do banco de dados SAP.

Vc instala os componentes do sistema em duas etapas:
1) Servidor de aplicação e o banco de dados.
2) Frontend (SAPGUI). OBS: se vc já possui o SAPGUI, não precisa dessa etapa.

Antes de começar a instalação, vc precisa:

1) Saber corretamente o nome do seu computador.

Para saber e até alterar o nome do seu computador siga os passos abaixo.
Clique com o botão direito do mouse em MEU COMPUTADOR.
Clique em Propriedades >> Identificação de rede:
Clique em Propriedades e anote o nome do computador.

2) Voc precisa mudar a data do seu computador.

O MiniSap expira em 90 dias, mas se vc mudar a data alterando-a para o futuro, 2030 por exemplo, depois que a instalação terminar vc poderá voltar a data para a data atual.
Caso esqueça isso, vc terá que entrar no site da SAP e pega uma chave de licença ou mudar a sua data, para um ano atrás que também funcionará.

3) É necessário instalar o MS Loopback Adapter. Veja como aqui.

4) Alterar o arquivo “Hosts” que fica no diretório do Windows. Veja como aqui.

Depois de concluir os requisitos acima, vc pode iniciar a instalação do MiniSap:

I) Coloque o CD 1 na unidade de CD e siga os passos:

Iniciar instalação MiniSAP

II) Clique em Start Installation da página aberta ou execute :\setup.bat

Ele abrirá uma janela, irá copiar alguns arquivos e instalar o MS Sql server. Se problemas ocorrerem durante a instalação, tente deletar a possível instalação de SQL Server que já existir usando o Painel de Controle, reiniciando a instalação.
Depois ele irá apresentar a tela seguinte:

Escolha o diretório de instalação

Esse diretório é o diretório destino do MiniSAP, ele precisa ter pelo menos 2GB.

III) Clique “Next”:

Escolha o local onde ele irá procurar os CD’s

Ele está pedindo confirmação de onde procurará os 2 cds de instalação, neste caso o driver “E:”, caso a sua unidade sejá outra, vá com o mouse e altere a unidade.

IV) Clique em “Next”:

Coloque o CD 2

Nesta etapa ele está pedindo para vc colocar o CD de Dados (Cd 2). Realize a troca e depois clique em “Next”.
Esse passo poderá demorar um pouco.

V) Clique em “Exit” para finalizar a instalação:

Conclu�do

VI) Agora vc deve instalar e configurar o SAPGUI (se já não o fez, pois a ordem não é relevante).

VII) Para iniciar o Sistema SAP, clique no ícone “Start SAP MBS” no seu desktop antes de usar o SAPLogon.

Iniciar o Sistema SAP

Vc irá rodar o programa que inicia o Sistema SAP numa task bar, essa janela irá mostar o status do sistema.
Caso vc queira parar o sistema, bastar fechar essa janela.
OBS: sem esse programa rodando, o MiniSAP não funciona.

VIII) Chegou a hora e se logar no SAP.
Utilize o ícone SAPLogon para entrar, a seguinte tela irá aparecer:

Logar

Vc pode se logar com dois usuários padrão:
a) BCUSER (usuário que já possui acesso ao sistema como desenvolvedor, ou seja, pode realizar alterações e desenvolvimentos em ABAP)
b) DDIC (usuário para tarefas administrativas)

Para os dois usuários a senha é “minisap”.

Fonte: http://sapjunior.blogspot.com

Entrando no SAP

Abaixo você vê a tela de Login do SAP. Nela temos que inserir o Mandante/Client, Usuário e Senha, o idioma se não inserido ele entra no padrão do servidor.

Após a tela de Login, abre a tela abaixo, que é a tela principal do SAP. Aqui temos o
  • Menu
  • Barra Botões Standard
  • Barra de Titulo
  • Barra de Botões da Aplicação
  • Área para Aplicação, no caso temos o Menu Principal do SAP
  • Barra de Status

Para acessar um programa no SAP existe 2 maneiras, primeiro localizando o programa através do Menu SAP que se encontra na tela inicial. A segunda seria digitando o código da transação no CAMPO DE COMANDO localizado na barra de botões padrão. É o único campo de texto localizado na barra.As principais transações para desenvolvimento ABAP são:
  • SE38 - abre o editor ABAP/4
  • SE16 - permite a visualização do conteúdo de tabelas do SAP
  • SE11 - permite a visualização da arquitetura de uma tabela/estrutura do SAP
  • SE43 - criação de menus
  • SE93 - criação de transações customizadas
  • SE71 - criação e manutenção de formulários SAPscripts
  • SE80 - Object Navigation, basicamente todas as transações relacionado a desenvolvimentos em 1 só.
Então digitando SE38 no CAMPO DE COMANDO e apertando enter será aberto o editor ABAP na área de aplicação.

É muito mais fácil e rápido acessar diretamente pelo código da transação, mas você pode acessar através do Menu, o caminho no menu para o editor ABAP por exemplo é:

Menu SAP -> Ferramentas -> ABAP Workbench -> Desenvolvimento -> Editor Abap

Existe também um menu voltado para o Desenvolvimento que é o S001, basta digitar isto no CAMPO de COMANDO e será aberto o MENU.

Módulos do SAP

O SAP é dividido em Módulos/Áreas, cada módulo é relacionado a uma área na empresa exemplo Finanças, RH, Vendas. Segue alguns dos principais módulos do SAP:
  • PP (Production Planning - planejamento de produção)
  • MM (Materials Management - gerenciamento de materiais)
  • SD (Sales and Distribution - vendas e distribuição)
  • FI (Financial Accounting - contabilidade financeira)
  • CO (Controlling - controladoria)
  • AM (Fixed Assets Management - gerenciamento de ativos fixos)
  • PS (Project System - sistema de projeto)
  • WF (Workflow - fluxo de trabalho)
  • IS (Industry Solutions - soluções de industria)
  • HR (Human Resources - recursos humanos)
  • PM (Plant Maintenance - manutenção das instalações)
  • QM (Quality Management - gerenciamento da qualidade)
Cada módulo possui suas tabelas, e também um módulo interage com o outro, por exemplo, numa Venda (SD) você vai gerar documentos em Finanças(FI).

Todos os programas desses módulos são feito em ABAP, você pode entrar neles e ver o código mas não é nada fácil de entender, ainda mais os comentários em Alemão.

Entendendo o SAP

O SAP R/3 é um ERP (Enterprise Resource Planning) ou SIGE(Sistemas Integrados de Gestão Empresarial) feito por uma empresa alemã de mesmo nome, para maiores informações sobre a historia e algumas outras coisas sobre SAP veja http://pt.wikipedia.org/wiki/SAP_AG e se não souber nada sobre ERP pode ver também em http://pt.wikipedia.org/wiki/ERP.
O SAP R/3 é divido em 3 camadas (por isso o 3 no R/3),são elas:

  • Banco de Dados: Como no nome já diz é onde fica o Banco de dados com todas as tabela e dados do sistema.
  • Servidor/Aplicação: Onde é processado todas as requisições, aqui é interpretado o ABAP.
  • Interface Usuário/Cliente: Aqui é mostrado os dados ao Usuário, Telas, Botões, Menus, Mensagens. Tudo o que fazemos é feito aqui.
Cada um dessas camadas é no mínimo um computador, podendo haver vários.
Cada servidor ainda pode ser divido em Client/Mandante. Em é recomendado a existe no mínimo 3 Clients, são eles:
  • Desenvolvimento/testes: Onde é feito os desenvolvimentos ABAP, Customizações e Testes Básicos
  • Garantia de Qualidade: Normalmente uma cópia do Ambiente de Produção onde se faz testes bem próximo do Real.
  • Produção:Aqui é onde os funcionários trabalham todos os dados reais e processos reais
Ainda poder haver mais Clients como um voltado a treinamentos, entre outros.

Na realidade essa divisão não é feita por Client/mandante e Sim cada um sendo um Servidor diferente do SAP. O que Normalmente é dividido é o Servidor de Desenvolvimento, que é feito um Client/Mandante para desenvolvimento ABAP/Customização dos Parâmetros e outro para Testes destas alterações antes de passar para o Servidor de Qualidade.

A tranfêrencia dessas alterações entre os servidores é feito através de Requests , que são nada mais que um pacote com as alterações feitas.