Insert de tabela interna em tabela SAP
29, Fevereiro 2008 at 3:11 pm | In ABAP-SAP | 1 CommentTags: ABAP, COMMIT, insert, ROLLBACK, SAP, sy-subrc, work
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
1 Comentário »
Feed RSS dos comentários deste post URI do TrackBack
Deixe um comentário
Blog no WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.
Boa tarde,
Antes de insert não é necessário fazer um select para guardar os dados na tabela interna depois fazer o insert a tabela transparente lfza?
Comentário por Ângelo Mendonça — 9, Março 2009 #