SAP Tutorial ABAP BDC (comunicação de dados em lote)

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 SAP sistema. O batch input é controlado por uma sessão batch input.

Sessão de entrada em lote

Agrupa uma série de chamadas de transação junto com dados de entrada e ações do usuário. Uma sessão batch input pode ser utilizada 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 de banco de dados e podem ser usadas dentro de um programa como tabelas internas ao acessar transações.

Pontos a serem observados

  • O BDI funciona realizando SAP transações exatamente como um usuário faria, mas executa a transação automaticamente.Todas as validações de tela e validação de lógica de negócios serão feitas durante o uso da entrada de dados em lote.
  • É adequado para inserir grandes quantidades de dados.
  • Nenhuma interação manual é necessária

Métodos de entrada em lote

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

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

Método clássico de entrada em lote

Neste método, um programa ABAP/4 lê os dados externos para o SAP Sistema e armazenamentos em uma sessão batch input.

Depois de criar a sessão, você pode executá-la para executar o SAP transação nele.

Este método utiliza os módulos de função BDC_ OPEN, BDC_INSERT e BDC_CLOSE

A sessão Batch Input pode ser processada de 3 maneiras

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

O usuário deve processar pastas batch input em primeiro plano ou utilizar a exibição de erros se quiser testar a transferência de dados.

Se desejar executar a transferência de dados ou testar seu desempenho, você deverá processar as sessões em segundo plano.

Pontos a serem observados sobre o método clássico de entrada em lote

  • Syncprocessamento cronológico
  • Transfira dados para múltiplas transações.
  • Syncatualização cronológica do banco de dados.
  • Um log do processo de entrada em lote é gerado para cada sessão.
  • A sessão não pode ser gerada em paralelo.

Chame o método de transação.

Neste método ABAPO programa /4 usa a instrução CALL TRANSACTION USING para executar um SAP transação.

Todo o processo de entrada em lote ocorre online no programa

Método de transação de chamada

Pontos a serem observados:

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

Procedimentos de entrada em lote

Procedimentos de entrada em lote

Normalmente, você 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 para o SAP Estrutura. Anote também as conversões necessárias de tipo de dados ou comprimento de dados.
  2. Gerar SAP estruturas de dados para uso em programas de exportação.
  3. Exporte os dados para um arquivo sequencial. Observe que o formato do caractere é exigido por SAP programas de entrada em lote.
  4. Se o SAP Se os programas BDC fornecidos não forem usados, codifique seu próprio programa de entrada em lote. Escolha um método de entrada em lote apropriado de acordo com a situação.
  5. Processe os dados e adicione-os ao SAP System.
  6. Analise o log do processo. Para o método CALL TRANSACTION, onde nenhum log adequado é criado, use as mensagens coletadas pelo 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 dados de entrada em lote.
  2. Decida o método de entrada em lote a ser usado.
  3. Ler dados de um arquivo sequencial
  4. Execute conversão de dados ou verificação de erros.
  5. Armazenando os dados na estrutura de entrada em lote,BDCDATA.
  6. Gere uma sessão de entrada em lote para entrada em lote clássica ou processe os dados diretamente com a instrução CALL TRANSACTION USING.

Estrutura de dados de entrada em lote

Declaração da estrutura de dados de entrada em lote

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
nome do campo Formato Comprimento Descrição
PROGRAMA CARACTERES 8 Conjunto de módulos
DYNPRO NÚMERO 4 Número Dynpro
DYNBEGIN CARACTERES 1 Iniciando um dynpro
FNAM CARACTERES 35 nome do campo
FVAL CARACTERES 80 Valor do campo

A ordem dos campos nos dados de uma tela específica não tem qualquer importância

Pontos a serem observados

  • Ao preencher os dados BDC, certifique-se de levar em consideração as configurações do usuário. Isto é especialmente relevante para o preenchimento de campos que envolvem números (como quantidade, quantidade). É a configuração do usuário que decide qual é o caractere de agrupamento dos 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 valor e quantidade para que fiquem alinhados à esquerda.
  • Observe que todos os campos preenchidos por meio do BDC devem ser tratados como campos de tipo de caractere ao preencher a tabela de dados do BDC.
  • Em algumas telas, quando você está preenchendo valores em um controle de tabela usando BDC, é necessário observar quantas linhas estão presentes em um tamanho padrão da tela e codificar para tantas linhas. Se você precisar preencher mais linhas, precisará codificar 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 para o tamanho de tela padrão e faça seu BDC funcionar sempre no tamanho de tela padrão, independentemente de como o usuário mantém o tamanho da tela.

Criar sessão Batch Input

  1. Abra a sessão batch input através do módulo de função BDC_OPEN_GROUP.
  2. Para cada transação na sessão:
  3. Preencha o BDCDATA com valores de todas as telas e campos processados ​​na transação.
  4. Transfira a transação para a sessão com BDC_INSERT.
  5. Fechar a sessão batch input com BDC_CLOSE_GROUP

Gravador de entrada em lote

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

Gravador de entrada em lote

  • Inicie o registrador batch input selecionando o botão Gravação na tela inicial do batch input.
  • O nome da gravação é um nome definido pelo usuário e pode corresponder ao nome da sessão de entrada em lote que pode ser criada a partir da gravação.
  • Digite um SAP transação e começar a lançar a transação.
  • Depois de concluir a postagem de um SAP transação, você escolhe 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ê poderá 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 sessão batch input criada agora pode ser analisada como qualquer outra sessão batch input.
  • O programa gerado pela função do gravador de entrada em lote é uma ferramenta poderosa para o programador de interface de dados. Fornece uma base sólida que pode ser alterada de acordo com as necessidades do cliente.