Academia ABAP4 - II semana.ppt

Embed Size (px)

Citation preview

  • 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?!?