BAPI é uma interface definida com precisão para fornecer acesso a processos e dados em sistemas de aplicação de negócios, tais como o SAP R/3. Uma BAPI é similar a uma API de programação comum entretanto é direcionada a negócios, é manipulada no sistema SAP através do FUNCTION BUILDER e pode ser utilizada em programas SAP ou não SAP através de acesso remoto chamado RFC.
Requisitos
Utilizaremos um exemplo do NetWeaver 7 do modelo de dados chamado Fligth Model, para isto você precisa criar um cliente de desenvolvimento DEV de numero 200, transportar as configurações dos cliente padrão 001 para este cliente e carregar os dados de exemplo do Flight Model contidos no ambiente 000, para seu ambiente de desenvolvimento você encontra um walkthrough de como realizar estes dois procedimentos em nossa categoria ABAP.
BAPI
A BABI de exemplo será a BAPI_FLIGHT_GETDETAIL, que exibe todos os detalhes de um voo contido na tabela SFLIGHT. Você pode visualizar o código fonte desta BABI utilizando o function Builder na transação SE37.
Exemplo:
Este programa exibe os dados de voo através de uma interface de aplicação de negócios utilizada em um sistema SAP.
Abap
*&---------------------------------------------------------------------* *& Report ZVOOS *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& BAPI_FLIGHT_GETDETAIL *&---------------------------------------------------------------------* REPORT ZVOOS. * Exemplo de entrada de dados na tabela SFLIGHT * airlineid = 'LH' * connectionid = '0401' * flightdate = '07.03.2014' * Declara variaveis DATA : dados TYPE bapisfldat, dados_info TYPE bapisfladd, dados_availability TYPE bapisflava, dados_it_ret TYPE STANDARD TABLE OF bapiret2. * Declara parametros PARAMETERS : empresa TYPE sflight-carrid, conexao TYPE sflight-connid, data TYPE sflight-fldate. * Chama BAPI CALL FUNCTION 'BAPI_FLIGHT_GETDETAIL' EXPORTING airlineid = empresa connectionid = conexao flightdate = data IMPORTING flight_data = dados additional_info = dados_info availibility = dados_availability TABLES return = dados_it_ret. * Imprime Resultado dos campos write : / 'Flight Data: ', / dados-AIRLINEID, / dados-AIRLINE, / dados-CONNECTID, / dados-FLIGHTDATE, / dados-AIRPORTFR, / dados-CITYFROM, / dados-AIRPORTTO, / dados-CITYTO, / dados-DEPTIME, / dados-ARRTIME, / dados-ARRDATE, / dados-PRICE, / dados-CURR, / dados-CURR_ISO.