Professional Documents
Culture Documents
INTRODUZIONE A SAP/R3............................................................................................................3
CARATTERISTICHE GENERALI DI ABAP................................................................................5
LE FASI E I LIVELLI DI SVILUPPO............................................................................................7
ARCHITETTURA SOFTWARE DEL SISTEMA SAP..................................................................8
LIVELLO DATABASE..........................................................................................................................8
LIVELLO APPLICAZIONI.....................................................................................................................9
LIVELLO PRESENTAZIONE.................................................................................................................9
VANTAGGI DELL'ARCHITETTURA A LIVELLI....................................................................................10
APPLICATION SERVER...............................................................................................................11
WORK PROCESSES...........................................................................................................................11
DISPATCHER....................................................................................................................................11
GATEWAY........................................................................................................................................11
SHARED MEMORY...........................................................................................................................12
CONNESSIONE AL DATABASE..........................................................................................................12
WORK PROCESSES..........................................................................................................................12
STRUTTURA DEI PROGRAMMI ABAP....................................................................................14
PARTE DICHIARATIVA.....................................................................................................................14
BLOCCHI DI PROCESSO.............................................................................................................15
CHIAMATE DEI BLOCCHI DI PROCESSO............................................................................................15
TIPI DI PROGRAMMI........................................................................................................................15
BLOCCHI DI PROCESSO....................................................................................................................17
IL DATABASE LOGICO.....................................................................................................................18
IL LINGUAGGIO ABAP................................................................................................................19
DICHIARAZIONI...............................................................................................................................19
ISTRUZIONI DI MODULARIZZAZIONE...............................................................................................19
STRUTTURE DI CONTROLLO............................................................................................................20
ISTRUZIONI DI CHIAMATA...............................................................................................................20
ISTRUZIONI OPERAZIONALI.............................................................................................................20
ISTRUZIONI PER IL DATABASE.........................................................................................................20
TIPI DI DATI E OGGETTI..................................................................................................................21
INTERFACCIAMENTO CON L'ESTERNO DI SAP R/3..........................................................23
AGGIORNAMENTO DELLE TABELLE STANDARD...............................................................................26
INTEGRAZIONE DI SAP CON ALTRE APPLICAZIONI TRAMITE OLE..................................................26
Introduzione a SAP/R3
SAP unazienda europea che ha saputo esportare nel mondo un nuovo modo di gestire
le risorse delle imprese. Il suo successo legato ad R/3, un prodotto che ha
unarchitettura per lassetto organizzativo dellimpresa in grado di affrontare mercati del
futuro
SAP R/3, indicato comunemente con il termine SAP, conosciuto da alcuni come un
nuovo linguaggio di programmazione, altri suggeriscono un database ( o DBMS, DataBase
Management System), altri ancora lo individuano come un pacchetto per gestire la
contabilit o il magazzino.
In realt SAP tutto questo, una struttura informativa, ma anche un database
relazionale ed anche un sistema di sviluppo.
E un sistema gestionale integrato e abbastanza complesso, suddiviso in aree applicative.
Le aree applicative sono i settori o le zone di operativit di unazienda. I principali settori di
attivit (finanziario, logistico e gestione risorse umane) sono gestiti interamente dal
sistema R/3. Come la maggior parte dei prodotti sul mercato, il dialogo con lutente si
realizza con gli strumenti di Windows cio i classici elementi "finestre" e "popup". Ogni
funzione della singola applicazione, interagisce simultaneamente con pi processi; R/3
quindi unintegrazione di processi che interagiscono in modo armonico tra loro in tempo
reale.
(Ad esempio, quando unofferta tramutata in ordine viene aggiornato lo stato dei
fabbisogni ed creato tutto liter necessario per la consegna e la fatturazione. E il sistema
stesso ad amministrare i flussi logici e a rilevare eventuali incongruenze.)
Il sistema ha unarchitettura di tipo client/server.
R/3 il software che si trova fra le applicazioni SAP e il sistema di base. Esso realizzato
per tutte le principali piattaforme UNIX, NT e AS400.
Il linguaggio utilizzato per lo sviluppo in SAP R/3 ABAP/4(Advanced Business
Application Programming), un linguaggio interpretato.
Nel mondo del lavoro cresce la domanda di figure legate al mondo degli ERP e in
particolare di SAP (che una specie di standard de facto).
Uno dei principali vantaggi del sistema SAP R/3 che un SISTEMA APERTO
che consente:
Creare del software completamente nuovo, per il quale non esiste alcun programma
standard SAP, che pu essere personalizzato per adattarsi alla propria azienda
6
I principali usi dei programmi ABAP/4 sono:
Reporting
Sviluppo di programmi di dialogo degli utenti
Personalizzazione di R/3 secondo le esigenze individuali dei clienti
Esso un linguaggio strutturato a blocchi che assomiglia molto ad un incrocio tra PL/SQL
della Oracle e PL/I della IBM.
Deve essere raggiunta la consistenza dei dati mantenendo i master data in un unico
luogo.
I componenti software devono essere progettati per essere trasportati verso nuove
piattaforme, via via che i produttori di dispositivi e di attrezzature migliorano i propri
prodotti, utilizzati per assemblare sistemi complessi.
Analizziamo con maggior dettaglio i vari strati software che vanno a formare la classica
configurazione del sistema SAP R/3:
Livello Database
Il livello database consiste in sistema centrale di database contenente tutti i dati del
sistema R/3.
Il sistema database ha 2 componenti:
Il Database Server
9
Il sistema SAP R/3 supporta i seguenti altri database di altri fornitori:
ADABAS D, DB"/400, DB2/Common Server, DB2/MVS, INFORMIX, Microsoft SQL Server,
ORACLE e ORACLE Parallel Server.
Il database non solo contiene i master data e i dati delle transazioni delle business
application, ma tutti i dati dell'intero sistema R/3 memorizzato in esso.
Ad esempio, il database contiene il controllo e i dati sotto i quali il sistema gira, il codice
dei programmi delle varie applicazioni.
Le applicazioni possono essere codice di programma , screen definition, menu, moduli e
svariati altri componenti.
Queste applicazioni sono memorizzate in una speciale sezione del database chiamata R/3
Repository. Si pu lavorare su di esso mediante l'utilizzo dell'ambiente di sviluppo dei
programmi ABAP chiamato ABAP Workbenk.
Livello Applicazioni
Il livello applicazioni consiste in uno o pi application server e un message server.
Ciascun application server contiene un insieme di servizi utilizzati per far girare il sistema
R/3. In teoria ciascun application server pu eseguire pi servizi, in pratica uno stesso
servizio pu essere eseguito tra pi application server.
Il message server responsabile della comunicazione tra i vari application server. Esso
quindi si occupa di gestire le richieste tra un application server e gli altri presenti nel
sistema. Contiene inoltre delle informazioni circa lo stato degli application server e il carico
dei dati sugli stessi. Questa informazione pu essere utilizzata per la scelta di un
appropriato server su cui far collegare gli utenti nel sistema.
Livello Presentazione
Il livello presentazione contiene i componenti software che formano il SAPgui (Interfaccia
Grafica dell'Utente). Questo livello l'interfaccia tra il sistema R/3 e gli utenti.
Il sistema R/3 utilizza il SAPgui per fornire una intuitiva interfaccia grafica agli utenti per
immettere e visualizzare i dati.
Il livello presentazione manda l'input dell'utente verso l'application server e riceve dati da
esso per poi visualizzarli verso l'utente.
10
Questo architettura software permette di includere un altro strato che fa espandere il
sistema, tale strato chiamato Internet Transaction Server
( ITS ).
11
Application Server
Per poter studiare in dettaglio le caratteristiche del linguaggio ABAP/4 sul sistema SAP/R3
bisogna analizzare in modo dettagliato l'application server.
L'application server il luogo dove vengono eseguiti tutti i programmi di SAP R/3.
La struttura dell'application server la seguente:
Work Processes
Un application server contiene uno o pi work processes (processi di lavoro), che sono dei
componenti sui quali girano le applicazioni.
Il numero e il tipo dei work process viene definito quando il sistema SAP viene fatto
partire. Ciascun work process collegato ad un area di memoria contenente le
informazioni e i dati relativi all'applicazione che sta girando.
Dispatcher
Ciascun appllication server contiene un dispatcher. Un Dispatcher il collegamento tra i
work process e gli utenti collegati con l'application server.
Questo task riceve richieste dagli utenti con il SAPgui e direziona questi verso un work
process libero. Allo stesso modo, direziona l'output risultante verso l'utente che l'ha
richiesto.
Gateway
Ciascun apllication server contiene un gateway. Il gateway l'interfaccia per i protocolli di
comunicazione del sistem SAP R/3 ( RFC, CPI/C ).
Il gataway pu far comunicare con altri application server nello stesso sistema R/3, con
altri sistemi R/3, con sistemi R/2 o con Sistemi che non sono SAP.
12
Shared Memory
Tutti i work process di un application server usano un comune area di memoria chiamata
shared memory (memoria comune ) per salvare contesti o dati locali.
Le risorse che tutti i work process ( come programmi e tabelle) usano sono contenute nella
shared memory.
La gestione della memoria nel sistema R/3 assicura che tutti i work processes siano
indirizzati correttamente nel giusto contesto.
La memorizzazione locale dei dati nella shared memory nell'application server riduce il
numero di accessi in lettura al database, con una conseguente riduzione dei tempi di
accesso da arte dei programmi applicativi.
OSS. Per un uso ottimale del buffer di memoria, si possono concentrare le applicazioni
individuali (financial accounting, logistica, risorse umane ) in gruppi separati di application
server.
Connessione al database
Quando si avvia il sistema R/3, ciascun server application registra i suoi work process nel
livello database, e riceve un singolo canale dedicato.
Finch il sistema R/3 sta girando, ciascun work process un client del sistema database
che fa da server.
Work Processes
Struttura dei work process
Ciascun work process contiene 2 processori software ed un interfaccia al database.
Screen Processor
Nei programmi che utilizzano applicazioni R/3 c' una differenza tra interazioni utente e
processi logici.
L'interazione con l'utente viene gestita dai screens, che sono programmi che controllano
l'interazione tra utente e sistema.
13
Il sistema R/3 prevede uno speciale linguaggio per permettere la programmazione dei
screen, tale linguaggio contenuto nell'ABAP Workbench.. Questi programmi risiedono
nel processore degli screen.
Il compito di uno screen quello di gestire la comunicazione attraverso delle maschere tra
gli utenti e il sistema, ricevendo in input dati e fornendoli all'utente come output.
ABAP Processor
Il processo logico di un programma applicativo scritto in ABAP che come sappiamo il
linguaggio di programmazione su xcui si sviluppato il sistema SAP.
Il processore ABAP esegue il processamento logico dei programmi applicativi e comunica
con il database interface.
Lo screen processor comunica con al processore ABAP, attraverso lo screen flow logic,
quale il prossimo modulo che deve essere processato.
Database Interface
Il database interface svolge i seguenti servizi:
Controlla le transazioni
14
Parte Dichiarativa
La prima parte di un programma ABAP la parte dichiarativa di dati globali, selezione dei
screen e classi.
Queste consistono di:
15
Blocchi di processo
La seconda parte di un programma ABAP contiene tutti i blocchi di processo di un
programma ABAP. I blocchi di processo possono essere:
Moduli di dialogo
Blocchi di evento
Tipi di programmi
Nel sistema R/3, ci sono vari tipi di programmi ABAP. Il tipo di programma determina degli
attributi di base del programma stesso, che possono essere settati al momento della
creazione del programma stesso.
Ci sono due possibili modi per permettere agli utenti di far eseguire un programma:
16
Tipo 1
Tipo M
I programmi di Tipo M possono essere controllati utilizzando gli screen flow logic.
Si pu far partire tale programma usando il codice di transazione, in questo modo viene
chiamato lo screen iniziale.
I programmi ABAP di tipo M contengono i moduli di dialogo appartenenti ai vari screen.
Essi vengono anche chiamati module pools.
Tipo F
I programmi di Tipo F contengono le funzioni dei moduli, conosciuti anche come function
groups. Per poter definire tali programmi viene utilizzato il Function Builder che un tool
di ABAP Workbench.
I function groups possono contenere dichiarazioni di dati globali e subroutines.
Tipo I
I programmi di Tipo I, chiamati anche fppos, sono il mezzo per dividere il codice di un
programma in piccole unit maneggevoli.
Si possono cos inserire all'interno di programmi altri programmi attraverso l' istruzione
INCLUDE.
All'interno di Abap Workbench c' un meccanismo automatico che permette di dividere
moduli e gruppi di funzione attraverso degli include programs.
17
Blocchi di processo
In questa sezione vengono descritti i vari blocchi di processo che possiamo trovare in un
programma ABAP.
Dialog Modules
Il verificarsi di un certo evento provoca una determinata reazione da parte del sistema:
<event keyword>
event statements
<event keyword>
event statements
18
Il Database Logico
Il database logico uno speciale programma ABAP che legge i dati dalle tabelle del
database. Esso viene utilizzato per poter eseguire programmi di Tipo 1. A runtime si pu
considerare il database logico e i programmi eseguibili (reports ) come un singolo
programma ABAP, i blocchi di processo sono chiamato dal sistem program in una
particolare sequenza predefinita.
SAP supporta il database logico per ogni applicazione.
19
Il linguaggio ABAP
Il codice sorgente di un programma scritto in ABAP consiste di istruzioni ABAP e di
commenti.
Per quanto riguarda i commenti, possono essere definiti tra i simboli * (all'inizio di una
linea ) e " (in ogni posizione di una linea ).
Le istruzioni ABAP iniziano sempre con una ABAP keyword ed conclusa da un punto (.) .
Dichiarazioni
Definiscono il tipo di dato o dichiarano oggetti che possiamo trovare nei programmi ABAP.
Esempi di dichiarazioni:
TYPES, DATA, TABLES
Istruzioni di Modularizzazione
Queste istruzioni definiscono i blocchi di processo nei programmi ABAP.
Si possono suddividere in:
Event Keywords
Si utilizzano tali istruzioni per definire blocchi di evento:
AT SELECTION SCREEN,
START OF SELECTION,
AT USER COMMAND
Defining keywords
Istruzioni che permettono di definire subroutines, function modules, dialog modules e
metodi:
FORMENDFORM, FUNCTIONENDFUNCTION,
MODULEENDMODULE.
20
Strutture di controllo
Le istruzioni di controllo all'interno di un programma ABAP sono le seguenti:
IF ,
WHILE,
CASE
Istruzioni di chiamata
Le istruzioni per chiamare blocchi di processo definiti usando le istruzioni per la
modularizzazione sono le seguenti:
PERFORM, CALL, SET USER-COMMAND, SUBMIT, LEAVE TO
Istruzioni operazionali
Queste istruzioni processano i dati definiti nelle dichiarazioni, esempi sono:
WRITE, MOVE, ADD
Open SQL
Open SQL un sottoinsieme di istruzioni dello linguaggio standard SQL92.
Esse contengono solo istruzioni per il Data Manipulation Language (DML) quali possono
essere:
21
I programmi ABAP che utilizzano solamente istruzioni OpenSQL per accedere ai database
sono pienamente portabili su tutte le piattaforme.
Il database interface si occupa della conversione dei comandi di OpenSQL nei comandi di
altri possibili database.
Native SQL
Le istruzioni di Native SQL sono passate direttamente dal database interface al database
senza una conversione e permette l'utilizzo dei comandi DDL.
Il dizionario di ABAP utilizza Native SQL per i task che utilizzano le tabelle dei database. I
programmi ABAP utilizzano le istruzioni di Native SQL solo quando devono lavorare su un
database specifico, perch tali programmi non sono standardizzati per interfacciarsi con
SQL92.
22
Strutture
Una struttura e una sequenza di tipi di dato definita dall'utente. Si pu accedere all'intero
oggetto oppure ad un componente individuale
Tabelle Interne
Le Tabelle Interne consistono in una serie di linee che hanno tutte lo stesso tipo.
Vengono utilizzate per memorizzare dati presenti nel database all'interno del programma.
Esse sono caratterizzate da:
Il tipo di linea : che pu essere dati per ABAP, un tipo elementare, una struttura o una
tabella interna.
Una chiave: utilizzata per poter identificare le entrate alla tabella. Ovviamente tale
chiave unica.
Il tipo di accesso: determina quale tipo di accesso viene fatto alla tabella da parte dei
programmi. Ci sono tre modalit di accesso:
Quando definiamo una Tabella Interna specifichiamo solo la dimensione degli oggetti su
cui andiamo ad operare, cio fissiamo la lunghezza delle righe.
Il numero di righe invece adattato dinamicamente a runtime.
23
La gestione in base alle caratteristiche dell'ambiente, eseguita con due strategie diverse.
Se il file localizzato nel File System del rispettivo Application Server,
24
SAP R/3
READ DATASET
File
Record
Programma
ABAP/4
TRANSFER
Application
Server
25
SAP R/3
WS_UPLOAD()
Tabella
Interna
File
Sistema
Locale
Programma
ABAP/4
WS_DOWNLOAD()
vale a dire nel personal computer o della workstation, i precedenti comandi non sono pi
utilizzabili.
Il file in questo caso locale e deve essere gestito con altri comandi.
Il file viene quindi gestito con due funzioni di sistema dedicate a tale scopo:
WS_DOWNLOAD(), per la scrittura dei dati;
WS_UPLOAD(), per la lettura dei dati.
Per l'utilizzo corretto di queste funzioni indispensabile operare con Tabelle Interne,
dichiarando una struttura in grado di contenere correttamente le informazioni che devono
essere trasferite.
La struttura pu essere dichiarata direttamente nel programma con le istruzioni:
010 DATA: BEGIN OF myTable OCCURS 10.
020 field(2) type c,
030 field(12) type c.
040 DATA: END of myTable.
26
Altrimenti se la struttura utilizzata da pi programmi, allora, pu essere dichiarata nel
dizionario dati, utilizzando il tools ABAP/4 Dictionary e richiamata come segue:
010 DATA: BEGIN OF myTable OCCURS 10.
020 INCLUDE STRUCTURE zmystruct.
030 DATA: END of myTable.
Nel corso del programma alla tabella interna saranno assegnati dei valori e al termine sar
utilizzata dalla funzione di trasferimento.
Supponiamo ad esempio, di voler trasferire delle informazioni sulle spedizioni che
dovranno essere effettuate. S'invia quindi il codice cliente, i riferimenti dell'ordine, ecc.
Queste informazioni sono l'input di un sistema esterno che rileva e associa tali dati.
Successivamente un programma ABAP/4 legge il file locale generato e trasferisce le
informazioni nel sistema R/3. In questo modo il programma completa il documento di
spedizione.
Dopo aver eseguito la lettura del file vengono assegnati dei valori alla tabella, quindi il
contenuto pu essere utilizzato per aggiornare la base di dati.
27
SAP R/3
Object
Sistema
Locale
Programma
ABAP/4
Tabelle
App. OLE
Gli oggetti OLE, che si vogliono usare in R/3, devono essere registrati nelle tabelle relative
a tale scopo. In esse sono contenute le informazioni per richiamare i server OLE da
programmi ABAP/4 e le informazioni legate all'oggetto. L'aggiornamento, l'inserimento o la
cancellazione di elementi nella tabella demandata al DB-Administrator.
Ogni qualvolta che si utilizza la tecnologia OLE i dati subiscono una doppia conversione di
tipo:
28