SAP: ERP nel cuore del
'Sistema Azienda'
Dott. Alessandro Ciampichetti
Analista SAP
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 1
Indice
 ERP
 Requisiti e Caratteristiche
 Client/Server vs. Host-Based
 Architetture e Stili
 SAP
 Architettura Logica e Fisica
 Dizionario dati
 Transazioni
 Livelli di modifica e trasporti
 Organizzazione DB
 ABAP Workbench e linguaggio ABAP/4
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 2
ERP - Enterprise Resource Planning
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 3
Requisiti sistema informatico
 Software configurabile e scalabile
 Supporto ai processi aziendali
 Apertura verso altri sistemi/architetture
 Funzionalità avanzate
 Evoluzione nel tempo e qualità del supporto
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 4
ERP - Caratteristiche
 Sistema informativo gestionale integrato
 Copertura
dei
principali
processi
aziendali
(logistica, contabilità, produzione, risorse umane)
 Software c/s modulare e configurabile basato
sulla tecnologia relazionale (e a oggetti)
 Dati strutturati in entità operative a livello di
transazioni commerciali
 Assetto per funzioni  Assetto per processi
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 5
ERP - Caratteristiche
 Architettura
client/server
a
(presentation, application e database)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 6
3
livelli
ERP - Evoluzione
 CRM (Customer Relationship Management) e SCM
(Supply Chain Management)
 Data Warehouse, Data Mining
 ASP (Application Service Providing)
 PMI (Piccole e Medie Imprese)
 Internet (e-commerce, e-procurement, B2B, B2C, ...)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 7
Client/Server versus Host-Based
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 8
Architetture a confronto
Host-Based
Client/Server
Client
Application
L
A
N
Server
application
WAN
Server
application
 Più processori
 Molti luoghi
 Controllo del flusso di lavoro
(event driven)
 Database relazionali
 Indipendenza applicazione dati
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 9
Un processore
Un unico luogo
Flusso di lavoro predefinito
Database gerarchici,
modello reticolare
 Dipendenza applicazione dati




I 5 stili di Client/Server
I componenti
Data
Management
Gli stili
 Distributed
presentation
 Remote presentation
Function
Presentation
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 10
 Distributed function
 Remote data
management
 Distributed data
management
C/S: Benefici per l’azienda
 Miglioramento dei servizi
 Flessibilità SW (downsizing,
rightsizing, portabilità)
 Flessibilità HW (riduzione dei
costi, scalabilità)
 Produttività utente
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 11
C/S: Rischi per l’azienda
 Incremento complessità SI
 Variazioni organizzative
 Incremento dei costi operativi e/o di
sviluppo (nelle fasi iniziali)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 12
Systems, Applications, Products in
data Processing
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 13
Il Sistema R/3
SD
FI
Sales &
Distribution
Financal
Accounting
MM
PP
CO
Materials
Mgmt.
Production
Planning
AM
R/3
QM
Quality
Mgmt.
Controlling
PM
Plant
Maint.
Fixed Assets
Mgmt.
Client / Server
ABAP/4
PS
Project
System
WF
Workflow
HR
IS
Human
Resources
Industry
Solutions
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 14
Il Sistema R/3
Online
Service
System
R/3
XXL
DMS
ALE
Sistemi SAP
Altri sistemi
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 15
EDI
Architettura
logica
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 16
Architettura logica
SAP Applications
User Interface
Screen Interpreter
ABAP/4 Interpreter
Data
Dictionary
System software and Platforms
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 17
Communication Intercafe
Application Modules
Architettura
fisica
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 18
Architettura fisica
Presentation
Application
Central System
Remote
Presentation
Two-tier
Client/Server
Three-tier
Client/Server
Multi-Layer
Cooperative
Client/Server
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 19
Database
Architettura fisica
 Distribuzione del carico, sfruttamento diverse
piattaforme HW, un solo DB server (di norma)
 Central instance (servizi di base): su DB server o
application server
 Comunicazioni basate su TCP/IP
Lan, Wan, WEB
Presentation
Application
Application
Database
Lan (>10 Mbit/sec),
FDDI
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 20
Topologia di rete
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 21
Piattaforme supportate
Presentation
Middleware
Java
AWT
COM/DCOM
ActiveX
SO
MS
Windows
Corba
ABAP/4 (Objects)
Linguaggi
RDBMS
Web
Browser
Ababas
HTTP/XML
Architettura PA
IBM
AIX
Power
PC
IBM DB2
/UDB /400 /390
MQ - Series
MSMQ
MS
SQL Server
NT
MIPS
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 22
Alpha
Mac
Java
Informix
Sun
Compaq
Linux Siemens
Solaris
Digital
Sparc
OS2
C/C++
Unix
HP
UX
OSF/Motif
Oracle
Midrange Mainframe
NT
OS/400
OS/390
Alpha Intel
AS/400
S/390
SapGUI
 Conforme allo standard IBM CUA (Common User Access)
 Carico di rete contenuto verso il livello application (0,5/3
K per ogni dialog step - Release 4.0)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 23
Dizionario
Dati
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 24
Dizionario Dati - Oggetti Base
Tabella
Tabella
Dominio
Usa
Elemento dati
 Routine di conversione e
controllo valori associate ai
domini
Usa
 Dominio come meta-classe ed
Campo
Elemento dati come classe
 Tabelle: definizione logica
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 25
Dizionario Dati - Componenti
Pool
Cluster
Search-help
DD
Viste
Indici
secondari
Relazioni
Tabelle
Lock
Campi
Campi
Elementi
dati
Domini
Valori
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 26
Dizionario Dati - Integrazione
 Presupposto: modalità interpretativa
 Rigenerazione
automatica
dei
programmi
a
fronte
di
modifiche nel DD, rigenerazione (attivazione) degli oggetti
DD dipendenti
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 27
Transazioni
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 28
Transazioni: concetti generali
TCode
Dialog step
Evento GUI
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 29
Transazioni: ambiente di sviluppo
Sequenza di schermate
( Dynamic Processing, Dynpro )
Process After Input - PAI
Process Before Output - PBO
Programma di dialogo
( Module pool )
DB
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 30
Dialog processor
ABAP/4 processor
Il Sistema
R/3
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 31
Sistema R/3: Istanza
 Definizione: ‘Installable administration unit’
 Sistema R/3: consiste di 3 livelli di servizi
Presentation
Application
SAPGui
Client
SAP Server
Istanza
Server
Database
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 32
RDBMS
Sistema R/3: SAP Server
 Definizione: componente di una istanza R/3 che
fornisce due tipologie di servizi
 Application
 Communication
Message server: comunicazioni ‘veloci’ fra AS
Gateway server: comunicazioni fra AS e con
altri sistemi (CPI-C)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 33
Sistema R/3: Application Server
AS
Process
request
Dispatcher
Work process
Work process
...
Gateway
Work process
D: Dialog
S: Print formatting (Spool)
V: Update
E: SAP lock admin. (enqueue)
B: Background processing
G: Gateway
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 34
Mandante (Client)
 Partizione logica del DB; corrisponde
organizzativa di più alto livello
all’unità
 Il mandante deve essere specificato in fase di logon
 Istanza SAP: composta da più mandanti
 Tabelle: dipendenti dal mandante (primo campo chiave
è il mandante) e indipendenti
 Gestione: copia /export del mandante, configurazione
(abilitazione al customizing/sviluppo)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 35
Livelli di modifica
e trasporti
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 36
Livelli di modifica
Sviluppi
Custom
Enhance
ment
3
2
Progr
Classe
di
sviluppo
ABAP
WB
Customizing
1
Applicazioni R/3
(SAP standard)
Cust. exit 1
4
Modifiche
(Repair)
Cust. exit 2
R/3 Basis
Software di sistema
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 37
OSS
Sistema trasporti
Sviluppo
Produzione
Test
3
1
3
2
1. Rilascio
2. Esportazione
3. Importazione
Transport Info system
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 38
Sistema trasporti
Workbench/Customizing Organizer
Change request
Task
Task
Task
Chiavi repository oggetti
creati/modificati
R3TR TRAN ZA01
R3TR PROG SAPMZCAQ
LIMU REPS MZACQTOP
...
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 39
Organizzazione
DB
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 40
DB: Tablespace (Oracle)
DATABASE
TABLESPACE 1
Data file 2
Data file 1
A0
Extent
B0
...
A2
TABLESPACE n
KEY
Tabella A: comprende 4 extent
A1
Tabella B: comprende 2 extent
B1
A3
Database block
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 41
Spazio libero
da essere allocato
come 1 o più extent
DB: Update
DB
Update request
Component1
Call f1
Component2
Call f2
Componentn
Call fn
...
Update request
Critical
Non Critical
syncronous update (U1)
asyncronous update (U2)
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 42
DB: Update
U1
D2
D1
Commit
D3
Rollback
DB
U2
D4
D5
LUW
DB
LUW
Singolo
AS/WP
LUW (Logical Unit of Work)
Commit e Rollback
indipendenti (update task)
DB
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 43
DB: Lock
 SAP Locking: estensione dei meccanismi di
lock del DBMS (lock a livello di transazione)
 Modalità: E(sclusivo), S(hared), X(esclusivo
non cumulativo)
 Lock definiti come oggetti del DD
 Requisito: lock DB a livello di record
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 44
ABAP
Workbench
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 45
Ambiente di sviluppo integrato
Function library (API)
M
e
n
u
P
a
i
n
t
e
r
Screen Painter
Screen
Interpreter
ABAP/4
Data
Dictionary
ABAP/4
Interpreter
Flow control
System interfaces
System software and platforms
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 46
R
F
C
C
P
I
C
ABAP/4
Advanced Business Application Programming
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 47
Generalità
 Linguaggio
della
4a
Generazione
(Gestionale,
Strutturato, Interpretato - pseudo codice)
 Paradigma: imperativo; logica ad eventi
 Sintassi/Semantica di tipo procedurale con estensioni
dichiarative (ABAP SQL / Native SQL)
 Debug integrato nei tool di sviluppo, editor ipertestuale
con CASE di autocomposizione
 Logica applicativa scritta interamente in ABAP/4
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 48
Struttura di un programma
Sezione Identificativa
Report <name>.
o
Program <name>.
Parametri di selezione
Parameters: …
o
Select-options: ...
Sezione Dichiarativa
DATA:
TABLES:
CONSTANTS:
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 49
Sezione Procedurale
MOVE ......
......
WRITE .......
Gestione degli eventi
Struttura di un report
REPORT
Esecuzione di un report
Start
of
selection
<name>
DATA.: ..…
PARAMETERS: ...
SELECT-OPTIONS: ...
AT SELECTION-SCREEN.
.
TOP-OF-PAGE.
.
END-OF- PAGE.
.
.
START -OF - SELECTION.
.
END-OF-SELECTION.
End
of
page
Top
of
page
End
of
selection
Module pool: PAI e PBO
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 50
Dichiarazione dati
DATA: NAME1(25) TYPE C,
NAME2
LIKE NAME1,
NAME3
LIKE NAME1.
DATA: BEGIN OF SALES_REC,
NAME1 LIKE LFA1-NAME1,
CITY
LIKE LFA1-ORT01,
SALES LIKE LFC3-SOLL,
END OF SALES_REC.
DATA: BEGIN OF TABLE OCCURS 10.
INCLUDE STRUCTURE T001G.
DATA: END OF TABLE.
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 51
Riferimento a campi interni
(legame statico)
Riferimento a campi DD
(legame dinamico)
Riferimento a intere
strutture DD
(legame dinamico)
Tabelle interne
Paese Vendite
100
D
F
GB
I
500
1100
5000
Paese Vendite
D
500
GB
1100
5000
D
100
F
500
GB
1100
I
5000
D
100
Buffer
(Header Line)
APPEND <tabella interna>. :
carica il contenuto del record di
buffer alla fine della tabella interna.
COLLECT <tabella interna>. :
100
F
D
Paese Vendite
somma il contenuto del buffer
ad un eventuale record esistente
con la stessa chiave (campi non
numerici) ; se tale record non esiste
funziona come APPEND.
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 52
Tabella interna
Paese Vendite
D
100
F
500
GB
1100
D
5100
Buffer
(Header Line)
Tabella interna
Form
PROGRAM RSDEMO1
Chiamata sub. TASSE
Definizione Form TASSE
( Calcolo Tasse )
Chiamata interna
PROGRAM RSDEMO2
PROGRAM RSDEMO4
Chiamata FormTASSE
Def.Form TASSE
( Calcolo Tasse )
PROGRAM RSDEMO3
ABAP/4 Function library
Chiamata funzione
TASSE
Function module TASSE
( Calcolo Tasse )
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 53
Chiamata
esterna
Chiamata in
una libreria
di funzioni
Funzioni di libreria
CALL FUNCTION ‘<nome>‘
EXPORTING <parametri>
IMPORTING <parametri>
TABLES
<parametri>
Exceptions
<eccezioni>.
Non sono implementate le funzioni
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 54
ABAP SQL
SELECT SINGLE * FROM <tabella>
WHERE <campo chiave 1> = <campo 1>
AND
<campo chiave 2> = <campo 2>
.........
AND
<campo chiave n> = <campo n>.
Data Base
Accesso ad un
singolo record
SELECT * FROM <tabella>
WHERE <campo tabella 1> <op> <campo 1>
AND
<campo tabella 2> <op> <campo 2>
.........
AND
<campo tabella n> <op> <campo n>.
ENDSELECT.
...
....
......
.....
......
.....
....
.....
...
......
......
....
...
.....
.....
....
Data Base
Lettura di
più record
....
....
......
......
.....
.....
.....
.....
...
......
......
....
...
.....
.....
....
Data Base
SELECT * FROM <tabella>
INTO TABLE <tabella interna>
WHERE <campo chiave 1> = <campo 1>
AND
<campo chiave 2> = <campo 2>.
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 55
... ... ...
.... .... ....
...
...
...
...
...
...
Caricamento
tabella interna
Tabella interna
... ... ...
.... .... ....
...
...
...
...
...
...
ABAP Objects
 Estensione object-oriented del linguaggio ABAP/4
 Integrato con il linguaggio originale e i relativi tool di
sviluppo
 Modelli: Java e C++
 Supporta solo l’ereditarietà singola
 Supporta la gestione di eventi
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 56
ABAP Objects
 Concetto di classe locale e globale
 Tools: object browser / class builder, libreria ‘grafica’
 Garbage collector
 Evoluzione del sistema: ABAP/4  ABAP Objects
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 57
ABAP Objects
CLASS C_COUNTER DEFINITION.
PUBLIC SECTION.
METHODS: SET_COUNTER IMPORTING VALUE(SET_VALUE) TYPE I,
INCREMENT_COUNTER,
GET_COUNTER EXPORTING VALUE(GET_VALUE) TYPE I.
PRIVATE SECTION.
DATA COUNT TYPE I.
ENDCLASS.
CLASS C_COUNTER IMPLEMENTATION.
METHOD SET_COUNTER.
COUNT = SET_VALUE.
ENDMETHOD.
METHOD INCREMENT_COUNTER.
ADD 1 TO COUNT.
ENDMETHOD.
METHOD GET_COUNTER.
GET_VALUE = COUNT.
ENDMETHOD.
DATA CREF TYPE REF TO C_COUNTER
DATA NUMBER TYPE I VALUE 5
CREATE OBJECT CREF.
CALL METHOD CREF->SET_COUNTER
EXPORTING SET_VALUE = NUMBER.
ENDCLASS..
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 58
ERP esteso
 mySAP.com (BW, APO, CRM, SCM, …) e PMI
 Business Framewok
 ITS: Internet Transaction Server
 Release 6.0: Kernel supporta ABAP Objects e Java
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 59
CRM - Mobile Sales
 MET Sistemi Finanziari S.r.L. Alessandro Ciampichetti - Marzo 2002 / 60