Insert de tabela interna em tabela SAP

29, Fevereiro 2008 at 3:11 pm | In ABAP-SAP | 1 Comment
Tags: , , , , , ,

Para dar um insert de uma tabela interna em uma tabela no SAP não podemos usar apenas o comando insert como em outras linguagens, temos que usar também um comando chamado COMMIT WORK.

Veja um exemplo usando a tabela lfza:

REPORT  zinsert_lfza.
********************
*  type
**********************
types: begin of ty_lfza,
      lifnr type lfza-lifnr,
      bukrs type lfza-bukrs,
      empfk type lfza-empfk,
      end of ty_lfza.

***********************
*  Start-of_selection
***********************

START-OF-SELECTION.

insert lfza from TABLE it_lfza.

*Apos o comando insert da it_lfza os dados ainda não foram para o banco, ficaram salvos em um espaço na memória
*Verificamos se a variável de sistema SY-SUBRC e INITIAL ou igual a 0
*Se o valor dela for 0 quer dizer q o comando insert obteve sucesso
IF SY-SUBRC IS INITIAL.

*com o comando COMMIT WORK os registros que estão na memória são salvos na tabela lfza do banco
  COMMIT WORK.
ELSE.

*com o comando ROLLBACK WORK os registro na memória serão excluídos.
  ROLLBACK WORK.

*fecha if do SY-SUBRC
ENDIF.

Espero ter ajudado, qualquer coisa maurocesarsl@uol.com.br

Blog no WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.