Alterando Dados nas Tabelas Transparentes
Problema
Inserir, modificar e alterar dados em tabelas transparentes.
Solução
Os comandos Open SQL para modificar dados em tabelas transparentes são INSERT, UPDATE, MODIFY e DELETE.
Todos os comandos incluem formas de atualizar linhas individuais e várias linhas de uma vez.
INSERT INTO spfli VALUES wa_spfli
ou
INSERT spfli FROM wa_spfli.
Os dois comandos acima tem o mesmo resultado, insere o conteúdo da work area wa_spfli na tabela spfli. Esta operação somente é possível se a chave ainda não existe na tabela. Caso contrário, o sy-subrc será 4.
INSERT spfli FROM TABLE it_spfli.
Este comando insere todas as linhas da tabela interna it_spfli na tabela spfli. Se alguma chave já existir, o programa será terminado com short dump. Para evitar isso adicione … ACCEPTING DUPLICATE KEYS. Dessa maneira as linhas da internal table que já existirem, simplesmente não serão incluidas e o sy-subrc será 4. O número de linhas adicionadas pode ser consultado pelo sy-dbcnt.
UPDATE sflight
SET plante type = …
price = …
WHERE …
Com esse comando, a tabela sflight terá todas as linhas seleciondas pela cláusula WHERE, de acordo com a cláusula SET. Sem a cláusula WHERE todas as linhas da tabela serão alteradas.
UPDATE sflight FROM wa_sflight.
ou
UPDATE sflight FROM TABLE it_sflight.
Nesse caso, o comando UPDATE atualiza a tabela sflight com os dados da work area wa_sflight ou com as linhas da tabela interna it_sflight.
MODIFY spfli FROM wa_sflight.
ou
MODIFY spfli FROM TABLE it_sflight.
Se você não estiver seguro se a chave na wa_sflight ou it_sflight já existir, você pode usar o comando MODIFY. Esse comando verifica se a chave a ser atualizada já existe, se sim, o registro será modificado, caso contrário a linha será inserida.
DELETE FROM spfli WHERE …
Este comando elimina todas as linhas da tabela spfli de acordo com o cláusula WHERE.
DELETE spfli FROM wa_spfli.
ou
DELETE spfli FROM TABLE it_spfli.
Como nos outros casos, esse comando elimina todas as linhas da spfli de acordo com a chave contidas na wa_spfli ou it_spfli.
Discussão
Quando você utiliza qualquer um dos métodos acima, nenhuma consistência de dados ou verificação de autorização é realizada. Por esse motivo, esses métodos não são aconselháveis para atualizar tabelas transparentes standard. Em algumas empresas, essa prática é até proibida.
Nesses casos é comum usarmos batch input ou BAPIs para efetuarmos atualizações em tabelas standards de maneira segura, garantindo todas as consitências dados e ou autorizações.
qro informações de programação