Escolar Documentos
Profissional Documentos
Cultura Documentos
MÓDULO ABAP
PPROGRAMAÇÃO
DE
INTERFACES
Treinamento
2
Treinamento
Overview
Programa ABAP
Seqüência de arquivos
Você pode processar um arquivo sequencial com as declarações READ DATASET (para operações de
leitura) e TRANSFER (para operações de gravação).
Arquivos no servidor de apresentação não podem ser processados com TRANSFER ou READ
DATASET. Eles devem estar localizados no servidor de aplicação.
3
Treinamento
Transferência de Dados
Sistema do
Cliente
Programa
do Cliente Seqüência de
Arquivos Sistema
SAP R/3
Programa
SAP
É o meio utilizado para importar dados de um sistema do cliente para o Sistema R/3 e vice-versa.
4
Treinamento
Processando o Arquivo
Open File
Process File
Close File
Antes do registro de dados poder ser escrito ou lido de um arquivo sequencial, o arquivo deve ser
aberto.
No programa, você chama o arquivo por seu nome do arquivo absoluto. O nome do arquivo absoluto
consiste no caminho exato e o atual (relativo) nome do arquivo. Um exemplo de um nome do arquivo
atual é. ‘usr/sap/T30/<filename>’.
O formato de nomes de arquivos depende do sistema operacional. Você pode ter acesso a programas
portáteis com o módulo de função FILE_GET_NAME que devolve o nome físico para um determinado
nome do arquivo lógico. Veja também a documentação online para o módulo na transação SE37.
5
Treinamento
Abrindo um Arquivo
output
for input
appending
if sy-subrc ne 0.
...
Para abrir um arquivo, você usa a declaração OPEN DATASET <nome do arquivo>. Dependendo se
este tem êxito, SY-SUBRC é fixado em 0 ou 8. Erros são ignorados.
Se você não especifica nenhuma opção adicional, o arquivo é aberto para leitura.
Possíveis opções:
FOR OUTPUT
Abre o arquivo para gravação. Se o arquivo já existe, seus conteúdos são apagados, mas isto só se
aplica depois do fim do programa. Se a declaração acontece em um programa, o cursor simplesmente é
posicionado no começo do arquivo. Você tem que especificar CLOSE DATASET para apagar o
arquivo. Se o arquivo não existe, ele é gerado.
FOR INPUT
Abre um arquivo existente para leitura. Se o arquivo já está aberto, o cursor é posicionado no começo
do arquivo. Você não tem que especificar FOR INPUT explicitamente.
FOR APPENDING
Abre o arquivo para gravar no fim do arquivo. Se o arquivo não existe, é gerado. Se o arquivo já está
aberto, o cursor é posicionado no fim.
6
Treinamento
output
for input
appending
in binary mode
text mode
if sy-subrc ne 0.
...
Opções possíveis:
EM MODO BINÁRIO
Os dados não são interpretado pelas operações de leitura e escrita READ DATASET e TRANSFER.
As áreas de dados especificadas para estas palavras chaves são lidas ou gravadas diretamente. Você não
precisa especificar explicitamente IN BINARY MODE (default).
EM MODO DE TEXTO
Se você abre um arquivo com esta opção, o sistema assume que o arquivo tem estrutura de linha. Cada
vez que READ DATASET ou TRANSFER é executado, uma linha é sempre lida ou gravada e os
dados sempre são processados até a seleção de end-of-line. Se a área de dados for maior do que a linha
a ser lida, a área restante é preenchida com espaços em branco. Se for menor, o final da linha será
perdido.
7
Treinamento
Programa Programa
ABAP ABAP
Programa Programa
ABAP ABAP
Três campos de diferentes tamanhos são transferidos a qualquer momento. Os dados são lidos em três
campos do mesmo tamanho.
No modo de texto, a operação específica do sistema line-end caracter é fixada após cada registro de
dados.
Espaços em brancos ao término de um registro de dados não são suprimidos em modo de texto.
8
Treinamento
at position <position>
message <field>
AT POSITION <position>
Com esta adição, você pode especificar uma posição de arquivo (em bytes) desde o princípio do
arquivo. Não é possível posicionar o cursor antes do início do arquivo.
Embora esta adição possa ser usada junto com IN TEXT MODE, isto gera uma pequena sensação de
como o formato físico de um arquivo de texto é largamente dependente no sistema operacional.
MENSAGEM <field>
9
Treinamento
Transferindo Registros de Dados
sequential
file
data
record
Antes de executar o comando TRANSFER, você deve mover os registro de dados em um campo ou
uma estrutura.
Se o arquivo especificado não está aberto, a declaração TRANSFER tenta abrir o arquivo <nome do
arquivo> FOR OUTPUT (IN BINARY MODE) ou usando as adições da última declaração OPEN
DATASET para este arquivo.
10
Treinamento
Lendo Registros de Dados
sequential
file
data
record
Se o arquivo especificado não está aberto, READ DATASET tenta abrir o arquivo (IN BINARY FOR
INPUT ou com as opções da última declaração OPEN DATASET para este arquivo).
READ DATASET, como TRANSFER, não executa conversões implícitas. O dados são lidos como
foram escritos.
O parâmetro adicional LENGHT <tamanho> da declaração READ DATASET lhe permite especificar
uma tamanho em bytes (no formato READ DATASET <nome do arquivo> INTO <estrutura>
LENGHT <tamanho>). Neste caso, o número exato de caráter especificado em <tamanho> será lido no
registro de dados na estrutura. Se a estrutura é menor, o registro é aumentado (com espaços em branco
em modo de texto e com zeros de hexadecimal em modo binário). Se a estrutura for maior, o registro
será truncado.
11
Treinamento
Você usa a declaração CLOSE DATASET <nome do arquivo> para fechar uma seqüência de arquivos
explícitos.
Em um programa, todos os arquivos abertos são automaticamente fechados cada vez que a tela muda, e
então reabrem exatamente como eles estavam antes de processados.
A vantagem de usar OPEN DATASET é que você pode usar a adição MESSAGE para evitar uma
finalização programada se um erro acontecer quando estiver abrindo o arquivo (SY-SUBRC = 8).
Além, você deve estar atento que, em casos onde um arquivo ser lido, ou gerado e lido, várias vezes no
mesmo relatório, só abertura automática ou fechamento garantem que o cursor será reposicionado no
começo do arquivo.
Um arquivo não é fechado imediatamente quando READ DATASET chega o fim de um arquivo.
Você pode usar o DELETE DATASET <nome do arquivo> para apagar um seqüência de arquivos. Se
tiver sucesso, SY-SUBRC é fixado a 0.
Você pode exibir o estado atual do arquivo com debbug escolhendo Goto -> System -> Sytem areas e
entrando então (ou selecionando) DATASETS.
12
Treinamento
Criando um Arquivo
report zexemplo.
tables sflight.
parameters
file (20) default ‘/tmp/zexemplo’ lower case.
start-of-selection.
open dataset file for output.
get sflight.
move-corresponding sflight to rec.
transfer rec to file.
end-of-selection.
close dataset file.
Primeiro você define a estrutura a ser transferida. Neste exemplo, é um campo string, mas também
poderia ser um campo de ajuda, o cabeçalho de uma tabela interna ou uma área de trabalho do ABAP
Dictionary.
Depois, você deve preencher a estrutura. Em princípio, podem ser usadas todas as declarações que
executam uma tarefa de valor aqui. Exemplos incluem MOVE, COMPUTE, MOVE-
CORRESPONDING, MOVE TO e WRITE TO.
13
Treinamento
report zexmplo1.
tables: sflight, sbc420a.
parameters
file (20) default ‘/tmp/zexemplo’ lower case.
get sflight.
move-corresponding sflight to sbc420a.
transfer sbc420a to file.
report zexemplo2.
tables: sflight, sbc420a.
data: begin of rec.
include structure sbc420ª
data: end of rec.
parameters (20) default ‘/tmp/zexemplo’ lower case.
get sflight.
move-corresponding sflight to rec.
transfer rec to file.
write: / rec-carrid, rec-connid,
/ rec-fldate, rec-planetype.
uline.
Você também pode usar estruturas do ABAP Dictionary para transferência de dados. Para fazer isto,
declare a estrutura com TABLES.
Você pode exibir a estrutura do ABAP Dictionary no Editor ABAP com o comando de SHOW.
14
Treinamento
Lendo um Arquivo
report zexemplo.
tables sflight.
start-of-selection.
open dataset file for input.
do.
read dataset file into rec.
if sy-subrc ne 0.
exit.
endif.
write: / rec-carrid, rec-connid,
/ rec-fldate, rec-planetype.
uline.
enddo.
close dataset file.
Primeiro você deve definir a estrutura a ser lida. Neste exemplo, é um campo string. Também pode ser
codificada num relatório include.
As estruturas a serem usadas com os comando READ DATASET e TRANSFER devem Ter o mesmo
lay-out.
READ DATASET não requer um banco de dados lógico. Você pode analisar seus dados extraídos
junto com dados de qualquer banco de dados lógico (o qual você especifica então nos atributos de
relatório).
15
Treinamento
report zexemplo.
tables sflight, sbc42a.
start-of-selection.
open dataset file for appending in binary mode.
get sflight.
move-corresponding sflight to sbc420a.
transfer sbc420a to file.
write: / sbc420a-carrid, sbc420a-connid.
end-of-selection.
close dataset file.
Para gravar registros de dados no final do arquivo, você usa a cláusula FOR APPENDING na
declaração OPEN DATASET.
16
Treinamento
report zexemplo.
tables sflight, sbc42a.
include zexemplo1.
parameters file (20) default ‘/tmp/zexemplo’ lower case.
start-of-selection.
open dataset file for output in binary mode.
get sflight.
move-corresponding sflight to rec1.
move ‘A’ to rec1-flag.
transfer rec1 to file.
write: / rec1-carrid, rec1-connid, ...
get sbook.
move-corresponding sbook to rec2.
move ‘B’ to rec2-flag.
transfer rec2 to file.
write: / rec2-bookid, rec1-custid, ...
end-of-selection.
close dataset file.
A estrutura SBC42OA é usada para dados de vôo, enquanto a estrutura SBC42OB dados de reserva de
lugares.
Uma flag deve indicar se o próximo registro de dados contém dados de vôo ou dados de reserva.
17
Treinamento
report zexemplo.
tables sbc42a, sbc42b.
data: flag.
start-of-selection.
open dataset file for input in binary mode.
do.
read dataset file into flag.
if sy-subrc ne 0.
exit.
endif.
case flag.
when ‘a’.
read dataset file into sbc420a.
write: / sbc420a-carrid, sbc420a-connid,
sbc420a-fldate, sbc420a-planetype.
when ‘b’.
read dataset file into sbc420b.
write: / sbc420b-bookid, sbc420b-custid,
sbc420b-custyp, sbc420b-class.
endcase.
enddo.
end-of-selection.
close dataset file.
O arquivo é aberto em modo binário e os registros são lidos de acordo com o tamanho da estrutura
especificado.
18
Treinamento
define structures
open file
write read
NO NO
close file
Processando um arquivo no programa, você define as estruturas requeridas para os registros de dados
com as TABLES ou declaração DATA primeiro. O programa usa estas estruturas como buffers internos
para os registros de dados.
Você então abre a seqüência de arquivos para ser lida ou escrita com a declaração OPEN.
Quando escreve o arquivo, você transfere as estruturas cheias para o arquivo com declarações
TRANSFER.
Quando lê o arquivo, você preenche as estruturas montadas para os registros de dados com READ
DATASET para mais adiante ser processado no programa.
Para fechar o seqüência de arquivos, você encerra o arquivo que esta sendo processado com a
declaração CLOSE DATASET.
19
Treinamento
Overview
read dataset
transfer
upload
download
Presentation
server files
Programas ABAP são executados no servidor de aplicação e tem acesso aos arquivos sequenciais.
Você também pode usar um programa ABAP para processar arquivos locais (que pertencem ao
servidor de apresentação).
Você processa um arquivo sequencial no servidor de aplicação utilizando programas ABAP com as
declarações READ DATASET e TRANSFER que lhe permitem copiar de/para dados de um campo
string.
Você processa um arquivo sequencial local no servidor de apresentação com módulos de função
(UPLOAD e DOWNLOAD). Estes copiam dados para uma tabela interna.
20
Treinamento
DOWNLOAD e UPLOAD
O módulo de função DOWNLOAD carrega os conteúdos de uma tabela interna para um arquivo
sequencial local.
O módulo de função UPLOAD carrega os conteúdos de um arquivo sequencial local para uma tabela
interna.
Para o arquivo local, você especifica o nome do arquivo absoluto (ou seja, o caminho completo, por
exemplo ‘/tmp/bc 1 80/myfile’ para o UNIX arquivo myfile no diretório /tmp/bc 180 ou ‘C: AC 180
MYFILE.ABA’ para o OS/2 arquivo MYFILE.ABA no diretório AC 180 na unidade de disco C).
21
Treinamento
exporting
bin_filesize= <file length for binary files>
codepage = <do not use>
filename = <file name - default value>
filetype = <file type - default value
item = <header for file dialog>
mode = <write mode>
wk1_n_format= <value column format for wk1 file type
wk1_n_syze = <value column width for wk1 file type
wk1_t_format= <text column format for wk1 file type
wk1_t_format= <text column width for wk1 file type
importing
act_filename = <file name – entered value>
act_filetype = <file type – entered value>
filesize = <number of bytes downloaded>
tables
data_tab = <transfer file>
Para o módulo de função DOWNLOAD, você precisa de uma tabela interna para a transferência de
dados. Você define esta tabela de acordo com sua estrutura de dados no começo do programa e então
preenche de dados.
Você usa o parâmetro MODE para definir o modo de escrever (‘A’ para estender um arquivo, ‘ ‘ criar
um arquivo novo).
A especificação de valores default para o nome do arquivo, tipo de arquivo e um cabeçalho para o
diálogo de arquivo é opcional.
Os parâmetros de IMPORT especificam os valores entrados pelo usuário para o nome do arquivo, tipo
de arquivo e o número de bytes a serem carregados.
22
Treinamento
Formatos
f1
f1 f2
f2 f3
f3
aa bb cc
dd ee ff
.. .. ..
.. .. ..
format DAT or WK1
spreadsheet
A<tab>
A<tab> B<tab>
B<tab> C<tab>
C<tab>
A<tab>
A<tab> B<tab>
B<tab> C<tab>
C<tab>
.. .. ..
.. .. ..
Como UPLOAD e DOWNLOAD, outro formato disponível para conversões de ASC (ASCII) e BIN
(binário) é DAT para Excel. Com DOWNLOAD, WK1 também estão disponíveis para Excel e Lotus.
Para o formato DAT, colunas de tabela são divididas por um caracter de tabulação e as linhas da tabela
código de fim de linha.
Para o formato WKl, no dados de uma tabela são lançados em uma planilha eletrônica WKl específica.
23
Treinamento
exporting
codepage = <do not use>
filename = <file name - default value>
filetype = <file type - default value
item = <header for file dialog>
importing
filesize = <number of bytes downloaded>
tables
data_tab = <transfer file>
Para o módulo de função UPLOAD, você precisa de uma tabela interna para a transferência de dados.
Você define esta tabela de acordo com sua estrutura de dados no começo do programa.
A especificação de valores default para o nome do arquivo, tipo de arquivo e um cabeçalho para o
diálogo de arquivo é opcional.
24
Treinamento
Download
report zexemplo.
tables sflight.
data: begin of tab occurs 20.
include structure sbc420a.
data: end of tab
start-of-selection.
get sflight.
move-correspondig sflight to tab.
append tab.
write: / tab-carrid, tab-connid,
/ tab-fldate under tab-carrid,
/ tab-planetype under tab-fldate.
end-of-selection.
Quando DOWNLOAD é executado, é necessário somente uma tabela com os dados para o arquivo.
Entretanto você também pode especificar valores default para o nome do arquivo de diálogo, tipo e
cabeçalho. Se você não especificar o modo, o arquivo sempre será recriado (parâmetro MODE = ‘ ‘).
25
Treinamento
Você pode chamar a função DOWNLOAD a partir de uma lista (escolha System -> List -> Save ->
Local file) ou carregar a listagem de um programa ABAP a partir do editor ABAP para um arquivo
local
Você pode chamar a função UPLOAD do Editor ABAP para carregar um programa ABAP a partir de
um arquivo local.
26
Treinamento
Você processa um arquivo sequencial no servidor de aplicação em programas ABAP com declarações
READ DATASET e TRANSFER, que lhe permitem copiar dados de/para um registro de cada vez.
Você processa um arquivo sequencial local no servidor de apresentação com módulos de função
UPLOAD, DOWNLOAD, WS_UPLOAD, WS_DOWNLOAD. Estes copiam de/para dados para uma
tabela interna.
Para módulos de função WS_UPLOAD e WS_DOWNLOAD exceções devem ser tratadas pelo
programa chamador.
WS_QUERY que confere a existência e tamanho de um arquivo, como também outras variáveis de
ambiente.
27
Treinamento
Overview da tarefa
External system
SAP R/2
SAP R/3
SAP
As razões para transferir dados sem um diálogo interativo básico com o usuário são:
- O dados são transferidos para outro sistema e só então são importados para o Sistema SAP.
28
Treinamento
Overview - Problema
SAP SAP
Interfaces database
Dados
Externos
Você não deve transferir dados externos diretamente para o banco de dados do SAP.
Dados externos devem ser conferidos antes que sejam transferidos ao banco de dados do SAP.
29
Treinamento
Overview - Técnicas
Grandes quantidade de dados são transferidos ao Sistema SAP através da técnica batch input.
Para garantir consistência de dados, o dados de transferência estão sujeitos às mesmas verificações e
atualizações como dados de diálogo que são lançados interativamente pelo usuário. Exemplos:
- Verificações de formato
- Verificação de valores (contra tabela de verificação ou intervalos de valores fixos)
- Conversão de dados de usuário para programar dados e vice-versa
- Valores default de campo
O dados de transferência são armazenados temporariamente na forma de uma sessão de batch input em
uma fila de arquivo.
Uma sessão de batch input é uma coleção de processos empresariais (transações).
PBO (Process Before Output ou Processo Antes da Produção) evento que prepara a tela para
produção
Usuário input
PAI (Process After Input ou Processo Depois da Introdução) evento que processa o usuário introduz
30
Treinamento
Um diálogo de usuário é simulado para este procedimento de forma que as mesmos verificações e
atualizações possam ser executados.
Este arquivo recebe os dados por programas batch input e junta os dados associados em ‘sessões’.
Para carregar os dados em bancos de dados de SAP, você processa as sessões com a função batch input
(menu options System -> Services -> Batch input, Transação SM35).
Eles provêem áreas de trabalho estruturadas na forma de uma tabela interna (tabela BDC) para os
dados a ser transferidos.
31
Treinamento
Transação 1 Transação 2
Dados do
Cliente Dados 1 Dados 2
Você processa estas sessões com a função batch input (escolha System -> Services -> Batch Input ou
chama Transação SM35). Como quando você executa aplicações funcionais (com transações de
inclusão / alteração) na interface de diálogo, isto envia dados ao arquivo de log. Quando você executa
uma atualização subseqüentemente, o dados alcançam os bancos de dados de SAP pertinentes.
O grupo introduz função de início nas funções de aplicação especificadas na sessão a ser processada
(indicados pelos seus códigos de transação).
O dados da sessão são copiados agora para às telas que pertencem à transação especificadas como
online.
32
Treinamento
Um programa batch input pode gerar vários grupos sucessivos de batch input. Geração paralela não é
possível.
33
Treinamento
BDC_INSERT
Transaction code TCODE
BDC table DYNPROTAB
BDC_CLOSE_GROUP
Módulos de função (grupo de função SBDC) estão disponíveis para criar sessões de batch input.
Você aprenderá sobre estes módulos de função nas páginas seguintes. Consulte também a
documentação online.
34
Treinamento
CLIENT (Client/SY-MANDT)
GROUP (nome de Sessão)
USER (nome de Usuário/SY-UNAME)
O valores dos retornos por EXCEPTIONS podem ser tratados com SY-SUBRC.
Para transferir os dados, você deve definir uma tabela interna (tabela de BDC).
35
Treinamento
Tabela BDC
PROGRAM SCREEN START FIELD NAME FIELD CONTENTS
O ID de início com 'X' indica sempre que está no começo de uma tela nova. A introdução de valores
são alocados agora para cada campo na tabela para esta tela.
Para melhor esclarecimento, uma linha de tabela só deve incluir nome de programa, número de tela e
ID de início ou nome de campo e valor de campo.
36
Treinamento
...
DATA: BEGIN OF <bdc table> OCCURS n.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF <bdc table>.
...
O campo < BDC table>-FVAL diferencia entre letra maiúscula e minúscula, mas os campos < BDC
table>-PROGRAM e < BDC table>-FNAM não o fazem.
37
Treinamento
Os campos da linha de cabeçalho da tabela devem ser reajustados ao valor inicial com CLEAR.
Sint.:
38
Treinamento
Você recebe vários valores de retorno por EXCEPTIONS. Você pode usar SY-SUBRC para avaliar o
código de retorno de exceção.
Anote:
Para fazer isto, você usa a função de sistema Status e Technical info (F1 – F9 ) e o help function.
39
Treinamento
O nome de campo para OK code é o mesmo para todas as telas: BDC_OKCODE. O valor para o OK
code consiste em um atalho ‘/’ e a função chave número (exemplo: ‘/11’).
O usuário pode ativar Expert mode se for preciso (quando da execução da pasta, numa tela de diálogo).
Esta função desativa mensagem de erro 344 ‘dados de Batch input não existem para esta tela’ para
sessão interativo de processamento. Esta opção é interessante quando você quiser ramificar a outra
transação processando o que não corresponde à sucessão de telas no programa batch input.
A função Estended log lhe permite registrar mensagens W, I e S além de mensagens E. Esta opção
também está disponível se você estiver processando em background.
A tela subseqüente é então processada. Primeiro o dados são lidos no banco de dados do SAP e então
os dados de sessão são copiado para a tela.
40
Treinamento
Modo de Processamento
No modo ‘Process in foreground’, são exibidas todas as telas de uma transação. Se uma sessão termina
anormalmente em modo de teste, você pode usar a função Restart para se ramificar diretamente à
avaliação de sessão (onde você pode reiniciar o processo).
No modo ‘Display erros only', só são exibidas telas quando um erro acontece. Uma transação contém
um erro do tipo E (erro) ou tipo A (terminação) uma mensagem de diálogo é liberada.
No modo “Process in background', a sessão é processada sem exibição das telas. Sua tela está
disponível para inserir assim que a sessão for passada ao sistema de controle de background.
Quando processando uma sessão, o modo de atualização sempre é síncrono (i.e. a próxima transação só
é chamada quando a atualização para a transação executada foi completada).
41
Treinamento
Função OK code
Sair da transação batch input ativa e flag incorreto /n
Deletar a sessão batch input ativa /bdel
Sair do processamento batch input e flag incorreto /bend
Mudança do modo display de “Display errors only” para “Process in foreground” /bda
Mudança do modo display de “Display in foreground” para “Display errors only” /bde
42
Treinamento
Sessão Status
Uma sessão é nomeada com status durante e depois do processo.
Basicamente, o sistema identifica transações que não podem ser processadas devido a erros. Estas
transações permanecem na sessão (que se torna uma sessão de erro). Você pode processar então
novamente estas sessões e pode corrigir os erros.
43
Treinamento
Exemplo de: no momento t2, o sistema de batch imput não pode responder para mensagens de dialogo
(exceto se o usuário inserir em modo de correção).
O sistema batch input não assume nenhum parâmetro de SPA/GPA no momento t2.
Você executa a transação e então toma nota do número da tela, sucessão de tela e nome do campo da
tela para ser enviado depois no programa.
44
Treinamento
Campos Especiais
Em um programa batch input, você pode enviar o OK code, control table / step loop de campos e
posicionamento de cursor.
- Uma control table / step loop de campo tem que ter um número de linha válido (ocorrência)
45
Treinamento
RSBDCSUB
Você usa o relatório RSBDCSUB para programar o processamento da sessão.
Procedimento:
Para isto, escolha System -> Service -> Jobs or System -> Services -> Reporting -> Program ->
Background, ou execute a transação SM36.
Para criar o pedido, precisamos especificar um nome de job (qualquer nome que desejar), o nome do
programa a ser executado e uma variante, como também o nome de um usuário para autorização.
Parte do planejamento termina quando é salvo. Antes de fazer isto, podemos especificar o tempo de
início, qual será a freqüência do job, se será processado freqüentemente, e os parâmetros de impressão.
Você pode incluir mais entradas num job existente. Fazendo isto, teremos uma lista de entradas que
você pode editar para adequar a suas exigências.
Em ambientes distribuídos, podemos especificar uma máquina designada onde o processo será
executado (escolha isto teclando F4).
46
Treinamento
Você pode usar este objeto de autorização para restringir o processo a sessões particulares
(especificando o nome de sessão, ou fazendo entrada genérica). Você também pode proteger atividades
específicas em um processo batch input (fazendo uma entrada no campo ‘Activities’).
47
Treinamento
Overview - Resumo
Quando o batch input é utilizado para importar dados de um sistema do cliente, o programa batch input
geralmente transfere os dados em um arquivo sequencial.
O sistema SAP oferece programas standard de batch input para vários casos de transferência de dados.
Isto significa que não é preciso criar outro programa pois o sistema já possui programas batch input.
Porém, os dados que provê devem estar em um formato pré-definido para o programa da SAP.
48
Treinamento
As aplicações provêem descrições de estrutura para o grupo de programas standard batch input da SAP
no ABAP Dictionary.
Type 2: dados da tabela da SAP (por exemplo: nome de tabela, nome de campo, conteúdos de
campo etc.).
49
Treinamento
Análise de Dados
Há uma análise de dados no começo de toda transferência de dados.
Na análise de dados, você decide quais dados podem ser transferidos e como. Proceda como segue:
- Defina que campos podem ser transferidos dos dados antigos diretamente ao Sistema SAP.
- Crie regras para preencher os campos de dados no Sistema SAP onde não podem ser usados dados
antigos diretamente.
50
Treinamento
Programa de Transferência
A tarefa de um programa de transferência de cliente é criar registro de dados no formato do SAP e os
transferir para um arquivo sequencial. Os dados podem ser lidos então por um programa standard batch
input da SAP.
51
Treinamento
52
Treinamento
Inicializando e Convertendo
Para todo campo utilizado na estrutura batch input, uma decisão deve ser tomada se o valor do campo
inicial (por exemplo: campo deve ser reajustado para um valor inicial) ou se o batch input não é
necessário para este campo.
Se os dados do batch input não serão colocados em determinados campos no Sistema SAP, o grupo de
programas standard de batch input espera um caráter especial (NODATA flag). O caráter especial
default é ‘/’, mas podemos definir seu próprio caráter com o campo BGR00-NODATA. Você deve
então inicializar o estruturas batch input da SAP com este caracter especial.
Se os campos com as estruturas antigas são de um tamanho diferente de acordo com as estruturas do
SAP, o programa de transferência deverá executar as conversões. Os campos de estruturas batch input
da SAP sempre são tipo C.
53
Treinamento
54
Treinamento
Para documentação detalhada nas funções individuais, aperte F1 and/or a função de ajuda ampliada.
55
Treinamento
Exemplos:
RFBIBLOO FI Pode ser trocado entre direct input, batch input e CALL TRANSATION.
56
Treinamento
Lê o registro de dados
57
Treinamento
Analisar os resultados
Avaliar os erros
58
Treinamento
Overview
Ao contrário de batch input, a declaração CALL TRANSACTION lhe permite passar dados
diretamente para a interface de diálogo (sem usar a lista do arquivo ). para armazenar dados de tela
temporariamente, usa-se uma tabela interna (uma tabela BDC que tem a mesma estrutura do batch
input). Então, chamamos a transação desejada temporariamente em seu programa e as cópias de dados
do sistema as armazenarão na tabela BDC para as telas da transação.
59
Treinamento
Os parâmetros MODE e UPDATE são opcionais. O default para ambos é 'A' (assíncrono).
A opção MESSAGES INTO <messtab> lhe permite armazenar qualquer mensagem produzida pela
transação chamada em uma tabela interna. A tabela interna <messtab> deve ter a estrutura
BDCMSGCOLL.
60
Treinamento
Implementação Técnica
O sistema abre uma segunda área (janela) para a transação chamada. Lá, processa as telas individuais e
copia os dados da tabela. Quando a transação termina, a segunda área (janela) é lançada e o processo
continua na primeira área (janela).
Notas:
Em contraste com batch input, não há nenhum erro sendo anotado. Se a transação chamada é
processada, depende da autorização do usuário que a executou. A tabela BDC pode aceitar só dados
para uma única transação. Isto significa que antes da próxima chamada de transação, tem que executar
um REFRESH na tabela de BDC e preencher com dados novamente.
61
Treinamento
Podemos obter toda a produção de mensagens da transação através da opção MESSAGES INTO
<messtab> e então avaliar o conteúdos de <messtab>.
Geração de Mensagem
A declaração MESSAGE lhe permite produzir as mensagens de diálogo para a transação chamada.
62
Treinamento
O método Direct Input usa um arquivo sequencial como meio de introdução para executar a
transferências de dados de um sistema não-R/3 para o sistema R/3 .
O método Direct Input é uma tecnologia que provê programas de aplicação especial usando módulos de
funções específicos projetados pela aplicação para processar altos volumes de dados de transações no
sistema R/3.
A técnica deste método é usar operações de ordem de tamanho para dirigir vários registros de cada vez.
Consequentemente, ocorrem melhorias consideráveis de desempenho e de tempo de processamento no
método Direct Input.
Os módulos de funções de aplicações especiais são escritos e são providos nas aplicações apropriadas
pelos programadores da espectiva aplicação.
O método Direct Input provê uma administração e a ferramenta de monitoração para a manipulação
deste método é acessível pela transação BMVO.
A vantagem do método Direct Input é que as tabelas de aplicações são atualizadas diretamente, com
dados da seqüência de arquivos após a verificação lógica de aplicações normais ter sido executada com
sucesso.
Nenhuma tela de aplicações é invocada e também nenhuma sessão de batch input é registrada.
Os dados a serem transferidos são conferidos pelos módulos de função e quando processados com
sucesso são transferidos diretamente para as tabelas de banco de dados das aplicações envolvidas.
O sistema R/3 de banco de dados é atualizado diretamente com sucesso tendo como fonte os arquivos
sequenciais.
Como não é chamado nenhum programa do sistema de atualização - um gargalo é eliminado para
aumentar o técnica de desempenho global.
Um exemplo de uma aplicação R/3 que provê uma função que usa uma tecnologia de introdução direta
é o alto volume de dados transferidos para o Mestre de Material.
63
Treinamento
Depois que você completou a transação do SAP escolha ‘Get Transaction’ e Save para terminar a
gravação ou ‘Next Transaction’ e fixe outra transação.
Uma vez que você tenha salvo o batch input você pode mudar, exibir, apagar a gravação e gerar uma
sessão de batch input para gravar e/ou gerar um programa de batch input da gravação.
O programa batch input pode ser regerado se uma mudança foi feita na sessão gravada.
64