SlideShare uma empresa Scribd logo
1 de 14
Realizzazione di applicazioni client
con librerie di interfaccia di un
sistema ERP
Fabrizio Granchelli
Università di L’Aquila
Che cos’è un sistema ERP
Un Enterprice Resource Planning è un Sistema
Informativo per la Gestione Integrata dei Processi
Aziendali
 I Processi Aziendali sono tutte le attività e funzioni svolte all’interno di
una azienda che coinvolgono le varie aree di un Sistema Produttivo;
 Per Gestione Integrata si intende l’integrazione on-line e real-time dei
dati che mettono in relazione tra loro i vari processi aziendali
 Un ERP rappresenta un Sistema Informativo perché è supportato da
strumenti e risorse dell’Informatic Tecnology
Architettura di SAP R/3
 Hardware, Network, Sistemi Operativi, Database,
Frontends
 Client Server
 Piattaforme: UNIX, Windows, IBM, ...
 Middleware (MMBC)
 Linguaggio ANSI SQL
 Protocollo TCP/IP
 Chiamate di Sistema C, Posix
 Remote Function Call ( RFC )
 Business Application Programming Interface ( BAPI )
 Applicazioni R/3
 Applicazioni Client: Effettuano transazioni su SAP ( C++, Java, ... )
 Servizi di presentazione: Reporting ( ABAP )
 Servizi di accesso ai dati: Query ( ABAP )
Applicazioni Client
Business Framework
•Risorse per le funzionalità aziendali
•Risorse condivisibile dall’esterno
SAP
Utenti Esterni
R/3
Business Object
BO
Business Framework
Realtà aziendale
Incapsula i dati e i processi di una area aziendale
Sono nascosti i dettagli implementativi
Le applicazioni esterne possono accedere ai dati dell’oggetto solo
attraverso i suoi metodi pubblici
Struttura di un SAP Business Object
 Kernel: Dati inerenti all’oggetto ( stato interno )
 Integrity: Regole e vincoli che costituiscono la logica dell’oggetto
 Interface: Librerie di interfaccia ( metodi BAPI )
 Access: Tecnologie di interfacciamento
Business Application
Programming Interface
 Permettono di accedere ai dati di un BO e di utilizzare i relativi metodi
 Sono definite come un metodo di un BO di SAP
 Sono implementate attraverso moduli funzionali che supportano il
protocollo RFC
Utilizzo delle BAPI
L’accesso a una BAPI avviene in due modi:
 Accesso di tipo object-oriented
 Accesso attraverso una chiamata RFC al modulo funzionale che
implementa la BAPI
I passi da seguire per invocare una BAPI sono:
 Identificare il BO che contiene la BAPI
 Determinare le informazioni sui parametri che definiscono l’interfaccia
della BAPI
 Includere nell’applicazione, la chiamata BAPI con i parametri richiesti
Accesso Object Oriented
Windows 95 o NT
– BAPI ActiveX Control
 Libreria di classi BAPI C++
Piattaforme con Java Virtual Machine
– Libreria di classi BAPI Java
Classi BAPI C++
La libreria di classi BAPI C++ offre una
proxy class per ogni SAP BO che ha metodi
pubblici.
Una proxy class è un rappresentante locale
di un’istanza remota di un BO in R/3.
Classi Proxy
(from Logical View)
Applicazione C++
Classi RFC
(from Logical View)
APPLICAZIONE C++ UTILIZZANDO CLASSI PROXY
Inserimento in remoto di un ordine di vendita
(Sales Order) su SAP R/3
Applicazione Client
Apre una connessione con sistema
SAP R/3
Creazione nuovo ordine di vendita
Server R/3
Inserimento ordine di vendita
transazioni in
remoto
transazioni su SAP R/3
(modulo SD)
Chiamata BAPI
Connection :
CRfcConnection
oOrder :
CBoSalesOrder
: Server R/3
SalesOrder(BusinessObjectSAP)
: Applicazione
Client
Crea oggetto
Connection Connection.SafeOpen()
Crea oggetto
oOrder oOrder.Createfromdata
Crea istanza di
BO:SalesOrder
Chiamata RFC
SEQUENCE DIAGRAM
BAPI Createfromdata
Proxy Class Diagram
CBoBase
CBoBase()
CBoBase()
~CBoBase()
GetKeyValue()
GetKeyValue()
GetKeyValue()
GetName()
SetKeyValue()
CBapiorders
ExchgRate : double
ItmNumber : int
ReqQty : double
CondPUnt : double
NetValue : double
DlvQty : double
NetPrice : double
NetValHd : double
CBapiorders()
~CBapiorders()
CBoSalesOrder
CBoSalesOrder()
~CBoSalesOrder()
Createfromdat1()
Createfromdata()
Getlist()
Getstatus()
Simulate()
CGetlistImports
CGetlistImports()
~CGetlistImports()
(from CBoSalesOrder)
CGetstatusImports
CGetstatusImports()
~CGetstatusImports()
(from CBoSalesOrder)
RFC_PARAM_
CBo
m_nFlags : int
m_pRfcParam : void*
CBoParameter()
CBoParameter()
CBoParameter()
~CBoParameter()
GetName()
operator =()
Value()
1
1
-m_n
1
1
CBoObject
CBoObject()
~CBoObject()
Call()
GetParameter()
SetEnvironment()
GetTypeInfo()
GenerateMethod()
AddKeysToParamList()
GetMethod()
CBoMethod
m_nFlags : int
CBoMethod()
CBoMethod()
CBoMethod()
~CBoMethod()
GetName()
Call()
GetParameter()
0..1
1
-m_p
0..1
1
0..1
1
+m_p
0..1
1
CCreatefromdat1Import
CCreatefromdat1Imports()
~CCreatefromdat1Imports()
CBapisdhea
CBapisdhead()
~CBapisdhead()
1
1
+Order 1
1
CCreatefromdat1Export
CCreatefromdat1Exports()
~CCreatefromdat1Exports()
CGetlistExports
CGetlistExports()
~CGetlistExports()
(from CBoSalesOrder)
CGetstatusExports
CGetstatusExports()
~CGetstatusExports()
(from CBoSalesOrder)
CBapisoldto
MaxPlDlv : double
DlvPrio : int
OrderProb : int
CBapisoldto()
~CBapisoldto()
1
1
+Soldt
1
1
CBapipayer
CredLimit : double
OrderVals : double
RcvblVals : double
CredLiab : double
ValLimit : double
AddValDy : int
CBapipayer()
~CBapipayer()
1
1
+Billin
1
1
CCreatefromdat1Table
CCreatefromdat1Tables()
~CCreatefromdat1Tables()
(CBoTable<CBapiorders>)
CGetlist
CGetlistTables()
~CGetlistTables()
(from CBoSalesOrder)
1
1
1
+Sale
1
AType

Mais conteúdo relacionado

Semelhante a BAPI.ppt

riskart technical presentation
riskart technical presentationriskart technical presentation
riskart technical presentationframar
 
Transportec 05 10 2007
Transportec 05 10 2007Transportec 05 10 2007
Transportec 05 10 2007Romualdo Gobbo
 
Biznology presentazione azienda
Biznology presentazione aziendaBiznology presentazione azienda
Biznology presentazione aziendaAlberto Lagna
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3Ivano Luberti
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
Seminari twinegy solution sales portal v.1.0
Seminari twinegy solution   sales portal v.1.0Seminari twinegy solution   sales portal v.1.0
Seminari twinegy solution sales portal v.1.0Twinergy
 
Fly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationFly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationMarco Daccò
 
Non solo Microservizi: API, Prodotti e Piattaforme
Non solo Microservizi: API, Prodotti e PiattaformeNon solo Microservizi: API, Prodotti e Piattaforme
Non solo Microservizi: API, Prodotti e PiattaformeStefano Fago
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open sourceMarco Ferrigno
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Mirko Mariotti
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Scenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in AziendaScenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in AziendaConsulthinkspa
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 

Semelhante a BAPI.ppt (20)

riskart technical presentation
riskart technical presentationriskart technical presentation
riskart technical presentation
 
Transportec 05 10 2007
Transportec 05 10 2007Transportec 05 10 2007
Transportec 05 10 2007
 
Biznology presentazione azienda
Biznology presentazione aziendaBiznology presentazione azienda
Biznology presentazione azienda
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Presentazione wi400 i5
Presentazione wi400 i5Presentazione wi400 i5
Presentazione wi400 i5
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Seminari twinegy solution sales portal v.1.0
Seminari twinegy solution   sales portal v.1.0Seminari twinegy solution   sales portal v.1.0
Seminari twinegy solution sales portal v.1.0
 
14 faq400
14 faq40014 faq400
14 faq400
 
Fly Together the TIM DIgital Transformation
Fly Together the TIM DIgital TransformationFly Together the TIM DIgital Transformation
Fly Together the TIM DIgital Transformation
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
DDive11 - xpages
 
Non solo Microservizi: API, Prodotti e Piattaforme
Non solo Microservizi: API, Prodotti e PiattaformeNon solo Microservizi: API, Prodotti e Piattaforme
Non solo Microservizi: API, Prodotti e Piattaforme
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open source
 
Software Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpASoftware Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpA
 
SOA wonderful World
SOA wonderful WorldSOA wonderful World
SOA wonderful World
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Scenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in AziendaScenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in Azienda
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 

BAPI.ppt

  • 1. Realizzazione di applicazioni client con librerie di interfaccia di un sistema ERP Fabrizio Granchelli Università di L’Aquila
  • 2. Che cos’è un sistema ERP Un Enterprice Resource Planning è un Sistema Informativo per la Gestione Integrata dei Processi Aziendali  I Processi Aziendali sono tutte le attività e funzioni svolte all’interno di una azienda che coinvolgono le varie aree di un Sistema Produttivo;  Per Gestione Integrata si intende l’integrazione on-line e real-time dei dati che mettono in relazione tra loro i vari processi aziendali  Un ERP rappresenta un Sistema Informativo perché è supportato da strumenti e risorse dell’Informatic Tecnology
  • 3. Architettura di SAP R/3  Hardware, Network, Sistemi Operativi, Database, Frontends  Client Server  Piattaforme: UNIX, Windows, IBM, ...  Middleware (MMBC)  Linguaggio ANSI SQL  Protocollo TCP/IP  Chiamate di Sistema C, Posix  Remote Function Call ( RFC )  Business Application Programming Interface ( BAPI )  Applicazioni R/3  Applicazioni Client: Effettuano transazioni su SAP ( C++, Java, ... )  Servizi di presentazione: Reporting ( ABAP )  Servizi di accesso ai dati: Query ( ABAP )
  • 4. Applicazioni Client Business Framework •Risorse per le funzionalità aziendali •Risorse condivisibile dall’esterno SAP Utenti Esterni R/3
  • 5. Business Object BO Business Framework Realtà aziendale Incapsula i dati e i processi di una area aziendale Sono nascosti i dettagli implementativi Le applicazioni esterne possono accedere ai dati dell’oggetto solo attraverso i suoi metodi pubblici
  • 6. Struttura di un SAP Business Object  Kernel: Dati inerenti all’oggetto ( stato interno )  Integrity: Regole e vincoli che costituiscono la logica dell’oggetto  Interface: Librerie di interfaccia ( metodi BAPI )  Access: Tecnologie di interfacciamento
  • 7. Business Application Programming Interface  Permettono di accedere ai dati di un BO e di utilizzare i relativi metodi  Sono definite come un metodo di un BO di SAP  Sono implementate attraverso moduli funzionali che supportano il protocollo RFC
  • 8. Utilizzo delle BAPI L’accesso a una BAPI avviene in due modi:  Accesso di tipo object-oriented  Accesso attraverso una chiamata RFC al modulo funzionale che implementa la BAPI I passi da seguire per invocare una BAPI sono:  Identificare il BO che contiene la BAPI  Determinare le informazioni sui parametri che definiscono l’interfaccia della BAPI  Includere nell’applicazione, la chiamata BAPI con i parametri richiesti
  • 9. Accesso Object Oriented Windows 95 o NT – BAPI ActiveX Control  Libreria di classi BAPI C++ Piattaforme con Java Virtual Machine – Libreria di classi BAPI Java
  • 10. Classi BAPI C++ La libreria di classi BAPI C++ offre una proxy class per ogni SAP BO che ha metodi pubblici. Una proxy class è un rappresentante locale di un’istanza remota di un BO in R/3.
  • 11. Classi Proxy (from Logical View) Applicazione C++ Classi RFC (from Logical View) APPLICAZIONE C++ UTILIZZANDO CLASSI PROXY
  • 12. Inserimento in remoto di un ordine di vendita (Sales Order) su SAP R/3 Applicazione Client Apre una connessione con sistema SAP R/3 Creazione nuovo ordine di vendita Server R/3 Inserimento ordine di vendita transazioni in remoto transazioni su SAP R/3 (modulo SD)
  • 13. Chiamata BAPI Connection : CRfcConnection oOrder : CBoSalesOrder : Server R/3 SalesOrder(BusinessObjectSAP) : Applicazione Client Crea oggetto Connection Connection.SafeOpen() Crea oggetto oOrder oOrder.Createfromdata Crea istanza di BO:SalesOrder Chiamata RFC SEQUENCE DIAGRAM BAPI Createfromdata
  • 14. Proxy Class Diagram CBoBase CBoBase() CBoBase() ~CBoBase() GetKeyValue() GetKeyValue() GetKeyValue() GetName() SetKeyValue() CBapiorders ExchgRate : double ItmNumber : int ReqQty : double CondPUnt : double NetValue : double DlvQty : double NetPrice : double NetValHd : double CBapiorders() ~CBapiorders() CBoSalesOrder CBoSalesOrder() ~CBoSalesOrder() Createfromdat1() Createfromdata() Getlist() Getstatus() Simulate() CGetlistImports CGetlistImports() ~CGetlistImports() (from CBoSalesOrder) CGetstatusImports CGetstatusImports() ~CGetstatusImports() (from CBoSalesOrder) RFC_PARAM_ CBo m_nFlags : int m_pRfcParam : void* CBoParameter() CBoParameter() CBoParameter() ~CBoParameter() GetName() operator =() Value() 1 1 -m_n 1 1 CBoObject CBoObject() ~CBoObject() Call() GetParameter() SetEnvironment() GetTypeInfo() GenerateMethod() AddKeysToParamList() GetMethod() CBoMethod m_nFlags : int CBoMethod() CBoMethod() CBoMethod() ~CBoMethod() GetName() Call() GetParameter() 0..1 1 -m_p 0..1 1 0..1 1 +m_p 0..1 1 CCreatefromdat1Import CCreatefromdat1Imports() ~CCreatefromdat1Imports() CBapisdhea CBapisdhead() ~CBapisdhead() 1 1 +Order 1 1 CCreatefromdat1Export CCreatefromdat1Exports() ~CCreatefromdat1Exports() CGetlistExports CGetlistExports() ~CGetlistExports() (from CBoSalesOrder) CGetstatusExports CGetstatusExports() ~CGetstatusExports() (from CBoSalesOrder) CBapisoldto MaxPlDlv : double DlvPrio : int OrderProb : int CBapisoldto() ~CBapisoldto() 1 1 +Soldt 1 1 CBapipayer CredLimit : double OrderVals : double RcvblVals : double CredLiab : double ValLimit : double AddValDy : int CBapipayer() ~CBapipayer() 1 1 +Billin 1 1 CCreatefromdat1Table CCreatefromdat1Tables() ~CCreatefromdat1Tables() (CBoTable<CBapiorders>) CGetlist CGetlistTables() ~CGetlistTables() (from CBoSalesOrder) 1 1 1 +Sale 1 AType