BAPI - Business Application Programming Interface
Autor: Leonardo Rocha | Publicado: 2014-07-23T17:15:00-07:00




BAPIS são Módulos de Funções Standard SAP que possuem infinitas utilizações. Cada BAPI possui uma função específica totalmente desenvolvida pela SAP.

É comum solicitarmos aos programadores ABAP para desenvolver determinado código / programa para desempenhar diversas funções, sem ao menos pesquisar se dentro do SAP já existe ou não uma função Standard que atenderia plenamente nossas necessidades sem termos que re-inventar a roda.

Dessa forma, é importante ressaltar que a Pesquisa e a Utilização de BAPIS são boas práticas antes de efetuar qualquer desenvolvimento.

BAPIS quando comparadas com Batch Input são infinitamente superiores pelos seguintes principais motivos:

Não é necessário mapear todas as possíveis telas de erros e de avisos, assim como é feito no mapeamento do Batch Input
Se algum erro ocorrer durante o processamento, o Sistema poderá pular para a próxima etapa de processamento e ao término exibir um relatório de erros standard
BAPI costuma possuir uma velocidade de processamento superior quando comparado com Batch Input


&nbsp;Neste documento, serão apresentados os segredos para a perfeita utilização de BAPIS, a saber:

Serão descritos os procedimentos para pesquisa e mapeamento dos Campos pertencentes a uma determinada BAPI
Também será possível verificar como Testar um Módulo de Função (BAPI) antes mesmo de empregá-lo em um determinado Programa. Isso é muito vantajoso, pois é através dos testes que o usuário poderá criar sua Especificação Funcional
Por fim, será apresentada uma especificação funcional bem simples com o mapeamento dos campos necessários para se fazer um Programa de Carga de Saldos Iniciais.




1.0 – Como pesquisar uma BAPI



No menu SAP, digitar a Tcode BAPI:



Digite ENTER.

O Sistema deverá exibir a seguinte tela:



Note que o menu lateral é muito parecido com o menu do SAP

Para localizar as BAPIS disponíveis em MM clique em “Administração de Materiais”:



Como exemplo, testaremos a BAPI de movimentação de mercadorias, portanto, abara Administração de Estoque:



Com isso, você localizou o nome da BAPI que faz o trabalho: BAPI_GOODSMVT_CREATE

A próxima etapa é conhecer quais campos deverão ser preenchidos para que a BAPI funcione.

Comece com o Cabeçalho:



Monte uma planilha em Excel com estes campos, assim ficará mais fácil para montar a especificação funcional.



2.0 – Testando e Mapeando uma BAPI



Depois de analisar todos os campos, você poderá testar a BAPI e ir mapeando aos poucos, então abra outra janela e execute a Tcode SE37:



Execute a BAPI (Pressione F8):.

A seguinte tela deverá ser exibida:



Agora vem a parte chata, mapear o funcionamento da BAPI.

Inicialmente, vamos preencher o Cabeçalho do Documento de Material a ser criado.

Clique em:



A seguinte imagem deverá ser exibida:



Para preencher a estrutura, escolha uma melhor visualização clicando em:



A seguinte imagem deverá ser exibida:



Preencha os campos da BAPI:



Clique em:



Clique em:







Próxima etapa é preencher o Goodsmvt_Code.

A lista abaixo são as possíveis opções:

1. GM_Code 01: Goods receipt for purchase order
2. GM_Code 02: Goods receipt for production order
3. GM_Code 03: Goods issue
4. GM_Code 04: Transfer posting
5. GM_Code 05: Other goods receipt
6. GM_Code 06: Reversal of goods movements
7. GM_Code 07: Subsequent adjustment with regard to a subcontract order

No nosso caso, trata-se da opção 05:



Próxima etapa é preencher o Goods Moviment Item:



No caso, somente os seguintes campos foram preenchidos:



Analisando o Saldo em Estoque:



Nota-se que há saldo somente no Centro F001.

Uma vez que os dados foram preenchidos, é possível salvar o teste para futuras consultas. Clique em:







Indique um nome do teste para constar no diretório de teste





Para verificar os dados em futuras necessidades, clique em:







Ok, agora é possível executar a BAPI:



Pressionando F8

O sistema exibe o Resultado:



Verifique o Resultado em:



O Sistema criou um documento de material 49….3821.

Se o usuário checar a MB03



Receberá o seguinte erro:



Simples, a BAPI funcionou perfeitamente, porém, faltou o COMMIT.



3.0 – Efetuando uma Sequência de Teste



O que deve ser feito então ?

SE37:



Indicar uma sequência de Testes (BAPI + COMMIT)





Clique em:





O seguinte resultado deverá ser exibido:





Clique em:





Duplo clique em:



A imagem será exibida:



F8



Note que o Sistema gerou outro documento de material

Clique em:



A seguinte tela deverá ser exibida:



Pressione F8 para executar a próxima BAPI (COMMIT)



Note que não houve erro no retorno.

Vá para Transação MB03, note que o Sistema apresenta o número do Documento Gerado:





Ao digitar ENTER, nota-se que desta vez o Documento foi realmente criado:



















Na transação MMBE:





Nota-se que agora há saldo no Centro E002 Empresa SN01.

Este exemplo é bem simples para entender o funcionamento de BAPI.

Faça seu próprio teste com outros movimentos, ou com entrada de mercadoria via Pedido de Compras (é claro que é um pouco mais complexo).



4.0 – Criando uma Especificação Funcional Simples

Agora que você já tem uma boa noção de como localizar e mapear uma BAPI, vamos agora verificar como criar uma&nbsp;Especificação Funcional da Carga Inicial de SALDOS via planilha em Excel, utilizando uma BAPI.

O objetivo é fazer com que o Programa SAP leia e interprete uma Planilha elaborada em Excel, coletando os campos necessários para que a BAPI Funcione.

A BAPI utilizada nesta Especificação Funcional é a mesma utilizada nos tópicos anteriores.



Especificação Funcional



Detalhamento




Titulo:Programa de Carga de Saldos Iniciais
Módulo:MM – Materials Management
Responsável Funcional:Natan Cavalcanti
ID:N/A

Tipo:Conversão – CATT
Tarefa:Novo
Complexidade:Baixa
Prioridade:Alta
Cópia de Standard:N/A

Descrição Breve:&nbsp;Programa de Conversão responsável pela Carga de Saldos Iniciais








1 – Descrição do Processo


Será desenvolvido um programa de conversão para efetuar Cargas de Saldos Iniciais no Estoque.

Deverá ser utilizada uma planilha em Excel como origem de dados.



2 – Requisitos de Segurança


Nenhum



3 – Fluxo do Processo


Criação de Planilha com dados de Saldos Iniciais de Estoque (provenientes de inventário inicial da Empresa / Centro) à Dados são importados pelo programa de conversão à Dados são transferidos para BAPI_BAPI_GOODSMVT_CREATE à&nbsp;Saldos de Materiais são atualizados de acordo com as Planilhas fornecidas.





4 – Tela de Seleção



Na tela de seleção o usuário deverá indicar o nome e o local de origem do arquivo a ser lido pelo programa de conversão.




5 –&nbsp;Relatórios e Formulários (SapScript) – Layout


Nenhum



6 –&nbsp;Interfaces e Conversões – Input/Output Arquivo Layout



O Arquivo de Entrada deverá ser salvo em CSV (origem poderá ser em Excel).


A seguir o layout do arquivo de entrada (aqui será apresentada no formato vertical, considerar que cada linha é na verdade uma coluna):






GOODSMVT_HEADER

ParâmetroDescriçãoValorOrigem
PSTNG_DATEData Atual do SistemaVariávelPlanilha
DOC_DATEData Atual do SistemaVariávelPlanilha
HEADER_TXTTexto de CabeçalhoVariávelPlanilha





GOODSMVT_CODE

ParâmetroDescriçãoValorOrigem
GM_CODECódigo de Transação05Fixo





GOODSMVT_ITEM

ParâmetroDescriçãoValorOrigem
MATERIALCódigo de MaterialVariávelPlanilha
PLANTCentroVariávelPlanilha
STGE_LOCDepósitoVariávelPlanilha
BATCHLoteVariávelPlanilha
PROD_DATEData de ProduçãoVariávelPlanilha
MOVE_TYPETipo de Movimento561Valor Fixo
ENTRY_QNTQuantidadeVariávelPlanilha






7 –&nbsp;Interfaces e Conversões Tipo de Processo (BI, Call Transaction, BAPI, IDOC)



N/A






8 –&nbsp;Interfaces e Conversões (Inbound) – SHDB




N/A



9 –&nbsp;Interfaces e Conversões – Erros


N/A



10 –&nbsp;On-Lines – Layout de Telas


N/A




11 –&nbsp;Dados para Testes


Para testes, utilizar os seguintes dados para efetuar Cargas de Saldos Iniciais:






​
Atenciosamente,Leonardo Rocha
(Fone:&nbsp;(11) 95382-2691Linkedin:&nbsp;http://br.linkedin.com/in/leonardosousarocha