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.

1 Resultado

  1. agemux disse:

    qro informações de programação