Transcript CHAPTER 1
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 various separate SAP instances
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, MaxDB, and HANA 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)
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 (3)
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
EVERYTHING!
SAP (Application Layer)
Application servers run ABAP applications
We typically have many of them
The server group is load balanced
A message server communicates 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 operate 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 functiond
Type I programs are includes
Includes just break up programs into smaller
chunks.
Administrator (Overview)
Performance
User and role management
Deployment of test and production systems
Administrator (Tuning)
Significant system management and
performance tuning is necessary in large
enterprises
We can tune and monitor memory management
In some enterprises we have HTTP and other
services
System monitoring
Administrator (User Groups)
User groups allow user administration to be
distributed among several administrators
Groups are also used to perform “mass
maintenance” on several users
Transaction code SUGR to show user groups
Administrator (Roles)
Access to resources is granted through roles
Roles are hierarchical and have different
types
Single roles contain authorization data
Composite roles are created using multiple
composite roles, which are then assigned to
users
SAP ships with predefined bundle of standard
roles (single and composite)
Administrator (Roles)
Transaction code PFCG to view roles
We are in role Z_ABAP
Administrator (Roles)
Roles
Administrator (Deployment)
SAP manages deployment of system changes
from development to training to test to
production
Other system types can be defined
The process is called transport (more in a
moment)
Administrator (Other)
Data must be archived
System performance needs to be monitored
and tuned
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) (Illustration)
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
Definement and Assignment
Configuration of the enterprise structure (and
many other components) requires a two-step
process
Definement
Create organizational structures
Assignment
Assign those organizational structures to other
organizational structures
Definement and Assignment
(Examples)
You define company codes and assign them
to a company
You define credit control areas and assign
them to a company code
There are hundreds of these
We will get through many of the core
functions in this course
IMG – Business
Configuration (BC) Sets
In this class, we will “globally” configure
system elements using the “SAP Reference
IMG”
In practice, we use BC sets
BC sets can be created for specific processes
These BC sets can be deployed separately
SAP provides numerous BC sets for industries
and industry sectors
We can create our own BC sets too
BC Set (Implementation)
Types:
Simple BC sets contain configuration data
Hierarchical BC sets contain other BC sets
The hierarchy can be nested
Attributes
Name
Type
Release information
Change information (person, date time)
SAP Transport (1)
In SAP, instances (clients) are provisioned
into different types
Development (created from production backups)
After development is complete, the system is
copied to a “test / QA” system
Then to a “consolidation system”
Finally, the test system is deployed to the
production system
Custom intermediate systems can also be
created
SAP Transport (2)
The Transport Organizer is the tool used to mange
transport of BCs and development code from one
instance to another
Transaction code for the Transport Organizer is
SE01
STMS for the Transport Management System
SAP Development
THIS IS A MONSTER
Unlike most development environments you
are used to, all code (programs) are stored
inside of the SAP instance itself
Code is deployed using transports mentioned
previously
There are different types (categories) of code
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
Object Navigator (Illustration)
Select object type from
Object List
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
SAP Runtime Architecture (1)
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 Runtime Architecture (2)
A SAP system consists of
One or more instances (application server)
accessing a centralized database containing
All data
All programs (ABAP and other)
The database interface handles marshals
communication between the SAP system and
the relational database
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
Transactions
Roughly speaking, a logical unit of work
In the SAP context, it means a calling and
executing an ABAP program that perform an
indivisible operation on data
Corresponds to a transaction code
ABAP (History)
Acronym:
Allgemeiner BerichtsAufbereitungsProzessor
Generic report preparation rocessor
Advanced Business Application Programming
Created back in the 1980s
Looks very much like COBOL
SAP itself, is written in ABAP
ABAP (Introduction)
There are two types of executable (ABAP)
programs
Reports
Enter a set of parameters
Generate a report based on those parameters
Module pools
More complex screen and flow logic (these are
dynpros or dynamic programs)
ABAP (Creating a First Report)
Activate the ABAP Editor (Transaction code
SE38 )
You must have the developer key I gave you)
Create a program
Save and activate the program
Run the program
ABAP Editor (Initial Screen)
Start program names with Z_ as in Z_Ekedahl
(Some names are prohibited by SAP)
ABAP Editor
(Create / Change Attributes)
Type: for now Executable Program but
other program object types are selected here
Status: We will
create
Test Programs
ABAP Editor
(Specify the Package)
Executable programs belong to a package
There is a “special” package named $Temp
that is never transported
ABAP Editor
(Creating the Code)
My opinion – it’s a pretty good development
environment
Supports intellisense, code highlighting, and a
robust debugger
Most of you have never seen COBOL, but it
looks like COBOL!
ABAP Editor
(Creating the Code)
REPORT statement names the program
The argument Z_EKEDAHL is the name of my
first report
Statements end with a period
WRITE statement prints to the output (report)
stream
Run the Report
To run a report, it must be activated
Programs must be activated after they are
saved
Press F8 to run
Getting Started with
the ABAP Dictionary
Remember that we work with data logically
through ABAP, rather than operating on the
physical database
The database layer supplies extensive
metadata beyond most native databases
Transaction code SE11 gets us to the ABAP
dictionary
Transaction code gets us to the DataBrowser
We will look at MARA (Material Master Record)
Data Browser
Select the desired table
You need to know the table names and meaning
of fields
Data Browser (Table Output)
ABAP Dictionary
Search for table