Anda di halaman 1dari 15

Delivery

Desenho Tcnico
Cdigo do RICEF

Programmingo for the Future Treinamento ABAP

Descrio no MDM
Caractersticas Tcnicas
Programa
Change
Request

Transao
Observaes

Estimativa para codificao 24 horas.

Resumo e Objetivo
O objetivo permitir aos colegas exercitarem e desenvolverem o conhecimento
atravs da prtica.
O programa dever realizar cadastro de clientes, produtos. Alm de fazer e consultar
pedidos.

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 1 de 15

Delivery
Fluxo de telas #1
Cliente

Table Control T_CLIENTE

Cadastrar
Produto
Fazer pedido
Tipo de entrega
Consultar Pedido
Cadastrar Batch!
ALV T_ALV

Table Control T_PRODUTO

ID_PED
ID_CLI

FRETE

Table Control
T_PEDIDO_AUX

+
Table Control
T_CAD_FRETE

Fluxo de dados #2

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 2 de 15

Delivery
1. Crie um module pools ZXXOL_DELIVERYO com a transao ZXXTR_DELIVERY.
2. A tela 9000
2.1. Crie 3 botes, cadastrar, fazer pedido e consultar pedido.

3. Boto Cadastrar
3.1. Quando pressionado devera chamar a tela 9100
3.2. Tela 9100
3.2.1.

Crie 3 botes na tela 9100, Cliente, Produto e Cadastrar Batch.

3.2.1.1. Boto cliente

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 3 de 15

Delivery
3.2.1.1.1.

Devera chamar a tela 9200

3.2.1.1.2.

Tela 9200
3.2.1.1.2.1.1.1. Criar uma table control, ela dever exibir, modificar
e inserir dados na tabela interna T_CLIENTE.
3.2.1.1.2.1.1.2. Ser possvel cadastrar cinco novos registros ao
mesmo tempo.
3.2.1.1.2.1.1.3. Ao entrar na tela no deve ser possvel modificar
dados existentes (input=0), a no ser que clique no boto
Habilitar.
3.2.1.1.2.1.1.4. Criar um boto Habilitar, para ativar a
possibilidade do usurio modificar dados existentes
(input=1), e o Boto Desabilitar para desativar a
possibilidade de modificao dados existentes (input=0).

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 4 de 15

Delivery

Tutorial: LOOP AT
SCREEN para os botoes HABILITAR e DESABILITAR

3.2.1.1.2.1.2. Logica de salvar: crie uma tabela global


T_CLIENTE_BACKUP do mesmo tipo da T_CLIENTE e a
preencha com o contedo da T_CLEINTE antes da table
control ser exibida.
3.2.1.1.2.1.3. Caso o boto salvar seja pressionado, limpe a tabela
T_CLIENTE_BACKUP e volte uma tela(SET SCREEN 0.).
3.2.1.1.2.1.4. Caso os botes Voltar ou Encerrar sejam pressionados
limpe a T_CLIENTE e a preencha com o contedo da
T_CLIENTE_BACKUP e volte uma tela(SET SCREEN 0.).
(Necessidade da logica de salvar: ao modificar dados da
table control ser modificada os dados tabela interna
T_CLIENTE, se o usurio sair da tela sem salvar as
modificao devem ser ignoradas, para isso devemos
Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 5 de 15

Delivery
realizar um backup antes que o usurio modificar os
dados.)
3.2.1.2. Boto produto
3.2.1.2.1.

Chamar a tela 9300, quando pressionado.

3.2.1.2.2.

Tela 9300

3.2.1.2.2.1.1. Crie uma table control, ela dever exibir, modificar e inserir
dados na tabela interna T_PRODUTO;
3.2.1.2.2.1.2. Realize a logica do item 3.2.1.1.2.1.2., 3.2.1.1.2.1.3. e
3.2.1.1.2.1.4. usando as tabelas T_PRODUTO e
T_PRODUTO_BACKUP.
Boto Tipo de Entregas
3.2.1.3. Boto Cadastrar Batch
3.2.1.3.1.
Criar um perform f_batch_inpput_9100 e o chamar na user
commad da tela 9100, que executar quando o boto Cadastrar Batch
for pressionado.
3.2.1.3.2.
Ser necessario o uso do comando EXPORT/IMPORT TO
MEMORY ID, Exemplo de sintaxe:

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 6 de 15

Delivery

3.2.1.3.3.

Logica do from f_batch_input_9100


3.2.1.3.3.1. Criar um Batch input para executar a transao
ZXXOL_DELIVERY e cadastrar dados nas tabelas,
T_PRODUTOS e T_CLIENTE, atravs das telas 9200 e
9300
3.2.1.3.3.1.1. Dados para preencher a tabela T_PRODUTOS

ID_PRO
00001
00002
00003
00004
00005
00006
00007

NOME
Coxinha F
Coxinha FC
Coxinha CH
Pastel C
Pastel F
Pastel Q
Enroladinho

VALOR
1,00
3,00
2,50
1,50
1,50
1,50
1,00

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

DESCRICAO
Coxinha de frango
Coxinha de frango com catupiry
Coxinha de charque/carne seca
Pastel de carne
Pastel de frango
Pastel de queijo
Enroladinho com salsicha de frango

ESTOQUE
50
70
50
40
40
40
30

Pgina 7 de 15

Delivery
3.2.1.3.3.1.2. Dados para preencher a tabela T_CLIENTE
ID_CLI

CPF

NOME

C00001 11111111111 Sherlock Holmes


Luiz Incio Lula
C00002 22222222222 da Silva
Flvio Roberto
C00003 33333333333 Pinto
Z Estreilinaldo
C00004 44444444444 da Fonte
Raul Fernando de
C00005 55555555555 Borges
Denise Pereiras e
C00006 66666666666 Santos
Andy Selestino
C00007 77777777777 Junior

ENDERECO
Rua: Baker Street,
n 221b ,
CEP:50000-000
Av.: Francisco
Prestes, n 1633,
CEP:50000-000
Rua: Prncipe, n
460, CEP:50000000
Av: Jose estrelito,
n 3852,
CEP:50000-000
Rua: Romanos, n
24, CEP:50000-000
Rua: pacifico dos
santos, n 63,
CEP:50000-000
Rua: Das Oliveiras,
n 5454,
CEP:50000-000

E-MAIL

TELEFONE

sherlock.dete@hotmail.com

(81) 3131-3131

lulasilva@hotmail.com

(81) 3131-3132

roberto2000@yahoo.com.br

(81) 3131-3133

estrelinaldo@gmail.com

(81) 3131-3134

raul.hgta@bol.com.br

(81) 3131-3135

denise18@hotmail.com

(81) 3131-3136

andy_selestino@msn.com

(81) 3131-3137

3.2.1.3.3.1.3. Se o batch input tiver sucesso, exiba a mensagem


M09.

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 8 de 15

Delivery
4. Boto fazer pedido
4.1. Dever chamar a tela 9500

4.2. Tela 9500


4.2.1.

Ler a tabela T_PRODUTOS, e preencher a tabela T_PEDIDO_AUX.

4.2.1.1.
Caso o campo ESTOQUE da tabela T_PRODUTOS seja igual a
0 ou vazio, a linha deve ser ignorada.
4.2.1.2.

4.2.2.

Preencha a tabela T_PEDIDO_AUX da seguinte forma:


T_PEDIDO_AUX-Q_COMPRA = 0
T_PEDIDO_AUX-NOME
= T_PRODUTO-NOME
T_PEDIDO_AUX-VALOR
= T_PRODUTO-VALOR
T_PEDIDO_AUX-ESTOQUE = T_PRODUTO-ESTOQUE
T_PEDIDO_AUX-DESCRICAO = T_PRODUTO-DESCRICAO
T_PEDIDO_AUX-ID_PED
= 171

Verificar o ultimo registro do campo ID_PED da tabela T_PEDIDO.

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 9 de 15

Delivery
4.2.2.1.
Caso no exista registro o novo ID_PED de pedido ser
P000001.
4.2.2.2.
Caso exista pedidos cadastrados, incremente um(1) a parte
numrica do ID_PED (P00000X+1).
4.2.3.
Preencher com o novo id de pedido o campo ID_PED da tabela
T_PEDIDO_AUX que estiverem com o ID_PED igual a 171.
4.2.4.
Criar uma table control com, os campos Q_COMPRA, NOME, VALOR,
DESCRICAO e ESTOQUE da tabela T_PEDIDO_AUX.
4.2.5.

Criar trs parmetros de tela:

4.2.5.1.
ID_PED(preenchido com o campo ID_PED da tabela
T_PEDIDO_AUX).
4.2.5.2.
4.2.6.

ID_CLI(com matchcode da tabela interna T_CLIENTE)

Criar um boto salvar.

4.2.6.1.

Quando o boto salvar for pressionado:

4.2.6.1.1. Verificar se o parmetro de tela ID_CLI esta preenchido, se no


estiver exiba sua respectivas mensagem M00
4.2.6.1.2. Valide se o valor do campo ID_CLI esta contido nos registros do
campo ID_CLI da tabela T_CLIENTE.
4.2.6.1.2.1.1. Se no estiver contido exiba a mensagem M05 passando
o valor do campo ID_CLI.
4.2.6.1.3. Verificar todas as linhas da tabela T_PEDIDO_AUX:

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 10 de 15

Delivery
4.2.6.1.3.1. Se: no campo Q_COMPRA no existir valor
diferente de 0 ou vazio, exiba a mensagem M02.
4.2.6.1.3.2. Se no: preencher a T_PEDIDO com a linha da
T_PEDIDO_AUX que estiver com o valor do campo
Q_COMPRA maior ou igual a 1, da seguinte forma:
T_PEDIDO-ID_PED
=
T_PEDIDO-ID_CLI
=
T_PEDIDO-Q_COMPRA =
T_PEDIDO-ID_PRO
=
T_PEDIDO-DATA
=
T_PEDIDO-HORA
=
T_PEDIDO-VALOR
=

T_PEDIDO_AUX-ID_PED
T_PEDIDO_AUX-ID_CLI
T_PEDIDO_AUX-Q_COMPRA(Logica do Estoque)
T_PEDIDO_AUX-ID_PRO
Data atual
Hora atual
T_PEDIDO_AUX-VALOR

4.2.6.1.4.
Logica do Estoque: Verificar se o campo Q_COMPRA da
T_PEDIDO_AUX igual ou menor que o campo ESTOQUE da tabela
T_PRODUTO, usando o campo chave ID_PRO:
4.2.6.1.4.1. Se for verdade, altere o valor do campo ESTOQUE
subtraindo o valor do campo Q_COMPRA.
4.2.6.1.4.2. Se no exiba a mensagem M04 passando os
campos ESTOQUE e NOME da tabela T_PRODUTO.
4.2.6.1.5.
Limpe a tabela T_PEDIDO_AUX, exiba a mensagem M07
passando o valor do campo ID_PED e chame a tela 9700

5. Boto consultar pedido


5.1. Se pressionado, chamar a tela 9600.
5.2. Tela 9600
5.2.1.
Criar um parmetro de tela onde ser informado o ID_PED com
matchcode da tabela T_PEDIDO.
5.2.2.

Quando o usurio pressionar enter:

5.2.2.1.
Valide se o valor do parmetro de tela esta contido nos registros
do campo ID_PED da tabela T_PEDIDO.

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 11 de 15

Delivery
5.2.2.1.1. Se no estiver: exiba a mensagem M08 passando o valor do
parmetro de tela.
5.2.2.2.

Chame a tela 9700.

Tela 9700

5.2.3.
Criar um ALV que exiba os campos NOME, Q_COMPRA, DESCRICAO
e VALOR. Exibir o total do campo VALOR.
5.2.3.1.

O cabealho deve conter a seguinte logica:

NOME: (T_CLIENTE-NOME) ID: (T_CLIENTE-ID_CLI)


PEDIDO: (T_PEDIDO-ID_PED) EM: (T_PEDIDO-DATA) AS: (T_PEDIDO-HORA)

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 12 de 15

Delivery
5.2.3.2.

Preenchimento da tabela T_ALV:


Obs: a chave o ID_PED

T_ALV-NOME
=
T_ALV-Q_COMPRA =
T_ALV-DESCRICAO =
T_ALV-VALOR
=

T_PEDIDO-NOME
T_PEDIDO-Q_COMPRA
T_PEDIDO-DESCRICAO
T_PEDIDO-VALOR x Q_COMPRA

Preenchimento da ultima linha da tabela T_ALV:


T_ALV-NOME
=
T_ALV-Q_COMPRA =
T_ALV-DESCRICAO =
T_ALV-VALOR
=

'Frete'
'1'
T_CAD_FRETE-DESCRICAO
T_CAD_FRETE-PRECO

Tutorial: Cabealho
para ALV

6. Tabelas Internas
T_PRODUTO
Nome da Tabela
Tabela interna de produtos
Descrio
Estrutura da Tabela

Tipo da Tabela

Tabela Interna

Campo

Tipo de Dado

Tamanho

Descrio Breve

ID_PRO
NOME
VALOR
DESCRICAO
ESTOQUE

CHAR
CHAR
BP3100-AMNT
CHAR
INTEIRO

10
20

Cdigo do produto
Nome do produto
Preo unitrio do produto
Descrio do produto
Quantidade de produto disponvel

255

T_PEDIDO_AUX
Nome da Tabela
Tabela para auxiliar os pedidos
Descrio
Estrutura da Tabela

Tipo da Tabela

Campo

Tipo de Dado

Tamanho

Descrio Breve

ID_PED
ID_PRO
ID_CLI
Q_COMPRA
NOME
DESCRICAO
VALOR
ESTOQUE

CHAR
CHAR
CHAR
INTEIRO
CHAR
CHAR
BP3100-AMNT
INTEIRO

10
10
10

Cdigo do pedido
Cdigo do produto
Cdigo do Cliente
Quantidade a ser comprada
Nome do produto
Descrio do produto
Preo unitrio do produto
Quantidade de produto disponvel

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

20
255

Tabela Interna

Pgina 13 de 15

Delivery
T_PEDIDO
Nome da Tabela
Tabela interna de pedidos
Descrio
Estrutura da Tabela

Tipo da Tabela

Tabela Interna

Campo

Tipo de Dado

Tamanho

Descrio Breve

ID_PED
ID_CLI
ID_PRO
Q_COMPRA
VALOR
DATA
HORA

CHAR
CHAR
CHAR
INTEIRO
BP3100-AMNT
SY-DATUM
SY-UZEIT

10
10
10

Cdigo do pedido
Cdigo do Cliente
Cdigo do produto
Quantidade a ser comprada
Preo unitrio do produto
Data do pedido
Hora do pedido

T_ALV
Nome da Tabela
Tabela para EXIBIR o ALV
Descrio
Estrutura da Tabela

Tipo da Tabela

Tabela Interna

Campo

Tipo de Dado

Tamanho

Descrio Breve

NOME
Q_COMPRA
DESCRICAO
VALOR

CHAR
INTEIRO
CHAR
BP3100-AMNT

50

Nome do produto
Quantidade a ser comprada
Descrio do produto
Preo unitrio do produto

255

T_CLIENTE
Nome da Tabela
Tabela de cadastro de Clientes
Descrio
Estrutura da Tabela

Tipo da Tabela

Campo

Tipo de Dado

Tamanho

Descrio Breve

ID_CLI
CPF
NOME
ENDERECO
EMAIL
TELEFONE

CHAR
CHAR
CHAR
CHAR
CHAR
CHAR

10
14
50
255
35
14

Cdigo do cliente
CPF do cliente
Nome completo do cliente
Endereo completo do cliente
E-mail do cliente
Telefone do Cliente, EX: (81) 3333-5151

Tabela Interna

7. Descrio das Mensagens


Identificao
M00
Texto da
Mensagem

Tipo de Mensagem Condio


E
O Campo ID_CLI no estiver preenchido
Por favor preencher o campo Cdigo do cliente.

Identificao
M02
Texto da
Mensagem

Tipo de Mensagem Condio


E
O campo Q_COMPRA igual a 0 ou vazio
Para criar um pedido a quantidade de itens deve ser maior que 0

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 14 de 15

Delivery
Identificao
M04
Texto da
Mensagem

Tipo de Mensagem Condio


E
Estoque menor

Identificao
M05
Texto da
Mensagem

Tipo de Mensagem Condio


E
O ID_CLI

Identificao
M07
Texto da
Mensagem

Tipo de Mensagem Condio


S
O pedido

Identificao
M08
Texto da
Mensagem

Tipo de Mensagem Condio


E
O pedido

Identificao
M09
Texto da
Mensagem

Tipo de Mensagem Condio


S
Sucesso

que pedido.
S existe(m) & unidades do produto & no estoque.

no existe na tabela T_CLIENTE


O Cdigo do cliente & no foi cadastrado

foi realizado
Pedido & realizado com sucesso

no existe

O pedido & no existe

no batch input
Cadastro via Batch Input realizado com sucesso!

Este documento foi produzido por Oliviera, H. - 2012

h.oliveira@accenture.com

Pgina 15 de 15