Escolar Documentos
Profissional Documentos
Cultura Documentos
R/3 Client/Server
Soluo de plena integrao nos negcios
Uma tecnologia cliente/servidor, de sistema baseado no cliente
1. Hierarquia de 3 nveis:
1.1. Banco de dados central
Um computador central funciona como servidor de bancos de dados .
Armazena servios de atualizaes do R/3.
Responsvel pela performance das atualizaes do banco de dados.
Contm processo que constituem servios de banco de dados.
Armazena todos os dados e os programas de aplicao.
Envia, de forma assncrona, as requisies de alteraes das aplicaes.
Um servidor de banco de dados pode ser ligado a vrios servidores de aplicao.
1.2. Lgica da aplicao
Buffer do banco de dados central.
Um servidor de aplicao pode ser conectado a vrios front-ends.
Programas ABAP/4 rodam no servidor de aplicao.
1.3. Apresentao
Interao do usurio.
Todos os servios de apresentao so processados nas mquinas individuais.
Todas as requisies so executadas por processo especializados e controlados por um
disparador.
Alguns mdulos SAP:
MM (materiais)
SD (vendas)
FI (financeiro)
CO (controladoria)
PP (produo)
RH (recursos humanos),
AM (livros/ativo)
2. Instncia R/3
Pgina 1
27/09/2016
ABAP/4
Sistema Central.
uma unidade administrativa que agrupa os componentes do sistema R/3 que fornecem um
ou mais servios. Esses servios so inicializados ou parados ao mesmo tempo. Todos os
componentes pertencentes a uma instncia so especificados como parmetros de um perfil
de instncia comum.
Cada instncia possui uma prpria rea de buffer SAP.
3. Client
Em termos comercial-tecnico-organizacional, um cliente uma unidade autoarmazenadora no
sistema R/3.
uma parte particular no sistema R/3.
Possui:
1.4. Sua prpria facilidade de customizao
1.5. Seus prprios dados de aplicao
1.6. Seus prprios registros mestres do usurio
O SAP distingue diversos clientes que podem ser distribuidos atravs de, no mnimo, 2
sistemas R/3.
INTEGRAO
Usa-se o cliente de desenvolvimento e teste para atividades de customizao e para
desenvolver objetos.
Todos os objetos podem ser alterados em todos os clientes.
2.2. Quality Assurance
CONSOLIDAO
Usa-se para testar a customizao e os programas desenvolvidos.
2.3. Treinamento
Usa-se para treinamentos de usurios.
2.4. Produo
RECIPIENTE
ABAP/4
A- Advanced
B- Business
A- A pplication
P- Programming
Pgina 2
27/09/2016
ABAP/4
4. Classe de Desenvolvimento
Para se criar um programa, deve-se primeiramente especificar uma Classe
Desenvolvimento.
As Classes de Desenvolvimento criadas pelo usurio devem iniciar-se por Z ou Y.
de
Tabelas---------------------------------------------tables:
Kna1.
Constantes-----------------------------------------constants:
c_ernam like kna1-ernam value ESCALC.
write:
Data (001), sy-datum,
Imprime data do sistema
Hora (002), sy-uzeit.
Imprime hora do sistema
uline.
skip 3.
----------------------------------------------------Incio de processamento
----------------------------------------------------Percorre tabela de clientes
select * from kna1
where ernam= c_ernam.
write: / kna1-kunnr,
N* cliente
kna1-ernam.
Nome do usurio que criou o objeto
endselect.
uline.
Tabela SYST
Fornece diversos campos do sistema
SY-DATUM
data
SY-UZEIT
hora
SY-UNAME
nome do usurio (logado)
SY-SUBRC
cdigo de retorno
SY-REPID
nome do programa
SY-LANGU
linguagem do logon
Pgina 3
27/09/2016
ABAP/4
3. Data Dictionary (Dicionrio de Dados)
uma facilidade central no sistema onde pode-se criar e manter:
Declaraes de dados, tabelas, estruturas e objetos agregados.
um componente ativo e integral do Desenvolvimento ABAP/4.
Qualquer alterao feita no Dicionrio ser efetivada em programas e telas.
Quando alteraes so feitas no Dicionrio de Dados, a ps-gerao automtica garante que o
interpretador est sempre trabalhando com o ltimo dado.
7. Tabela
Campo da tabela
Usa data element
Usa domnio
3.4. Tabela transparente => os dados so permanentemente armazenados
3.5. Estrutura => os dados so armazenados somente durante a execuo do programa.
3.6. View (viso) => permite reunir informaes de campos de diferentes tabelas e
apresent-los aos usurios na forma que precisarem.
3.7. Matchcode => uma forma de help online (F4) que permite o uso de critrios adicionais
para acessar registros de dados sem o conhecimento da chave.
Tipo
Dado
P
de Significado
Valor
inicial
0
Tamanho
padro
8
Tamanho
permitido
1-16
0
0.000.....
*
*
1
1
1-max
1-max
I
F
Nmero
compactado
Inteiro
flutuante
N
C
numrico
caracter
00.0
brancos
D
T
Data
Hora
00000000 8
000000
6
8
6
Pgina 4
Exemplo
Sada
Alinhamento
-713, direita
57,
2.17
917, -882
25.873
1.213E15
0.556E7
778 87931
AXZ B123
AB-CD
19990219
105743
direita
direita
esquerda
esquerda
esquerda
esquerda
27/09/2016
ABAP/4
X
hexadecimal
X00
1
* depende da mquina mx.: 64Kb
1-max
OFFF
esquerda
LIKE
BC400,4-9
Este parmetro permite que declare-se campos que tenham os mesmos atributos de campos
previamente definidos.
Ajuda a criar programas de forma fcil pois tem-se que alterar os atributos dos dados em um s
lugar.
Pode ser utilizado na definio de tipos com o comando TYPES.
Comandos: clear, move, compute, add, subtract, multiply, divide, unpack
Subcampos
v_data
v_dia
v_ms
v_ano
v_ano
=
=
=
=
=
19990219.
v_data+06(02).
- Resultado: 19
v_ data+04(02).
- Resultado: 02
v_ data+00(04).
- Resultado: 1999
v_ data (04). - Resultado: 1999
Comandos de controle
BC400, 4-18
Case Distinction
Pgina 5
27/09/2016
ABAP/4
If ... Endif
Case ... Endcase
Loops
Do
While
... Enddo
... Endwhile
Operadores relacionais
=,
<>,
><,
>,
>=,
=>,
<,
<=,
=<,
between f1 and f2,
is initial
8. Tabelas Internas
Tabelas internas so estruturas de dados importantes no Sistema R/3.
Elas so usadas para armazenar dados requeridos durante a execuo de um programa
3.8. Field Strings
3.9. Tabelas internas COM header line
3.10.
Tabelas internas SEM header line
9. MOVE-CORRESPONDING<f1>TO<f2>
BC400, 6-5
Este comando transporta valores dos campos, campo a campo entre as estruturas de dados f1
e f2.
O sistema procura em f1 todos os campos com nomes que existam em f2 e, em seguida,
internamente gera o seguinte comando para todos esses pares de campos.
MOVE <f1>-<nome do campo> to <f2>-<nome do campo>.
3.11.
Field String
Pgina 6
27/09/2016
ABAP/4
Declara-se field string (campo string) pelo comando DATA
No se utiliza o parmetro OCCURS na declarao de um field string.
Especifica-se o Incio e o fim do field string com:
BEGIN OF <nome do field string> e END OF <nome do field string>.
No possivel armazenar-se registros (mais de uma linha) em um field string.
Para imprimir um campo de uma field string, basta referenci-lo com:
write <nome do field string>-<nome do campo do field string>.
Para imprimir o field string interno:
write <nome do field string>.
Exemplo:
Flight Data
Carrier
Connection
Date
Time
27/09/2016
ABAP/4
Soma todos os campos do tipo P, I e F agrupados por campos de tipo caracter, considerados
portanto como campos-chave.
COLLECT <tabela interna>.
3.14.
Ordenando tabelas internas
SORT <tabela interna> BY <campo1> <campo2> <campon>.
3.15.
Processando tabelas internas (com header line)
LOOP AT <tabela interna>....
ENDLOOP.
Quando uma tabela interna est sendo lida, pelo comando loop, o comando de sistema SYTABIX contm o valor do ndice corrente da entrada (registro) na header line.
LOOP AT <tabela interna> WHERE....ENDLOOP.
Depois de condio WHERE, pode especificar uma expresso lgica.
Se nenhuma entrada (registro) satisfaz a expreso lgica e o loop no processado, o campo
de sistema SY-SUBRC retorna com valor diferente de 0.
3.16.
Lendo entradas (registro) de tabelas internas (com header line)
READ TABLE <tabela interna> WITH KEY.....
Este comando usado para se ler simples entradas da tabela interna.
Depois desse acesso de leitura, a entrada da tabela aparece na header line.
O parmetro KEY deve ser qualificado como um argumento de procura.
O sistema compara o nicio de cada entrada da tabela com o argumento de procura, que
usualmente um field string.
Se a tabela interna contm mais de uma linha idntica ao argumento de procura, o comando
retorna a primeira entrada.
Utiliza-se INDEX para apontar ao nmero do ndice (registro) a ser alterado. Se no foi citado,
o sistema altera o ndice corrente da tabela interna; muito usado dentro de loop.
INSERT <tabela interna > INDEX <ndice>.
Sobrescreve a entrada <ndice> da tabela com os contedos da header line. A entrada
<ndice> j deve existir.
MODIFY <tabela interna> INDEX <ndice>.
Utiliza os contedos da header line para gerar uma nova entrada na tabela antes da entrada
<ndice>.
DELETE <tabela interna> INDEX < ndice>.
Deleta a entrada <ndice> da tabela.
DELETE <tabela interna> WHERE <condio>.
DELETE <tabela interna> FROM <ndice1> TO <ndice2>.
3.18.
27/09/2016
ABAP/4
REFRESH <tabela interna>.
Deleta todas as entradas da tabela interna, mas a header line permanece inalterada.
FREE <tabela interna>. O espao em memria usado pela tabela no inicializada.
Deleta todas as entradas da tabela interna, mas a header line permanece inalterada. O espao
em memria usado pela tabela inicializado.
3.19.
Informaes sobre tabelas internas
DESCRIBE TABLE <tabelas internas>...
O parmetro LINES retorna o nmero de entradas existentes na tabela interna.
Exemplo:
Carrier
Connection
Date
Time
Pgina 9
27/09/2016
ABAP/4
3.22.
Estruturas complexas
Usando-se tabelas internas sem header line, possivel construir tabelas internas multidimensionais, ou seja, uma tabela interna dentro de outras tabelas internas.
Parte de uma tabela interna construda com componentes de outra tabela interna.
Exemplo: dentro de cada registro, h uma tabela de 5 registros.
Exemplo:
Flight Data
Carrier
Connection
Date
Time
BC400, 7-3
Pode-se gerar uma tela de seleo para um programa onde o usurio entre com suas selees.
O resultado exibe uma lista com dados que correspondam aos valores selecionados.
SELECT-OPTIONS <nome da seleo> FOR <nome do campo>.
SELECT-OPTIONS SCARR FOR SPFLI-CARRID DEFAULT DLTO LH.
Para a seleo de intervalos de valores.
O <nome da seleo> no pode Ter mais de 8 caracteres.
Automaticamente o sistema cria uma tabela interna com estrutura padro:
SIGN
OPTION
I
E
EQ
NE
LT
GT
LE
GE
BT
NB
CP
NP
LOW
HIGH
Cada linha dessa tabela gerada formula uma condio com um operador de comparao
I
EQ
LE
GE
inclui
equal
less than or equal
greater than or equal
E
NE
LT
GT
Pgina 10
exclui
not equal
less than
greater than
27/09/2016
ABAP/4
BT
between
NB
intervalos)
Pode-se selecionar uma linha de texto para cada critrio de seleo.
PARAMETERS <campo>.
PARAMETERS: CITY_FR LIKE SPFLI-CITYFROM.
Com este comando, posde-se especificar somente valores simples e no intervalos,
como ocorre com o select-options.
BC400, 8-1
Uso de SELECT, MODIFY, UPDATE, DELETE E INSERT.
Acesso nico (singular).
SELECT SINGLE * FROM <tabela> WHERE ... AND ...
Processamento de loop SEM restrio
SELECT * FROM <tabela>.
ENDSELECT.
Leitura de colunas simples
SELECT <campo1><campo2> ... INTO (<f1>,<f2>,...) FROM WHERE ...
ENDSELECT.
Leitura de colunas simples (com funes agregadas)
SELECT MAX(campo1) MIN(campo2) COUNT(*) FROM ... INTO (...,...,...)
WHERE ...
Outras funes: MAX, MIN, COUNT(*), AVG, SUM, DISTINCT
Leitura de dados componente a componente
SELECT ... INTO CORRESPONDING FIELDS OF <work area>.
SELECT ... INTO CORRESPONDING FIELDS OF TABLE<tabela interna>.
SELECT ... APPENDING CORRESPONDING FIELDS OF TABLE<tabela interna>.
SELECT * FROM <tabela> INTO CORRESPONDING FIELDS OF TABLE <tab.int.>
Leitura com intervalo
SELECT * FROM <tabela> WHERE <campo da tabela> BETWEEN <f1> and <f2>.
ENDSELECT.
Leitura com template
SELECT * FROM <tabela> WHERE <campo da tabela> LIKE ...
ENDSELECT.
Leitura com lista
SELECT * FROM <tabela> WHERE <campo da tabela> IN (... , ...).
ENDSELECT.
SELECT * FROM SFLIGHT WHERE PRICE IN (123,1000).
ENDSELECT.
Leitura com operador IN (select-options / ranges)
Pgina 11
27/09/2016
ABAP/4
SELECT * FROM <tabela> WHERE <campo da tabela> IN <tabela interna>.
ENDSELECT.
Pgina 12
27/09/2016
ABAP/4
Modularizao
3.23.
Vantagens :
Evitar redundncias
Tornar os programas fceis de se ler e melhorar sua estrutura
Reutilizar componentes de programas
3.24.
Tcnicas :
Subrotinas internas
Exemplos:
Perform <nome da rotina> using a1 a2 e a3.
Form <nome da rotina> using a1 type p a2 type i a3 type c.
Perform <nome da rotina> using tabela_interna .
Form <nome da rotina> using <corpo_tabela like tabela_interna.
Perform <nome da rotina> tables tabela_interna.
Form <nome da rotina> tables tabela_interna2
Structure tabela_interna.
Subrotinas externas
Exemplos:
Perform <nome da rotina>(<nome do programa>) using ... .
Perform calculate_loss(RSAAA10B).
REPORT RSAAA10B
Form calculate_loss.
Mdulos de funo
Exemplos:
Call function <nome da funo>.
EXPORTING
IMPORT
CHANGING
TABLES
EXCEPTIONS
Pgina 13
27/09/2016
ABAP/4
15. Relatrios
BC400, 11-1
3.25.
Query
Utilizado para gerar relatrios por usurios sem conhecimento de programao.
3.26.
Report
Utilizado para gerar relatrios por usurios com conhecimento de programao.
possvel criar listas secundrias ou janelas, alm das listas bsicas, para fornecer
informaes adicionais ao usurio.
3.27.
Eventos
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN
START-OF-SELECTION.
GET....
END-OF-SELECTION.
Pgina 14
27/09/2016
ABAP/4
16. HIDE <campo>.
Por default, os dados da lista bsica no so disponveis quando se est na lista secundria.
Este comando permite armazenar os contedos dos campos de uma linha
De uma determinada lista para uma rea especial. Para cada tempo, o sistema armazena o
nome do campo e o seu valor.
Esta comando deve imediatamente seguir o comando WRITE desde que a informao seja
guardada para cada linha de sada. Pode-se tambm armazenar campos que no apaream
na lista.
Os contedos da linha selecionada so tambm armazenadas no campo de sistema
SY_LISEL.
No incio de desenvolvimento do projeto, o lder do projeto cria uma change request e, a cada
membro do time do projeto destinado uma task que liberada quando o trabalho no objeto
concludo.
Quando um projeto est sendo concludo, o lder do projeto libera as change requests e
dispara processo de exportao. Importaes so executadas em nvel de sistema operacional
pelo administrador da rede.
Um objeto original no sistema em que ele foi criado. Quando se faz alteraes em objetos
do cliente, deve-se sempre alterar o original. O sistema SAP libera todos os objetos como
cpias. No se deve fazer alteraes nos objetos SAP (modificaes), visto que eles
podem ser modificados em uma atualizao de upgrade.
Pgina 15
27/09/2016
ABAP/4
21. Nveis de alterao
H quatro maneiras de se alterar ou ajustar o sistema SAP para satisfazer os requerimentos
do cliente:
3.28.
Customizing
Customizao dos parmetros de sistema atravs de uma interface de usurio
especial; as possveis alteraes so preparadas e organizadas. A customizao
requerida durante a implementao do sistema.
3.29.
Modification
Alterao dos objetos SAP Repository no formulrio das alteraes de
customizao; quando alteraes SAP ocorrem, a verso customizada e a nova
verso SAP devem ser reconciliadas manualmente.
3.30.
Enhancement concept
Alterao dos objetos SAP Repository pelo customizador sem modificao.
Opes: program exit, menu exit, screen exit e field exit
3.31.
Custom development
Criao de objetos customizados com intervalo de nome customizador.
Utilizando-se o comando GET RUN TIME FIELD <f>, pode medir o tempo consumido pela
CPU por uma determinada sequncia de comandos. Deve-se alterar o cdigo do
programa, inserindo-se esse comando como requerido.
Utilizando-se a funo SQL TRACE, pode-se guardar e analisar as operaes de banco de
dados para um usurio individualmente, ou para um sistema inteiro.
Trabalho em equipe
Manuteno de verses
Documentao
Pgina 16
27/09/2016
ABAP/4
24. ABAP/4 Development Workbench Dialog Programming
BC410
O R/3 abrange aproximadamente 90% das necessidades da empresa, o restante resolvido
pelo ABAP/4.
Geralmente, o primeiro mdulo implantado na empresa o financeiro.
Batch input
XXX => SAP
Carrega dados de outros sistemas para dentro do SAP. So as converses de
inicio de projeto ou as cargas de dados frequentes.
3.33.
Interface
SAP => XXX
Lana dados para fora do SAP, para atualizar sistemas externos, etc...
3.34.
Relatrio
Representa as listagens de dados SAP e semi-linear, pois possui eventos.
3.35.
Transao
Uma transao possui o cdigo de programao, telas com botes, textos,
entradas, molduras, etc...
3.36.
Sapscript
Representa os formulrios no SAP como, por exemplo, a nota fiscal
3.37.
3.38.
3.39.
3.40.
3.41.
Ambiente de execuo
3.42.
3.43.
Pgina 17
27/09/2016
ABAP/4
*
3.44.
3.45.
3.46.
3.47.
Pgina 18
27/09/2016
ABAP/4
FIELD <campo 1 da tela>
FIELD <campo 2 da tela>
FIELD <campo 3 da tela>
FIELD <campo n da tela>
MODULE
MODULE
MODULE
MODULE
<mdulo
<mdulo
<mdulo
<mdulo
1>.
2>.
3>.
n>.
MODULE
MODULE
MODULE
MODULE
<mdulo
<mdulo
<mdulo
<mdulo
1>.
1>.
1>.
1>.
Pgina 19
27/09/2016
ABAP/4
6 tipos de mensagens
3.50.
A Abend
Transao terminada.
Exibida na mesma tela onde, depois do ENTER, o processamento
corrente finalizado e retornado a tela inicial.
3.51.
X Exit
E Error
Erro.
Correo requerida, obrigatria.
Exibida na mesma tela onde, depois do ENTER, o processamento obriga o usurio
a reentrar os dados
3.53.
W Warning
Aviso.
Correo possvel.
Exibida na mesma tela onde, depois do ENTER, o processamento continua.
3.54.
I Information.
Informao.
Pressionar ENTER para continuar.
Exibida na mesma tela onde, depois do ENTER, o processamento continua de
onde foi interrompido.
3.55.
S Success
Sucesso, exibida na prxima tela.
Pode-se enviar valores para a memria do SAP, que podem ser carregados em
outro programa ou em outra tela de transao:
BC410,2-17
SET PARAMETER ID <pid> FIELD <campo>.
GET PARAMETER ID <pid> FIELD <campo>.
No atributo do campo, h o parameter id <pid> correspondente (dentro da data
element no Dicionrio de Dados) que dever ser utilizado.
3.57.
27/09/2016
ABAP/4
Na sada da ltima tela da sequncia, deve ter o comando <set screen 0>.
3.58.
3.59.
LEAVE SCREEN.
Sai da tela corrente sem terminar o processamento e carrega a prxima tela
definida.
3.60.
SET SCREEN 0.
LEAVE SCREEN.
LEAVE TO SCREEN 0.
Volta ao ponto de chamada onde o processamento da tela que chamou continua.
Se o processamento no se encontra em um modo de chamada, o programa
termina e retorna ao ponto onde esse programa foi chamado.
3.61.
Pgina 21
27/09/2016
ABAP/4
Na execuo de uma transao, s possvel entrar com os campos nas suas caractersticas
definidas, respeitado tipo e tamanho.
Title Bar
Ttulo da janela
Menu Bar
Barra de menu, com as opes e seus subnveis.
Standard Toolbar
Barra de Ferramentas Padro, com botes criados pelo desenvolvedor.
27/09/2016
ABAP/4
Na criao de uma tela de transao, automaticamente, o SAP cria um campo tipo OK. O
desenvolvedor define o nome, recomendado OK_CODE, e verifica as entradas do usurio.
Ver comandos :
COMMIT WORK, ROLLBACK WORK
Conceito de Lock nos objetos
Alterao dinmica de tela
Table Control
(BC410, 3-14)
(BC410,4-1).
(BC410,5-1).
(BC410,6-1).
27/09/2016
ABAP/4
PROCESS ON HELP-REQUEST.
PROCESS ON VALUE-REQUEST.
Cria-se uma help view ou um matchcode.
36. Matchcode
BC410-8-8
um critrio de procura que pode acessar registros de uma tabela SAP sem o conhecimento
de sua chave.
Arquivos Sequenciais
So arquivos externos gerados por outro sistema qualquer e que so carregados
ao SAP.
Devem ser visveis no servidor de aplicao.
3.67.
Arquivos Locais
Arquivos que esto no servidor de apresentao (estaes de trabalho) no podem
ser processados por esses comandos, e so denominados arquivos locais.
3.68.
Abrir arquivo
Processar arquivo
Fechar arquivo
Pgina 24
27/09/2016
ABAP/4
OPEN DATASET <NOME DO ARQUIVO>.
... FOR OUTPUT
... FOR INPUT
... FOR APPENDING
... IN BINARY MODE
Os dados so interpretados pelas operaes de leitura e gravao <read dataset>
e <transfer>.
As reas de dados especificados por essas palavras-chave entram e saem
diretamente.
No precisa especificar <for input> explicitamente, ou seja, se no definir
especificaes adicionais, o arquivo aberto no modo binrio.
... IN
TEXT MODE
O sistema assume que o arquivo possui uma estrutura de linha.
Cada vez que os comandos <read dataset> e <transfer> so executados, uma
linha entra/sai e os dados so sempre processados na seleo do final da linha.
Se a rea de dados muito grande para a linha que est sendo lida, a rea
remanescente preenchida com brancos.
Se a rea de dados muito pequena, o final da linha perdido.
Pgina 25
27/09/2016
ABAP/4
O parmetro adicional....LENGTH <estrutura> permite especificar um tamanho em
bytes (no formato READ DATASET < estrutura> LENGTH <tamanho>. Neste caso,
o nmero exato de especificados em <tamanho> transferido. Se a estrutura for
menor, o registro preenchido (com brancos em modo texto e com zeros
hexadecimais em modo binrio). Se a estrutura for maior, o registro fica truncado.
Fechando / Deletando um arquivo sequencial
CLOSE DATASET <nome do arquivo>.
Fecha um arquivo sequencial explicitamente,
Dentro de um programa, todos os arquivos abertos so implicitamente fechados
cada vez que a tela muda, e depois so reabertos exatamente como estavam e o
processamento continua.
DELETE DATASET <nome do arquivo>.
Deleta um arquivo sequencial explicitamente.
possivel exibir o estado atual do arquivo na depurao do programa escolhendo
no menu a opo:
Goto
System
Systems areas
e entrando (ou selecionando) DATASETS.
3.70.
3.71.
Pgina 26
27/09/2016
ABAP/4
Um user dialog simulado para essa procedure com as mesmas checagens e
atualizaes.
Um componente central dessa procedure um arquivo de fila.
Este arquivo recebe os dados via programa batch input e agrupa dados associados
juntos em sesses.
Para carregar os dados em banco de dados SAP, deve-se processar as sesses
com a funes batch input SM35.
Pgina 27
27/09/2016
ABAP/4
3.72.
PERFORM CARREGA_DADOS.
form carrega_dados.
endform.
PERFORM PROCESSA_DADOS.
form processa_dados.
endform.
PERFORM ABRE_SESSO.
form abre_sesso.
endform.
PERFORM INSERE_SESSO
form insere_sesso.
endform.
PERFORM LIMPA_BDCDATA.
form limpa_bdcdata.
endform.
PERFORM FECHA_SESSO.
form fecha_sesso.
endform.
PERFORM INSERE_TELAS.
fom insere_telas.
Pgina 28
27/09/2016
ABAP/4
endform.
PERFORM INSERE_TRANSAO.
form insere_transao.
endform.
Pgina 29
27/09/2016
ABAP/4
27/09/2016
ABAP/4
<tabela BDC>-<valor do campo>
Direct Input
Transferncia de grande volume de de dados (mais de 10.000
transaes).
Meio de atualizao imediata de dados.
Nenhuma sesso gerada.
Nenhuma janela envolvida.
Dados so importados pelas chamadas de mdulos de funo que
checam os dados e ento os transferem diretamente para as telas de
banco de dados.
Programas so executados somente em background jobs.
Particulamente rpido, visto que o arquivo de fila evitado.Como a
alterativa ao batch input, h programas de aplicao especficas que
usam a tcnica Direct Input.
Quando se transfere grande volumes de dados (mais que 10.000 transaes),
pode-se atingir considerveis melhorias na performace com direct input. Como
<call transaction using>, direct input um meio de atualizao imediata de dados
(nenhuma sesso gerada). Contudo, ao contrrio de <call transaction using> ou
batch input, nenhuma tela envolvida . Em vez disso, os dados so importados
chamando-se mdulos de funo que checam os dados e depois transferem
diretamente as tabelas do banco de dados. Uma vez que direct input oferece um
mecanismo de reincio no caso de um erro, os programas podem somente serem
executados em background jobs. A manuteno e a execuo desse jobs so
feitas pelo programa RBMVSHOW ou transao BMV0.
Pgina 31
27/09/2016
ABAP/4
Comando Call Transaction
CALL TRANSACTION
USING
MODE
UPDATE
MESSAGES INTO
Modo de exibio
A
E
N
Modo de atualizao
S
ter terminado.
<cdigo da transao>
<tabela BDCDATA>
<modo de exibio>
<modo de atualizao>
<tabela de mensagens>.
(Batch
Input)
A
ID
SY-MSGID
TYPE
SY-MSGTY
NUMBER SY-MSGNO
WITH
SY-MSGV1 SY-MSGV2
SY-MSGV2 SY-MSGV2.
Sumrio
Batch Input
Call Transaction
Cdigo de retorno
No
Sim
Log de erros
Sim
No
Processamento
Indeterminado
Imediatamente
Pgina 32
27/09/2016
ABAP/4
Processam-se arquivos sequenciais no servidor de apresentao com os comandos READ
DATASET e TRANSFER, que copia de/para um field string.
Processam-se arquivos sequenciais locais no servidor de apresentao com os mdulos de
funes UPLOAD e DOWNLOAD, que copia de/para uma tabela interna.
Os dados so convertidos conforme o tipo do arquivo (file type).
Pode-se, assim, trocar dados entre arquivos locais e arquivos do servidor de aplicao.
WS_ QUERY
Checa a existncia e o tamanho de um arquivo, tal como outras variveis do ambiente.
WS_ EXECUTE
Atravs de um programa ABAP/4, atravs do caminho do diretrio, executa-se qualquer
executvel e retorna a prxima linha do processamento.
46.1.
Processamento background
Se um programa ABAP/4 (um relatrio, por exemplo) tem que processar grande
volume de dados e listas longas e complexas, pode-se execut-lo em background,
incluindo-o em um job atravs da transao SM36.
TRANSAES ABAP/4
Pgina 33
27/09/2016
ABAP/4
SE09
SE11
SE30
SE71
ST22
DB12
CMOD
SPRO
SMEN
SM12
SM35
SM36
SE37
SM39
WORKBENCH ORGANIZER
DATA DICTIONARY
ANLISE DO TEMPO DE EXECUO
SAPSCRIPT
ANLISE DOS LTIMOS DUMPS
BACKUP LOGS
CRIAO DE ENHANCEMENTS
CUSTOMIZAES
MENU DINMICO
OBJETOS LOCKADOS
PASTAS DE BATCH INPUT
DEFINIO DE JOBS
SINTESE DE JOBS
COMPARA EXECUO ENTRE DOIS
PROGRAMAS
EXEMPLOS DE RELATORIOS
LIBS
TRANSAES SAP
ATIVO FIXO
ABUM
ABAV
AS01
AS02
AS03
TRANSFERIR
BAIXAR
CRIAR
MODIFICAR
EXIBIR
MB21
MB22
MB32
CRIAR
MODIFICAR
EXIBIR
RESERVA
CONTAS A RECEBER
FD10
FBL3
F . 30
Pgina 34
27/09/2016
ABAP/4
OUTRAS
ME9F
MM03
IMPRIMIR PEDIDO
CONSULTAR CADASTRO DE
MATERIAIS
EXIBIR CADASTRO DE
FORNECEDORES
REQUISITAR MATERIAIS /
SERV.
APROVAR RC
CRIAR PEDIDO
CRIAR MATERIAL
APROVAR ORDEM DE
COMPRA
RECEBER MERCADORIAS
ENTRAR COM A FATURA
EXIBIR CENTRO DE CUSTO
CONSULTAR PARTIDAR
INDIVIDUAIS REAL
CONSULTAR PARTIDAS
INDIVIDUAISN
COMPROM.
EXIBIR ORDEM EXTERNA
CONSULTAR VENDAS
RECONTAR INVENTARIO
EXIBIR DOCUMENTO
XK03
ME51
ME55
ME21
MM01
ME28
MB01
MRHR
KS03
KSB1
KSB2
KO03
MICKH
ML11
FB03
TABELAS
DD07
CDPOS
CDHD
VALOR DE DOMNIOS
LTIMAS ALTERAES DE DOCUMEMTO
LTIMAS ALTERAES DE CAB. DOS
DOCUMENTOS
Pgina 35
27/09/2016
ABAP/4
Constantes
---------------------------------------------------------------------------------------------------------------CONSTANRES:
C_nome_variaqvel like tabela-campo value xxx .
Tipos
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TYPES:
BEGIN OF K-estrutura,
Campo1 like
tabelal-campo1,
Descrio do campo
1
Campo2 like
tabelal-campo2,
Descrio do campo 2
...
campon like tabelal-campon.
Descrio do campo n
END OF K-estrutura.
Tabelas internas
globais------------------------------------------------------------------------------------------------DATA:
T_TABINT
TYPE K_estrutura OCCURS O WITH HEADER LINE
Tabela
transporte
T_bdcdata like bdcdata occurs 0 with header line,
Tabela BDCDATA
Parmetros de entrada
-------------------------------------------------------------------------------------------------PARAMETERS:
P_NMPAST LIKE SY-REPID
DEFAULT XXX ,
Nome da
pasta
P_nmarqu like rlgrap-file name default F: \ .
Local do arquivo
-----------------------------------------------------------------------------------------------------------------------------Incio de processamento
-----------------------------------------------------------------------------------------------------------------------------START-OF-SELECTION.
Carrega dados do arquivo sequencial para tabelas internas
PERFORM CARREGA_DADOS.
TABLES
Pgina 36
27/09/2016
ABAP/4
DATA_TAB
EXCEPTIONS
CONVERSION ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
ENDFORM.
CARGA_DADOS
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form PROCESSA_DADOS
*&------------------------------------------------------------------------------------------------------------------------------*
Processa os dados carregados na tabela interna
*---------------------------------------------------------------------------------------------------------------------------*
FORM PROCESSA_DADOS.
* Abre sesso de Batch Input
PERFORM ABRE_SESSO.
* Insere sesso de Batch Input
PERFORM INSERE_SESSO .
* Fecha sesso de Batch Input
PERFORM FECHA_SESSO.
ENDFORM.
PROCESSA_DADOS
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form ABRE_SESSO
*&------------------------------------------------------------------------------------------------------------------------------*
* Abre sesso de batch input
* -------------------------------------------------------------------------------------------------------------------------------*
FORM ABRE_SESSO.
CALL FUNCTION BDC_open_group
EXPORTING
Pgina 37
27/09/2016
ABAP/4
CLIENT
= SY-MANDT
GROUP
= V_GRUPO
KEEP
=X
USER
= SY-UNAME
EXCEPTIONS
CLIENT_INVALID =1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11
ENDFORM.
ABRE_SESSO
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form INSERE_SESSO
*&------------------------------------------------------------------------------------------------------------------------------*
Insere sesso Batch Input
*--------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_SESSO.
ENDFORM.
INSERE_TRANSAO
*&------------------------------------------------------------------------------------------------------------------------------*
*& Form LIMPA_BDCDATA
*&------------------------------------------------------------------------------------------------------------------------------*
Limpa tabela interna BDCDATA para inserir nova transao
*&------------------------------------------------------------------------------------------------------------------------------*
FORM LIMPA_BDCDATA .
REFRESH T_BDCDATA.
ENDFORM.
LIMPA_BDCDATA
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form FECHA_SESSO
Pgina 38
27/09/2016
ABAP/4
*&------------------------------------------------------------------------------------------------------------------------------*
Fecha sesso Batch Imput
*--------------------------------------------------------------------------------------------------------------------------------*
FORM FECHA_SESSO.
CALL FUNCTION BDC_CLOSE_GROUP
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
ENDFORM.
FECHA_SESSO
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form INSERE_TRANSAO
*&------------------------------------------------------------------------------------------------------------------------------*
Insere uma transao na sesso Batch Input, ou seja,
Insere a tabela BDCDATA montada com os dados das telas
*--------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_TRANSAO .
CALL FUNCTION BDC_INSERT
EXPORTING
TCODE = C_TCODE
TABLES
DYNPROTAB = T_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSITIONING_INVALID = 6
OTHERS = 7.
ENDFORM.
INSERE_TRANSAO
*&-------------------------------------------------------------------------------------------------------------------------------*
*&
Form INSERE_TELAS
*&------------------------------------------------------------------------------------------------------------------------------*
Insere telas de transao na tabela BDCDATA
Insere uma transao por vez
*-------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_TELAS.
PERFORM INSERE_TELA_SAPMV13A_0100.
PERFORM INSERE_TELA_SAPMV14A_0100.
PERFORM INSERE_TELA_SAPMV13A_1960.
ENDFORM.
INSERE_TELAS
*&------------------------------------------------------------------------------------------------------------------------------*
Pgina 39
27/09/2016
ABAP/4
*&
Form INSERE_TELA_SAPMV13A_0100
*&------------------------------------------------------------------------------------------------------------------------------*
Insere tela sapmv13_0100 ( programa saomv13a )
*-------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_TELA_SAPMV13_0100.
PERFORM INSERE_REGISTRO_BDCDATA USING:
X SAPMV13A
0100
RV13A-KSCHL
T_TABINT-KSCHL, Tipo de condio
BDC_CODE
/17.
Enter
ENDFORM.
INSERE_TELA_SAPMV13A_0100
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form INSERE_TELA_SAPMV14A_0100
*&------------------------------------------------------------------------------------------------------------------------------*
* Insere tela sapmv14_0100 (programa sapmv14a)
*-------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_TELA_SAPMV14_0100.
PERFORM INSERE_REGISTRO_BDCDATA USING:
X
SAPLV14A1
0100
RV130-SELKZ (1)
X
Bdc_OKCODE
/0
ENDFORM.
INSERE-TELA_SAPMV14A_0100.
*&------------------------------------------------------------------------------------------------------------------------------*
*&
Form INSERE_TELA_SAPMV13A_1960
*&------------------------------------------------------------------------------------------------------------------------------*
Insere tela sapmv13_1960 (programa sapmv13a)
*-------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_TELA_SAPMV13A_1960.
DATA:
V_DTATUAL (08) TYPE C.
Data do sistema
ABAP/4
ENDFORM.
INSERE _TELA_SAPMV13A_1960
*&------------------------------------------------------------------------------------------------------------------------------*
*& Form INSERE_REGISTRO_BDCDATA
*&------------------------------------------------------------------------------------------------------------------------------*
Insere registro na tabela BDCDATA
*&------------------------------------------------------------------------------------------------------------------------------*
Parmetros recebidos:
v_intela indicador de nova tela ( x ou )
v_nmnome nome do programa ou nome do campo
v_vlvalor nmero da tela ou contudo do campo
*-------------------------------------------------------------------------------------------------------------------------------*
FORM INSERE_REGISTRO_ BDCDATA
USING V_INTELA TYPE C V_NMNOME TYPE C V_VLVALOR TYPE ANY.
* Limpa header line da tabela BDCDATA
CLEAR T_BDCDTA.
CASE V_INTELA.
WHEN X.
T_BDCDATA-DYNBEGIN
T_BDCDATA-PROGRAM
programa
T_BDCDATA-DYNPRO
= V_INTELA.
= V_NMNOME.
= V_VLVALOR.
Nova tela
Nome da
Nmero da tela
Mesma tela
Nome do campo
Contudo do campo
INSERE_REGISTRO_BDCDATA
***
OUTPUT.
MODULE STATUS_NNNN
Pgina 41
27/09/2016
ABAP/4
***
USER_COMMAND_NNNN
***Module user_command_nnnn.
MODULE
Select single *
from spfli
where carrid
= spfli-carrid
and connid = spfli-connid.
PERFORM CARREGA_DADOS.
Form carrega_dados.
endform
PERFORM PROCESSA_DADOS.
Form processa_dados.
endform
PERFORM ABRE_SESSO.
Form abre_sesso.
endform
FORM INSERE_SESSO
Form insere_sesso.
endform
PERFORM LIMPA_BDCDATA.
Form limpa_bdcdata.
endform
PERFORM FECHA_SESSO.
Form fecha_sesso.
endform
PERFORM INSERE_TELAS.
Form insere_telas.
endform
Pgina 42
27/09/2016
ABAP/4
PERFORM INSERE_TRANSAO.
Form insere_transao.
endform
Sistema externo
Arquivos externos ao SAP
FILA SESSES Batch Input
Os dados externos no so gravados diretamente no banco de dados SAP
Transao SAP
27/09/2016
ABAP/4
Fecha arquivo e sesso
SY-index
Sy-pagno
Sy-tabix
Sy-tfill
Sy-tlopc
Sy-temaxl
Sy-toccu
Sy-ttabc
Sy-tstis
Sy-ttabi
Sy-dbcnt
Sy-fdpos
Sy-colno
Sy-linct
Sy-linno
Sy-linsz
Sy-macol
Sy-marow
Sy-tleng
Sy-sfoff
Sy-willi
Sy-lilli
Sy-subrc
Sy-fleng
Sy-cucol
Sy-curow
Sy-lsind
Sy-listi
Sy-stepl
Sy-tpagi
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
Sy-winy2
Sy-winco
Sy-winro
Sy-windi
Sy-srows
Sy-scols
Sy-loopc
Sy-folen
Sy-fodec
Sy-tzone
Sy-dayst
Sy-ftype
Sy-appli
Sy-fdayw
Sy-ccurs
Sy-ccurt
Sy-debug
Sy-ctype
Sy-input
Sy-langu
Sy-modno
Sy-batch
Sy-binpt
Sy-calld
Sy-dynnr
Sy-dyngr
Sy-newpa
Sy-pri40
Sy-rstrt
Sy-wtitl
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
Int4x
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
Pgina 44
27/09/2016
ABAP/4
Sy-winx1
Sy-winy1
Sy-winx2
Int4x
Int4x
Int4x
4
4
4
Sy-wtitl
Sy-cpage
Int4x 4
Int4x 4
Pgina 45
27/09/2016