Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
R/3
Bapi SAP / R3
Rodolfo Mio
Programador Abap
Rodolfo.miao@procwork.com.br
07/10/2015
Pg. 1
SAP
R/3
Bapi SAP / R3
07/10/2015
Pg. 2
SAP
R/3
Bapi SAP / R3
Pr-requisitos
Para usar um mtodo BAPI para ter acesso a dados em SAP Business Objects , um programa de
aplicao precisa s saber chamar o mtodo. Informaes requeridas :
O nome da BAPI
Detalhes da interface de BAPI:
- Parmetros de importao que contm dados a serem transferidos do programa de chamada
BAPI .
- Parmetros de exportao que contm dados a serem transferidos atrs da BAPI ao programa de
chamada.
- Import/export (table) parmetros por importar e exportar dados .
Os programadores de aplicao podem trabalhar com SAP Business Objects e podem implementar
a BAPIs sem precisar saber a implementao subjacente e detalhes do cdigo.
07/10/2015
Pg. 3
SAP
R/3
Bapi SAP / R3
Business Standard
SAP Business Objects e suas BAPIs so os padres para as funes empresariais no Sistema R/3.
Eles habilitam o Sistema R/3 e outros produtos de software serem integrados em um
nvel empresarial.
Standards Conformance
Esto sendo desenvolvidos BAPIs como parte da iniciativa SAP em comum com clientes, scios, e
organizaes de padres principais. BAPIs esto se tornando um padro de
comunicao entre sistemas empresariais.
Voc pode acessar o SAP Business Objects e suas BAPIs usando orientao objetos
conectando tecnologias como o COM/DCOM da Microsoft (Component Object
Model/Distributed Component Object Model).
Os SAP Business Objects j obedecem o Grupo de Aplicao de Objeto (OAG) e, junto com
ObjectBridge da VisualEdge, conforme as diretizes CORBA do Grupo de Administrao
de Objeto (Common Object Request Broker Architecture).
Object Orientation
Os mtodos do SAP Business Objects, BAPIs, provem acesso ao dados e processos R/3
utilizando a programao modelo de orientao objetos.
Openness
Voc pode acessar BAPIs de todas plataformas de desenvolvimentos que suportam SAP Remote
Function Call (RFC) protocol.
07/10/2015
Pg. 4
SAP
R/3
Bapi SAP / R3
(Windows NT)
ObjectBridge
from Visual Edge
Ambientes de Desenvolvimentos
Delphi/Connect for SAP
from Inprise
Abap 4
Pg. 5
SAP
R/3
Bapi SAP / R3
No BAPI Browser voc pode exibir todos SAP Business Objects nas hierarquias de aplicaes na
qual h BAPIs implementada.
Siga os passos abaixo:
1. Efetue login no Sistema R/3.
2. Selecione Tools Business Framework BAPI Browser ou entre o cdigo de transao
BAPI no SAPgui command field. O BAPI Browser do BOR exibido na qual todos Business
Objects com BAPIs so exibidos no R/3 application hierarchy.
3. Amplie os nodos e os nodos subordinados de um dos componentes de aplicao at que
voc adquire ao nvel onde um SAP Business Objects foi implementada . So exibidos s esses
objetos empresariais para os quais foram implementados BAPIs.
4. Para abrir um objeto empresarial, clique duas vezes. Os ns que so exibidos so campos
Chaves e Mtodos.
5. Amplie os Mtodos do n para exibir uma lista das BAPIs disponveis para tipo de SAP
Business Object selecionado. Selecione o cone de informao para exibir descries de BAPIs
individual.
6. Amplie o ns campos Chaves, listar os campos chaves do objeto. Selecione o cone de
informao para exibir descries de campos de chave individuais.
Selecione Utilities Color Key para exibir a descrio do icones individuais no BAPI Browser.
Depois que voc localizar a BAPI que voc deseja, voc ter que especificar a informao
necessria da BAPI para funcionar em seu programa de aplicao.
Essas informaes requeridas so:
07/10/2015
Pg. 6
SAP
R/3
Bapi SAP / R3
O Nome da Function Module, se voc efetuar chamada direta RFC ou via Abap para o
mdulo de funo BAPI.
Uma vez que voc juntou toda a informao necessria, voc pode somar a BAPI e seu cdigo de
aplicao.
Naming Conventions
BAPIs so identificados pelo nome do objeto empresarial em questo seguido pelo nome da BAPI.
(Nomes de BAPI esto em ingls e descrevem o que o BAPI faz ao objeto empresarial). Um
perodo separa as duas partes do nome.
Por exemplo, o nome completo da BAPI CheckAvailability do business object Material
Material.CheckAvailability.
Este BAPIs so implementados de acordo com regras especificadas e so nomeados o mesmo
nome para todos os objetos empresariais. A BAPI GetList que lista instncias de objeto existentes
pode ser usado para muitos objetos empresariais, por exemplo, CompanyCode.GetList e
Material.GetList.
Database Consistency
Cada BAPI que cria uma instncia de um objeto ou atualiza os dados de um objeto responsvel
para consistncia de banco de dados. Todas as mudanas de banco de dados so levadas
completamente ou totalmente ignorada.
Porem, o comando COMMIT WORK no executada pela BAPI ; Este ser necessrio executar
pelo programa qua a chamou.
No Dialog Orientation
BAPIs no devolvem telas de dilogo do Sistema R/3 para o programa de chamada.
Authorization
Qualquer interao com o Sistema R/3 exige que o usurio que tenha um certo grupo de
autorizaes. Ao executar um BAPI como parte de seu programa de aplicao, os usurios de sua
aplicao tm que ter o grupo de autorizaes apropriado nos registros mestres do R/3 . A
documentao provida com a BAPI contm informao sobre as autorizaes exigidas.
Qualquer tentativa de executar uma BAPI e falhar, como resultado de autorizao insuficiente, este
informado no retorno aplicao de chamada.
07/10/2015
Pg. 7
SAP
R/3
Bapi SAP / R3
Parmetros de BAPI podem usar a maioria dos tipos de dados de SAP apoiados. Os tipos de
dados so documentados na entrada de estrutura do parmetro individual no Dicionrio de ABAP.
Processing Modes
Quando so chamados BAPIs diretamente, por exemplo, usando BAPI ActiveX Control, R/3 DCOM
Component Conector ou chamando o mdulo de funo subjacente diretamente, so processados
BAPIs em modo sncrono.
07/10/2015
Pg. 8
SAP
R/3
Bapi SAP / R3
As BAPIs listadas na seo acima , BAPIs for Creating or Changing Data, tambm pode ser
usado para processo de massa. Aqui, quando um BAPI chamado, so processadas vrias
instncias de objeto de negcio ao mesmo tempo.
Com BAPIs para processar, o sufixo Mltiplo somado ao nome de mtodo, por exemplo,
ChangeMultiple, CreateMultiple, DeleteMultiple.
BapiTransactionCommit
Este mtodo executa um comando COMMIT WORK. Quando voc chama BAPIs em seu
programa que modificam dados no Sistema R/3, voc tem que chamar este mtodo ento para
passar as mudanas para o banco de dados.
BapiTransactionRollback
Este mtodo executa um comando ROLLBACK WORK. Quando voc chama BAPIs em seu
programa que mudificam dados no Sistema R/3, depois voc tem que chamar este mtodo para
desfazer as mudanas . Isto funciona contanto que o BAPI BapiTransactionCommit j no
passasse as mudanas para o banco de dados.
Release
BAPI
BAPI
Business
Object
BAPI
Business
Object
3.1
4.0
F1
F2
F3
Supported until F3
Supported as of 4.0
New
F = functional Release
Pg. 9
SAP
R/3
Bapi SAP / R3
Este relatrio usa o servio BAPI BapiService.MessageGetDetail, exibir o texto pequeno e o texto
longo de mensagens de erro.
*------------------------------------------------------------------------*
*
read a message short and long text using the BAPI
*
*
BAPI_MESSAGE_GETDETAIL of the object BapiService.
*
*------------------------------------------------------------------------*
* Data declaration
DATA : MY_ID
LIKE BAPIRET2-ID,
MY_NUMBER
LIKE BAPIRET2-NUMBER,
MY_TEXTFORMAT LIKE BAPITGA-TEXTFORMAT,
MY_MESSAGE_V1 LIKE BAPIRET2-MESSAGE_V1,
MY_MESSAGE
LIKE BAPIRET2-MESSAGE,
MY_RETURN
TYPE BAPIRET2.
DATA BEGIN OF MY_TEXT OCCURS 1.
INCLUDE STRUCTURE BAPITGB.
DATA END OF MY_TEXT.
'FI'
'024'
'ASC'
'0001'
TO
TO
TO
TO
MY_ID.
MY_NUMBER.
MY_TEXTFORMAT.
MY_MESSAGE_V1.
*BAPI call
CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
EXPORTING
ID
= MY_ID
NUMBER
= MY_NUMBER
*
LANGUAGE
= SY-LANGU
TEXTFORMAT = MY_TEXTFORMAT
MESSAGE_V1 = MY_MESSAGE_V1
*
MESSAGE_V2 =
*
MESSAGE_V3 =
*
MESSAGE_V4 =
IMPORTING
MESSAGE
= MY_MESSAGE
RETURN
= MY_RETURN
TABLES
TEXT
= MY_TEXT
.
* Print results
WRITE : / 'Input' COLOR 5.
WRITE : / 'my_id...........:', MY_ID.
WRITE : / 'my_number.......:', MY_NUMBER.
WRITE : / 'my_textformat...:', MY_TEXTFORMAT.
WRITE : / 'my_message_v1...:', MY_MESSAGE_V1.
WRITE : / 'Output' COLOR 5.
WRITE : / 'my_message........:', MY_MESSAGE.
WRITE : / 'my_return.........:', MY_RETURN.
WRITE : / 'Text output' COLOR 5.
LOOP AT MY_TEXT.
WRITE : / MY_TEXT.
ENDLOOP.
07/10/2015
Pg. 10
SAP
R/3
07/10/2015
Bapi SAP / R3
Pg. 11
SAP
R/3
Bapi SAP / R3
07/10/2015
Pg. 12
SAP
R/3
Bapi SAP / R3
Para efetuar a conexo com o R/3 utilizamos outro controle chamado Logon ActiveX
Control. Seu ProgID SAP.LogonControl.1.
Isso o que precisamos saber para trabalhar com os objetos. O ProgID dos controles
est documentado no help do SAP. No help do SAP podemos encontrar tambm a
documentao de outros controles disponveis.
Nesse exemplo iremos carregar a lista de empresas cadastradas no SAP em uma planilha
Excel, atravs da execuo de uma macro.
Para tanto crie uma nova macro a partir do menu Ferramentas / Macro / Macros. A
seguinte janela ser exibida:
Pg. 13
SAP
R/3
Bapi SAP / R3
Pg. 14
SAP
R/3
Dim y
Bapi SAP / R3
As Variant
y = otabCompanyCodes.data
While x < 40
x=x+1
If x <= 9 Then
celnome = "B" + Right(Str(x), 1)
celcode = "A" + Right(Str(x), 1)
Else
celnome = "B" + Right(Str(x), 2)
celcode = "A" + Right(Str(x), 2)
End If
Range(celcode).Select
ActiveCell.FormulaR1C1 = y(x, 1)
Range(celnome).Select
ActiveCell.FormulaR1C1 = y(x, 2)
Wend
Application.Goto Reference:="R1C1"
'Logoff do R/3
oBapiControl.Connection.Logoff
End Sub
Como descobrir o nome do Business Object que queremos trabalhar?
No R/3 inicie a transao BAPI (release 4.6) e selecione o BO desejado. O nome que
devemos informar para o mtodo GetSAPObject est no campo Nome do Objeto:
Set oCompanyCode = oBapiControl.GetSAPObject("CompanyCode")
07/10/2015
Pg. 15
SAP
R/3
Bapi SAP / R3
Bibliografia
1. SCHUESSLER, Thomas G.. A Beginners Guide to Accessing BAPIs with the SAP
DCOM Connector. SAP Professional Journal. Dedham, (Sample Issue): 91, 2000
2. BAPI ActiveX Control, SAP Library, SAP AG., 2000
3. DCOM Connector, SAP Library, SAP AG., 2000
4. OLE2 Automation Controller, SAP Library, SAP AG., 2000
5. BAPI Programming, www.sap.com/solutions/technology/bapis/, SAP AG. 2000
6. Interface repository - http://ifr.sap.com/catalog/query.asp
07/10/2015
Pg. 16