quarta-feira, 23 de julho de 2014

BAPI - Business Application Programming Interface


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
 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 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: 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 à 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 – Relatórios e Formulários (SapScript) – Layout
Nenhum

6 – 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 – Interfaces e Conversões Tipo de Processo (BI, Call Transaction, BAPI, IDOC)
N/A


8 – Interfaces e Conversões (Inbound) – SHDB

N/A

9 – Interfaces e Conversões – Erros
N/A

10 – On-Lines – Layout de Telas
N/A

11 – Dados para Testes
Para testes, utilizar os seguintes dados para efetuar Cargas de Saldos Iniciais:
Atenciosamente,
Leonardo Rocha
(Fone: (11) 95382-2691
Linkedin: http://br.linkedin.com/in/leonardosousarocha