SAP: ERP nel cuore del 'Sistema Azienda' Dott. Alessandro Ciampichetti Analista SAP
Indice ERP Client/Server vs. Host-Based SAP 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
ERP - Enterprise Resource Planning
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
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
ERP - Caratteristiche Architettura client/server a 3 livelli (presentation, application e database)
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, ...)
Client/Server versus Host-Based
Client/Server Host-Based Architetture a confronto Più processori application LAN WAN Client Application Più processori Molti luoghi Controllo del flusso di lavoro (event driven) Database relazionali Indipendenza applicazione - dati 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 Function Presentation Gli stili Distributed presentation Remote presentation 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
C/S: Rischi per l’azienda Incremento complessità SI Variazioni organizzative Incremento dei costi operativi e/o di sviluppo (nelle fasi iniziali)
Systems, Applications, Products in data Processing
R/3 Il Sistema R/3 Client / Server ABAP/4 CO AM PS WF IS MM HR SD PP Controlling AM Fixed Assets Mgmt. PS Project System WF Workflow IS Industry Solutions MM Materials HR Human Resources SD Sales & Distribution PP Production Planning QM Quality FI Financal Accounting PM Plant Maint.
R/3 Il Sistema R/3 Customizing ALE EDI XXL DMS Online Service System CORBA/(D)COM BAPI EDI ALE Sistemi SAP Altri sistemi
Architettura logica
Architettura logica SAP Applications Application Modules Data System software and Platforms Data Dictionary Screen Interpreter ABAP/4 Interpreter User Interface Communication Intercafe
Architettura fisica
Architettura fisica Presentation Application Database Central System Remote Presentation Two-tier Client/Server Three-tier Client/Server Multi-Layer Cooperative Client/Server
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 Presentation Application Lan, Wan, WEB Database Lan (>10 Mbit/sec), FDDI
Topologia di rete
Piattaforme supportate Java AWT Web Browser MS Windows OSF/Motif OS2 Mac Presentation COM/DCOM ActiveX Corba HTTP/XML MQ - Series MSMQ Middleware ABAP/4 (Objects) C/C++ Java Linguaggi Ababas IBM DB2 /UDB /400 /390 Informix MS SQL Server Oracle RDBMS Unix NT Midrange Mainframe SO HP UX IBM AIX Sun Solaris Linux Siemens OS/390 OS/400 S/390 AS/400 Alpha Intel Compaq Digital PA Power PC Sparc MIPS Architettura
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)
Dizionario Dati
Dizionario Dati - Oggetti Base Tabella Tabella Dominio Usa Elemento dati Usa Campo Routine di conversione e controllo valori associate ai domini Dominio come meta-classe ed Elemento dati come classe Tabelle: definizione logica
Dizionario Dati - Componenti Tabelle Pool Cluster Viste Search-help Lock Domini Elementi dati DD Indici secondari Relazioni Valori Campi
Dizionario Dati - Integrazione Presupposto: modalità interpretativa Rigenerazione automatica dei programmi a fronte di modifiche nel DD, rigenerazione (attivazione) degli oggetti DD dipendenti
Transazioni
Transazioni: concetti generali TCode Evento GUI Dialog step
Transazioni: ambiente di sviluppo Sequenza di schermate ( Dynamic Processing, Dynpro ) Process After Input - PAI Process Before Output - PBO Programma di dialogo ( Module pool ) DB Dialog processor ABAP/4 processor
Il Sistema R/3
Sistema R/3: Istanza Definizione: ‘Installable administration unit’ Sistema R/3: consiste di 3 livelli di servizi Presentation SAPGui Client Istanza Application SAP Server Server Database 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)
Sistema R/3: Application Server Dispatcher AS Process request Work process ... Gateway S: Print formatting (Spool) E: SAP lock admin. (enqueue) G: Gateway D: Dialog V: Update B: Background processing
Mandante (Client) Partizione logica del DB; corrisponde all’unità organizzativa di più alto livello 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)
Livelli di modifica e trasporti
R/3 Basis Software di sistema Livelli di modifica Sviluppi Custom 3 Enhancement 2 Customizing 1 R/3 Basis Software di sistema ABAP WB Progr Cust. exit 1 Cust. exit 2 Classe di sviluppo Modifiche (Repair) 4 Applicazioni R/3 (SAP standard) OSS
Sistema trasporti 3 1 2 Transport Info system 1. Rilascio Produzione Sviluppo Test Transport Info system 1. Rilascio 2. Esportazione 3. Importazione 1 2 3
Chiavi repository oggetti creati/modificati Sistema trasporti Workbench/Customizing Organizer Chiavi repository oggetti creati/modificati R3TR TRAN ZA01 R3TR PROG SAPMZCAQ LIMU REPS MZACQTOP ... Task Change request Task
Organizzazione DB
DB: Tablespace (Oracle) DATABASE TABLESPACE 1 ... TABLESPACE n Tabella A: comprende 4 extent KEY Tabella B: comprende 2 extent Spazio libero da essere allocato come 1 o più extent Extent Data file 1 Data file 2 A0 A1 B1 B0 A2 A3 Database block
asyncronous update (U2) DB: Update DB Update request Component1 Component2 Componentn ... Call f1 Call f2 Call fn Critical syncronous update (U1) Non Critical asyncronous update (U2) Update request
LUW (Logical Unit of Work) DB: Update DB LUW (Logical Unit of Work) U1 D1 D2 D3 Commit Rollback Singolo AS/WP D4 D5 DB LUW U2 Commit e Rollback indipendenti (update task)
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
ABAP Workbench
Ambiente di sviluppo integrato Function library (API) M e n u P a i t Screen Painter ABAP/4 r Data Dictionary Screen Interpreter ABAP/4 R F C P I System software and platforms System interfaces Flow control
Advanced Business Application Programming ABAP/4 Advanced Business Application Programming
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
Struttura di un programma Sezione Identificativa Report <name>. o Program <name>. Parametri di selezione Parameters: … o Select-options: ... Sezione Dichiarativa DATA: TABLES: CONSTANTS: Sezione Procedurale MOVE ...... ...... WRITE .......
Gestione degli eventi Module pool: PAI e PBO Struttura di un report REPORT <name> DATA.: ..… PARAMETERS: ... SELECT-OPTIONS: ... AT SELECTION-SCREEN. . TOP-OF-PAGE. END-OF- PAGE. START -OF - SELECTION. END-OF-SELECTION. Struttura di un report Esecuzione di un report Start of selection Top page End Module pool: PAI e PBO
Dichiarazione dati Riferimento a campi interni (legame statico) DATA: NAME1(25) TYPE C, NAME2 LIKE NAME1, NAME3 LIKE NAME1. Riferimento a campi interni (legame statico) DATA: BEGIN OF SALES_REC, NAME1 LIKE LFA1-NAME1, CITY LIKE LFA1-ORT01, SALES LIKE LFC3-SOLL, END OF SALES_REC. Riferimento a campi DD (legame dinamico) DATA: BEGIN OF TABLE OCCURS 10. INCLUDE STRUCTURE T001G. DATA: END OF TABLE. Riferimento a intere strutture DD (legame dinamico)
Tabelle interne APPEND <tabella interna>. : carica il contenuto del record di buffer alla fine della tabella interna. Paese Vendite D 100 F 500 GB 1100 I 5000 Buffer (Header Line) Tabella interna COLLECT <tabella interna>. : 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. Buffer (Header Line) Tabella interna Paese Vendite D 100 F 500 GB 1100 5000 5100
Form Chiamata interna Chiamata esterna Chiamata in una libreria PROGRAM RSDEMO1 Chiamata sub. TASSE Definizione Form TASSE ( Calcolo Tasse ) Chiamata esterna PROGRAM RSDEMO4 Def.Form TASSE ( Calcolo Tasse ) PROGRAM RSDEMO2 Chiamata FormTASSE Chiamata in una libreria di funzioni ABAP/4 Function library Function module TASSE ( Calcolo Tasse ) PROGRAM RSDEMO3 Chiamata funzione TASSE
Non sono implementate le funzioni Funzioni di libreria CALL FUNCTION ‘<nome>‘ EXPORTING <parametri> IMPORTING <parametri> TABLES <parametri> Exceptions <eccezioni>. Non sono implementate le funzioni
ABAP SQL Accesso ad un singolo record Lettura di più record SELECT SINGLE * FROM <tabella> WHERE <campo chiave 1> = <campo 1> AND <campo chiave 2> = <campo 2> ......... AND <campo chiave n> = <campo n>. Accesso ad un singolo record ... ...... .... ..... Data Base 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. 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>. Caricamento tabella interna ... .... Tabella interna Data Base
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
ABAP Objects Concetto di classe locale e globale Tools: object browser / class builder, libreria ‘grafica’ Garbage collector Evoluzione del sistema: ABAP/4 ABAP Objects
ABAP Objects DATA CREF TYPE REF TO C_COUNTER 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. METHOD GET_COUNTER. GET_VALUE = COUNT. ENDCLASS.. 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.
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
CRM - Mobile Sales