Apostila ABAP - BDC

Embed Size (px)

Citation preview

ABAP/4 BDC Session

Sumrio

1.

Introduo O ABAP/4 tem uma tcnica de programao para a colocao de dados

dentro do SAP conhecida como Batch Data Communication Session ou BDC Session, onde as telas da transao desejada so mapeadas, para que em seguida seja feito um procedimento onde um programa incluir os dados nos campos da transao.

3

2.

Passos para criao de uma BDC Session Identificar as telas que a transao processar. Escrever o programa em ABAP para gerar a tabela de BDC que submeter os dados na transao. Submeter a tabela de BDC para o sistema em modo batch ou atravs do comando CALL TRANSACTION.

4

3.

Identificando telas em uma transao Quando um usurio entra com dados no SAP utiliza transaes. Cada

transao tem vrias telas identificadas por um nome de programa e um nmero de tela. As informaes sobre a tela atual so obtidas atravs do menu System, item Status.

5

Alm de identificar o nome do programa e nmero da tela, deve-se tambm identificar o(s) campo(s) que se desejam entrar com o dados. Para conseguir saber o nome da tabela/estrutura e o nome do campo deve-se clicar sobre o campo que entraria com o dado e teclar seguido do boto Informaes Tcnicas.

Nesta tela conseguem-se quase todos os dados para a sesso de BDC. O nome do programa, o nmero da tela e o nome do campo para a sesso de Batch input. Alm destes dados devem-se saber quais as teclas/funes de movimentao entres as telas. Por exemplo, se para passar para a prxima tela da transao deve-se teclar , o cdigo para a BDC /0. De modo geral, deve-se pensar na transao sem a utilizao do mouse. Se um boto deve ser clicado pelo mouse deve-se descobrir qual o nome da funo deste boto e passar este cdigo para a tabela BDC.

6

4.

Gerando a tabela BDC A tabela BDC uma tabela interna com uma estrutura especfica no qual

preenchida para ser enviada para a sesso batch input. Esta estrutura se chama BDCDATA e tem os seguintes campos: Campo Program Dynpro Dynbegin Fnam Fval Tipo Char(40) Numc(4) Char(1) Char(132) Char(132) Descrio Nome do programa da transao Nmero da tela da transao Indicador de uma nova tela Nome do campo da tela Valor a ser colocado no campo

Exemplo de uma tabela com estrutura BDCDATA com dados: Program SAPMF02K dynpro 0100 dynbegin X RF02K-LIFNR SAPMF02K 0200 X 0010010 RF02K-EKORG CNTL Fnam fval

O cdigo em ABAP para isto seria:REPORT ZXXXXXXX. DATA: BEGIN OF TBDC OCCURS 100. INCLUDE STRUCTURE BDCDATA. DATA: END OF TBDC. * Incio do programa principal MOVE SAPMF02K TO TBDC-PROGRAM. MOVE 0100 TO TBDC-DYNPRO. MOVE X TO TBDC-DYNBEGIN. APPEND TBDC. MOVE RF02K-LIFNR TO TBDC-FNAM. MOVE 0010010 TO TBDC-FVAL. APPEND TBDC. MOVE RF02K-EKORG TO TBDC-FNAM. MOVE CNTL TO TBDC-FVAL. APPEND TBDC. * E assim por diante at que a tabela esteja completa

7

claro que existir uma repetio muito grande de linhas para a criao de uma tabela BDC e por isso mesmo deve-se criar FORMS para agilizar esta movimentao.

5.

Mapeamento das telas atravs da transao SHDB Para facilitar o trabalho de mapeamento dos campos, o SAP dispe de

uma ferramenta que faz isso para o programador. a transao SHDB. Essa

8

transao monitora todos os passos que o usurio faz quando utiliza uma transao e a resposta do SHDB uma lista com os campos e telas que foram utilizados, permitindo que o programador crie as tabelas BDC. H ainda um recurso que gera automaticamente o cdigo do programa para a criao da tabela BDC, facilitando ainda mais o trabalho, mas a lista j suficiente e s vezes prefervel, para mantermos os mesmos padres nos cdigos.

A transao SHDB funciona da seguinte forma: Na primeira tela informa-se qual ao deseja-se tomar, no caso ser a criao de um novo registro (New recording F5).

9

Em seguida, informa-se o nome do mapeamento, a transao que ser executada, e alguns parmetros de gravao, que nesse exemplo so os valores default da prpria transao.

10

A transao ento chamada. Deve-se fazer o processamento normal nesta

transao. Quando terminar (salvar ou cancelar), o SHDB exibe a seguinte tela, com a lista dos campos e telas utilizados.11

Caso esses dados satisfaam o programador, pode-se salv-los. Para a

nova consulta, deve-se informar na primeira tela o nome com o qual o mapeamento foi salvo e clicar em sntese. Uma tela aparecer com os

12

mapeamentos correspondentes (pode-se criar mais de um com o mesmo nome).

Na tela acima existem os seguintes botes: Eles permitem que se crie uma pasta de Batch Input, um programa, dados de teste e ainda um mdulo de funo, com base no mapeamento feito.

6.

Enviando uma tabela BDC para o sistema Como foi citado no incio, existem duas formas de se enviar uma tabela

BDC para o sistema. Via CALL TRANSACTION ou via Batch Input.

13

6.1.

Processando dados com CALL TRANSACTION O comando CALL TRANSACTION possibilita o processamento de

uma tabela BDC imediatamente pelo sistema. Os dados da tabela BDC so utilizados para executar a transao e o return code deste comando nos mostra se a transao foi executada com sucesso ou no. A sintaxe deste comando : CALL TRANSACTION (transao) [USING bdctab MODE mode]. Os modos para executar este comando so: A E N Mostra todas as telas Mostra apenas telas com erros No mostra as telas Em adio ao return code, podemos utilizar as variveis de sistema para recuperar a mensagem que o SAP enviou ao trmino do processamento. As variveis mais utilizadas so: SY-MSGID, SYMSGV1, SY-MSGV2, SY-MSGV3 e SY-MSGV4. 6.2. Processando dados com BDC_INSERT A segunda maneira para processar uma sesso de BDC submetendo-a ao sistema via processamento batch. Com este mtodo, vrias transaes podem ser executadas pelo SAP, mas ao contrrio do CALL TRANSACTION, estas transaes no sero executadas imediatamente, sero colocadas em uma pasta de Batch Input que podem ser executadas na transao SM35 ou programadas para rodar em um dia e uma hora desejada. Existem trs mdulos de funes que devem ser executados para este tipo de processamento.

BDC_OPEN_GROUP: Esta funo abre a sesso de BDC e BDC_INSERT: Esta funo chamada para cada transao no

necessita ser chamada antes de qualquer processamento. processamento Batch.

14

BDC_CLOSE_GROUP: Esta funo deve ser chamada aps todo

processamento para que a pasta de processamento Batch seja criada. 6.2.1. CLIENT GROUP Funo BDC_OPEN_GROUP Cliente do SAP que ser processada a sesso Nome para a pasta de Batch input (no precisa ser nico)

Os seguintes parmetros so passados para a funo:

HOLDDATE Suspende o processamento da pasta de Batch input at a data especificada KEEP USER 6.2.2. TCODE tabela BDC DYNPROTAB de Batch 6.2.3. Funo BDC_CLOSE_GROUP Nome da tabela interna utilizada para gerar a pasta Mantm a pasta de Batch Input aps o processamento Nome de usurio que executar o Batch Input. Funo BDC_INSERT Cdigo da transao na qual ser executada a

Os seguintes parmetros so passados para a funo:

No existem parmetros a serem passados para esta funo.

15