Professional Documents
Culture Documents
ABAP / BW
Especificador Funcional
Difuso do Documento
Nome do Documento
Tema
System
Histrico do Documento:
Verso
Data da Reviso
001
25.01.2012
Security
Redator
Victor Dias da Silva
Page 1
Documento BI
ndice
1
INTRODUO
1.1
Contexto
1.2
Informaes
1.3
Requisitos mnimos
CONHECENDO O ABAP
2.1
ABAP
2.2
2.3
Principais comandos
ACESSANDO O ABAP NO BW
3.1
Transformaes
3.1.1
Rotina Inicial.
3.1.2
Rotina no Campo.
3.1.3
Rotina Final.
7
7
8
9
DEBUG
11
4.1
Debug
11
4.2
Entendendo um Debug
11
4.3
Ativando o Debug
15
4.4
17
4.5
Debug no BW
17
INFORMAES ADICIONAIS
19
5.1
19
5.2
20
5.3
Links Uteis
22
Page 2
Documento BI
1 INTRODUO
1.1 CONTEXTO
O ABAP utilizado em grande parte do BW para obter e manipular informaes,
para que estas sejam consistentes e possam atender algumas especificidades na
gerao de dados.
1.2 INFORMAES
No BW os principais focos de desenvolvimento so as rotinas dentro das
Transformaes (Transformations), reconhecidas pelo smbolo
, estas so:
Page 3
Documento BI
2 CONHECENDO O ABAP
2.1 ABAP
ABAP (Advanced Business Application Programming) uma linguagem de
programao de alto nvel 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. Conforme
exemplificado abaixo:
Page 4
Documento BI
Page 5
Documento BI
2.3 PRINCIPAIS COMANDOS
O cdigo acima descreve um acesso tabela T005T e recolhe as informaes de
nome e cdigo dos pases. Este um programa simples criado para os relatrios
desenvolvidos no SAP/ECC6 e apenas demonstra alguns dos comandos mais
utilizados.
Servir para o bom entendimento dos comandos que usaremos no BW, para
eventualmente carregar nossos dados.
Comandos mais utilizados em ABAP no BW:
DATA
TYPES
SELECT
LOOP AT /
ENDLOOP
IF / ELSE /
ENDIF
CASE /
ENDCASE
DO / ENDDO
Page 6
Documento BI
3 ACESSANDO O ABAP NO BW
3.1 TRANSFORMAES
Para as transformaes sempre usaremos os mesmos tipos de estruturas / tabelas
internas, pois os dados preenchidos nesta etapa sempre esto em uma estrutura
genrica standard.
Para entender a melhor forma de manipular a informao preciso conhecer o
conceito de quais so as etapas das informaes quando transferidas de um ponto
para outro.
Por exemplo, vemos o fluxo: PSA TRANFORMATION DSO.
Ento as informaes estaro como:
PSA Rotina Inicial Rotina nos campos Rotina Final DSO.
3.1.1 Rotina Inicial.
Na Rotina Inicial, usaremos a SOURCE_PACKAGE, so os dados direto do extrator.
E podemos ver no cdigo ABAP quais so os campos que fazem parte desta
estrutura.
Page 7
Documento BI
Page 8
Documento BI
Page 9
Documento BI
Page 10
Documento BI
4 DEBUG
4.1 DEBUG
O DEBUG ou Modo de Depurao a forma de executar um processo no SAP e
examin-lo durante a execuo, podendo verificar como iro se comportar o
preenchimento de uma tabela ou varivel.
ENTER.
Clique em executar
Page 11
Documento BI
Documento BI
De um duplo clique sobre o noma da tabela que deseja observar (veja que tabela
apareceu na area de valores).
Porm, ainda est vazia. Aperte novamente o F5 para que a seleo preencha a
tabela:
Se adicionarmos [] no final do nome da tabela, apresenta a quantidade de
registros.
Outro ponto importante a validao que segue alguns preenchimentos, SYSUBRC ele indica se houve sucesso ou no na sua ao. O valor 0 representa
sucesso, e geralmente os valores 4 e 8 que houve erro.
Page 13
Documento BI
Page 14
Documento BI
Page 15
Documento BI
Page 16
Documento BI
4.5 DEBUG NO BW
Com as informaes acima, podemos agora, iniciar o Debug no BW. Este processo
ir acontecer em sua maioria nas transformaes, onde colocamos nossas rotinas e
utilizaremos o comando BREAK-POINT. Porm as outras formas de ativar o
depurador podem ser usadas, quando precisamos alterar uma User-Exit ou um
Enhancement, para estes usamos as mesmas formas de depurao usadas no ECC.
Um ponto interessante no BW, que podemos escrever nossos cdigos dentro das
transformaes e adicionar o comando BREAK-POINT no decorrer dos nossos
cdigos, pois, ele no ir travar a execuo das cargas. Assim, s acessamos o
Modo de Depurao quando optamos por ele.
No exemplo abaixo, adicionamos o BREAK-POINT na rotina inicial de uma
transformao:
Page 17
Documento BI
Page 18
Documento BI
5 INFORMAES ADICIONAIS
zteste_debug.
*----------------------------------------------------------------------*
* Tabelas
*----------------------------------------------------------------------*
TABLES: mara.
*----------------------------------------------------------------------*
* Tipos
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
" N Material
matkl TYPE mara-matkl,
" Grupo de Mercadoria
ersda TYPE mara-ersda,
" Data de Criao
meins TYPE mara-meins,
" Unidade de Medida
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt,
" N Material
" Descrio do Material
BEGIN OF ty_fim,
matnr TYPE mara-matnr,
matkl TYPE mara-matkl,
ersda TYPE mara-ersda,
meins TYPE mara-meins,
maktx TYPE makt-maktx,
END OF ty_fim.
"
"
"
"
"
N Material
Grupo de Mercadoria
Data de Criao
Unidade de Medida
Descrio do Material
*----------------------------------------------------------------------*
* Tabelas Internas e Estruturas
*----------------------------------------------------------------------*
DATA: t_mara TYPE TABLE OF ty_mara WITH HEADER LINE, "Tab para material
t_makt TYPE TABLE OF ty_makt WITH HEADER LINE, "Tab para texto mat
t_fim TYPE TABLE OF ty_fim WITH HEADER LINE. "Tab de Apresentao
*----------------------------------------------------------------------*
* Variaveis e Constantes
*----------------------------------------------------------------------*
CONSTANTS: c_pt(2) TYPE c VALUE 'PT'. " Valor para idioma PT
DATA: v_idioma TYPE makt-spras.
*----------------------------------------------------------------------*
* Tela de Seleo
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_mat FOR mara-matnr OBLIGATORY.
PARAMETERS: p_spa TYPE makt-spras.
SELECTION-SCREEN END OF BLOCK b1.
Page 19
Documento BI
*----------------------------------------------------------------------*
* Seleo dos dados
*----------------------------------------------------------------------*
START-OF-SELECTION.
SELECT
FROM
INTO
WHERE
IF sy-subrc = 0.
SORT t_mara BY matnr.
IF p_spa IS INITIAL.
v_idioma = c_pt.
ELSE.
v_idioma = p_spa.
ENDIF.
SELECT matnr maktx
FROM makt
INTO TABLE t_makt
FOR ALL ENTRIES IN t_mara
WHERE matnr = t_mara-matnr
AND spras = v_idioma.
IF sy-subrc = 0.
SORT t_makt BY matnr.
ENDIF.
ENDIF.
*----------------------------------------------------------------------*
* Preencher a tabela
*----------------------------------------------------------------------*
END-OF-SELECTION.
LOOP AT t_mara.
READ TABLE t_makt WITH KEY t_mara-matnr.
IF sy-subrc = 0.
t_fim-matnr = t_mara-matnr.
t_fim-matkl = t_mara-matkl.
t_fim-ersda = t_mara-ersda.
t_fim-meins = t_mara-meins.
t_fim-maktx = t_makt-maktx.
APPEND t_fim.
ENDIF.
WRITE /: t_fim.
ENDLOOP.
Documento BI
No SAP/4.6C, o cdigo era todo escrito em preto e os comentrios ficam destacados
em azul (os comentrios so as informaes que esto precedidas do * (asterisco)
ou (aspas duplas)).
Page 21
Documento BI
Tela de Debug clssico 4.6C
http://wiki.sdn.sap.com/wiki/display/BI/ABAP+in+BW
http://scn.sap.com/welcome
https://websmp209.sap-ag.de/~SAPIDP/002006825000000234912001E
http://www.netviewer.com/sap-ags/en/
Page 22