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