Académique Documents
Professionnel Documents
Culture Documents
ABAP
Data Interface
ABAP
7272 DATA INTERFACE
1.00 - 2
Pg.
ndice
Qual a funo do R/3....................................... 03 Porque voc precisa saber disso................................ 04 Logon................................................. 05 Cores ................................................. 06 cones no SAP ........................................... 07 Seqncia de arquivos ...................................... Overview ......................................... 08 Transferncia de dados ................................ 09 Processando o arquivo ................................. 10 Abrindo um arquivo .................................. 11 Abrindo um arquivo (Binary e Text Mode) ................... 12 Modo Binrio e Modo de Texto ........................... 13 Abrindo um arquivo At Position ......................... 14 Transferindo registrso de dados ........................... 15 Lendo registros de dados ............................... 16 Fechando / Deletando arquivos sequenciais ................... 17 Criando um arquivo ................................... 18 ABAP Dictionary Estruturas ............................ 19 Lendo um arquivo .................................... 20 Incluindo dados no final do arquivo ......................... 21 Formato varivel ..................................... 22 Formato varivel (Read) ................................ 23 Definindo estruturas Resumo............................ 24 Overview ......................................... 25 Download e Upload ................................... 26 Mdulo de Funo Download ............................ 27 Formatos .......................................... 28 Mdulo de Funo Upload .............................. 29 Download ......................................... 30 Upload e Download como funes padro .................... 31 Arquivo de servidor e arquivo local ........................ 32 Task Overview ...................................... 33 Problem Overview ................................... 34 Overview Tcnicas / Overview Telas .................... 35 Processamento Batch Input .............................. 36 Programa Batch Input ................................. 36 Fila de Arquivos Batch Input / Formato da sesso Batch Input ...... 37 Criando uma sesso Batch Input .......................... 38 Mdulos de funo para programas Batch Input ................ 39 Mdulo de funo BDC_OPEN_GROUP .................... 40 Mdulo de funo BDC_INSERT ......................... 40 Tabela BDC ....................................... 41
ABAP
7272 DATA INTERFACE
1.00 - 3
Definindo a tabela BDC ................................ 42 Preenchendo a tabela BDC .............................. 43 . Mdulo de funo BDC_CLOSE_GROUP ................... 44 . Dados da transao do usurio ........................... 44 . Preparaes para programa BDC ......................... 44 . Preparaes para programa BDC Screen Painter .............. 44 -Estrutura da tabela BDC ............................... 45 -Funcionalidade da transao SM35 ........................ 45 -Copiando dados para as telas ............................ 45 Modo de processamento ................................ 46 Processando o Batch Input .............................. 47 Sesso Status ....................................... 48 . Criando e processando sesses ........................... 49 . Resumo das preparaes do usurio ....................... 49 -Carregando a tabela BDC para Table Control.................. 50 -Campos especiais.................................... 50 -Transaes de Batch Input com xito....................... 50 .RSBDCSUB ....................................... 51 .Programando trabalhos em Background...................... 51 Autorizaes para processar Batch Input...................... 52 Overview Resumo ................................... 53 Sequncia Dataset no Formato da SAP ...................... 54 Anlise de dados ..................................... 55 Programa de transferncia ............................... 56 Importando estruturas SAP............................... 57 Inicializando e convertendo............................... 58 Outras tarefas de um programa de transferncia ................. 59 IMG ..............................................60 Batch Input, Call Transaction e Direct Input ................... 61 Tarefas de um programa de transferncia ..................... 62 Transferncia de dados com Batch Input ..................... 63 Overview .......................................... 64 Declarao Call Transaction.............................. 65 Implementao tcnica ................................. 66 .Cdigos de retorno e variveis do sistema .................... 67 .Gerao de mensagem ................................. 67 .Batch Input / Call Transaction Resumo ..................... 67 O mtodo Direct Input ................................. 68 Processo de gravao do Batch Input ....................... 69
ABAP
7272 DATA INTERFACE
1.00 - 4
Estes aplicativos so chamados reas funcionais, reas de aplicativo ou, mdulos funcionais do R/3. Todos estes termos so sinnimos. Tradicionalmente, as estruturas empresariais desenvolvem um conjunto de aplicativos de processamento de dados avaliando produtos individuais e comprando esses produtos separadamente de diversos fabricantes de software. Interfaces entre eles so ento necessrias. Por exemplo, o sistema de gerenciamento de materiais precisar ser vinculado com as vendas e a distribuio e com os sistemas financeiros, e o sistema de fluxo de trabalho precisar de uma alimentao a partir do sistema do HR. Uma quantidade significativa de tempo e dinheiro de IS gasta na implementao e manuteno dessas interfaces. O R/3 vem predefinindo com os aplicativos empresariais bsicos necessrios maioria das grandes corporaes. Esses aplicativos coexistem em um ambiente homogneo. Eles so projetados para funcionar utilizando desde um nico banco de dados e um conjunto (muito grande) de tabelas. Os tamanhos de banco de dados de produo atuais variam de 12 gigabytes a aproximadamente 3 terabytes. Cerca de 8.000 tabelas de banco de dados so distribudas com o produto R/3 padro.
ABAP
7272 DATA INTERFACE
1.00 - 5
ABAP
7272 DATA INTERFACE
1.00 - 6
Logon
Atravs do logon o sistema identificar se o usurio esta autorizado a entrar no SAP no client que est acessando, e atravs do seu UserId que identificado a que mdulos e transaes voc ter acesso.
Menu do Interface
rea Screen
Barra de Status
ABAP
7272 DATA INTERFACE
1.00 - 7
Cores
Para que voc possa alterar as cores de seu ambiente tornando-o mais agradvel, utilize o recurso abaixo demonstrado.
ABAP
7272 DATA INTERFACE
1.00 - 8
cones no SAP
Abaixo alguns exemplos, com descrio, dos cones que voc ter contato no SAP.
ABAP
7272 DATA INTERFACE
1.00 - 9
Overview
Programa ABAP
TRANSFER
READ DATASET
Seqncia de arquivos
Voc pode processar um arquivo sequencial com as declaraes READ DATASET (para operaes de leitura) e TRANSFER (para operaes de gravao). Arquivos no servidor de apresentao no podem ser processados com TRANSFER ou READ DATASET. Eles devem estar localizados no servidor de aplicao.
ABAP
7272 DATA INTERFACE
1.00 - 10
Transferncia de Dados
Sistema do Cliente
Programa do Cliente
Seqncia de Arquivos
Programa SAP
Arquivos sequenciais a interface entre um sistema do cliente e o Sistema R/3. o meio utilizado para importar dados de um sistema do cliente para o Sistema R/3 e vice-versa.
ABAP
7272 DATA INTERFACE
1.00 - 11
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. Depois de processado, o arquivo dever ser fechado. 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 portteis com o mdulo de funo FILE_GET_NAME que devolve o nome fsico para um determinado nome do arquivo lgico. Veja tambm a documentao online para o mdulo na transao SE37.
ABAP
7272 DATA INTERFACE
1.00 - 12
Abrindo um Arquivo
for
if sy-subrc ne 0. ...
Para abrir um arquivo, voc usa a declarao OPEN DATASET <nome do arquivo>. Dependendo se este tem xito, SY-SUBRC fixado em 0 ou 8. Erros so ignorados. Se voc no especifica nenhuma opo adicional, o arquivo aberto para leitura. Possveis opes: FOR OUTPUT Abre o arquivo para gravao. Se o arquivo j existe, seus contedos so apagados, mas isto s se aplica depois do fim do programa. Se a declarao acontece em um programa, o cursor simplesmente posicionado no comeo do arquivo. Voc tem que especificar CLOSE DATASET para apagar o arquivo. Se o arquivo no existe, ele gerado. FOR INPUT Abre um arquivo existente para leitura. Se o arquivo j est aberto, o cursor posicionado no comeo do arquivo. Voc no tem que especificar FOR INPUT explicitamente. FOR APPENDING Abre o arquivo para gravar no fim do arquivo. Se o arquivo no existe, gerado. Se o arquivo j est aberto, o cursor posicionado no fim.
ABAP
7272 DATA INTERFACE
1.00 - 13
open dataset <file name> output input appending binary mode text mode
for
in
if sy-subrc ne 0. ...
Voc pode escolher abrir um arquivo em modo binrio ou em modo de texto. Opes possveis: EM MODO BINRIO Os dados no so interpretado pelas operaes de leitura e escrita READ DATASET e TRANSFER. As reas de dados especificadas para estas palavras chaves so lidas ou gravadas diretamente. Voc no precisa especificar explicitamente IN BINARY MODE (default). EM MODO DE TEXTO Se voc abre um arquivo com esta opo, 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 so processados at a seleo de end-of-line. Se a rea de dados for maior do que a linha a ser lida, a rea restante preenchida com espaos em branco. Se for menor, o final da linha ser perdido. O default para o arquivo ser aberto em modo binrio.
ABAP
7272 DATA INTERFACE
1.00 - 14
Programa ABAP
Programa ABAP
O exemplo ilustra a diferena entre modo binrio e modo de texto: Trs campos de diferentes tamanhos so transferidos a qualquer momento. Os dados so lidos em trs campos do mesmo tamanho. No modo de texto, a operao especfica do sistema line-end caracter fixada aps cada registro de dados. Espaos em brancos ao trmino de um registro de dados no so suprimidos em modo de texto.
ABAP
7272 DATA INTERFACE
1.00 - 15
message
<field>
As adies seguintes existem para a declarao OPEN: AT POSITION <position> Com esta adio, voc pode especificar uma posio de arquivo (em bytes) desde o princpio do arquivo. No possvel posicionar o cursor antes do incio do arquivo. Embora esta adio possa ser usada junto com IN TEXT MODE, isto gera uma pequena sensao de como o formato fsico de um arquivo de texto largamente dependente no sistema operacional. MENSAGEM <field> Se ocorrer um erro ao abrir o arquivo, a mensagem do sistema operacional associada armazenada no campo <field>.
ABAP
7272 DATA INTERFACE
1.00 - 16
Cada declarao TRANSFER transfere o registro de dados a um arquivo sequencial. Antes de executar o comando TRANSFER, voc deve mover os registro de dados em um campo ou uma estrutura. Estruturas so campos string ou reas de trabalho de tabela. A execuo da declarao TRANSFER depende do modo: - Modo binrio: Escreve o tamanho do campo ou estrutura. - Modo de texto: Escreve uma linha. Se o arquivo especificado no est aberto, a declarao TRANSFER tenta abrir o arquivo <nome do arquivo> FOR OUTPUT (IN BINARY MODE) ou usando as adies da ltima declarao OPEN DATASET para este arquivo. Erros que ocorrem durante a declarao TRANSFER resultam no trmino do programa. O parmetro adicional LENGHT <tamanho> da declarao TRANSFER lhe permite especificar o tamanho em bytes (no formato TRANSFER <estrutura> TO <nome do arquivo> LENGHT <tamanho>). Neste caso, o nmero exato de carter especificado <tamanho> transferido. Se a
ABAP
7272 DATA INTERFACE
1.00 - 17
estrutura menor, o registro aumentado (com espaos em branco em modo de texto e hexadecimal zero em modo binrio). Se a estrutura maior, o registro truncado.
ABAP
7272 DATA INTERFACE
1.00 - 18
Cada declarao READ DATASET l um registro de um arquivo sequencial em um campo ou estrutura. Estruturas so campos string ou reas de trabalho de tabela. A execuo da declarao READ DATASET depende do modo: - Modo binrio: L o tamanho da estrutura. - Modo de texto: L uma linha. Se o arquivo especificado no est aberto, READ DATASET tenta abrir o arquivo (IN BINARY FOR INPUT ou com as opes da ltima declarao OPEN DATASET para este arquivo). Se o fim do arquivo alcanado, SY-SUBRC fixado a 4. Caso contrrio fixado a 0. Se o arquivo no pode ser aberto, SY-SUBRC contm o valor 8. Erros resultam no trmino do programa. READ DATASET, como TRANSFER, no executa converses implcitas. O dados so lidos como foram escritos. O parmetro adicional LENGHT <tamanho> da declarao READ DATASET lhe permite especificar uma tamanho em bytes (no formato READ DATASET <nome do arquivo> INTO <estrutura> LENGHT <tamanho>). Neste caso, o nmero exato de carter especificado em <tamanho> ser lido no registro de dados na estrutura. Se a estrutura menor, o registro aumentado (com espaos em branco
ABAP
7272 DATA INTERFACE
1.00 - 19
em modo de texto e com zeros de hexadecimal em modo binrio). Se a estrutura for maior, o registro ser truncado.
ABAP
7272 DATA INTERFACE
1.00 - 20
Voc usa a declarao CLOSE DATASET <nome do arquivo> para fechar uma seqncia de arquivos explcitos. Em um programa, todos os arquivos abertos so automaticamente fechados cada vez que a tela muda, e ento reabrem exatamente como eles estavam antes de processados. Ao trmino de um programa, todos os arquivos esto fechados. A vantagem de usar OPEN DATASET que voc pode usar a adio MESSAGE para evitar uma finalizao programada se um erro acontecer quando estiver abrindo o arquivo (SY-SUBRC = 8). Alm, voc deve estar atento que, em casos onde um arquivo ser lido, ou gerado e lido, vrias vezes no mesmo relatrio, s abertura automtica ou fechamento garantem que o cursor ser reposicionado no comeo do arquivo. Um arquivo no fechado imediatamente quando READ DATASET chega o fim de um arquivo. Voc pode usar o DELETE DATASET <nome do arquivo> para apagar um seqncia 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 ento (ou selecionando) DATASETS.
ABAP
7272 DATA INTERFACE
1.00 - 21
Criando um Arquivo
report zexemplo. tables sflight. data: begin of rec, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, end of rec. 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. write: / rec-carrid, rec-connid, / rec-fldate, rec-planetype. uline. end-of-selection. close dataset file.
Primeiro voc define a estrutura a ser transferida. Neste exemplo, um campo string, mas tambm poderia ser um campo de ajuda, o cabealho de uma tabela interna ou uma rea de trabalho do ABAP Dictionary. O campo string tambm pode ser codificado em um relatrio include. Depois, voc deve preencher a estrutura. Em princpio, podem ser usadas todas as declaraes que executam uma tarefa de valor aqui. Exemplos incluem MOVE, COMPUTE, MOVECORRESPONDING, MOVE TO e WRITE TO. Finalmente, voc transfere a estrutura com a declarao TRANSFER.
ABAP
7272 DATA INTERFACE
1.00 - 22
report zexmplo1. tables: sflight, sbc420a. parameters file (20) default /tmp/zexemplo lower case. get sflight. move-corresponding sflight to sbc420a. transfer sbc420a to file. write: / sbc420a -carrid, sbc420a -connid, / sbc420a -fldate, sbc420a -planetype. uline.
Dict.
table structure sbc420a. ----------------------------------------------------------------------name type lenght meaning ----------------------------------------------------------------------sbc420a-carrid char 03 short description of airline company sbc420a-connid numc 04 code for flight connection sbc420a-fldate dats 08 flight date sbc420a-planetype char 10 aircraft type
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 tambm pode usar estruturas do ABAP Dictionary para transferncia de dados. Para fazer isto, declare a estrutura com TABLES. Aps isso, em seu programa, utilize qualquer um dos seguintes procedimentos: - use a rea de trabalho declarada com TABLES - copie a estrutura para seu campo string com INCLUDE STRUCTURE. Voc pode exibir a estrutura do ABAP Dictionary no Editor ABAP com o comando de SHOW.
ABAP
7272 DATA INTERFACE
1.00 - 23
Lendo um Arquivo
report zexemplo. tables sflight. data: begin of rec, carrid like connid like fldate like planetype like end of rec. sflight-carrid, sflight-connid, sflight-fldate, sflight-planetype,
parameters file (20) default /tmp/zexemplo lower case. 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. Tambm pode ser codificada num relatrio include. As estruturas a serem usadas com os comando READ DATASET e TRANSFER devem Ter o mesmo lay-out. Voc l os registros de dados em sua estrutura dentro um loop e os processa. READ DATASET no requer um banco de dados lgico. Voc pode analisar seus dados extrados junto com dados de qualquer banco de dados lgico (o qual voc especifica ento nos atributos de relatrio).
ABAP
7272 DATA INTERFACE
1.00 - 24
report zexemplo. tables sflight, sbc42a. parameters file (20) default /tmp/zexemplo lower case. 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 clusula FOR APPENDING na declarao OPEN DATASET.
ABAP
7272 DATA INTERFACE
1.00 - 25
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.
O exemplo gera um arquivo sequencial com registros de dados de estruturas diferentes. O programa include definido como segue: data: data: data: data: begin of rec1, flag. include estructure sbc42oa. end of rec1. begin of rec2, flag. include estructure sbc42ob. end of rec2.
A estrutura SBC42OA usada para dados de vo, enquanto a estrutura SBC42OB dados de reserva de lugares. Uma flag deve indicar se o prximo registro de dados contm dados de vo ou dados de reserva.
ABAP
7272 DATA INTERFACE
1.00 - 26
report zexemplo. tables sbc42a, sbc42b. data: flag. parameters file (20) default /tmp/exemplo lower case. 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 programa l os registros de dados dos arquivo criados previamente por um programa. O programa assume que um ID (A ou B) precede cada registro de dados. O arquivo aberto em modo binrio e os registros so lidos de acordo com o tamanho da estrutura especificado.
ABAP
7272 DATA INTERFACE
1.00 - 27
fill structure
transfer structure
YES
YES
NO close file
NO
Processando um arquivo no programa, voc define as estruturas requeridas para os registros de dados com as TABLES ou declarao DATA primeiro. O programa usa estas estruturas como buffers internos para os registros de dados. Voc ento abre a seqncia de arquivos para ser lida ou escrita com a declarao OPEN. Quando escreve o arquivo, voc transfere as estruturas cheias para o arquivo com declaraes 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 seqncia de arquivos, voc encerra o arquivo que esta sendo processado com a declarao CLOSE DATASET.
ABAP
7272 DATA INTERFACE
1.00 - 28
Overview
read dataset
upload
Programas ABAP so executados no servidor de aplicao e tem acesso aos arquivos sequenciais. Voc tambm pode usar um programa ABAP para processar arquivos locais (que pertencem ao servidor de apresentao). Voc processa um arquivo sequencial no servidor de aplicao utilizando programas ABAP com as declaraes READ DATASET e TRANSFER que lhe permitem copiar de/para dados de um campo string. Voc processa um arquivo sequencial local no servidor de apresentao com mdulos de funo (UPLOAD e DOWNLOAD). Estes copiam dados para uma tabela interna.
ABAP
7272 DATA INTERFACE
1.00 - 29
DOWNLOAD e UPLOAD
O mdulo de funo DOWNLOAD carrega os contedos de uma tabela interna para um arquivo sequencial local. O mdulo de funo UPLOAD carrega os contedos 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 diretrio /tmp/bc 180 ou C: AC 180 MYFILE.ABA para o OS/2 arquivo MYFILE.ABA no diretrio AC 180 na unidade de disco C). O diretrio deve ser conhecido ao servidor de apresentao. A escolha de nomes satisfatrios de arquivo responsabilidade do cliente. O sistema pede o nome do arquivo e o tipo de arquivo interativo. O dados so convertido de acordo com o tipo de arquivo.
ABAP
7272 DATA INTERFACE
1.00 - 30
Para o mdulo de funo DOWNLOAD, voc precisa de uma tabela interna para a transferncia de dados. Voc define esta tabela de acordo com sua estrutura de dados no comeo do programa e ento preenche de dados. Voc usa o parmetro MODE para definir o modo de escrever (A para estender um arquivo, criar um arquivo novo). A especificao de valores default para o nome do arquivo, tipo de arquivo e um cabealho para o dilogo de arquivo opcional. Os parmetros de IMPORT especificam os valores entrados pelo usurio para o nome do arquivo, tipo de arquivo e o nmero de bytes a serem carregados. Voc s especifica um valor pelo parmetro de exportao CODEPAGE quando executando um DOWNLOAD para DOS (o nico valor possvel ' IBM'). Caso contrrio, este parmetro no usado. Todos os parmetros EXPORT so opcionais.
ABAP
7272 DATA INTERFACE
1.00 - 31
Formatos
Internal table (ABAP) f1 f1 a a d d . . . . spreadsheet A<tab> A<tab> A<tab> A<tab> . . . . B<tab> B<tab> B<tab> B<tab> . . . . C<tab> C<tab> C<tab> C<tab> . . . . f2 f2 b b e e . . . . f3 f3 c c f f . . . . format DAT or WK1
Como UPLOAD e DOWNLOAD, outro formato disponvel para converses de ASC (ASCII) e BIN (binrio) DAT para Excel. Com DOWNLOAD, WK1 tambm esto disponveis para Excel e Lotus. Para o formato DAT, colunas de tabela so divididas por um caracter de tabulao e as linhas da tabela cdigo de fim de linha. Para o formato WKl, no dados de uma tabela so lanados em uma planilha eletrnica WKl especfica.
ABAP
7272 DATA INTERFACE
1.00 - 32
Para o mdulo de funo UPLOAD, voc precisa de uma tabela interna para a transferncia de dados. Voc define esta tabela de acordo com sua estrutura de dados no comeo do programa. A especificao de valores default para o nome do arquivo, tipo de arquivo e um cabealho para o dilogo de arquivo opcional. Voc s especifica um valor pelo parmetro de exportao CODEPAGE quando executar um DOWNLOAD para DOS (o nico valor possvel IBM). Caso contrrio, este parmetro no usado.
ABAP
7272 DATA INTERFACE
1.00 - 33
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. call function download tables data_tab = tab. write: / lenght, bytes download to file file, format, type.
Este programa de exemplo gera um arquivo local com dados da SFLIGHT. Quando DOWNLOAD executado, necessrio somente uma tabela com os dados para o arquivo. Entretanto voc tambm pode especificar valores default para o nome do arquivo de dilogo, tipo e cabealho. Se voc no especificar o modo, o arquivo sempre ser recriado (parmetro MODE = ).
ABAP
7272 DATA INTERFACE
1.00 - 34
Function DOWNLOAD
Voc pode chamar a funo 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 funo UPLOAD do Editor ABAP para carregar um programa ABAP a partir de um arquivo local.
ABAP
7272 DATA INTERFACE
1.00 - 35
Arquivos de Servidor
Arquivos Locais
Voc processa um arquivo sequencial no servidor de aplicao em programas ABAP com declaraes 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 apresentao com mdulos de funo UPLOAD, DOWNLOAD, WS_UPLOAD, WS_DOWNLOAD. Estes copiam de/para dados para uma tabela interna. Com UPLOAD e DOWNLOAD o arquivo transferido atravs de um dilogo interativo no servidor de apresentao. Para mdulos de funo WS_UPLOAD e WS_DOWNLOAD excees devem ser tratadas pelo programa chamador. Outros mdulos de funo disponveis so: WS_QUERY que confere a existncia e tamanho de um arquivo, como tambm outras variveis de ambiente. WS_EXECUTE iniciam um programa de aplicao no servidor (no SAP).
ABAP
7272 DATA INTERFACE
1.00 - 36
Overview da tarefa
SAP
As razes para transferir dados sem um dilogo interativo bsico com o usurio so: - O datasets so grandes e j existem em um meio de dados eletrnico - O dados so transferidos para outro sistema e s ento so importados para o Sistema SAP.
ABAP
7272 DATA INTERFACE
1.00 - 37
Overview - Problema
SAP database
Voc no 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.
ABAP
7272 DATA INTERFACE
1.00 - 38
Overview - Tcnicas
Grandes quantidade de dados so transferidos ao Sistema SAP atravs da tcnica batch input. Batch Input um procedimento automtico. freqentemente chamado de BDC (Batch Data Communication ou Comunicao de Dados de Grupo). Para garantir consistncia de dados, o dados de transferncia esto sujeitos s mesmas verificaes e atualizaes como dados de dilogo que so lanados interativamente pelo usurio. Exemplos: - Verificaes de formato - Verificao de valores (contra tabela de verificao ou intervalos de valores fixos) - Converso de dados de usurio para programar dados e vice-versa - Valores default de campo O dados de transferncia so armazenados temporariamente na forma de uma sesso de batch input em uma fila de arquivo. Uma sesso de batch input uma coleo de processos empresariais (transaes). Um dialogo de usurio simulado em um procedimento batch input.
ABAP
7272 DATA INTERFACE
1.00 - 39
ABAP
7272 DATA INTERFACE
1.00 - 40
Telas
Fila de Arquivos
Dados do Cliente
Dados 1
Dados 2
A fila de arquivo coleta as telas individuais e as combina em sesses. Voc processa estas sesses com a funo batch input (escolha System -> Services -> Batch Input ou chama Transao SM35). Como quando voc executa aplicaes funcionais (com transaes de incluso / alterao) na interface de dilogo, isto envia dados ao arquivo de log. Quando voc executa uma atualizao subseqentemente, o dados alcanam os bancos de dados de SAP pertinentes. O grupo introduz funo de incio nas funes de aplicao especificadas na sesso a ser processada (indicados pelos seus cdigos de transao). O dados da sesso so copiados agora para s telas que pertencem transao especificadas como online.
ABAP
7272 DATA INTERFACE
1.00 - 41
ABAP
7272 DATA INTERFACE
1.00 - 42
Mdulos de funo (grupo de funo SBDC) esto disponveis para criar sesses de batch input. Voc aprender sobre estes mdulos de funo nas pginas seguintes. Consulte tambm a documentao online.
ABAP
7272 DATA INTERFACE
1.00 - 43
ABAP
7272 DATA INTERFACE
1.00 - 44
Tabela BDC
PROGRAM <program name> <program name> SCREEN <number 1> <number 2> START X <field 11> <field 12> X <field 21> <field 22> ... A tabela BDC comtm os dados para uma transao. O contedo da tabela BDC passado ento para a fila de arquivo. Uma linha de tabela inclui a seguinte informao: Nome de programa, nmero de tela, ID de incio, nome de campo, valor de campo. O ID de incio com 'X' indica sempre que est no comeo de uma tela nova. A introduo de valores so alocados agora para cada campo na tabela para esta tela. Para melhor esclarecimento, uma linha de tabela s deve incluir nome de programa, nmero de tela e ID de incio ou nome de campo e valor de campo. Somente os nomes de campos so alterados ou includos. <value 21> <value 22> ... <value 11> <value 12> FIELD NAME FIELD CONTENTS
ABAP
7272 DATA INTERFACE
1.00 - 45
ABAP
7272 DATA INTERFACE
1.00 - 46
<BDC table> - program, <BDC table> - dynpro, <BDC table> - dynbegin. table> - fnan, table> - fval. table> - fnan, table> - fval.
ABAP
7272 DATA INTERFACE
1.00 - 47
ABAP
7272 DATA INTERFACE
1.00 - 48
ABAP
7272 DATA INTERFACE
1.00 - 49
Modo de Processamento
No modo Process in foreground, so exibidas todas as telas de uma transao. Se uma sesso termina anormalmente em modo de teste, voc pode usar a funo Restart para se ramificar diretamente avaliao de sesso (onde voc pode reiniciar o processo). No modo Display erros only', s so exibidas telas quando um erro acontece. Uma transao contm um erro do tipo E (erro) ou tipo A (terminao) uma mensagem de dilogo liberada. No modo Process in background', a sesso processada sem exibio das telas. Sua tela est disponvel para inserir assim que a sesso for passada ao sistema de controle de background. Quando processando uma sesso, o modo de atualizao sempre sncrono (i.e. a prxima transao s chamada quando a atualizao para a transao executada foi completada).
ABAP
7272 DATA INTERFACE
1.00 - 50
ABAP
7272 DATA INTERFACE
1.00 - 51
Sesso Status
Uma sesso nomeada com status durante e depois do processo. Basicamente, o sistema identifica transaes que no podem ser processadas devido a erros. Estas transaes permanecem na sesso (que se torna uma sesso de erro). Voc pode processar ento novamente estas sesses e pode corrigir os erros.
ABAP
7272 DATA INTERFACE
1.00 - 52
ABAP
7272 DATA INTERFACE
1.00 - 53
Campos Especiais
Em um programa batch input, voc pode enviar o OK code, control table / step loop de campos e posicionamento de cursor. As seguintes regras se aplicam ao preencher a tabela BDC: - O nome de campo para o OK code sempre BDC_OKCODE - Uma control table / step loop de campo tem que ter um nmero de linha vlido (ocorrncia) - O nome de campo para o cursor BDC_CURSOR.
ABAP
7272 DATA INTERFACE
1.00 - 54
RSBDCSUB
Voc usa o relatrio RSBDCSUB para programar o processamento da sesso. Procedimento: 1. Crie uma variante, informando: - Nome da sesso (entradas genricas tambm so possveis) - Data da criao - Status da sesso - Host destino (para sistema background) - Log ampliado (extended log) 2. Crie um job para o relatrio RSBDCSUB com a variante que definimos.
ABAP
7272 DATA INTERFACE
1.00 - 55
ABAP
7272 DATA INTERFACE
1.00 - 56
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. Cria-se um arquivo sequencial com um programa de transferncia do cliente. Usa-se um programa de batch input (o programa de transferncia da SAP) para transferir os dados de um arquivo sequencial para um arquivo do SAP. O sistema SAP oferece programas standard de batch input para vrios casos de transferncia de dados. Isto significa que no preciso criar outro programa pois o sistema j possui programas batch input. Porm, os dados que prov devem estar em um formato pr-definido para o programa da SAP.
ABAP
7272 DATA INTERFACE
1.00 - 57
Type 2: dados da tabela da SAP (por exemplo: nome de tabela, nome de campo, contedos de campo etc.).
ABAP
7272 DATA INTERFACE
1.00 - 58
Anlise de Dados
H uma anlise de dados no comeo de toda transferncia de dados. Na anlise de dados, voc decide quais dados podem ser transferidos e como. Proceda como segue: - Compare seus dados antigos com os campos de dados no Sistema SAP. - 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 no podem ser usados dados antigos diretamente.
ABAP
7272 DATA INTERFACE
1.00 - 59
Programa de Transferncia
A tarefa de um programa de transferncia de cliente criar registro de dados no formato do SAP e os transferir para um arquivo sequencial. Os dados podem ser lidos ento por um programa standard batch input da SAP.
ABAP
7272 DATA INTERFACE
1.00 - 60
ABAP
7272 DATA INTERFACE
1.00 - 61
Inicializando e Convertendo
Para todo campo utilizado na estrutura batch input, uma deciso deve ser tomada se o valor do campo inicial (por exemplo: campo deve ser reajustado para um valor inicial) ou se o batch input no necessrio para este campo. Se os dados do batch input no sero colocados em determinados campos no Sistema SAP, o grupo de programas standard de batch input espera um carter especial (NODATA flag). O carter especial default /, mas podemos definir seu prprio carter com o campo BGR00-NODATA. Voc deve ento inicializar o estruturas batch input da SAP com este caracter especial. Se os campos com as estruturas antigas so de um tamanho diferente de acordo com as estruturas do SAP, o programa de transferncia dever executar as converses. Os campos de estruturas batch input da SAP sempre so tipo C.
ABAP
7272 DATA INTERFACE
1.00 - 62
de
um
Programa
de
Estas so outras tarefas que os programas de transferncia de cliente podem executar. Exemplos: Dados individuais de clientes podem ser conferidos (verificar se devem ser transferidos dados de fato, por exemplo). Dados de acordo com regras definidas podem ser convertidos (nmeros novos no Sistema SAP sero nomeados como nmeros particulares no sistema, por exemplo). Podem ser escritos dados incorretos em uma tabela de erro do cliente depois da verificao de dados.
ABAP
7272 DATA INTERFACE
1.00 - 63
ABAP
7272 DATA INTERFACE
1.00 - 64
ABAP
7272 DATA INTERFACE
1.00 - 65
L o registro de dados
ABAP
7272 DATA INTERFACE
1.00 - 66
Analisar os resultados
Avaliar os erros
ABAP
7272 DATA INTERFACE
1.00 - 67
Overview
Ao contrrio de batch input, a declarao CALL TRANSACTION lhe permite passar dados diretamente para a interface de dilogo (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). Ento, chamamos a transao desejada temporariamente em seu programa e as cpias de dados do sistema as armazenaro na tabela BDC para as telas da transao.
ABAP
7272 DATA INTERFACE
1.00 - 68
ABAP
7272 DATA INTERFACE
1.00 - 69
Implementao Tcnica
O sistema abre uma segunda rea (janela) para a transao chamada. L, processa as telas individuais e copia os dados da tabela. Quando a transao termina, a segunda rea (janela) lanada e o processo continua na primeira rea (janela). Notas: Em contraste com batch input, no h nenhum erro sendo anotado. Se a transao chamada processada, depende da autorizao do usurio que a executou. A tabela BDC pode aceitar s dados para uma nica transao. Isto significa que antes da prxima chamada de transao, tem que executar um REFRESH na tabela de BDC e preencher com dados novamente.
ABAP
7272 DATA INTERFACE
1.00 - 70
Gerao de Mensagem
A declarao MESSAGE lhe permite produzir as mensagens de dilogo para a transao chamada. A mensagem que informa o sucesso ou fracasso do processo liberada automaticamente. Recomendase que use a declarao MESSAGE como acima, se est sendo executado em background.
CALL
TRANSACTION
Batch input e CALL TRANSACTION so duas declaraes com opes diferentes para copiar dados para telas em uma transao de aplicao.
ABAP
7272 DATA INTERFACE
1.00 - 71
ABAP
7272 DATA INTERFACE
1.00 - 72