Summary of The SAP Ecosystem and Functional Software Review Last time – we looked at various topologies for implementing enterprise systems This time – we will look at how SAP provides a “fairly” complete infrastructure for System System System System configuration development and customization testing deployment Lecture Structure It’s a high-level overview of SAP / R3 Breadth not depth at this point I’ll breeze through many screens to demonstrate navigation through the SAP GUI Course Simulations We will use three separate SAP instance throughout this course Global Bike configuration ABAP Web Dynpro And possibly some sort of integration tool Introduction (Roles and Responsibilities) This is my taxonomy Developers customize SAP Administrators designate roles to other users and tune the system Responsible for security administration Responsible for deployment activities Implementers configure SAP Third party integrators interface SAP with other software packages And of course, the users SAP Architecture (Introduction) Keep in mind that this is the most complex software package that you have ever seen It’s been around for a very long time and has remained backward compatible It’s written in and developed by Germans SAP Architecture (Introduction) From BC ABAP Programming SAP Logical Architecture (1) Underneath, there is a database and a database management system SQL Server, ORACLE and MaxDB are supported The R/3 Basis is really an operating system within an operating system The Basis is it’s own virtualization system too There is no user contact with the underlying operating system SAP Logical Architecture (2) SAP Basis is the fabric on which all sap applications run This fabric runs on top of a host OS UNIX (AIX, HP-UX, Solaris, Linux) Windows … IBM mainframe systems ABAP program execution is managed by the ABAP (managed runtime) and the SAP kernel SAP and the Database SAP uses a logical database ABAP programs are stored in the SAP database SAP supports We don’t usually touch the underlying ORACLE / SQL server / whatever database IBM DB2, Informix, MaxDB, Oracle, Microsoft SQL Server A similar model exists for the Web application Server SAP Logical Architecture (3) ABAP workbench is the development environment with which you write, debug, and test ABAP applications ABAP is the programming language of SAP and resembles COBOL An R/3 application has special meaning It’s an ABAP program It’s has a well-defined structure SAP Logical Architecture (4) Our presentation component will be the NetWeaver program that you used in IS 365 All user interaction is through the presentation component SAP Layers SAP is built using three layers SAP (Database Layer) SAP interacts with other RDMSs (ORACLE, SQL Server, DB2, INFORMIX, etc… However, the database layer stores everything for the entire SAP “instance” ABAP code User accounts SAP (Application Layer) Application servers run ABAP applications We typically have many of them The server group is load balanced Message server communicate state information between application servers More later SAP (Presentation Layer) It’s NetWeaver We will not get into the topic yet but there is much that can be done with Netweaver The presentation layer interacts with the application layer in a very structured way As you complete screens, you perform dialog steps” Control passes back and forth between the presentation layer and application layer SAP (Presentation Layer) Application Server (Structure) Application servers are responsible for two things Dispatching work across a network of application servers Performing work (work processes) Execute dialog steps Gateways communicate with other application servers Shared memory is used to persist application context Application Server (Illustration) The SAP Programming Model (1) This discussion is based on the cardinal rule that the database can never be left in an inconsistent state or a transaction be lost But we might have thousands of users concurrently recording transactions You should see the synchronization problem The SAP Programming Model (2) Executing an application (transactions) is done by completing one or more dialog screens Each screen is called a dialog step Each dialog step corresponds to a database Logical Unit of Work LOW ABAP provides constructs to bundle several DB LUWs into a SAP LOW THE SAP LUW Structure of a Work Process Types of Work Processes Work processes have different types Dialog work process work with user requests to execute dialog steps Update processes execute database updates that are parted of a bundled SAP UOW Background processes are executed without user interaction Enqueue processes are used for locking Spool processes are used for printing and archiving Summary An application program has one or more screens which are processed by the screen processor of a work process The processing logic of a program gets data from screens, processes it, and returns data to screens Screens Unlike the VB form with which you are familiar, the ABAP screen is much more structured Two types Screens have a definition and flow logic created using a screen painter Selection screens and lists provide a simplified way to select data for a list or report ABAP Program Structure ABAP programs execute within individual dialog steps A program is divided into processing blocks ABAP Program Declare global data here Create selection screen definitions Dialog modules, event blocks, and subroutines are all processing blocks We will delve into the structure more later Types of ABAP Programs (1) A program’s technical attributes and capabilities are determined by its type Type 1 programs are executable programs They do not need to be controlled by screens Type 1 programs are often called reports Type M programs are controlled through screen flow logic and must be started from a transaction code Types of ABAP Programs (2) Type F programs are function modules containing reusable function Type I programs are includes Includes just break up programs into smaller chunks. Implementer (Introduction) In my opinion a formal definition gets a bit fuzzy here We use the IMG to configure (customize) the system We use the SAP system itself to create all sorts of “master data” Production schedules You did some of this in IS 365 (IMG) Introduction IMG is short for Implementation Guide It contains all of the actions to implement, control and document the SAP system General Settings Enterprise Structure Financial Accounting And all of the functional sub systems (IMG) General Settings Country settings (countries in which we do business) Currencies in which we do business Public calendars containing holidays, workday configuration Once configured these are either hard to change or cannot be changed IMG (Enterprise Structure) Here, we describe our organizational structure to the SAP system (Organizational Units) It’s not easy to change the organizational structure once it has been created IMG (Enterprise Structure – Parts) Financial accounting Controlling accounting Logistics Sales Materials Management Plant Maintenance Production HR SAP Development (Interface) The Object Navigator is the entry point into the ABAP objects (programs) (Transaction code SE80) The ABAP Editor is used to create, edit, test, and debug ABAP applications The Data Browser lets you look at the SAP tables from the SAP / ABAP API … And Much More Object Navigator It’s used to organize programing in the SAP integrated development environment Repository Browser is the primary code storage area The Repository Information System is used to search for programming objects The Transport Organizer manages changes made during configuration and development and propagates (transports) changes to test and production systems Repository Browser (Object Lists) The application hierarchy contains all development objects A package contains logically related development objects In this class, we will create local objects, which are not transported to QA / production systems Packages (Contents) Packages contain many things Programs containing fields, events, subroutines, screens, and so on Function groups are containers for functions (external procedure calls) Dictionary objects contain (roughly speaking) references to SAP data Remember, all data is processed through the SAP API SHOW PACKAGE FARC Classes / Interfaces SAP supports an OOP approach to development using classes and interfaces