Tutorial SAP ABAP BDC (Batch Data Communication)

Índice:

Anonim

Introdução à entrada em lote

A entrada em lote é normalmente usada para transferir dados de sistemas não R / 3 para sistemas R / 3 ou para transferir dados entre sistemas R / 3.
É uma técnica de transferência de dados que permite transferir conjuntos de dados automaticamente para telas pertencentes a transações e, portanto, para um sistema SAP. O batch input é controlado por uma pasta batch input.

Neste tutorial, você aprenderá:

  • Introdução à entrada em lote
  • Métodos de entrada em lote
  • Procedimentos de entrada em lote
  • Escrevendo programa BDC
  • Criando Sessão Batch Input
  • Batch Input Recorder
Sessão de entrada em loteAgrupa uma série de chamadas de transação com dados de entrada e ações do usuário. Uma sessão batch input pode ser usada para executar uma transação de diálogo em batch input, onde algumas ou todas as telas são processadas pela sessão. As sessões de entrada em lote são armazenadas no banco de dados como tabelas do banco de dados e podem ser usadas em um programa como tabelas internas ao acessar transações. Pontos a serem observados
  • O BDI funciona realizando transações SAP normais da mesma forma que um usuário faria, mas executa a transação automaticamente. Todas as validações de tela e validação da lógica de negócios serão feitas durante o uso da entrada de dados em lote.
  • É adequado para inserir uma grande quantidade de dados.
  • Nenhuma interação manual é necessária

Métodos de entrada em lote

O SAP fornece dois métodos básicos para transferir dados legados para o sistema R / 3.

  1. Método clássico de entrada em lote.
  2. Método de transação de chamada.

Método clássico de batch input
Neste método, um programa ABAP / 4 lê os dados externos para o sistema SAP e os armazena em uma sessão batch input.
Depois de criar a sessão, você pode executá-la para executar a transação SAP nela.
Este método usa os módulos de função BDC_ OPEN, BDC_INSERT e BDC_CLOSE
A sessão de entrada em lote pode ser processada de 3 maneiras

  1. Em primeiro plano
  2. No fundo
  3. Durante o processamento, com exibição de erro

Você deve processar sessões batch input em primeiro plano ou usando a exibição de erro se quiser testar a transferência de dados.
Se você deseja executar a transferência de dados ou testar seu desempenho, deve processar as sessões em segundo plano.
Pontos a serem observados sobre o método clássico de entrada em lote

  • Processamento síncrono
  • Transfira dados para várias transações.
  • Atualização síncrona do banco de dados.
  • Um log do processo de batch input é gerado para cada sessão.
  • A sessão não pode ser gerada em paralelo.

Método de transação de chamada.

Neste método, o programa ABAP / 4 usa a instrução CALL TRANSACTION USING para executar uma transação SAP.
Todo o processo de entrada em lote ocorre online no programa

Pontos a serem observados:

  • Processamento de dados mais rápido
  • Processamento assíncrono
  • Transfira dados para uma única transação.
  • Nenhum log de processamento de batch input é gerado.

Procedimentos de entrada em lote


Você normalmente observará a seguinte sequência de etapas para desenvolver o Batch Input para sua organização

  1. Análise dos dados legados. Determine como os dados a serem transferidos devem ser mapeados na Estrutura SAP. Observe também as conversões de tipo de dados ou comprimento de dados necessárias.
  2. Gere estruturas de dados SAP para uso em programas de exportação.
  3. Exporte os dados para um arquivo sequencial. Observe que o formato de caractere é exigido por programas de entrada em lote SAP predefinidos.
  4. Se os programas BDC fornecidos pela SAP não forem usados, codifique seu próprio programa de batch input. Escolha um método de batch input apropriado de acordo com a situação.
  5. Processe os dados e adicione-os ao sistema SAP.
  6. Analise o log do processo. Para o método CALL TRANSACTION, onde nenhum log apropriado é criado, use as mensagens coletadas por seu programa.
  7. A partir dos resultados da análise do processo, corrija e reprocesse os dados errados.

Escrevendo programa BDC

Você pode observar o seguinte processo para escrever seu programa BDC

  1. Analise a (s) transação (ões) para processar os dados de entrada do lote.
  2. Decida o método de entrada em lote a ser usado.
  3. Ler dados de um arquivo sequencial
  4. Execute a conversão de dados ou verificação de erros.
  5. Armazenamento dos dados na estrutura de batch input, BDCDATA.
  6. Gere uma sessão batch input para batch input clássico ou processe os dados diretamente com a instrução CALL TRANSACTION USING.

Lote de entrada Estrutura Dados
Declaração de estrutura de dados de entrada lote

DADOS: BEGIN OF OCCURS .INCLUA ESTRUTURA BDCDATA.DADOS: FIM DE .
Nome do campo Modelo Comprimento Descrição
PROGRAMA CARACTERES 8 Pool de módulos
DYNPRO NUMC 4 Número Dynpro
DYNBEGIN CARACTERES 1 Iniciando uma dynpro
FNAM CARACTERES 35 Nome do campo
FVAL CARACTERES 80 Valor do campo

A ordem dos campos nos dados para uma tela em particular não é significativa.
Pontos a serem observados

  • Ao preencher os Dados BDC, certifique-se de levar em consideração as configurações do usuário. Isso é especialmente relevante para preencher campos que envolvem números (como quantidade, valor). É a configuração do usuário que decide qual é o caractere de agrupamento para os números. Ex: Um número cinquenta mil pode ser escrito como 50.000,00 ou 50.000,00 com base na configuração do usuário.
  • Condense o campo FVAL para os campos de quantidade e quantidade de modo que fiquem alinhados à esquerda.
  • Observe que todos os campos que você está preenchendo por meio do BDC devem ser tratados como campos de tipo de caractere ao preencher a tabela de dados do BDC.
  • Em algumas telas, ao preencher valores em um controle de tabela usando BDC, você deve observar quantas linhas estão presentes em um tamanho padrão da tela e codificar para tantas linhas. Se você tiver que preencher mais linhas, terá que codificar para a funcionalidade "Page down" como faria ao preencher o controle de tabela manualmente.
  • O número de linhas que apareceriam no cenário acima será diferente com base no tamanho da tela que o usuário usa. Portanto, sempre codifique o tamanho de tela padrão e faça com que seu BDC funcione sempre no tamanho de tela padrão, independentemente de como o usuário mantém seu tamanho de tela.

Criando Sessão Batch Input

  1. Abra a sessão de batch input usando o módulo de função BDC_OPEN_GROUP.
  2. Para cada transação na sessão:
    • Preencha o BDCDATA com os valores de todas as telas e campos processados ​​na transação.
    • Transfira a transação para a sessão com BDC_INSERT.
  3. Feche a sessão de batch input com BDC_CLOSE_GROUP

Batch Input Recorder

O gravador de batch input (Sistema> Serviços> Batch input> Registrador) registra as transações que são inseridas manualmente e cria uma sessão de batch input que pode ser executada posteriormente usando SM35.

  • Inicie o registrador de batch input selecionando o botão de gravação na tela inicial de batch input.
  • O nome da gravação é um nome definido pelo usuário e pode corresponder ao nome da sessão de batch input que pode ser criado a partir da gravação.
  • Insira uma transação SAP e comece a lançar a transação.
  • Depois de concluir o lançamento de uma transação SAP, você pode selecionar Obter transação e salvar para encerrar a gravação ou Próxima transação e lançar outra transação.
  • Depois de salvar a gravação, você pode criar uma sessão de batch input a partir da gravação e / ou gerar um programa de batch input a partir da gravação.
  • A pasta batch input que você criou agora pode ser analisada como qualquer outra pasta batch input.
  • O programa gerado pela função do gravador de batch input é uma ferramenta poderosa para o programador de interface de dados. Ele fornece uma base sólida que pode ser alterada de acordo com as necessidades do cliente.