Transcript
5/27/2018 Academia ABAP4 - II semana.ppt
1/14
WorkshopDesenvolvedores ABAP/4
Semana II
Valinhos, maro / 2007
5/27/2018 Academia ABAP4 - II semana.ppt
2/14
Programas de Carga (BDC): Introduo
ABAP/4 tem uma tcnica de programao para a entrada de dados dentro
do SAP conhecida como Batch Data Communication Session ou BDCSession.
Existe a necessidade de entrar com dados no sistema SAP, nas seguintessituaes Na implantao necessrio fazer a carga dos dados do sistema
legado no SAP. Nesse caso normalmente gera-se arquivos TXT eatravs de programas ABAP que utilizam o conceito BDC sobe essesdados para o SAP
Em casos de interfacecom outro sistema tambm existe anecessidade de receber dados de outro sistema paralelo
Em casos onde utiliza-se de dados do prprio SAP para criar novos
processos (ex: a partir da ordem de venda se cria o fornecimento e afatura)
5/27/2018 Academia ABAP4 - II semana.ppt
3/14
Programas de Carga (BDC): Transao SHDB
Antes de iniciar o desenvolvimento de um programa de carga/interface,
necessrio que faa um mapeamento da transao que ser utilizada parafazer a entrada dos dados, gravando as telas e os campos de cada tela
Para obtermos qual o programa e tela e tambm o nome de umdeterminado campo, utilizamos a tecla F1 e logo aps F9 (ou dadostcnicos nas verses mais atuais).
Fazendo assim imagine que vamos preencher 100 campos em 5 telasdiferentes, o trabalho para determinar toda a seqncia seria enorme, parafacilitar isso o R/3 disponibiliza a transao SHDB, que faz um tipo defilmagem do que estamos fazendo na transao e gera uma tela com asinformaes necessria para utilizarmos na confeco de nosso programa
( inclusive gera um programa pronto se for o caso e tambm o arquivo deteste)
5/27/2018 Academia ABAP4 - II semana.ppt
4/14
Programas de Carga (BDC): Utilizando SHDB
Criar um novo registro
de gravao
Executar a filmagem
criada para ver se est
OK
Gera um programa de
teste
Criar um arquivo para
testes
5/27/2018 Academia ABAP4 - II semana.ppt
5/14
Programas de Carga (BDC): Utilizando SHDB
Entrar com o nove da
gravao a ser executada
Entrar com a transao SAP
a ser executada
5/27/2018 Academia ABAP4 - II semana.ppt
6/14
Programas de Carga (BDC): Utilizando SHDB
O Sistema executa a transao CO01 (escolhida anteriormente)
A partir daqui todos os campos preenchidos e telas executadas sogravados, assim como os comandos (OK_CODE), isto , quais botes outeclas foram executados.
importante cuidado para no executar nada errado nesta hora
5/27/2018 Academia ABAP4 - II semana.ppt
7/14
Programas de Carga (BDC): Utilizando SHDB
5/27/2018 Academia ABAP4 - II semana.ppt
8/14
Programas de Carga (BDC): Estrutura BDC
necessrio entender a estrutura BDC
Tambm importante definir o tipo de programa que ser desenvolvidoBATCH INPUT ou CALL TRANSACTION
5/27/2018 Academia ABAP4 - II semana.ppt
9/14
Programas de Carga (BDC): Batch Input
Mais utilizado para grandes
massas de dados
No executa entradaautomtica, armazena paraprocessamento posterior
Esse armazenamento feitoatravs de pastas, essas soprocessadas via SM35
Controle e tratamento de erros responsabilidade da SM35
So utilizadas funes paraarmazenamento na pasta
5/27/2018 Academia ABAP4 - II semana.ppt
10/14
Programas de Carga (BDC): Call Transaction
EXEMPLO:
call transaction 'MM01'using t_bdc
mode p_modomessages into t_msgupdate 'S'.
Mais utilizados para volumes de dados menores e entradas que dependem doretorno da execuo
Preenche-se a tabela BDC de acordo com a SHDB e ao invs de armazenar empasta, executa-se a instruo CALL TRANSACTION como segue:
CALL TRANSACTION USING
MODE exibir passo a passo somente erros no exibir MESSAGES UPDATE
As mensagens de erro devem ser controladas pelo programa (WRITE_MESSAGE )
5/27/2018 Academia ABAP4 - II semana.ppt
11/14
Programas de Carga (BDC): Arquivos Texto
Processamento On-Line, nvel de presentation
CALL FUNCTION 'WS_UPLOAD'EXPORTING* CODEPAGE = ' '
FILENAME = p_path Nome e caminho do arquivoFILETYPE = 'ASC' ASC para TXT e DAT p/ XLS
TABLESDATA_TAB = t_arq Tabela interna para receber os dados
EXCEPTIONS
CONVERSION_ERROR = 1FILE_OPEN_ERROR = 2FILE_READ_ERROR = 3INVALID_TYPE = 4NO_BATCH = 5UNKNOWN_ERROR = 6INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8CUSTOMER_ERROR = 9OTHERS = 10
5/27/2018 Academia ABAP4 - II semana.ppt
12/14
Programas de Carga (BDC): Arquivos Texto
Processamento Background, nvel de serv. Aplicao (UNIX ou NT)
Funo WS.... E GUI... UPLOAD, no funcionam em Background OPEN DATASET READ DATASET ... CLOSE DATASET.....
Exemplo:
DATA:
dsn(20) VALUE '/usr/test.dat',rec(80).
OPEN DATASET dsn FOR INPUT.
IF sy-subrc = 0.
DO.
READ DATASET dsn INTO rec.
IF sy-subrc 0.
EXIT.
ELSE.
WRITE / rec.
ENDIF.
ENDDO.
ENDIF.
CLOSE DATASET dsn.
5/27/2018 Academia ABAP4 - II semana.ppt
13/14
Programas de Carga (BDC): Programas Estruturados
O processo de preencher a tabela interna com estrutura BDC sempre omesmo para todos os programas, ento podemos utilizar tcnicas que permite
nos desenvolver com maior rapidez e tambm com um cdigo mais limpo.
Exemplo:REFRESH T_BDC.perform insert_line USING:'X' 'SAPLMGMM' '0060',' ' 'BDC_CURSOR' 'RMMG1-MTART',
' ' 'RMMG1-MBRSH' 'A',' ' 'RMMG1-MTART' 'FERT',' ' 'BDC_OKCODE' '/00'.
REFRESH T_MSG.
call transaction 'MM01'using t_bdcmode p_modo
messages into t_msgupdate 'S'.
*&---------------------------------------------------------------------*
*& Form insert_line
*&---------------------------------------------------------------------*
FORM insert_line USING U_START TYPE C U_NAMETYPE C U_VALUE.
CLEAR T_BDC.
MOVE U_START TO T_BDC-DYNBEGIN.
IF U_START = 'X'.
MOVE:
U_NAME TO T_BDC-PROGRAM,
U_VALUE TO T_BDC-DYNPRO.
ELSE.
MOVE:U_NAME TO T_BDC-FNAM,
U_VALUE TO T_BDC-FVAL.
ENDIF.
APPEND T_BDC.
ENDFORM. " insert_line
5/27/2018 Academia ABAP4 - II semana.ppt
14/14
Programas de Carga (BDC)
Dvidas?!?
top related