Olá
Espero que isso seja útil.
CHAMADA DE TRANSAÇÃO
Sobre a CHAMADA DE TRANSAÇÃO
Uma técnica semelhante ao método de SESSÃO, enquanto a entrada em lote é um procedimento de dois passos, a Chamada de Transação executa ambos os passos em linha, um após o outro. Neste método, você chama uma transação do seu programa através de
Chamar a transação <tcode> usando <BDCTAB>
Modo <A/N/E>
Atualização <S/A>
Mensagens em <MSGTAB>.
O parâmetro 1 é o código da transação.
O parâmetro 2 é o nome da tabela BDCTAB.
O parâmetro 3 aqui você está especificando o modo como executa a transação
A é o modo de tela cheia. Todas as telas da transação são exibidas.
N é o modo sem tela. Nenhuma tela é exibida ao executar a transação.
E é tela de erro. Apenas as telas em que você tem um registro de erro são exibidas.
O parâmetro 4 aqui você está especificando o tipo de atualização com o qual a tabela do banco de dados é atualizada.
S é para atualização síncrona, onde se você alterar dados de uma tabela, todas as tabelas relacionadas são atualizadas. E é retornado sy-subrc, ou seja, sy-subrc é retornado uma vez e para todos.
A é para atualização assíncrona. Quando você altera dados de uma tabela, sy-subrc é retornado. E então a atualização das outras tabelas afetadas é realizada. Portanto, se o sistema não puder atualizar outras tabelas, sy-subrc ainda é retornado como 0 (ou seja, quando a primeira tabela é atualizada).
O parâmetro 5, ao atualizar a tabela do banco de dados, a operação é bem-sucedida, falha, ou bem-sucedida com algum aviso. Essas mensagens são armazenadas em uma tabela interna, que você especifica junto com a declaração de MENSAGEM. Esta tabela interna deve ser declarada como BDCMSGCOLL, uma estrutura disponível em ABAP/4. Ela contém os seguintes campos:
1. Tcode: Código da transação
2. Dyname: Nome do módulo de ponto de lote
3. Dynumb: Número Dyn de entrada em lote
4. Msgtyp: Tipo de mensagem de entrada em lote (A/E/W/I/S)
5. Msgspra: Idioma de entrada em lote, id da mensagem
6. Msgid: Id da mensagem
7. MsgvN: Variáveis de mensagem (N = 1 - 4)
Para cada entrada atualizada na tabela do banco de dados, a mensagem está disponível em BDCMSGCOLL. Como BDCMSGCOLL é uma estrutura, você deve declarar uma tabela interna que possa conter vários registros (ao contrário de uma estrutura).
Passos para o método de CHAMADA DE TRANSAÇÃO
1. Tabela interna para os dados (estrutura semelhante ao seu arquivo local)
2. BDCTAB como BDCDATA
3. Função UPLOAD ou WS_UPLOAD para carregar os dados do arquivo local para a tabela interna. (Considerando que o arquivo é local)
4. Loop na tabela interna.
Preencher a tabela BDCTAB.
Chamar a transação <tcode> usando <BDCTAB>
Modo <A/N/E>
Atualização <S/A>.
Atualizar BDCTAB.
Endloop.