NDICE:
INTRODUO:........................................................................................................................... 3
SOBRE ESSA APOSTILA:........................................................................................................ 6
DIAMANTE:................................................................................................................................. 6
R3 COMO UM SISTEMA ABERTO COMUNICAO: ....................................................... 6
ARQUITETURA: ......................................................................................................................... 7
O MIDDLEWARE BASIS: .......................................................................................................... 9
SAP ON LINE SERVICE SYSTEM: ........................................................................................ 10
CONCEITO DE MANDANTE:.................................................................................................. 10
CHANGE REQUEST:............................................................................................................... 11
UNIDADES LGICAS COM SEUS MANDANTES -> DESENHO. ...................................... 12
OBJETOS Z E Y: .................................................................................................................. 13
CLASSE DE DESENVOLVIMENTO OU PACOTE: .............................................................. 13
PROGRAMAS STANDARD DO SAP:.................................................................................... 13
FIELD EXITS ............................................................................................................................. 13
SCREEN EXIT........................................................................................................................... 17
USER-EXIT................................................................................................................................ 17
TRANSAES IMPORTANTES AO DESENVOLVIMENTO: ............................................. 18
ENTRADAS POSSVEIS NO CAMPO DE COMANDO: ....................................................... 18
TELAS DE SELEO:............................................................................................................. 19
PARAMETER:........................................................................................................................... 20
DECLARAO DE VARIVEIS: ............................................................................................ 22
CATEGORIA SIGNIFICADO ADEQUADO PARA ........................................................................ 23
MENSAGENS: .......................................................................................................................... 24
TRANSAO: .......................................................................................................................... 25
DEBUGGER:............................................................................................................................. 26
TIPOS DE TABELAS: .............................................................................................................. 27
DICIONRIO (DDIC). ............................................................................................................... 28
ATUALIZADOR DE TABELA.................................................................................................. 30
TABELA INTERNA................................................................................................................... 32
HEADER LINE .......................................................................................................................... 32
MODULARIZAO:................................................................................................................. 36
COMANDO WRITE: ................................................................................................................. 37
TABELA SYST: ........................................................................................................................ 37
COMMIT WORK/ROOLBACK WORK: .................................................................................. 38
LOOP ENDLOOP: ................................................................................................................. 40
IF, ELSE, ENDIF: ...................................................................................................................... 41
CASE: ........................................................................................................................................ 42
INSERT. ..................................................................................................................................... 42
SORT. ........................................................................................................................................ 43
MODIFY. .................................................................................................................................... 44
DELETE..................................................................................................................................... 44
CLEAR:...................................................................................................................................... 44
INCLUDE :................................................................................................................................. 45
UPDATE: ................................................................................................................................... 47
CONCATENATE: ..................................................................................................................... 47
WS_UPLOAD E WS_DOWNLOAD: ....................................................................................... 48
WORK REA: ........................................................................................................................... 49
SELECT:.................................................................................................................................... 50
SELECT <RESULT> FROM <TABLES> INTO <TARGET> WHERE <CONDITION>. .................. 50
SELECT SINGLE LEITURA DE UM NICO REGISTRO. ............................................................ 50
SELECT....ENDSELECT LEITURA DE MLTIPLAS LINHAS; .................................................. 50
SELECT....FROM...INTO....FOR ALL ENTRIES IN <ITAB>...WHERE....<F1> EQ <ITAB><FX>........................................................................................................................................... 51
SELECT......UP TO <N> ROWS................................................................................................ 51
SELECT <T1>~<F1> <T2>~<F1> FROM <T1> INNER JOIN <T2> ON <T1>~<F3> EQ
<T2>~<FX> INTO ...WHERE... ................................................................................................. 51
SUBMIT: .................................................................................................................................... 53
EXPORT IMPORT: ................................................................................................................... 53
READ TABLE: .......................................................................................................................... 54
MODULE POOL: ...................................................................................................................... 55
CALL SCREEN:........................................................................................................................ 56
LEAVE: ...................................................................................................................................... 56
TABLE CONTROL: .................................................................................................................. 57
COLUNA DE MARCAO:..................................................................................................... 58
CRIAO DE BOTES EM TELA: ........................................................................................ 59
TABSTRIP:................................................................................................................................ 59
CARGAS EM BANCO DE DADOS:........................................................................................ 62
1 - DIRECT INPUT ........................................................................................................................ 62
2 - BATCH INPUT ......................................................................................................................... 62
3 CALL TRANSACTION ............................................................................................................. 63
4 BAPI..................................................................................................................................... 65
SAPSCRIPT:............................................................................................................................. 65
INTRODUO:
DIAMANTE:
SAP/R3 um sistema que pode agregar diversos mdulos que por sua vez
possuem diversas funcionalidades, todas integradas seguindo o conceito de
tabelas relacionais.
O R/3 segue o princpio administrativo conhecido como DIAMANTE onde
diversos mdulos separados entre si podem ser acoplados dentro de um mesmo
conceito definido por sistema, onde todos esses mdulos podem enxergar e
conversar entre si, garantindo integridade e integrao entre todos os mdulos.
ARQUITETURA:
O MIDDLEWARE BASIS:
CONCEITO DE MANDANTE:
10
CHANGE REQUEST:
As alteraes no software R/3 podem ser divididas em cinco categorias:
Customizing: a configurao dos processos de negcio e funes de
menu atravs do IMG
Personalization: so as mudanas globais das caractersticas das telas e
definio de valores default para determinados campos (SM3)
Modification: so mudanas efetuadas pelo cliente no repositrio de
objetos do R/3 (os SAP objects). estas alteraes precisam ser cuidadosamente
avaliadas quando do upgrade de verses do sistema. A partir do release 4.5A a
SAP introduziu o Modification Assistent para auxiliar a gerenciar e automatizar
estas mudanas
Enhancement: criao pelo cliente de objetos no repositrio que so
referenciados pelos objetos standard do R/3 atravs de user exits. Estes
desenvolvimentos so os ideais por reduzirem as necessidades de modification
adjustments durante o processo de upgrade Customer Development: criao
pelo cliente de objetos no repositrio atravs do ABAP Workbench (programas,
etc.)
Uma change request um pacote contendo os objetos que sero
transportados de um sistema R/3 para outro. Por exemplo, no caso de um abap
ser encapsulado o source, no caso de uma configurao ser encapsulado as
entradas nas tabela e sua respectiva ao (cria/deleta/altera). Uma change
request pode ser atribuida a vrios usurios atravs do conceito de tarefa. Apesar
do nome tarefa ela no representa o que vai ser feito, ela representa a associao
da change request com o usurio e a respectiva documentao (que no
obrigatoria) do que foi feito.
Todas as alteraes efetuadas nos objetos do repositrio so criadas e
mantidas atravs do ABAP Workbench e gravadas em change requests. As
demais alteraes de customizing e personalizations so criadas e mantidas pelas
ferramentas de business engineer e tambm gravadas em change requests. Estes
11
DESENVOLVIMENTO
REQUEST
QUALIDADE
PRODUO
REQUEST
12
OBJETOS Z E Y:
13
14
Cdigo desenvolvido
function field_exit_auart.
*"---------------------------------------------------------------------*"*"Interface local:
*"
IMPORTING
*"
VALUE(INPUT)
*"
EXPORTING
*"
VALUE(OUTPUT)
*"---------------------------------------------------------------------data: w_auart like vbak-auart.
w_auart = input.
export w_auart to memory id 'w_auart'.
output = input.
endfunction.
15
Elemento de dados.
Status (ativo ou inativo).
Programa (nome do programa especfico ou global)
Tela (nmero da tela do programa na qual a exit estar ativa)
Numerao para quando tivermos a exit ativa para mias de uma tela ou
programa.
Descrio herdada do elemento de dados.
Tambm importante destacar que para cada funo que for criada para a
field exit especfica deveremos associar um grupo de funes. A dica criar
um grupo de funes para cada field exit criada.
16
17
18
Entrar: /n.
Ateno: modificaes no gravadas so perdidas sem aviso
Eliminar o modo atual:
Entrar: /i.
Gerar uma lista de modos:
Entrar: /o.
Encerrar a transao atual e voltar ao menu inicial :
Entrar: /ns000.
Logoff do sistema:
Entrar: /nend.
Logoff do sistema sem consulta de segurana:
Entrar: /nex.
Ateno: modificaes no gravadas so perdidas sem aviso.
TELAS DE SELEO:
19
PARAMETER:
OBLIGATORY
DEFAULT
AS CHECKBOX
RADIOBUTTON GROUP B1
Exerccio.
Criar um REPORT utilizando todas as opes acima com PARAMETERS.
Combinar com os j apresentados
SELECT-OPTIONS:
A declarao SELECT-OPTIONS <nome> FOR <objeto de dados> insere
dois campos de entrada na tela de seleo, com o mesmo tipo definido na
referencia. Com isso, os usurios podem entrar um intervalo de valores ou
selees mais complexas
Os diversos valores ou intervalos, entrados para uma opo de seleo,
so inseridos na tabela interna quando o usurio selecionar Executar.
Exemplo:
1 - Para exibirmos em tela um parmetro simples de entrada de dados:
20
21
DECLARAO DE VARIVEIS:
uma definio de objetos de dados.
A atribuio de categoria de objeto de dados feita pela referencia do objeto a
uma categoria abap, a uma categoria definida pelo usurio ou a um objeto do
dictionary.
Sintaxe:
TYPE <ABAP-data-type> .
TYPE <user-definied.type>.
LIKE <ABAP-dictionary-object>.
22
Categoria de dados
2 tipos: Predefinidos
Definidos pelo usurio
- Predefinidos
No Abap existem 8 categorias de dados predefinidos:
Numricos:
Categoria
Significado
Adequado para
numero compactado
numero inteiro
Alfanumricos:
Categoria
Significado
texto numrico
texto (caracter)
data
horrio (time)
hexadecimal
23
Exemplo:
DATA: <varname> TYPE <ABAP-data-type>.
DATA: counter
name(18)
start_date
sum(3)
TYPE
TYPE
TYPE
TYPE
I,
C,
D,
P DECIMALS 2.
Numero de posies
Determina o numero de casa decimais a ser usado
MENSAGENS:
uma caixa de texto configurada para ser exibida ao usurio quando um
determinado evento disparado.
Todas as messages devero ser executadas com textos padres ou
personalizados.
Exemplos:
- Texto padro:
MESSAGE I027 (BCTRAIN).
Chamada da
message
Tipo de message
utilizada
N da message
na biblioteca
Texto utilizado de
uma biblioteca padro
- Texto personalizado:
MESSAGE W001(PC) WITH Cuidado, operao pode gerar danos ao
sistema!.
Chamada
da message
Tipo de
message
utilizada
N aleatrio
atribudo
message
Utilizao
no
padronizada
Texto no
padro
utilizado
24
Tipos de mensagens:
A Abend
W - Warning
I - Information
S Status
E Erro.
X Exit (termina com short dump).
Exerccio.
01 Criar um report em que os parameters de entrada sejam exibidos em
mensagens (testar todos os tipos).
TRANSAO:
DEBUGGER:
uma ferramenta de depurao de erros e anlise de execuo de
comandos/instrues.
Ele utilizado para procurar erros semnticos nos programas. Existem
vrios modos de iniciar o Depurador:
-
Pontos de parada
26
TIPOS DE TABELAS:
Tabela Transparente
Existe uma tabela fsica no banco de dados para uma tabela transparente.
Todos os dados empresariais e dados de aplicao so arquivados em
tabelas transparentes.
Exemplo:
Todas as nossas tabelas do PW.ce.
EKKO Cabealho do documento de compras.
EKPO - Item do documento de compras.
Nosso sistema PW.ce grava todas as informaes em tabelas
transparentes
objetivo de que certos dados sejam visualizados sempre que for chamada
uma view
associada a eles.
A maior utilidade deve-se ao fato de criar uma consulta default e toda vez
que se quiser visualizar os dados no ser necessrio reinventar a roda,
ou seja, montar todo o select novamente.
Imagine uma consulta que manipule 10 tabelas e 40 campos ser que h
necessidade de ficar refazendo toda vez? Claro que no, crie uma view e
toda vez que haja necessidade faa uma chamada a ela!
Uma view no utilizada apenas para visualizao dos dados, caso se crie
uma view de apenas uma tabela, tem-se a opo de efetuar alteraes
(update, insert e delete) na mesma replicando assim os dados para a tabela
de onde a view foi gerada.
DICIONRIO (DDIC).
28
29
Exerccio:
1 Criar uma estrutura para cada tabela transparente criada (ZTALUNO,
ZTCLASSE, ZTPROFESSOR)
ATUALIZADOR DE TABELA.
30
Valor
Nome da tabela transparente
X
31
TABELA INTERNA.
CONCEITOS:
1 - So espaos de memria criados por um programa ABAP que s podem
ser utilizadas enquanto um programa est sendo utilizado.
2 - Armazenar dados temporariamente dentro de um prog. ABAP. As
tabelas internas s existem enquanto o programa estiver rodando.
3 - Tabelas criadas e declaradas dentro de um programa abap que no
existem fisicamente no BD.
4 - So alimentadas por seleo em tabelas ou insero via comando do
programa e servem para guardar momentaneamente esses dados.
HEADER LINE
0017
0400
2,572
6,162
Tipo de Linha
Dados
Categorias de Tabelas
Efeito
APPEND
INSERT
33
MODIFY
DELETE
LOOP AT
READ TABLE
Insere exatamente uma entrada da tabela interna
em uma rea de trabalho.
SORT
CLEAR
O sistema permite usar tabelas internas sempre que houver uma seqncia
de entradas ou linhas de mesmo tipo. Isto ocorre quase sempre quando um
programa precisa de uma copia interna de uma determinada tabela do banco de
dados.
O usurio pode preencher uma tabela interna com registros de dados de
uma tabela do banco de dados utilizando um loop SELECT para colocar registros
individuais de dados na rea de trabalho de uma tabela interna e, depois,
anexando o contedo da rea de trabalho tabela interna no loop SELECT.
A instruo APPEND deve ser utilizada para preencher uma tabela interna.
Ao declarar uma tabela standard, o usurio no precisa usar o suplemento
STANDARD.
Exemplos de criao.
Debugar e mostrar vazia.
Passar os parameters para dentro da ITAB. Mostrar APPEND -> explicar
header line.
Exerccio:
34
Exerccio:
01 Criar dentro do programa teste a declarao de tabela interna e
compilar.
02 Debugar a o programa e exibir HEADER LINE -> explicar.
03 - Criar parameters para tabela ZPROFESSOR e mover para tabela
interna.
04 Criar SELECTION SCREEN com bloco e frame.
MODULARIZAO:
CONCEITOS:
Organizao do programa:
INITIALIZATION.
START-OF-SELECTION.
END-OF-SELECTION.
TOP-OF-PAGE.
Form Perform.
A estrutura Form / Perform muito utilizada com qualquer tipo de programa,
com ela executasse a modularizao do cdigo fonte atravs de blocos de
processamento.
Algumas vezes comum ocorrerem confuses entre funes e a estrutura
form/perform pela seguinte causa:
Na funo so passados valores quaisquer para serem processados e
obtido um retorno X qualquer definido pelo programador, enquanto no
form/perform valores so passados para serem processados (podendo-se passar
at uma tabela inteira), mas no obtem-se um nico retorno.
O que ocorre uma chamada a um processamento em bloco passando
valores, representada pelo perform (que na realidade uma chamada ao form). O
contedo do programa que vem abaixo do PERFORM s executado se o bloco
de processamento FORM permitir, ou seja, neste tipo de estrutura no se fica
esperando um nico retorno e sim um contnuo processamento.
A maior utilizao do FORM / PERFORM d-se ao fato que em um
programa bem modularizado o tempo de manutenabilidade fica reduzido gerando
assim uma otimizao das tarefas.
Exemplo:
Criar os eventos e forms de processamento.
Passar parmetros para o FORM.
36
COMANDO WRITE:
CONCEITO:
Serve tanto para mover dados tanto para sada de dados em tela.
Criar no END-OF-SELECTION a sada da tabela ZTPROF.
Separadores do WRITE -> Cabealho de sada.
FORMAT COLOR. INTENSIFYED ON/OFF.
Criar e mostrar a sada de dados da tabela interna ZTPROF.
Exerccio:
1 Criar o evento end-of-selection, o FORM de sada, o cabealho da
sada, a sada dos dados e fazer a formatao de cores.
TABELA SYST:
CONCEITO:
Tabela interna do sistema SAP/R3
que exibe controles internos
importantes para o processamento dos Programas ABAP.
A tabela Syst representatividade de todo o sitema R/3 atravs de alguns
parmetros. Parmetros estes que permitem ao profissonal ABAP fazer
verificaes no sistema.
Verificaes englobam muitos detalhes, a tabela Syst to completa que
nos permite fazer desde verificaes simples como a obteno da data corrente
at checks mais complexos como a verificao de qual evento foi disparado pelo
usurio em um determinado momento.
Uma viso completa dos campos da tabela Syst importante para que o
profissional ABAP fique alerta sobre quais os eventos que ele pode controlar
dentro do sistema, abaixo seguem alguns exemplos:
Sy-Index: Retorna um nmero de passagem atribudo, como por exemplo
dentro de um loop.
Sy-Tabix: Em tempo de execuo retorna a linha atual utilizada em uma
tabela interna.
Sy-Ttabc: Nmero da ltima linha lida em uma tabela interna.
Sy-Linct: Nmero total de linhas de uma certa lista gerada.
Sy-Listi: Nmero da linha que estiver atualmente selecionada em uma lista.
Sy-Lsind: Nmero da lista de ramificao , pode-se por exemplo checar
quantas sub-listas foram executadas a partir de uma lista X.
Sy-Currow: Mostra a posio do cursor em uma linha.
Sy-Lisel: Mostra a linha selecioanda.
37
Commit Work uma tcnica utilizada para salvar dados em um BD, esta
gravao fsica, ou seja, os dados so jogados diretamente nas tabelas, para
confirmar as operaes efetuadas no insert, update, etc. Normalmente deixamos o
SAP fazer este gerenciamento de gravao pois ele consiste todos os dados em
todas as tabelas, replicando assim as alteraes.
O Commit no uma tcnica muito utilizada pois a margem de
acontecimentos de erros em sua execuo bastante alta.
Caso um processo de carga esteja sendo executado e acontea um erro e
o Commit ainda no tenha sido efetuado podemos desfazer as operaes
executadas at aquele momento com o comando ROLLBACK WORK.
Exemplo I:
Program .............................................
Module User_Command Input.
38
............................................................
............................................................
Case save_ok.
When BACK.
....................................
....................................
Message Axxxx.
ROLLBACK WORK.
When SAVE.
....................................
....................................
COMMIT WORK.
EndCase.
EndModule.
Exemplo II:
Ciclo de vida COMMIT x ROLLBACK
Rollback
Incio
Rollback
|---------------------------------------|---------------------------------------|
Commit
Fim
Commit
39
- ENQUEUE_<Nome da Tabela>.
Para a liberao da mesma chamado um outro objeto:
- DEQUEUE_<Nome da Tabela>.
Outro detalhe a ser observado que antes de se utilizar os objetos, os mesmos
devem ser criados no ABAP Dictionary. A criao destes objetos poder ser
efetuada para a manipulao de 1 ou N tabelas, vale lembrar apenas que se
houver manipulao em N tabelas deve antes existir um relacionamento entre
elas.
LOOP ENDLOOP:
Exerccio:
01 Dar LOOP nas tabelas internas criadas nos exerccios passados e
debugar.
02 Dar LOOP com condies. (EX: Salrio do professor maior que
R$1000,00).
40
Cd. Do aluno
Nome do aluno
Sexo
41
CASE:
incluir
PERFORM incluir.
WHEN CANC OR VOLT. Executa se clicar no boto cancelar
SET SCREEN O.
WHEN OTHERS.
Executa quando for escolhida outra
opo
Instrues
ENDCASE.
INSERT.
42
SORT.
43
MODIFY.
DELETE.
CLEAR:
44
Sintaxe bsica:
CLEAR itab.
CLEAR itab[].
CLEAR wa.
INCLUDE :
Exerccio:
01 - Retirar do programa principal todas as declaraes de tabelas internas
e variveis e coloc-las dentro de uma include criada pelo aluno.
45
LAY-OUT DE SADA:
46
Salrio
Moeda
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
INFORMAO.
- Nmero de registros gravados com sucesso: XX.
- Nmero de registros com erro
: XX.
UPDATE:
Sobrescreve o contedo de campos na tabela transparente. Usado para
alterar o contedo de um ou mais campos especficos de acordo com condies
ou tabela interna.
UPDATE dbtab SET f1 ... fn WHERE condio.
UPDATE dbtab FROM TABLE itab.
Mostrar um exemplo de UPDATE num dos programas exemplo.
CONCATENATE:
irm
do
47
WS_UPLOAD e WS_DOWNLOAD:
Exemplo de utilizao:
DATA: v_salario TYPE p DECIMALS 2.
DATA: BEGIN OF itab_prof OCCURS 0,
mandt LIKE zprof-mandt,
codprof LIKE zprof-codprof,
nomeprof LIKE zprof-nomeprof,
dtnasc LIKE zprof-dtnasc,
salario(13) TYPE c,
waers LIKE zprof-waers,
END OF itab_prof.
48
itab_prof-waers TO zprof-waers,
itab_prof-salario TO v_salario,
v_salario TO zprof-salario.
INSERT zprof.
ENDLOOP.
Exerccio:
01 Apagar o contedo das tabelas ZTALUNO, ZTCLASSE e ZTPROF
utilizando DELETE.
02 Carregar as tabelas internas de alunos, professores e classe com os
arquivos texto correspondentes.
03 Carregar as tabelas transparentes de alunos, professores e classe
com as tabelas inernas.
04 Com uma das trs tabelas internas carregadas utilizar a funo
WS_DOWNLOAD
e
gravar
o
arquivo
com
a
nomenclatura
C:\saida_ddmmaaaa_hhmmss.txt
WORK REA:
Assim como a declarao tables, podemos criar uma rea de memria para
uma estrutura de dados declarada na qual podemos manipular dados de
cabealho, no podendo portanto armazenar mais do que uma linha de
informao.
49
SELECT:
50
Exerccio:
01 Selecionar todos os dados das 3 tabelas (professores, alunos e classe)
e armazenar em tabela interna.
01.01 Exibir um relatrio com a sada (formatada campo a campo) com o
contedo de todas as 3 tabelas internas carregadas.
LAY-OUT:
TABELA DE ALUNOS:
Todos os campos menos o mandante.
51
TABELA DE PROFESSORES:
Todos os campos menos o mandante.
TABELA DE PROFESSORES:
Todos os campos menos o mandante.
02 Criar o parmetro de tela: Cdigo do aluno.
Selecionar na tabela aluno o nome do aluno a data de nascimento e a classe do
aluno onde CODAL = Cdigo do aluno e armazenar numa WORK REA.
02.01 Selecionar da tabela de classe o cdigo do professor e a sala onde
CLASSE = classe do aluno e armazenar numa WORK AREA.
02.03 Selecionar da tabela de professores o nome do professor onde
CODPROF = cdigo do professor.
02.04 A sada dos dados deve ser apresentada da seguinte maneira:
LAY-OUT:
CDIGO DO ALUNO: XXXX.
NOME DO ALUNO: XXXXXXXXXXXXXXXXXX.
Sala
aula
de Cd. do professor
Nome do professor
Nome do aluno
Sexo
52
TOTAL DA LISTAGEM: XX
SUBMIT:
Comando utilizado para chamarmos reports externos ao programa
atualmente executado.
Sintaxe bsica:
SUBMIT report.
EXPORT IMPORT:
Comandos utilizados para transferncia de dados entre programas.
Basicamente podemos jogar em memria e recuperar informaes relevantes que
podem ser usadas em outros programas ou exits.
Podemos passar para memria dados como valores de variveis. work
reas e tabelas internas atravs do comando EXPORT e recuperar eses dados
em um determinado ponto com o comando IMPORT.
Sintaxe bsica:
EXPORT work_area to memory id MEM1.
EXPORT varivel to memory id MEM2.
Onde MEM1 e MEN2 so nomes qualquer dados por ns que se
referenciaro automaticamente como endereos de memria no R/3.
EXPORT itab TO DATABASE(01) id MEM1.
Onde 01 um ndice numrico sequencial dados por ns e MEM1 um
nome qualquer dados por ns.
Por sua vez o IMPORT faz o commando contrrio, ou seja, busca da
memria os dados passados pelo EXPORT:
IMPORT work_area from memory id MEM1.
IMPORT varivel from memory id MEM2.
IMPORT itab from database(01) id MEM1.
53
READ TABLE:
54
MODULE POOL:
PBO
process before
output .
module:
load_data,
status_0100,
set_screen.
Tela do programa
PAI
process after input.
field zycie006-bukrs
module
authority_empresa.
module:
user_command_0100.
55
Exerccio:
01 Criar um programa on-line com 1 tela e duas caixas de texto onde
informado o cdigo do professor seja exibido o nome do professor. Incluir os
controles de sada do programa e criar transao para o programa.
01.01 Aps informar o cdigo do professor e confirmar o nome do
professor dever ser exibido no campo correspondente.
01.02 Caso no exista o registro na tabela de professores o programa
dever exibir uma mensagem informando que o registro no foi encontrado e
dever limpar o campo de nome do professor.
02 Incluir no exerccio anterior um boto EM TELA que dever chamar
uma segunda tela em branco. Essa segunda dela deve ter os controles de
VOLTAR, ENCERRAR e CANCELAR ativados e funcionando.
CALL SCREEN:
Comando executado para chamar outra tela no programa. A tela chamada
precisa estar criada e ativa.
Criar uma tela 0100 para o exerccio de module pool.
LEAVE:
TABLE CONTROL:
Exerccio:
01 Criar um programa module pool com uma tela e um GRID com os
campos nome, data de nascimento, salrio e moeda da tabela de professor.
Os campos do grid devero estar em uma estrutura.
57
COLUNA DE MARCAO:
58
TABSTRIP:
Nome dado s tela com abas, como se fossem orelhas de navegao, vide
tela abaixo:
59
So compostas por:
- Tela principal (tela de fundo)
- Declarao da tabstrib:
- Abas de controle
- Subtelas
Onde:
Tela principal:
Tela obrigatria onde conter as chamadas das subtelas. Essa tela pode ter
campos como cabealho ou no ter nada, apenas as prprias subtelas. Na tela
principal obrigatoriamente precisamos ter a chamada de subscreen no PBO e no
PAI.
Exemplo:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
call subscreen:
SS_PROF including syst-cprog '0101',
SS_ALUN including syst-cprog '0102'.
PROCESS AFTER INPUT.
call subscreen:
ss_prof,
ss_alun.
MODULE USER_COMMAND_0100.
Declarao de TABSTRIP:
a declarao de dados feita no TOP INCLUDE onde criamos a
TABSTRIP propriamente dita. declarado como CONTROLS.
Exemplo:
controls:
ts_curso
TYPE TABSTRIP .
Abas de controle:
o nome da aba propriamente dita. O local onde sero criadas as
SUBSCREENs e deve ser criada dentro do SCREEN PAINTER.
No nosso exemplo os nomes das abas so: TAB_PROF e TAB_AL.
60
Exemplo:
Subtelas ou subscreen:
rea fsica criada dentro das abas de controle que contm o objeto rea de
subtela do screen painter.
No nosso exemplo as subscreens criadas tem o nome: SS_PROF e SS_ALUN.
Toda subscreen criada tem que ser referenciada a uma tela criada. No nosso
casso essas telas so 0101 e 0102. Essas telas no momento de criao so do
tipo SUBTELA.
Exerccio:
01 criar um module-pool onde:
Tela 1: Digitar o cdigo da classe. Aps clicar em boto de status B1 exibir nessa
tela o campo sala.
Tela 2: uma tela de exibio de tabstrip que ser acionada pela tela 1 clicandose em boto de status B2.
Tela 3 uma subtela da tela 2 e ser a aba PROFESSOR da tabstrip. Listar o
contedo da tabela de proferssores onde ZTPROFESSORES-CODPROF =
ZTCLASSE-CODPROF.
61
1 - Direct Input
2 - Batch Input
62
No Batch Input podemos fazer uma leitura de um arquivo .txt que conter os
dados a serem inseridos nas transaes, para isto utiliza-se a funo
WS_UPLOAD. Quando o up-load efetuado a tabela BDC serve como interface
entre o .txt e as transaes, efetuando assim o gerenciamento dessa operao de
carga, incluindo neste momento a manipulao dos campos e seus respectivos
usos.
Podemos tambm fazer o carregamento da tabela BDC atravs de selees de
dados e append em tabelas internas que serviro de passagem de dados para a
BDC.
A grande vantagem de utilizao do Batch Input deve-se ao fato de que a
carga no precisa ser efetuada no momento da criao da pasta que o conter.
A pasta pode ser criada em um dado momento e em outro process-la, o
processo em si pode ser executado de diferentes formas, seja ele com a
interveno do usurio, oculto (sem interveno) ou ento somente o usurio
intervir quando der um erro.
3 Call Transaction
Chamada:
CALL TRANSACTION nnnn USING a MODE b UPDATE c
MESSAGES INTO d.
Onde:
- nnnn = nmero da transao
- a = tabela BDC vide B.I.
- Mode:
A (default) O sistema mostra todas as telas com seus dados.
N O sitema no mostra as telas logo aps a transao ter sido
processada, existe um retorno do controle programa (o valor de
UPDATE determina se haver atualizao no BD)
E Logo que um erro ocorre na tela o sistema devia para o modo A
para que sejam efetuadas as correes.
-
Update:
c Controla como as atualizaes do BD chamadas pela
transao so executadas.
Divide-se em 3 modos:
A (Atualizao assncrona) A transao chamada no
aguarda at que o BD atualize o que tem que ser executado mas
passa a atualizao para o SAP UPDATE TASK, o programa de
Batch Input ser executado mais rpido porm no se ter um
retorno se a atualizao foi bem sucedida no BD.
As ferramentas de anlise e correo de erros no so to simples
de se uasr quanto as do modo sncrono.
S (Atualizao sncrona) A transao chamada aguarda at
que a atualizao esteja finalizada, o processamento por motivo
dessa espera fica um pouco mais lento do que no modo assncrono
porm esta transao pode listar erros caso acontea algum na
execuo, simplificando desta forma a anlise e correo dos
mesmos.
L (Local) O BD atualizado na chamada do processo do
programa.
64
4 BAPI
SAPSCRIPT:
65
66
3 WRITE_FORM
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'CABEC'
element = 'TEXTCB'
EXCEPTIONS
element = 1
function = 2
type
=3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
4 END_FORM
CALL FUNCTION 'END_FORM'
EXCEPTIONS
67
unopened = 1
OTHERS = 2.
5 CLOSE_FORM
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened = 1
OTHERS = 2.
Vale ressaltar ainda que na transao SE71 temos a opo Utilitrios Ativar
depurador.
Essa opo liga o debuger de SAPscript que se apresenta num lay-out um
pouco diferente do debuger conhecido para programas. Vale a pena ento
ativar o debuger de SAPscript e vermos como ele se comporta.
Exerccio:
Criar um report onde:
Informado o cdigo do aluno, o report dever chamar um formulrio de
sapscript e imprimir 3 janelas onde:
Primeira janela:
RELATRIO DE ALUNO
Cdigo do Aluno: XXX
: XXXX
Sexo
:X
Terceira janela
Rodap do relatrio
Data: XX/XX/XXXX.
Hora: XX:XX:XX
69