Apostila ABAP - Data Interface

Embed Size (px)

Citation preview

AVALIAO

70

NUMPAGES 70

ndice

Pg.

Qual a funo do R/3.......................................03Porque voc precisa saber disso................................04Logon.................................................05Cores .................................................06cones no SAP ...........................................07Seqncia de arquivos ......................................

Overview .........................................08Transferncia de dados ................................09Processando o arquivo .................................10Abrindo um arquivo ..................................11Abrindo um arquivo (Binary e Text Mode) ...................12Modo Binrio e Modo de Texto ...........................13Abrindo um arquivo At Position .........................14Transferindo registrso de dados ...........................15Lendo registros de dados ...............................16Fechando / Deletando arquivos sequenciais ...................17Criando um arquivo ...................................18ABAP Dictionary Estruturas ............................19Lendo um arquivo ....................................20Incluindo dados no final do arquivo .........................21Formato varivel .....................................22Formato varivel (Read) ................................23Definindo estruturas Resumo............................24Overview .........................................25Download e Upload ...................................26Mdulo de Funo Download ............................27Formatos ..........................................28Mdulo de Funo Upload ..............................29Download .........................................30Upload e Download como funes padro ....................31Arquivo de servidor e arquivo local ........................32Task Overview ......................................33Problem Overview ...................................34Overview Tcnicas / Overview Telas ....................35Processamento Batch Input ..............................36Programa Batch Input .................................36Fila de Arquivos Batch Input / Formato da sesso Batch Input ......37Criando uma sesso Batch Input ..........................38Mdulos de funo para programas Batch Input ................39Mdulo de funo BDC_OPEN_GROUP ....................40Mdulo de funo BDC_INSERT .........................40Tabela BDC .......................................41Definindo a tabela BDC ................................42Preenchendo 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 ............................45Modo de processamento ................................46Processando o Batch Input ..............................47Sesso 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......................51Autorizaes para processar Batch Input......................52Overview Resumo ...................................53Sequncia Dataset no Formato da SAP ......................54Anlise de dados .....................................55Programa de transferncia ...............................56Importando estruturas SAP...............................57Inicializando e convertendo...............................58Outras tarefas de um programa de transferncia .................59IMG ..............................................60Batch Input, Call Transaction e Direct Input ...................61Tarefas de um programa de transferncia .....................62Transferncia de dados com Batch Input .....................63Overview ..........................................64Declarao Call Transaction..............................65Implementao tcnica .................................66.Cdigos de retorno e variveis do sistema ....................67.Gerao de mensagem .................................67.Batch Input / Call Transaction Resumo .....................67O mtodo Direct Input .................................68Processo de gravao do Batch Input .......................69Qual a funo do R/3?

oferecer um conjunto integrado compacto, de aplicativos empresariais de grande escala. Temos o seguinte conjunto padro de aplicativos integrados no sistema R/3:

PP(Production Planning - planejamento de produo)

MM(Materials Management - gerenciamento de materiais)

SD(Sales and Distribution - vendas e distribuio)

FI(Financial Accounting - contabilidade financeira)

CO(Controlling - controladoria)

AM(Fixed Assets Management - gerenciamento de ativos fixos)

PS(Project System - sistema de projeto)

WF(Workflow - fluxo de trabalho)

IS(Industry Solutions - solues de industria)

HR(Human Resources - recursos humanos)

PM(Plant Maintenance - manuteno das instalaes)

QM(Quality Management - gerenciamento da qualidade)

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.

Por que voc precisa saber isso?

importante para voc, como um programador de ABAP, saber por que esses aplicativos so todos escritos inteiramente em ABAP. Esses so os aplicativos que voc deve entender para ser um bom desenvolvedor de R/3.

Por exemplo, suponha que voc conhea ABAP e tenha recebido a incumbncia de escrever um relatrio financeiro que resume dbitos e crditos de cada ano fiscal para cada fabricante na empresa. Talvez voc saiba escrever cdigo em ABAP, mas voc saberia como comear a resolver essa tarefa?

Ou talvez seu trabalho exija um novo desenvolvimento em ABAP. Voc incumbido de projetar um sistema que oferea informaes de estoque para potenciais compradores. Se voc no conhece os sistemas financeiro e de vendas de distribuio, voc no saber se est criando algo que j existe em R/3. Tampouco voc poder saber se h tabelas do R/3 que j contm dados semelhantes ou idnticos aos tipos de dados que voc quer recuperar. Esses aplicativos so altamente integrados. Um desenvolvedor que assume a abordagem eu construirei minhas prprias tabelas e manterei minhas prprias cpias dos dados, pode logo descobrir que seus dados so redundantes e devem ser rotineiramente sincronizados com o resto do banco de dados. Ele construiu um aplicativo que no tira proveito da natureza altamente integrada do ambiente R/3.

importante que o ABAP seja desenvolvido com a certeza de que dentro do R/3 no possua nada que j no atenda as necessidades da rea funcional.

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.

Cores

Para que voc possa alterar as cores de seu ambiente tornando-o mais agradvel, utilize o recurso abaixo demonstrado.

cones no SAP

Abaixo alguns exemplos, com descrio, dos cones que voc ter contato no SAP.

Overview

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.

Transferncia de Dados

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.

Processando o Arquivo

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/.

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.

Abrindo um Arquivo

Para abrir um arquivo, voc usa a declarao OPEN DATASET . 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.

Abrindo um Arquivo (Binary e Text Mode)

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.

Modo Binrio e Modo de Texto

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.

Abrindo um Arquivo AT POSITION

As adies seguintes existem para a declarao OPEN:

AT 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

Se ocorrer um erro ao abrir o arquivo, a mensagem do sistema operacional associada armazenada no campo .

Transferindo Registros de Dados

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 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 da declarao TRANSFER lhe permite especificar o tamanho em bytes (no formato TRANSFER TO LENGHT ). Neste caso, o nmero exato de carter especificado transferido. Se a 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.

Lendo Registros de Dados

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 da declarao READ DATASET lhe permite especificar uma tamanho em bytes (no formato READ DATASET INTO LENGHT ). Neste caso, o nmero exato de carter especificado em ser lido no registro de dados na estrutura. Se a estrutura menor, o registro aumentado (com espaos em branco em modo de texto e com zeros de hexadecimal em modo binrio). Se a estrutura for maior, o registro ser truncado.

Fechando / Deletando Arquivos Sequenciais

Voc usa a declarao CLOSE DATASET 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 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.

Criando um Arquivo

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, MOVE-CORRESPONDING, MOVE TO e WRITE TO.

Finalmente, voc transfere a estrutura com a declarao TRANSFER.

Estruturas do ABAP Dictionary

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.

Lendo um Arquivo

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).

Incluindo dados no final do Arquivo

Para gravar registros de dados no final do arquivo, voc usa a clusula FOR APPENDING na declarao OPEN DATASET.

Formato Varivel (Gravao)

O exemplo gera um arquivo sequencial com registros de dados de estruturas diferentes.

O programa include definido como segue:

data:begin of rec1, flag.

include estructure sbc42oa.

data:end of rec1.

data:begin of rec2, flag.

include estructure sbc42ob.

data: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.

Formato Varivel (Read)

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.

Definindo Estruturas - Resumo

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.

Overview

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.

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.

Mdulo de Funo Download

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.

Formatos

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.

Mdulo de Funo Upload

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.

Download

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 = ).

Upload e Download como Funes Padro

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.

Arquivo de Servidor e Arquivo Local

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).

Overview da tarefa

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.

Overview - Problema

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.

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.

Overview Programas de Telas

Em um Sistema SAP, processos de dilogo e background so controlados atravs de programas de tela.

Um programa de tela controla um passo de dilogo.

Os componentes de um passo de dilogo so:

PBO (Process Before Output ou Processo Antes da Produo) evento que prepara a tela para produo

Usurio input

PAI (Process After Input ou Processo Depois da Introduo) evento que processa o usurio introduz

Processamento Batch Input

Batch input ou BDC (Batch Data Communication ou Comunicao de Dados de Grupo) um procedimento automtico para transferir dados para o sistema SAP sem um dialogo de usurio.

Um dilogo de usurio simulado para este procedimento de forma que as mesmos verificaes e atualizaes possam ser executados.

Um componente central deste procedimento uma fila de arquivos.

Este arquivo recebe os dados por programas batch input e junta os dados associados em sesses.

Para carregar os dados em bancos de dados de SAP, voc processa as sesses com a funo batch input (menu options System -> Services -> Batch input, Transao SM35).

Programa Batch Input

Dados so transferidos da fila de arquivos atravs de programas batch input.

Estes programas executam as seguintes funes:

Eles provem reas de trabalho estruturadas na forma de uma tabela interna (tabela BDC) para os dados a ser transferidos.

Eles lem os dados.

Eles colocam os dados na tabela BDC.

Eles transferem a tabela de BDC preenchida para a fila de arquivo.

A tabela BDC recebe a entrada para as transaes de transferncia de dados.

Fila de Arquivos Batch Input

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.

Formato da Sesso Batch Input

Uma sesso batch input consiste em uma parte de cabealho e uma parte de dados. A parte do cabealho armazenada na estrutura ABAP de Dictionary que so armazenadas na estrutura APQI e as partes de dados na estrutura APQD.

Criando uma Sesso Batch Input

Toda sesso batch input deve ser aberta e deve ser fechada.

O dados para a aplicao (transaes) so inseridos na sesso batch input.

Um programa batch input pode gerar vrios grupos sucessivos de batch input. Gerao paralela no possvel.

Mdulos de Funo para Programas Batch Input

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.

Mdulo de Funo BDC_OPEN_GROUP

Para abrir uma sesso batch input deve ser utilizada o mdulo de funo BDC_OPEN_GROUP.

Devem ser especificados os seguintes parmetros:

CLIENT (Client/SY-MANDT)

GROUP (nome de Sesso)

USER (nome de Usurio/SY-UNAME)

A especificao dos seguintes parmetros opcional:

HOLDDATE (data de incio de processamento da sesso)

KEEP (X se sesso no deve ser apagada depois de processamento com sucesso; KEEP = ' ' se a sesso deve ser deletada aps o processamento (valor default).

O valores dos retornos por EXCEPTIONS podem ser tratados com SY-SUBRC.

USER sempre deve ser especificado.

Mdulo de Funo BDC_INSERT

Voc usa o mdulo de funo BDC_INSERT para inserir os dados para uma transao em uma sesso.

Para transferir os dados, voc deve definir uma tabela interna (tabela de BDC).

Os seguintes parmetros devem ser especificados:

TCODE (cdigo de transao),

DYNPROTAB (tabela de BDC).

Tabela BDC

PROGRAMSCREENSTARTFIELD NAME FIELD CONTENTS

X

X

......

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.

Definindo a Tabela BDC

Voc declara a tabela de BDC como uma tabela interna com a estrutura ABAP Dictionary BDCDATA:

...

DATA: BEGIN OF OCCURS n.

INCLUDE STRUCTURE BDCDATA.

DATA: END OF .

...

O campo < BDC table>-FVAL diferencia entre letra maiscula e minscula, mas os campos < BDC table>-PROGRAM e < BDC table>-FNAM no o fazem.

Preenchendo a Tabela BDC

A tabela BDC fixa linha a linha. Como para toda tabela interna, voc faz isto com declaraes MOVE e APPEND.

Os campos da linha de cabealho da tabela devem ser reajustados ao valor inicial com CLEAR.

Sint.:

form .

refresh .

clear .

move: to - program,

to - dynpro,

X to - dynbegin.

append

clear

move: to - fnan,

to - fval.

append .

clear .

move: to - fnan,

to - fval.

append .

...

clear .

move: to - program,

to - dynpro,

X to - dynbegin.

append

...

endform.

Mdulo de Funo BDC_CLOSE_GROUP

Voc fecha uma sesso batch input com o mdulo de funo BDC_CLOSE_GROUP.

Voc recebe vrios valores de retorno por EXCEPTIONS. Voc pode usar SY-SUBRC para avaliar o cdigo de retorno de exceo.

Dados da Transao do Usurio

Antes de escrever um programa de BDC para a funo de aplicao, voc dever saber qual ser a funo de aplicao a ser executada (de forma que o programa BDC possa simular as telas).

Preparaes para Programa BDC

Devem ser executados os seguintes passos da funo de aplicao a ser simulada.

Anote:

- o nome de programa e nmero de todas as telas

- o nome de campo de tabela para cada campo voc dever preencher.

- o nmero para cada chave de funo utilizada (comandos)

- a seqncia de programa das telas

Para fazer isto, voc usa a funo de sistema Status e Technical info (F1 F9 ) e o help function.

Preparaes para programa BDC Screen Painter

No Screen Painter (escolha Ferramentas -> ABAP Workbench -> Screen Painter, ou chame transao SE51), voc pode adquirir uma lista completa de campos para uma tela em particular. Esta uma alternativa funo de ajuda online).

Estrutura da Tabela BDC

Antes de comear a escrever o programa batch input, voc deve executar a transao e anotar o nmero das telas, seqncia das telas e o nome do campo na tela, para depois trat-los no programa. Voc entra com estes dados na tabela BDC.

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 funo chave nmero (exemplo: /11).

Funcionalidade da Transao SM35

Voc pode processar sesses com a funo Batch input (escolha System -> Services -> Batch input, ou chama a Transao SM35). Informao sobre estado provida, sucesso de tela, contedos de tela, o usurio que faz o processo, escolher o modo de processamento, servidor, como tambm o usurio para a verificao de autorizao.

O usurio pode ativar Expert mode se for preciso (quando da execuo da pasta, numa tela de dilogo). Esta funo desativa mensagem de erro 344 dados de Batch input no existem para esta tela para sesso interativo de processamento. Esta opo interessante quando voc quiser ramificar a outra transao processando o que no corresponde sucesso de telas no programa batch input.

A funo Estended log lhe permite registrar mensagens W, I e S alm de mensagens E. Esta opo tambm est disponvel se voc estiver processando em background.

Copiando Dados para as Telas

Quando voc processa uma sesso com a transao SM35, o sistema usa o cdigo de transao para procurar a tela de incio. S o que for relevante na sesso de dados copiado para esta tela.

A tela subseqente ento processada. Primeiro o dados so lidos no banco de dados do SAP e ento os dados de sesso so copiado para a tela.

Ao processar a transao, o sistema procura o prximo cdigo de transao na sesso e comea a transao.

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).

Processando o Batch Input

No modo de correo (Process in foreground ou Display errors only), voc pode controlar o processo de sua sesso escolhendo System -> Services -> Batch input ou entrando em um comando no campo de comando.

FunoOK code

Sair da transao batch input ativa e flag incorreto/n

Deletar a sesso batch input ativa/bdel

Sair do processamento batch input e flag incorreto/bend

Mudana do modo display de Display errors only para Process in foreground/bda

Mudana do modo display de Display in foreground para Display errors only/bde

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.

Criando e Processando Sesses

Quando voc cria programas de batch input, tenha em mente que a criao da sesso e o processo da sesso buscam o objeto em momentos diferentes (t1 e t2). O que processado no momento t2 j foi planejado no momento t1.

Exemplo de: no momento t2, o sistema de batch imput no pode responder para mensagens de dialogo (exceto se o usurio inserir em modo de correo).

O sistema batch input no assume nenhum parmetro de SPA/GPA no momento t2.

Resumo das Preparaes do Usurio

Quando voc cria um programa batch input, voc dev saber qual transao ser baseada para o programa.

Voc executa a transao e ento toma nota do nmero da tela, sucesso de tela e nome do campo da tela para ser enviado depois no programa.

Voc inclui estes dados na tabela BDC.

Carregando a Tabela BDC com Table Control

Os campos de uma table control ou STEP-LOOP so enviados atravs de indexadores.

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.

Transaes de Batch Input com xito

No processo batch input, podemos encerrar uma transao de dois modos:

- ou por uma atualizao

- devolvendo ao menu principal do SAP.

Uma transao no suporta batch input se iniciada por:

- LEAVE TO TRANSACTION

- LEAVE TO LIST-PROCESSING (listas de relatrio)

- CALL TRANSACTION

- comando de entrada de campo /n ou /i

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.

Programando Trabalhos em Background (job)

Voc cria um job com a funo de definio de Jobs..

Para isto, escolha System -> Service -> Jobs or System -> Services -> Reporting -> Program -> Background, ou execute a transao 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 tambm o nome de um usurio para autorizao.

Parte do planejamento termina quando salvo. Antes de fazer isto, podemos especificar o tempo de incio, qual ser a freqncia do job, se ser processado freqentemente, e os parmetros de impresso.

Voc pode incluir mais entradas num job existente. Fazendo isto, teremos uma lista de entradas que voc pode editar para adequar a suas exigncias.

Em ambientes distribudos, podemos especificar uma mquina designada onde o processo ser executado (escolha isto teclando F4).

Especificando uma classe de trabalho, podemos determinar a prioridade e tipo de um trabalho.

Autorizaes para Processar Batch Input

O objeto de autorizao S_BDC_MONI usado para controlar a autorizao de processamento de BATCH INPUT.

Voc pode usar este objeto de autorizao para restringir o processo a sesses particulares (especificando o nome de sesso, ou fazendo entrada genrica). Voc tambm pode proteger atividades especficas em um processo batch input (fazendo uma entrada no campo Activities).

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.

Arquivo Sequencial no Formato da SAP

Os registros de dados de um arquivo sequencial deve ter um formato que pode ser lido por um programa batch input da SAP.

As aplicaes provem descries de estrutura para o grupo de programas standard batch input da SAP no ABAP Dictionary.

As descries da estrutura e a estrutura de um arquivo sequencial dependem da aplicao. Eles so descritos na documentao para o grupo de programas standard batch input da SAP.

Exemplo : Em Contabilidade Financeira, h trs tipos diferentes de registros de dados:

Type 0:dados do cabealho da Sesso (por exemplo: nome de sesso).

Type 1:dados do cabealho da Transao (por exemplo: cdigo de transao).

Type 2:dados da tabela da SAP (por exemplo: nome de tabela, nome de campo, contedos de campo etc.).

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.

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.

Importando Estruturas SAP

Requer as descries da estrutura SAP para o programa de transferncia. Se escreve o programa de transferncia em ABAP, usa-se a declarao tabelas para transferir as descries da estrutura diretamente do ABAP Dictionary.

O sistema SAP tambm suporta a criao de programas de transferncia em outras linguagens de programao (COBOL, C, PL/l): Voc gera as descries da estrutura na respectiva linguagem de programao utilizando o programa ABAP RDDSRCGO. Estas descries da estrutura esto ento disponveis em um arquivo sequencial e voc pode inclui-los em seu programa de transferncia.

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.

Outras Tarefas de um Programa de Transferncia

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.

IMG Caminhos no menu para transferncias de dados

Os caminhos do menu para encontrar os programas de transferncia de dados so mostrados no Customizing. Voc tem acesso as funes de Customizing pelo guia de instalao.

Para documentao detalhada nas funes individuais, aperte F1 and/or a funo de ajuda ampliada.

Batch Input, Call Transaction e Direct Input

Como uma alternativa para BATCH INPUT, h programas de aplicaes especficas que usam a tcnica DIRECT INPUT. Ao transferir grande volume de dados (mais de 10000 transaes), pode se alcanar melhorias considerveis de desempenho com DIRECT INPUT. Como CALL TRANSACTION USING, direct input um dos meios de atualizar dados imediatamente (nenhuma sesso gerada). Porm, ao contrrio de CALL TRANSACTION USING ou batch input, nenhuma tela envolvida. Ao invs disso, os dados so importados chamando mdulos de funo que conferem os dados e ento os transferem diretamente para as tabelas de banco de dados. Desde ento direct input oferece um mecanismo que reinicia no caso de um erro, os programas s podem executar como jobs em background. Voc administra e comea estes trabalhos com o relatrio RBMVSHOW ou Transao BMV0.

Exemplos:

RFBIBLOOFI

Pode ser trocado entre direct input, batch input e CALL TRANSATION.

RMDATINDMM

Direct input. Importaes registros do mestre de materiais.

RVAFSSOOSD

Direct input. Gera os documentos de fatura de SD e documentos de um arquivo externo para FI.RKEVEXTOCO-PADirect input. Transferncia de dados externos para Anlise de Rentabilidade.

RAALTD11AM

Direct input. Cria registros do recurso mestre.

Tarefas de um Programa de Transferncia

O diagrama d uma avaliao das tarefas de um programa de transferncia (obrigatrio e opcional).

Transferncia de Dados com Batch Input

O diagrama d para uma avaliao das atividades requerida para uma transferncia de dados.

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.

Declarao CALL TRANSACTION

Com batch input, podemos escolher um modo de exibio particular para processar a transao.

Podemos tambm especificar um modo de atualizao. Em processos de atualizaes assncronas, a transao chamada no espera pelas atualizaes de banco de dados executados, mas passa da atualizao para a tarefa de atualizao. Em processos de atualizaes sncronas, espera-se at que a atualizao seja completada. Embora a atualizao sncrona seja mais lenta que atualizao assncrona, tambm mais segura porque a transao chamada pode informar qualquer erro para o programa de chamada. Em batch input, o modo de atualizao sempre 'S' (sncrono).

Os parmetros MODE e UPDATE so opcionais. O default para ambos 'A' (assncrono).A opo MESSAGES INTO lhe permite armazenar qualquer mensagem produzida pela transao chamada em uma tabela interna. A tabela interna deve ter a estrutura BDCMSGCOLL.

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.

Cdigos de Retorno e Variveis de Sistemas

Para descobrir se o processo da transao chamada teve xito ou no, podemos ler o valor do cdigo de retorno (sy-subrc). Tambm existem outros variveis de sistema que contm o nmero, ID, tipo e varivel da mensagem produzido pela transao chamada. Podemos usar estas informaes para exibir o texto da mensagem.

Podemos obter toda a produo de mensagens da transao atravs da opo MESSAGES INTO e ento avaliar o contedos de .

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. Recomenda-se que use a declarao MESSAGE como acima, se est sendo executado em background.

BATCH INPUT / CALL TRANSACTION -RESUMO

Batch input e CALL TRANSACTION so duas declaraes com opes diferentes para copiar dados para telas em uma transao de aplicao.

O Mtodo Direct Input

Um arquivo sequencial que contm dados em formato de carter a interface entre um sistema de legado e o sistema R/3.

O mtodo Direct Input usa um arquivo sequencial como meio de introduo para executar a transferncias de dados de um sistema no-R/3 para o sistema R/3 .

O mtodo Direct Input uma tecnologia que prov programas de aplicao especial usando mdulos de funes especficos projetados pela aplicao para processar altos volumes de dados de transaes no sistema R/3.

A tcnica deste mtodo usar operaes de ordem de tamanho para dirigir vrios registros de cada vez. Consequentemente, ocorrem melhorias considerveis de desempenho e de tempo de processamento no mtodo Direct Input.

Os mdulos de funes de aplicaes especiais so escritos e so providos nas aplicaes apropriadas pelos programadores da espectiva aplicao.

O mtodo Direct Input prov uma administrao e a ferramenta de monitorao para a manipulao deste mtodo acessvel pela transao BMVO.

A vantagem do mtodo Direct Input que as tabelas de aplicaes so atualizadas diretamente, com dados da seqncia de arquivos aps a verificao lgica de aplicaes normais ter sido executada com sucesso.

Nenhuma tela de aplicaes invocada e tambm nenhuma sesso de batch input registrada.

Os dados a serem transferidos so conferidos pelos mdulos de funo e quando processados com sucesso so transferidos diretamente para as tabelas de banco de dados das aplicaes envolvidas.

O sistema R/3 de banco de dados atualizado diretamente com sucesso tendo como fonte os arquivos sequenciais.

Como no chamado nenhum programa do sistema de atualizao - um gargalo eliminado para aumentar o tcnica de desempenho global.

Um exemplo de uma aplicao R/3 que prov uma funo que usa uma tecnologia de introduo direta o alto volume de dados transferidos para o Mestre de Material.

Outro exemplo so os dados transferidos de documentos financeiros de contabilidade.

Processo de Gravao do Batch Input

Iniciar o registro do batch input selecionando o pushbutton de gravao do batch input pela tela inicial ou simplesmente use a transao SHDB.

O nome gravado ser o nome da sesso batch input.

Entrar com a transao no SAP e comece a executar a transao.

Depois que voc completou a transao do SAP escolha Get Transaction e Save para terminar a gravao ou Next Transaction e fixe outra transao.

Uma vez que voc tenha salvo o batch input voc pode mudar, exibir, apagar a gravao e gerar uma sesso de batch input para gravar e/ou gerar um programa de batch input da gravao.

O programa batch input pode ser regerado se uma mudana foi feita na sesso gravada.

Define estruturas antigas

Importa estruturas SAP

Inicializa estruturas SAP

L o registro de dados

Checagem dos dados

Converso dos Dados

Coloca dados na Estrutura do SAP

Transfere o registro de dados para uma srie de arquivos

Avaliar os erros

Analisar os resultados

Criar a sesso do batch input

Criar o programa de batch input

Criar a seqncia de arquivos

Desenhar o programa de transferncia

Gerar estruturas no SAP

Analise dos Dados

if sy-subrc ne 0.

...

output

forinput

appending

open dataset

Programa ABAP

READ DATASET

TRANSFER

Seqncia de arquivos

Programa do Cliente

Programa SAP

Seqncia de Arquivos

Sistema do Cliente

Sistema SAP R/3

Modo Binrio

Programa ABAP

Programa ABAP

Programa ABAP

Programa ABAP

Modo Texto

Barra de Ttulo

Barra de Ferramentas Standard

rea Screen

Barra de Status

Menu do Interface

Barra de ferramentas application

Campo command

Client onde se desenvolver a atividade

Clique nas bolinhas coloridas e depois em Options....

Tabela interna (ABAP)

Function DOWNLOAD

Function UPLOAD

DOWNLOAD

Arquivos de Servidor

Arquivos Locais

SAP

Interfaces

SAP

database

Dados Externos

Telas

Fila de Arquivos

Base de

Dados SAP

Transao 1

Transao 2

Tela 1Tela 2

Tela 1 Tela 2

Dados do

Cliente

Dados 1

Dados 2

Fechar a sesso batch input

Inserir dados da transao

Abrir a sesso batch input

Open File

Process File

Close File

if sy-subrc ne 0.

...

output

forinput

appending

inbinary mode

text mode

open dataset

transfer to .

atposition

message

open dataset

sequential

file

data

record

sequential

file

data

record

read dataset into .

close dataset .

delete dataset .

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.

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.

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.

Dict.

report zexemplo.

tables sflight.

data: begin of rec,

carrid like sflight-carrid,

connid like sflight-connid,

fldate like sflight-fldate,

planetype like sflight-planetype,

end of rec.

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.

BDC_OPEN_GROUP

Client CLIENT

Session NameGROUP

Lock date HOLD

Delete session afterKEEP

Processing

BDC user name USER

BDC_INSERT

Transaction codeTCODE

BDC tableDYNPROTAB

BDC_CLOSE_GROUP

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.

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.

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.

define structures

open file

read

YES

fill structure

read data record

process data record

transfer structure

more

data

records

more

data

records

close file

write

NO

NO

YES

Application server files

Presentation server files

ABAP program

read dataset

transfer

download

upload

call function download

exporting

bin_filesize=

codepage=

filename=

filetype=