Modificar uma campo em todas as linhas de tabela interna
2015-08-31
![images/thumbnail.jpg - Thumbnail](/2015/08/modificar-uma-campo-em-todas-as-linhas-de-uma-tabela-interna/images/thumbnail_hu3bf2f93eed2a1c6f1529aee6ab7408d4_38051_300x0_resize_q75_box.jpg)
O que vos vou mostrar não é propriamente uma novidade. Até já foi usado antes no Abapinho. Mas como se continua a ver por aí muita gente a fazer LOOPs a tabelas internas para alterar um campo, achei que valia a pena recordar.
Tens uma tabela com um milhão e duzentas mil linhas e queres que o campo ICON tenha sempre o valor ‘@FM@’.
Em vez de fazeres isto:
LOOP AT lt_data ASSIGNING <data>.
<data>-icon = '@FM@'.
ENDLOOP.
Experimenta fazer antes isto:
ls_data-icon = '@FM@'.
MODIFY lt_data FROM ls_data TRANSPORTING icon WHERE icon <> 'PATO DONALD'.
Como é óbvio, na condição podes escolher outra personagem qualquer dos Tio Patinhas.
Obrigado Sérgio Serra por sugerires que poderia ser interessante ensinar isto. Obrigado Andrew Becraft pela foto.
O Abapinho saúda-vos.