Você está na página 1de 7

Captulo 11

Bases de Dados Lgicas

11-2 Bases de Dados Lgicas

O conceito de bases de dados lgicas

No sistema R/3 muitas tabelas encontram-se ligadas por dependncias de chaves estrangeiras. Estas dependncias permitem definir estruturas hierrquicas do tipo rvore.

Dados gerais

Dados de bancos

Dados de empresa

Dados fiscais

Acum. perodos

Dados reclamao

...

Ligao info ctb. Cab. doc. contbil. Det. doc. contbil.

11-3 Bases de Dados Lgicas

Estruturao de uma base de dados lgica: exemplo

Uma base de dados lgica composta por um programa ABAP especial que combina o contedo de certas tabelas da base de dados numa estrutura hierrquica. Qualquer programa associado base de dados lgica ter ento acesso s linhas das tabelas por uma sequncia definida por esta estrutura hierrquica. LFA1 LIFNR = 4710 Dados gerais

LFBK LIFNR = 4710 BANKS = P . . .


Coordenadas do banco

LFB1 LIFNR = 4710 BUKRS = 0001 Dados de empresa

...

LFAS LIFNR = 4710 LAND1 = P Info. geral n fiscal IVA

LFC1 LIFNR = 4710 BUKRS = 0001 GJAHR = 1997


Movimentao no perodo

LFC1 LIFNR = 4710 BUKRS = 0001 GJAHR = 1998

11-4 Bases de Dados Lgicas

Interao entre a base de dados lgica KDF e um report

LFA1

Base de dados lgica KDF

Programa de leitura
REPORT SAPDBKDF... FORM PUT_LFA1 . SELECT * FROM LFA1... PUT LFA1 . ENDSELECT . ENDFORM . FORM PUT_LFBK . SELECT * FROM LFBK... PUT LFBK. ENDSELECT. ENDFORM. FORM PUT_LFB1. SELECT * FROM LFB1... PUT LFB1. ENDSELECT. ENDFORM. FORM PUT_LFB5. SELECT * FROM LFB5... PUT LFB5. ENDSELECT. ENDFORM.

KDF
REPORT ZBDLOG03. . TABLES: LFA1, LFBK, LFB5 . GET LFA1. . GET LFBK.

LFBK

LFB1

LFB5

LFC1

LFC3

BSIK

.
GET LFB5.

11-5 Bases de Dados Lgicas

Instrues de controle em eventos GET: CHECK

CHECK <expresso lgica>.


CHECK dentro de um evento GET: termina o evento atual e consequentemente os eventos GET de tabelas subordinadas. Prossegue com os eventos seguintes se existirem.

REPORT ZBDLOG06. TABLES: LFA1, LFB1. PARAMETERS LAND1 LIKE LFA1-LAND1. DATA COUNTER TYPE I. GET LFA1. CHECK LFA1-LAND1 EQ LAND1. WRITE:/ LFA1-LIFNR, LFA1-NAME1. COUNTER = COUNTER + 1. GET LFB1. WRITE:/3 LFB1-BUKRS, LFB1-AKONT. END-OF-SELECTION. WRITE:/ Total fornecedores do pas, LAND1, =, COUNTER.

11-6 Bases de Dados Lgicas

Instrues de controle em eventos GET: EXIT

EXIT.
Termina o evento atual e consequentemente os eventos GET de tabelas subordinadas. Visualiza a lista, se existir, antes de terminar o processamento.

REPORT ZBDLOG07. TABLES: LFA1, LFB1. PARAMETERS LAND1 LIKE LFA1-LAND1. DATA: COUNTER TYPE I. GET LFA1. IF LFA1-LAND1 NE LAND1. EXIT. ENDIF. WRITE:/ LFA1-LIFNR, LFA1-NAME1, 60 LFA1-LAND1. COUNTER = COUNTER + 1. GET LFB1. WRITE:/3 LFB1-BUKRS, LFB1-AKONT. END-OF-SELECTION. WRITE:/ 'Total de fornecedores do pas', LAND1, '=', COUNTER.
O evento END-OF-SELECTION no chega a ocorrer

Resultado:
20001 ALBERTO SOARES PT 20002 R.I.T.E. DENTE LDA PT 20002 FERDINANDO & CIA PT .

. .

11-7 Bases de Dados Lgicas

Instrues de controle em eventos GET: REJECT

REJECT <tabela>.
Interrompe o processamento do evento atual e recomea com a linha seguinte da tabela <tabela>. Se declarada, <tabela> deve ter um nvel hierrquico no inferior ao do evento em que ocorre. Se no declarada, descarta o registro lido da tabela do evento GET e aguarda pelo prximo registro.

REPORT ZTESTE1 . TABLES: SPFLI, SBOOK, SFLIGHT. DATA: SEAT_BOOKED TYPE I, SEAT_AVAIL TYPE I. GET SPFLI. SEAT_BOOKED = 0. GET SBOOK. IF SBOOK-SMOKER = X. REJECT SPFLI. ENDIF. SEAT_BOOKED = SEAT_BOOKED + 1. GET SFLIGHT LATE. IF SEAT_BOOKED GE SFLIGHT-SEATSMAX. REJECT . ENDIF. SEAT_AVAIL = SFLIGHT-SEATSMAX SEAT_BOOKED. WRITE:/ SFLIGHT-CARRID, SFLIGHT-FLDATE, SEAT_AVAIL.

SPFLI

SPFLI

SFLIGHT

SFLIGHT

...

SBOOK

...

...

Você também pode gostar