Você está na página 1de 77

ABAP Workbench

BC0200 Tcnicas de Programao ABAP

Objectivos

O objectivo deste curso consiste na introduo s ferramentas disponveis pelo ABAP Workbench, na compreenso e utilizao dessas ferramentas nos diferentes mtodos de dilogo com o utilizador e com a base de dados.

Contedo

BC0201 Introduo ao ABAP Workbench BC0202 Instrues Bsicas ABAP e Declarao de Dados BC0203 Leitura de Tabelas de Base de Dados BC0204 Modularizao em ABAP

BC0205 Reporting
BC0206 Exerccios

Introduo ao ABAP Workbench

BC0201 Introduo ao ABAP Workbench

Contedo

Sistema de Informao e Workbench Anlise de programas

Sistema de Informao e Workbench


Estrutura do Repositrio

Objectos de Repositrio
FI HR MM

SD

WM

MM
Cust.

MM

Pacote
Mdulos de Funo Programas Tabelas ...

Sistema de Informao e Workbench


Hierarquia de Aplicaes
SAP Application hierarchy CA AC FI Cross-Application Components Accounting - General Financial Accounting ... FBAS Financial Accounting 'Basis' ... FI 0 -GL General Ledger Accounting 0 FI-LC Consolidation ... TR Treasury CO Controlling ...

0 0 0

0 0 0

Application component Development class Selected sub -tree

Information System

Sistema de Informao e Workbench


Sistema de Informao
Repository Information System Business Engineering ABAP Dictionary Basic objects Database tables Views Data elements Structures Table types ... Other objects Fields Programming Function Builder Program library Prog. environment Program sub -objects ABAP Objects Class library Components of classes Components of interfaces Environment

Sistema de Informao e Workbench


Ferramentas do ABAP Workbench

Debugger Screen Screen Painter Painter Debugger Menu Menu Painter Painter Object Navigator
FI HR MM SD WM MM Cust.

ABAP ABAP Editor Editor Function Function Builder Builder

ABAP ABAP Dictionary Dictionary Class Class Builder Builder

Sistema de Informao e Workbench


Object Navigator
Full screen on/off

Tool Tool area area Navigation Navigation area area

Right mouse click

Context menu

Anlise de programas
Funo status
Ecr Seleco
Airline ID Airline
AA American Airlines USD

Ecr

Lista

Name Local currency

Sistema F1 Status Technical info Nome programa Nmero ecr

Nomes campos Tipos campos

Anlise de programas
Modo Debug
STOP

Navigation area
Programa SAPBC400WBT_GETTING

Editor
REPORT sapbc400wbt_getting_started.

TABLES sbc400_carrier. DATA wa_scarr TYPE scarr. PARAMETERS pa_car TYPE scarrcarrid. SAPBC400WBT_GETTING 2 : Fixar breakpoint e START - OF -SELECTION. executar programa Executar Directo SELECT SINGLE * FROM scarr INTO CORRESPONDING Depurao Debugging WHERE carrid = pa_car. IF sy -subrc = 0. MOVE CORRESPONDING wa_scarr TO sbc4 1 : Seleccionar o progama CALL SCREEN 100. usando o menu MOVE -CORRESPONDING sbc400_carrier T WRITE:/ wa_scarr -carrid, wa_scarr -carrname,

Anlise de programas
Modo Debug

Sistema System /h + Enter Utilitrios

Help Help

Debug Screen Debug ABAP

2 : introduzir/h no campo de comando

1 : escolher Sistema > Utilitrios a partir do menu

Anlise de programas

Anlise de programas
Princpios gerais da Syntax do ABAP
TABLES DATA PARAMETERS . sbc400_carrier wa _ scarr TYPE scarr . pa_car TYPE scarr - carrid .

START OF SELECTION . . scarr SELECT SELECT SINGLE * FROM INTO CORRESPONDING FIELDS OF wa _ scarr WHERE carrid = pa _ car . IF sy . IF - subrc = 0 . . . . wa _ scarr TO sbc400_ carrier MOVE CORRESPONDING CALL SCREEN 100 . . . MOVE CORRESPONDING sbc400_ carrier TO wa _ scarr WRITE : : wa _ scarr - carrid , , wa _ scarr - carrname , wa _ scarr - currcode . .

Chained statement

ENDIF. ENDIF

ABAP key word

Anlise de programas
Atributos de programas
TIPO : 1 I M F S K F P K S T = Report = Include = Module pool (p/ telas Screen Painter) = Mdulos de funo = Pool de subrotinas (forms) = Pool de Classes = Pool de Interfaces = = = = Produtivo standard Produtivo do cliente Programa de sistema bsico Teste

STATUS :

APLICAO :

Sistema Finanas Materiais Genrico (Para vrias Aplicaes) [...]

Anlise de programas
Atributos de programas
Pacote: $TMP (temporrio) (apenas para programas do tipo 1) (apenas para programas do tipo 1)

Base de Dados lgica Selection Screen

Grupo de autorizao (Authorization group) Bloqueio de edio (Editor lock) Lanamento apenas com variante (Start via variant) Aritmtica de vrgula fixa (Fixed pt.arithmetic) (relevante para nmeros Packed) (programas do tipo 1) (programas do tipo 1)

Anlise de programas
Editor ABAP O Editor ABAP/4 pode executar em 3 modos distintos
Table Control with line numbering

Modo

Table Control without line numbering Edit Control mode Lower Case

Display
Upper Case Indentar Converso Maisc/Minusc

Pretty Printer

Configurao do editor ABAP

Utilitrios -> Opes -> Editor ABAP

Instrues Bsicas ABAP e Declarao de Dados

BC0202 Instrues Bsicas ABAP e Declarao de Dados

Contedo
Estrutura de um programa ABAP Declarao de Dados
Tipo de Dados Constantes TYPES Regras

Variveis de Sistema Operaes Instrues

Declarao de Registos
Declarao e Processamento de Tabelas Internas Ecrs de Seleco

Estrutura de um programa ABAP


CABEALHO REPORT nome. PROGRAM nome. nome NO STANDARD PAGE HEADING LINE-SIZE n colunas LINE-COUNT n linhas MESSAGE-ID nome (2 caracteres) DEFINING DATABASE ldb. PARTE DECLARATIVA. CONSTANTS: TYPES: DATA : TABLES : STATICS: FIELD-SYMBOLS PARTE DE INSTRUES (Organizadas por blocos) REPORT

Declarao de Dados Tipo de Dados

Exemplos de inicializaes :
DATA : CONTADOR QUANTIA CAUDAL RAM_TELEF(4) LOCAL(4) HOJE AGORA TYPE I VALUE 100, TYPE P DECIMALS 2 VALUE 2000.05, TYPE F VALUE 12E-3, TYPE N VALUE 1203, TYPE C VALUE 1203, TYPE D VALUE 19940314, TYPE T VALUE 100000.

Declarao de Dados Tipo de Dados

Nota: Se a longitude de sada for curta, o valor cortado e asteriscado esquerda. EXEMPLO: DATA: X(3), Y TYPE P DECIMALS 3. Y = '123457.236'. MOVE Y TO X. WRITE X. RESULTADO: *36

Declarao de Dados Constantes

Constants: Nome(10) value Antnio, Aniversrio type D value 19600110, Zero type i value is initial.

Constants: Begin of Morada, Rua(20) type C value Rua das Camlias, Numero type P value 11, Cod_post(4) type N value 2884, Cidade type C value Coimbra, end of morada.

Declarao de Dados TYPES

Types: Nome(20) type C, Rua(30) type C, Telefone(20) type N. Types: Begin of list_telf, Apelido type Nome, telef type telefone, end of list_telf. Types: Itab type list_telf occurs 10.

Declarao de Dados - Regras

data: counter name1(25) start_date first_line sum1(5)

type I , value Abaco-consultores , type d , type I value 1 , type p decimals 2 .

Regras para a definio dos nomes dos campos:

- O nome do campo pode ter no mximo 30 caracteres, incluindo letras, digitos e caracteres especiais;
- Caracteres como; ( ) + . , : no so permitidos; - SPACE uma palavra reservada; - No permitido usar o mesmo nome para um parameter e para um campo.

Variveis de Sistema

NOME SY-DATUM SY-UZEIT SY-UNAME SY-SUBRC SY-REPID SY-LANGU SY-LINCT SY-CUCOL SY-CUROW SY-MANDT SY-TCODE SY-UCOMM SY-SPONR SY-DSNAM

TIPO D T C I C C I I I C C C N C

LG 8 6 12 4 40 1 4 4 4 3 20 70 10 8

Operaes
Operaes Lgicas
Operadores simples : EQ = NE <> GT > GE => LT < LE <= BETWEEN val1 AND val2 IS INITIAL NOT

Operadores para strings : st1 st1 st1

CO CA CS

st2 st2 st2

(contains only) (contains any) (contains string)

Operaes
Operaes com Strings
EXEMPLO de offset : MOVE string1+3(5) TO string2+7(5) .

ABC

DEFGH

IJLM

string1

xxxxxxx

DEFGH

xxxx

string2

EXEMPLO : DATA : DIA_1 TYPE D, OUTRO_DIA LIKE DIA_1, DIA_ANT LIKE DIA_1, DIFF TYPE I . DIA_1 = SY-DATUM . (19960314) DIA_1+6(2) = 01 . Primeiro dia MOVE DIA_1+4(2) TO OUTRO_DIA+4(2) . DIA_ANT = DIA_1 - 1. DIFF = OUTRO_DIA - DIA_1 .

Operaes
Operaes com Strings
SHIFT string BY n PLACES CIRCULAR RIGHT.

REPLACE string 1 WITH string 2 INTO varivel . TRANSLATE varivel TO UPPER CASE . SEARCH varivel/tabint FOR string STARTING AT posio/linha ENDING AT posio/linha . Variveis de sistema afetadas: SY-TABIX - Para tabelas internas SY-FDPOS - Para strings (posio do 1 caracter) SY-SUBRC CONDENSE varivel (NO-GAPS). CONCATENATE f1 f2 INTO varivel. REPLACE % WITH * INTO STRING

Instrues
Instrues de Atribuio
MOVE varivel1 TO varivel2 EXEMPLO : X=3. MOVE X TO REG-CAMPO1. Atribuido valor 3 MOVE-CORRESPONDING regist1 TO regist2. EXEMPLO : TABLES : LFA1 DATA : BEGIN OF FORNEC, LIFNR LIKE LFA1-LIFNR, NAME1 LIKE LFA1-NAME1, FLAG, END OF FORNEC. [] MOVE-CORRESPONDING LFA1 TO FORNEC. * So afetados os campos com o mesmo nome MOVE regist1 TO regist2. (mesma estrutura e atributos)

Instrues
Instrues de Clculo
[COMPUTE] var = expresso UTILIZAO DE : E DA VRGULA. OPERADORES : +, -, *, / DIV (Quociente) MOD (Resto da diviso) SQRT, EXP, LOG, SIN, COS (floats) STRLEN

FUNES :

UTILIZAO DE ESPAOS UTILIZAO DE PARNTESIS

EXEMPLO: X = STRLEN( AB_1C__ ) . X tem valor 5


OUTRAS : ADD / SUBTRACT / MULTIPLY / DIVIDE

Instrues
Instrues de I/O
WRITE /col(dim) varivel_2 UNDER varivel_1 USING EDIT MASK __/__ . ULINE [ /col(dim) ] . SKIP [n]. FORMAT INTENSIFIED ON. NEW-PAGE PRINT ON NO DIALOG DESTINATION PRI1 IMMEDIATELY X KEEP IN SPOOL X LINE-COUNT n LINE-SIZE n. NEW-PAGE PRINT OFF. RESERVE n LINES. (Salto de pgina) PARAMETERS : varivel(dim) TYPE tipo LIKE varivel DEFAULT valor OBLIGATORY.

Instrues
Instrues de Controlo
IF condio . bloco 1 ELSE. (ELSEIF) bloco 2 ENDIF. CASE varivel . WHEN valor1. Bloco 1 WHEN valor2. Bloco 2 WHEN OTHERS. Bloco n ENDCASE.

Instrues
Instrues de Controlo
DO n TIMES. bloco ENDDO. (SY-INDEX) DO. IF condio. EXIT . Termina ciclo ENDIF. Bloco ENDDO. WHILE condio. Bloco ENDWHILE. DO. bloco_1. CHECK condio. O bloco 2 de instrues no processado bloco_2. se a condio for falsa. O bloco_2 so as ENDDO. instrues entre o CHECK e o fim do DO.

Instrues
Instrues de Controlo
CHECK condio.
1. CHECK dentro de uma estrutura loop while counter gt 0. bloco1. check flag ne space. bloco 2. endwhile. 2. CHECK fora de uma estrutura loop bloco1. check <condio>. bloco2.

Instrues
Instrues de Controlo
EXIT. 1. EXIT dentro de uma estrutura loop do. if counter gt 100. exit. endif. enddo.

2. EXIT fora de uma estrutura loop

if . exit. endif.

Instrues
Instruo MESSAGE Report <reportname> MESSAGE-ID <message-id>.

. . .
Annn MESSAGE Ennn WITH <field1> <field2> <field3> <field4>. Xnnn Wnnn Innn Snnn

Instrues
Instruo MESSAGE
Classificao das Mensagens de Utilizador

A X

bend xit

O processo termina e o utilizador tem que iniciar a transaco

Igual anterior mas com SHORT DUMP


O processo interrompido tendo que se inserir um novo valor O processo interrompido mas permite avanar com ENTER O processo interrompido e emitida a informao

E
W I S

rror

arning

nformation uccess

A informao emitida no ecr seguinte

Declarao de Registos
DATA : begin of reg, campo_1 type ..., ... campo_n like varivel, end of reg.

DATA : DATA :

begin of reg. Include structure Tabtext. end of reg.

Declarao e Processamento de Tabelas Internas


Declarao de Tabelas Internas com Header Line
DATA : begin of tabint occurs n, campo_1 type ... , ... campo_n like varivel, end of tabint . begin of tabint occurs n, include structure <tab>. end of tabint .

DATA :

DATA: tabint type List_telef occurs 10 with header line.

Linha de Trabalho

14 12 14

Joaquim Andreia Joaquim

APPEND

Declarao e Processamento de Tabelas Internas


Preenchimento de tabelas internas com Header Line

append <itab>

append <itab> sorted by <field>

AA AA AA

0064 0064 0064 1699 0400 0402 0007

89000

AA LH

0064 0400 0402 0007 0017 1984 0007

81200 100000 100000 100000 66667 43200 23300

12300
66667 66667 100000 100000 100000

LH
UA AA DL UA

DL
LH LH UA

Declarao e Processamento de Tabelas Internas


Alterao de tabelas internas INSERT <itab> INDEX <i>. Insere a Header Line imediatamente antes da entrada I. MODIFY <itab> INDEX <i>. Substitui o contedo da entrada I pela Header Line. DELETE <itab> INDEX <i>. Apaga a entrada I.

Declarao e Processamento de Tabelas Internas


Declarao de Tabelas Internas sem Header Line

Data : Begin of tabint type List_telef occurs 10. Data: tabela type tabint.

Para trabalhar com tabelas internas sem cabealho, temos que especificar uma WA (work area).

Ex: Read table <itab> into <wa>.

Declarao e Processamento de Tabelas Internas


Apagar Tabelas Internas
CLEAR <itab>. Inicializa a Header Line. REFRESH <itab>. Apaga todas as entradas da tabela; O espao de memria continua ocupado. FREE <itab>. Apaga todas as entradas da tabela; O espao de memria libertado.

Declarao e Processamento de Tabelas Internas


Ler Tabelas Internas
READ TABLE tabint. Chave por campos no numricos (P, F, I) ( SY-SUBRC e SY-TABIX ) READ TABLE tabint INDEX n . READ TABLE tabint WITH KEY campo . ( Tabela tem de estar ordenada )

EXEMPLO:
CLEAR tabint. MOVE numero TO tabint-key1. READ TABLE tabint. IF SY-SUBRC = 0. posio = SY-TABIX . ENDIF.

Declarao e Processamento de Tabelas Internas


Processar Tabelas Internas

LOOP AT tabint [ WHERE condio ] . Bloco1 ENDLOOP.

LOOP AT tabint FROM linha1 TO linha2 . WRITE SY-TABIX. ENDLOOP.

Declarao e Processamento de Tabelas Internas


Nveis de rotura em Tabelas Internas
SORT tabint BY campo1 campo2.

LOOP AT tabint. AT FIRST. Bloco1. ENDAT. AT NEW campo1. Bloco2. ENDAT. AT NEW campo2. Bloco3. ENDAT. Bloco0. AT END OF campo2. Bloco4. ENDAT. AT END OF campo1. Bloco5. ENDAT. AT LAST. Bloco6. ENDAT. ENDLOOP. BLOCO6 : SUM. (Sumariza todos os campos numricos e colocando o resultado na linha de trabalho - header)

Ecrs de Seleco
SELECT-OPTIONS

PARAMETER

Ecrs de Seleco
Instruo SELECT-OPTIONS
SELECT-OPTIONS Pas FOR Lfa1-Lifnr. SIGN OPTION LOW HIGH

Preenchido no ecran
BT - Between GT - Greater then [...] I - Including E - Excluding

Ecrs de Seleco
Instruo PARAMETER
Selection-screen begin of line. Selection-screen comment 1(10) text-001. Parameters: p1(3), p2(5), p3(1). Selection-screen end of line. Titulo

Parameters: R1 Radiobutton group RAD1, R2 Radiobutton group RAD1, R3 Radiobutton group RAD1.

Parameters:

check1 as checkbox, check2 as checkbox.

Leitura de Tabelas da Base de Dados

BC0203 Leitura de Tabelas da Base de Dados

Contedo

Leitura de Tabelas da Base de Dados


Leitura de uma nica entrada Leitura sem restries Leitura com restries Leitura de colunas especficas

Leitura de Tabelas da Base de Dados

Leitura de todos os dados de uma nica entrada; Select Single .. Leitura de todos os dados de vrias entradas select * .. . endselect. Leitura de dados de colunas especficas. select <c1> <c2> into ( campo1, campo2, .) from <tab> where ...

Leitura de nica entrada


SELECT SINGLE * FROM tab WHERE key1 EQ val1 AND key2 EQ val2. key1 10 10 20 30 key2 A B C A texto texto 1 texto 2 texto 3

texto 4

SELECT SINGLE * FROM tab WHERE key1 eq 10 AND key2 eq B. IF SY-SUBRC EQ 0. WRITE OK. ELSE. WRITE: / Registo no encontrado.. ENDIF.

Leitura sem restries


SELECT * FROM tab. ENDSELECT.

key1 10 10 20 30

key1 A B C A

texto texto 1 texto 2 texto 3 texto 4

SELECT * FROM tab. WRITE: / tab-key1, tab-key2, tab-texto. ENDSELECT. IF SY-SUBRC NE 0. WRITE: / text-001. ENDIF.

Leitura com restries

SELECT * FROM tab WHERE condio . Bloco ENDSELECT. SELECT * FROM tab INTO TABLE tabint WHERE condio Bloco. (APPENDING TABLE tabint) MSCARAS DE SELECO WHERE campo BETWEEN var1 AND var2 LIKE mscara IN (var3, var4, ...)

Leitura de colunas especficas


Ler da BD apenas os campos necessrios. Vantagem, uso de menos memria. Select lifnr from tab into (lifnr) where campo eq 100. Ler da BD em funo dos campos da Tabela Interna. Select into corresponding fields of table <itab>. Os dados repetidos podem ser eliminados da seleco usando a instruo DISTINCT. Select distinct lifnr from tab into (lifnr) where bukrs eq 4600. Funes de agregao MAX(), MIN(), SUM(), AVG() e COUNT(). Select count( distinct bukrs ) max( bukrs ) min( bukrs ) into (var1,var2,var3) from t001.

Modularizao em ABAP

BC0204 Modularizao em ABAP

Contedo

Subrotinas
Mdulos de Funo Blocos de Eventos Instrues de Eventos Bases de Dados Lgicas

Subrotinas
Definio de Subrotinas
REPORT ZCJ0001. *----- Dados Globais TABLES: ........ DATA: ........ *----- Chamada de Subrotinas PERFORM CALCULA_TOTAL. PERFORM ESCREVE_TOTAL. ...... *---------------------------------------------------------------------* * FORM CALCULA_TOTAL * *---------------------------------------------------------------------* FORM CALCULA_TOTAL. TOTAL = TOTAL + BSEG-WRBTR. ENDFORM. *---------------------------------------------------------------------* * FORM ESCREVE_TOTAL * *---------------------------------------------------------------------* FORM ESCREVE_TOTAL. WRITE: /1 TOTAL. ENDFORM.

Subrotinas
Passagem de valores
FORM name USING b1 VALUE (b2) CHANGING VALUE(b3) . (1) PERFORM name USING a1 (2) (3) a2 CHANGING a3.

(1) Passagem por referncia a1 no tm espao prprio no subrotina (2) Passagem de valor (3) Passagem de valor e retorno do valor EM SUBPROGRAMAS INTERNOS : Tabelas externas e internas so globais Dados DATA so globais Dados DATA definidos nos subprogramas so locais

Subrotinas
Passagem de estruturas
REPORT ZCJ0001. *----- Dados Globais TABLES: SFLIGHT. DATA: ........ *----- Chamada de Subrotinas PERFORM ESCREVE_TOTAL USING SFLIGHT. PERFORM ESCREVE_TOTAL_2 USING SFLIGHT. ...... *---------------------------------------------------------------------* * FORM ESCREVE_TOTAL * *---------------------------------------------------------------------* FORM ESCREVE_TOTAL USING REC SFLIGHT. WRITE: / REC. ENDFORM. *---------------------------------------------------------------------* * FORM ESCREVE_TOTAL_2 * *---------------------------------------------------------------------* FORM ESCREVE_TOTAL_2 USING REC LIKE SFLIGHT. WRITE: / REC-CARRID, REC-CONNID, REC-FLDATE. ENDFORM.

Subrotinas
Passagem de Tabelas Internas
REPORT ZCJ0001. *----- Dados Globais TABLES: SFLIGHT. DATA: TAB LIKE SFLIGHT OCCURS 50 WITH HEADER LINE. *----- Chamada de Subrotinas PERFORM ESCREVE_TOTAL USING TAB[]. PERFORM ESCREVE_TOTAL_2 TABLES TAB. ...... *---------------------------------------------------------------------* * FORM ESCREVE_TOTAL * *---------------------------------------------------------------------* FORM ESCREVE_TOTAL USING TAB2 LIKE TAB[]. DATA: TAB LIKE SFLIGHT. LOOP AT TAB2 INTO TAB. WRITE: / TAB-CARRID. ENDLOOP. ENDFORM. *---------------------------------------------------------------------* * FORM ESCREVE_TOTAL_2 * *---------------------------------------------------------------------* FORM ESCREVE_TOTAL_2 TABLES ITAB STRUCTURE TAB. LOOP AT ITAB. WRITE: / ITAB-CARRID. ENDLOOP. ENDFORM.

Mdulos de funo
INTERFACE NORMALIZADA VALIDAO DO TIPO DE PARMETROS TRATAMENTO DE CDIGO DE RETORNO (SY-SUBRC) BIBLIOTECA CENTRALIZADA - Agrupada em Grupos
CALL FUNCTION Funo. EXPORTING passagem de valor A = TEXT B = xxx IMPORTING retorno de valores C = var1_prog D = var2_prog TABLES passagem por referncia T = tab_prog EXCEPTIONS NOT_FOUND = 1 (cdigos de retorno NOT_VALID = 2. para SY-SUBRC)

Blocos de Eventos

Local type and field definitions


PARAMETERS pa_date LIKE sy datum DEFAULT sydatum.

Ecran Seleco Gerado pelo sistema INITIALIZATION.

Event block

pa_date = pa_date - 7. START OF SELECTION. WRITE pa_date. Event block

Instrues de Eventos
Eventos associados s Bases de Dados Lgicas

INITIALIZATION.
AT SELECTION-SCREEN OUTPUT. AT SELECTION-SCREEN. START-OF-SELECTION. END-OF-SELECTION. GET . GETLATE.
Eventos associados criao de listas

TOP-OF-PAGE. END-OF-PAGE.

Instrues de Eventos

Eventos associados ao Report Interactivo

AT LINE-SELECTION. AT PFxx. AT USER-COMMAND.

TOP-OF-PAGE DURING LINE-SELECTION.

Exerccios

BC0206 Exerccios

Exerccio 1
Clculo com datas
a) Criar o programa ZCALCULA_DATAS_XXX que escreva o seguinte cabealho : ____________________________________________ Relatrio de : (Utilizador) Feito em : (Data) s : (Hora) _____________________________________________ b) Alterar o programa de modo a calcular uma data distante de outra de um certo nmero de dias.

Exerccio 2
Acesso base de dados
a) Actualizar a tabela criada anteriormente destinada a servir a lista de telefones.
b) Criar um programa com o nome ZLIST_TELEFONES_XXX que liste no ecr os campos da tabela criada: EXTENSO GABINETE UTILIZADOR NIF b) Seleccionar as extenses de telefone de acordo com um parmetro de entrada.

Exerccio 3
Mapa simples
a) Listar a informao da tabela SPFLI referente aos voos de transportadoras areas. Devem ser seleccionados o ID da transportadora (spfli-carrid) e o n do voo (spfli-connid). Nome do report = ZLISTAGEM_VOOS_XXX

b) Na listagem devem constar os seguintes campos : CARRID CONNID CITYFROM CITYTO (ID da transportadora) (Nmero do Voo) (Cidade de partida) (Cidade de chegada)

c) Se a transportadora e voo foram encontrados emitir uma mensagem de confirmao antes da listagem. Nota: Use uma work-area para guardar a informao do select.

Exerccio 4
Pontos de quebra e sumarizaes
a) Crie um programa com o nome ZSFLIGHT_XXXX que liste todos os voos e respectivas datas, mediante uma determinada transportadora a seleccionar. b) O programa dever ler para uma tabela interna todos os registos encontrados (tabela SFLIGHT). c) Ordenar a tabela interna por voo e data. d) Listar os registos encontrados agrupados por por voo. e) Calcular o total de lugares ocupados para cada voo. f) No final listar o total de lugares ocupados em todos os voos.

Exerccio 5
Collect e Ranking
a) Criar o programa Z#ACE_05 que liste o total de ocupantes e a quantia apurada em todos os voos realizados. b) O programa dever ler a tabela SFLIGHT : CARRID SEATSOCC PAYMENTSUM (ID da Transportadora) (Lugares Ocupados) (Total apurado por Voo)

e transferir para a tabela interna os valores agrupados por transportadora.

c) A listagem dever considerar apenas as 5 transportadoras com mais lugares ocupados.

Exerccio 6
Subrotinas
a) Criar o programa Z#ACE_06 que calcule e liste a percentagem de ocupao de cada voo. b) O programa dever ler a tabela SFLIGHT : CARRID CONNID FLDATE SEATSOCC SEATSMAX (ID da Transportadora) (N do Voo) (Data Voo) (Lugares Ocupados) (Lotao Mxima)

calcular a percentagem de ocupao e transferir para a tabela interna os valores. c) O clculo da percentagem deve ser feito usando uma subrotina

Exerccio 7
Mdulos de funo
a) Crie um programa Z#ACE_07 com base no exerccio 6, que faa o download para um ficheiro dos valores de percentagem de ocupao encontrados

b) Use o mdulo de funo WS_DOWNLOAD

Exerccio 9
Select-Options
a) Criar outro programa com o nome Z#ACE_09, idntico ao anterior mas com possibilidade de seleces adicionais. b) Incluir as seguintes seleces especficas : - ID da Transportadora - N do Voo Sugesto : Considerar o uso da instruo CHECK includo no bloco de instrues associado a um evento. c) Numa fase posterior tornar obrigatria a declarao no ecr de uma transportadora.

Você também pode gostar