Professional Documents
Culture Documents
Table of Contents
Subscription Information
Past Articles Index and Subscription Order Form 59
1
The Essential Guide to SAP R/3 Upgrades
PUBLISHER
SAP Professional Journal
P.O. Box 90608
Washington, DC 20077-7637, USA
(877) 947-3012 toll-free
(301) 287-2678 phone
(301) 816-0037 fax
customer@SAPpro.com
www.SAPpro.com
EDITOR-IN-CHIEF
Bonnie Penzias
Bonnie.Penzias@SAPpublications.com
MANAGING EDITOR
Heather Black
Heather.Black@SAPpublications.com
EDITORS
Kristine Erickson, Celeste Frey, Susan Rona
TECHNICAL EDITOR
Thomas G. Schuessler, ARAsoft
tgs@arasoft.de or thomas.schuessler@sap.com
CREATIVE DIRECTOR
Bob Oakley
DESIGNER
Mary Rezetka
PRODUCTION MANAGER
Farrah Behbahani
MARKETING MANAGER
Jonathan Kent
JKent@SAPpublications.com
EDITORIAL BOARD OF DIRECTORS
Keith Elliott, Diane L. Gottheiner, Karl Kessler, Heinz-Ulrich Roggenkemper
SUBSCRIPTIONS
SAP Professional Journal (ISSN 1524-7767) is published bimonthly. An individual subscription
(six issues) is $495. Volume subscriptions available.
DISCLAIMER
Although we use reasonable care to produce SAP Professional Journal, we cannot assume any
liability for its contents. In no event will SAP Professional Journal be liable for costs or damages,
direct or indirect, including special, remote or consequential damages, even if SAP Professional
Journal has been advised of the possibility of such damages, from any cause, whether in contract,
tort or strict liability, in excess of the subscription fee paid by the subscriber.
CHANGE OF ADDRESS
If you plan to relocate, please give us 4 - 6 weeks notice to ensure that you do not miss any
issues. Postmaster: Send address changes to SAP Professional Journal, P.O. Box 90608,
Washington, DC 20077-7637, USA.
TRADEMARKS
SAP is a registered trademark of SAP AG. All other registered trademarks are the property of
their respective holders.
2
Upgrading to R/3 Release 4.5 and Beyond: An ABAP Developers Guide
Upgrading to R/3
Release 4.5 and Beyond:
An ABAP Developers Guide
Steven Shi and Jun Qian
The verdict is in! You have just learned that your company has decided
to upgrade your SAP R/3 system to the latest release (either Release 4.5
or 4.6).
Thats great news for users, who stand to benefit from a host of
new and enriched functionality, including integration of Internet tech-
nology, Euro functionality, a more intuitive graphical user interface, and
many new features in every functional area. Its also great news for
development teams, who stand to benefit from a wide range of new
ABAP development tools and functions.
Steven Shi is a senior software
engineer with Storability, Inc., which
specializes in high-end enterprise Of course, once that initial wave of euphoria wears off, you realize
storage area networks. He has that in the high-tech world where we all live, nearly all good things
extensive experience in SAP logistics come with a price tag. An R/3 upgrade is no exception. Upgrading to
and ABAP development.
Release 4.5 or 4.6 will introduce lots of wonderful new features and
enhancements to your R/3 environment, but dont underestimate the
amount of effort required for this major undertaking.
ABAP Enhancements
Before you upgrade to the new release, its Modification Assistant and Modification
a good idea to familiarize yourself with the Browser4: This new tool, integrated into the
following ABAP enhancements, even if you do ABAP Workbench Editor, works behind the
not plan to deploy these new features during scenes to register all the modifications you
the initial upgrade: make to objects in the standard system in a
separate layer in the ABAP Workbench. It
can help you simplify future upgrade efforts,
Business Add-Ins 2: These pre-planned SAP
as well as organize existing modification
program exit points are similar to CMOD/SMOD
projects. By using the Modification Assistant,
enhancements in Release 3.0. However,
SAP will automatically log changes for you;
Business Add-Ins differ from CMOD/SMOD in
during future upgrades, SAP will be able to
that they employ stronger object-oriented (OO)
use this information to determine whether
programming techniques, allow for multiple
some of these changes can be adapted
levels of software development, and can be
automatically. Using this tool will save you
defined according to filter values so that you
significant time and effort in subsequent
can control Add-In implementation based on
upgrades. A standalone transaction
specified criteria, such as a particular country
(transaction SE95) lets you easily view
value.
modifications in the current system. Choose
to see any or all modifications, whether or
SAP Forms3: Before you start modifying not you made them via the Modification
SAPscripts, be sure to check out the new and Assistant. Previously, there was no
improved SAP Form functionality. The new systematic way to review all the modifications
graphical editing tool (PC Editor), syntax in your system. The only way to obtain this
checking tool (Text Check), and the external information was to gather information
PERFORM statements, which allow you to from myriad sources, including user
call your own code programs right in documentation and jogging ones memory,
SAPscript, make writing forms faster and and performing many painstaking
easier. analyses.
import all the changes you consolidated in the holistic view of your current SAP installation. It is
DEV system to the PRD system, and monitor an excellent opportunity to remove obsolete objects;
some critical processes in the system that relate improve, organize, and document existing ones; and
to your development objects. get rid of unnecessary modifications.
The good news is that an upgrade affords you a Given this list of opportunities, performing an
R/3 upgrade is clearly not a one-person effort. You
need to assemble a cross-functional team to meet
2
For more information on Business Add-Ins, refer to Karl Kesslers these challenges, just as you would for an initial
article, Extending and Modifying the SAP Standard with Business implementation.
Add-Ins and the New Modification Assistant, in the Premiere Issue
of the SAP Professional Journal.
4
3
For more information on SAP Smart Forms, refer to Christoph For more information on the Modification Assistant, refer to Karl
Wachters article, From New Graphical Tools to SAP Smart Forms Kesslers article, Extending and Modifying the SAP Standard with
The Next Generation of SAPscript, in the November/December Business Add-Ins and the New Modification Assistant, in the
1999 issue of the SAP Professional Journal. Premiere Issue of the SAP Professional Journal.
etc.), form, report, Data Dictionary objects, ZZCUSOBJ (yes, yet another Z program!).
modifications, etc. The source code is available for free at
the SAP Professional Journal Web site at
Transaction code associated with the object
www.SAPpro.com. Follow these instructions to
Function module associated with the object install and run the program 5:
Direction (for interfaces): Inbound or outbound, 1. Create a program ZZCUSOBJ (the program type
with inbound generally taking priority over should be 1 for online program), and assign it
outbound the status of test program. Then save this pro-
Frequency: Upgrade frequently used objects first gram as a local object onto your system.
(for example, wait until the end to upgrade a
report that only runs once a year) 2. Next, upload the source code you downloaded
from the Web site into the program. Save the
Business criticality program.
Business process owner
Technical tester 3. To run this program, you can use transaction
code SE38, then type in the program name
Functional tester ZZCUSOBJ. Click on the Execute button.
Technical test result: Does the object pass syntax
check? For programs, do they pass program 4. On the programs selection screen, enter the
generation? For reports, can you run them and customer naming range and/or development
get results back? class.6 You also need to supply a PC file name
Functional test result: Does the object perform for the results to be downloaded.
correctly in the business process?
Other notes Once the program is executed, it will display a
log of the programs that have just been downloaded
to your PC in a tab-delimited text file. For ease of
! Tip analysis, you may want to open this file in a desktop
Based on our experience, we also suggest database software program, such as Microsoft Access.
that you define contingency plans for key The file includes the attributes contained in SAP table
business-critical objects in case of upgrade TRDIR (i.e., program type, application area, author,
failure. Spending this time now will save you etc.), plus the associated development class, descrip-
countless hours of costly production and/or tion, and any transaction. When you enter the cus-
business downtime later. For example, if tomer naming range, note that the range encompasses
your production bar code interface fails after more than simple Z programs. For example, the
the upgrade, do you have an alternative customer naming range for module pools is SAPMZ*
manual process in place to continue and for customer function groups is SAPLZ*. You
production until the interface is fixed? will find a complete list of SAP naming conventions
posted on www.SAPpro.com.
Classifying Development Objects Now comes the fun part. You must now decide
and Modifications what efforts, on average, are needed to convert each
object type. Obviously, there is no standard guideline
Next, you need to classify each custom development on how to come up with this number, since everyone
object in your inventory according to its type. works at a different pace. You need to rely on
Why is this classification necessary? Well, in your experience and expertise, and dont forget to
this early planning stage of your upgrade project, bounce any assumptions off each other in the project
you need to come up with a reasonable estimate team. For your reference, weve included a sample
of the efforts required to complete the development estimate spreadsheet in Figure 3. Remember, this is
tasks. To do this, you need to know exactly how not meant to be a guideline on how much effort is
many custom programs would need modification needed in your particular project!
in an upgraded environment. This is where the
classifying of objects by type comes in. Figure 2 Now that youve gone to the trouble of amassing
contains a list of common object types, along and classifying this info, you need to translate it into a
with guidelines for assessing the associated budget plan, which is the estimate on the dollar
conversion effort. amount needed, as well as a resource plan, which is
Figure 2 (continued)
Object Type Impact of Upgrade Conversion Effort
Miscellaneous Objects Moderate Typically small ABAP programs. Includes pricing formulas
and requirements routings for pricing, copy control, output
control, account determination, material determination,
listing/exclusion, LIS, etc. Can create nasty surprises in
production if not properly tested and converted.
Modifications to Standard Significant Most labor-intensive objects to convert. Often difficult to
SAP Repository Objects identify, especially if entrenched with many OSS notes.
Look for opportunities to re-evaluate and potentially eliminate
some of these modifications. Must have thorough unit
and integration test scenarios.
Modification to SAP Moderate For example, changing the data element texts so they have
Standard Data Dictionary custom field descriptions in material master or customer
Objects master, etc. Look for opportunities to eliminate these
modifications, as SAP has a standard way to accomplish
the same task (such as text enhancement, which is discussed
later in this article).
25
20 Number of
consultants
Number of
15 business users
10
0
January February March April May June July
the plan to hire some external consultants and enlist your reference, Figure 4 shows a sample budget plan
internal resources. Typically the project manager will and Figure 5 shows a sample resource plan. Again,
take the initial estimate and complete the remaining please note that these are not actual figures for your
task, and we wont go into greater detail on this. For project.
Enhancement and User Exit Issues ABAP developer needs to provide. Start by estimat-
ing the amount of upgrade effort required from the
SAP distinguishes between the terms enhancements development team. Multiply each custom develop-
and user exits. The enhancement concept, which ment object by the assigned estimating factor (which,
was introduced in Release 3.0, refers to custom devel- as you remember, was assigned based on object type)
opment projects achieved via CMOD/SMOD. You to come up with a total man-hour analysis. Then
always implement enhancements in the custom nam- assign additional development team resources (such
ing range. User exits, on the other hand, are carried as project management, training, documentation, and
over from a much earlier release. User exits are SAP communications) to determine your total estimate.
pre-planned subroutines within standard programs.
You always implement user exits in the SAP naming
ranges. You can find an example of a user exit in the !"Tip
subroutine USEREXIT_CHECK_VBAK within the
How to Get a List of Custom Routings
program SAPMV45A, which is used for sales order
and Modifications
processing.
SAP reserves the number range 600-699 for
Both enhancements and user exits are protected custom routings. For example, if you create a
from SAP upgrades. However, user exits typically pricing requirement 622, the corresponding object
require more effort to convert, because they operate name in the system would be RV61A622. If you
within SAP programs and share global variables with follow the SAP naming convention during
the main program. As you upgrade the main pro- development, you can easily obtain a list of your
grams, remember that you may also have to rewrite custom routings. Since Release 3.0, you need an
user exits. OSS authorization key to make any SAP object
modification and create a routing. These keys are
Remember that SAP keeps user exits in include stored in the transparent table ADIRACCESS,
programs with names like MVxxxFZx. To obtain a which you can view through transaction SE16. On
list of these includes (and thus the active user exits), the selection screen, enter program ID R3TR,
you can use our program ZZCUSOBJ and enter selec- object type PROG, and object name *6++
tion criteria for the program name MV+++FZ+. to get a list of repository objects that end with a
The downloaded PC file will show you who last number between 600 and 699. To review custom
changed each program, which in turn enables you to routings, use the configuration transaction
focus on those that you have changed. VOFM: Maintain Requirements and Formulas.
Develop Your Resource, Budget, From our experience, here are some additional
and Project Plans tips for creating a good resource plan:
Once you have finished analyzing the upgrade scope Be sure to assign adequate resources to finish the
and impact, your team is ready to develop a resource upgrade project in a reasonable amount of time.
and budget plan. The project manager is typically Do not allow the upgrade to drag on. The longer
responsible for leading this effort, which consists of the upgrade, the harder it will be for you to keep
defining the necessary budget and resources that are the production system and the upgrade develop-
required to complete the upgrade. A complete project ment system in synch.
plan for an SAP upgrade includes milestones and
resource requirements from all members of the cross- As the upgrade proceeds, chart your estimates
functional team. However, for the purposes of this against time and headcount variables (such as
article, well stay focused on the components that an staff availability, skills, and other competing
(continued from previous page) These tasks can span weeks or months, depending
on the complexity of your system e.g., size of the
The first option is to overlay your change after the database, number of foreign languages supported, etc.
upgrade process. Treat the change to a Dictionary For reasons that will become clear in just a moment,
object as a regular upgrade task by creating a
change request and importing it after the upgrade.
when we review each activity in detail, this is usually
This is the most common way to make adjustments the most time-consuming phase of the project for
after the SPDD process. Obviously, in order to use developers.
this option, the change should have no data-related
impact. For example, you might use this approach
to restore a data element description back to SAP
standard, which poses no risk to stored data.
Resolve SPDD Modification Issues
Object Browser, outside of the SPDD list. Remem- Changing data element for keyword labels.
ber that the SPDD process is already complete This, too, is ill advised. Its best to use the SAP
at this time, you are simply reviewing the decisions. standard text enhancement tools to accomplish
The Adjust modification button that you see on this task.
the SPDD screen only applies to objects modified
Modifying domain to add a conversion routine.
with the Modification Assistant. Therefore, it will
This is another practice we do not recommend. A
not work if you are upgrading from a release earlier
far better approach is to use the field exit in SAP
than Release 4.5.
without modifying the standard system.
3. Type the data element name and language, as Resolving SPAU Modification Issues
shown in Figure 8.
As for SPDD modifications, the task of resolving
4. Press ENTER. SPAU modification issues starts with reviewing the
list of items to be addressed. Follow these steps to
5. Add your own custom keywords for the data view the SPAU worklist:
element.
1. Type in transaction SPAU, or select Tools
You can also toggle between the customer
ABAP Workbench Utilities Maintenance
and SAP data element descriptions. To activate
Upgrade utilities Program compare from
the customer description, select Goto
the menu.
Text enhancements Keywords Restore
cust. version from the CMOD menu. To restore
the SAP description, select Goto Text 2. Choose one of the four sort options (by objects,
enhancements Keywords Restore by last changed, by transport requests, and by
SAP version from the menu. Refer to the SAP development classes).
documentation on enhancements for more details.
Executing the program with the default settings
6. Save the change to trigger the CTS request displays a list similar to the one shown in
screen. Figure 9.
We have often seen incorrect SELECT state- have the system automatically provide you with a
ments, such as: template for a BDC program. Follow these steps:
SELECT SINGLE FROM PLPO WHERE 1. Select the SHDB transaction code, or select
PLPO-PLNNR = '12345' AND System Services Batch input Edit from
PLPO-STEUS = 'PP08'. the menu.
In the WHERE clause, the developer had speci- 2. Click on the Record button.
fied the structure name, as well as the field name. 3. Compare the recorded steps with the old BDC
(Dont ask us why he wrote it like this!) This program.
code will compile in Release 3.0, but not in
Release 4.5 or Release 4.6. To fix it, you would 4. Modify the program accordingly.
change it to the following statement:
Phase 3: Upgrading Your Quality from a development server because certain objects,
like queries, may only reside in PRD. You must
Assurance (QAS) System execute these tasks directly in the target system.
You have now successfully upgraded your develop-
ment system and are ready to move on to upgrading If you are upgrading from a release earlier than
your quality assurance system. The primary goals of Release 4.0, you need to convert any ABAP queries
the QAS upgrade are executing the SAP upgrade after the upgrade. For technical reasons, SAP does
process on the QAS server (which is usually a larger not carry out this conversion automatically during
database than the DEV server), testing the SPDD and the upgrade.
SPAU automatic import process, importing the con-
figuration and development changes you made in the SAP provides two reports to assist you in this
DEV system, and performing integration tests in a task. RSAQSUMM provides an overview of query
controlled environment. However, as an ABAP objects. RSAQUM40 allows you to convert and
developer, the following are your most important activate ABAP queries in your new system. If you
tasks in this phase: have never worked with SAP queries in a Release 4.x
environment, be sure to review the following change
Import transport requests from the development highlights before you begin the conversion effort:
system
Convert ABAP queries on the upgraded system The most notable change is that SAP now divides
ABAP queries into a standard area and a global
Activate custom enhancements on the upgraded area.
system
All queries that you created in a Release 3.x
Conduct performance and integration testing environment belong to the standard query area,
which is primarily designed for ad-hoc queries.
Standard area queries are client-specific. They
Import Transport Requests from the are not connected to the Workbench Organizer.
Development System
Importing transport requests from the development Since Release 4.0A, SAP has created a global
system is critical. This task allows you to test that query area. Global queries are client-indepen-
your transports are well organized and that your dent and used throughout the system, just like a
special transports for SPDD and SPAU work as regular ABAP report. These queries are con-
planned. Typically, your Basis team member will nected to the Workbench Organizer and therefore
perform this task, so be sure to coordinate with him can be transported to other systems.
or her. If your upgrade plans include stopping the
SPDD process to apply additional manual adjust- Starting with Release 4.0 and beyond, all query
ments, this is your last opportunity to test the objects delivered by SAP are located in the
approach before the final production upgrade. global area and have a /SAPQUERY/ prefix.
For example, the SAP global user group
/PQUERY/AM is assigned to global functional
area SAPQUERY/AM01. Query 01 within this
Convert ABAP Queries function area inherits the prefix.
You cant transport certain development tasks, like When working with standard area and global area
converting ABAP queries or activating customer queries, you cannot mingle the two groups. Standard
enhancements (which well cover in the next section) area user groups, function areas, and queries are
always separated from global user groups, function 1. Run the report RSAQSUMM as shown in
areas, and queries. In any given SAP session, you Figure 11 to get an inventory of all query objects
can only view and work within one query area. The in the system. If this is the first time you are
query area in which you are allowed to work for a converting queries, you should not see any entries
given SAP session is set in your user profile. under the New standard area and New
transport datasets.
To start working with global area queries for the
first time, you must set a PID called AQW in your 2. Run the report RSAQUM40 as shown in
user profile. Set the value for global area to G (its Figure 12 to convert query objects. If you select
case-sensitive). Without this PID value, you will not the Convert all radio button, all query objects,
be able to view any of the global area queries deliv- including queries, user groups, function groups,
ered by SAP. (Consult OSS note 132813 for further and transports, will be converted into the new
information.) standard area and new transport datasets.
Follow these steps to convert ABAP queries: 3. Run the report RSAQUM40 again. This time,
select the radio button Set release flag. This You may activate these components manually,
activates the query area and allows users to start or use the SAP program RSMODRES. If you select
using the query objects. (For more information, with generation on the selection screen of the report
consult the release notes in Release 4.0A and OSS RSMODRES, the associated programs and interfaces
note 92124.) are regenerated.
Conduct Performance and Integration Testing Be sure to review and approve all test
results, then deliver final documentation on any
Both performance and integration testing are key changed development objects to users for
components of the ABAP developers role during an training.
upgrade project, regardless of whether it is a technical
lead or a functional lead overseeing this task. The The test plan you developed in the previous phase
following types of performance testing are important will become a roadmap for this task. In the plan, you
because of database growth due to the upgrade and should take advantage of the tight integration features
change in database indices and structures: within your SAP system, and mix up your develop-
Test business-critical, performance-intensive ment objects within each string of the test. A string
programs (e.g., backorder rescheduling program, is a sequence of events in the test scenario for
MRP/MPS, etc.) in the QAS server with a example, a sales-to-cash test string may look like the
sizeable database. following:
Use runtime analysis and SQL trace for trouble- 1. Create a sales order for a foreign customer
shooting selected reports in either DEV or QAS. that is on initial credit hold. (Verify that
the user exit for credit hold works as
Integration testing is one of the most critical tasks intended.)
in the entire upgrade process. You need to devise a
good integration test plan that covers business critical 2. Verify that the order printed correctly.
transactions and adequately addresses the known (Verify your print program and your
modifications and enhancements in the system. Vali- SAPscript.)
date your test plan against the following checklist:
3. Release foreign trade block. (Verify your
! Full scenarios report on foreign trade.)
! Enhancements
! Batch processing Phase 4: Upgrading Your
Production (PRD) System
! Printer, fax
By the end of Phase 3, you should feel quite confident
! Procedure that your upgrade project is on its way to its success-
ful completion. You have resolved the conflicts,
! Modifications converted your custom objects, conducted thorough
(if you are unlucky enough to have them) testing, and experienced several software installation
processes.
Before you proceed with the final step of !"""Decide on your project methodology early.
upgrading your production system, take the time to An upgrade project can be a complex project. A good
check once again that your environments are still project methodology is critical to its success. SAP
in synch. All differences between development delivers an excellent project tool, AcceleratedSAP
objects in the production and development environ- (ASAP), which is free and includes a dedicated meth-
ments must be reconciled. This is of paramount odology specific to an SAP upgrade. So even if you
importance! The last thing you want during decide not to use ASAP, be sure to ask for the free
the production upgrade is a surprise for example, CD from your SAP support person, and review the
discovering a table field has been changed directly methodology.
in production without your knowing about it.
Although you may have already conducted this !"""Constantly refer to the project plan. Dont just
analysis in the previous steps, it does not hurt to be lock up the project plan and only refer to it at the end
extra careful and run the analysis one more time of each phase. Make sure each member of the team
before you go live. has access to the updated project plan, knows exactly
where the team stands on the project roadmap, and
If you properly marked all SPDD and SPAU what is expected in the time ahead.
change requests in your development environment,
the R/3 upgrade control program will find them dur- !"""Dont forget about post-live training and
ing the test phase of the production system upgrade. support. The project does not end when you go
If this is the case, R/3 offers to import the transport live. Be sure to budget for extra resources, both
automatically, instead of having you execute the internal and external, during the initial stage after
SPDD/SPAU transactions again. By using this proce- going live.
dure, you still have the option of stopping SPDD/
SPAU to check the changes accepted automatically
before they are activated. Again, depending on your
situation, you may need to make a special adjustment
manually for SPDD.
Are You Ready to Upgrade?
Finally, as you did when you upgraded the quality
assurance system, perform the remaining tasks (con- Congratulations you now have all the information
verting ABAP queries and activating certain user you need to begin preparing for your own SAP R/3
enhancements) that can only be done in the target upgrade! The upgrade is sure to provide ABAP
system. developers with numerous benefits and exciting new
features.
development system, move on to your quality assur- parallel with the upgrade project varies widely among
ance system, and finish with your production system implementations. At one end of the spectrum, some
one-two-three, and youre all done! implementations are able to all but eliminate produc-
tion changes for the duration of the upgrade project,
Reality, of course, presents an entirely different allowing only qualified emergencies. At the other
picture. The impact of the new release is simply too end, some upgrade projects are forced to conduct
great in a complex, integrated system like R/3 that their evaluation work alongside a significant degree
has been configured to a customers exact specifica- of change in the existing production system. This
tions. You generally need to make changes to the change could be the result of ongoing rollouts of new
new system that you will be rolling out, as well as users or functionality, or simply due to a relatively
support ongoing changes3 to the production system unstable environment that is still working out the
for the duration of the upgrade project. Because kinks.
change management is so critical to the upgrade
process, you want to make sure that you employ a There are probably an infinite number of different
system landscape that makes it easy to manage: upgrade landscape strategies that have been proposed
3 5
The term change in this context refers to changes in functionality As of R/3 Release 3.0, SAP introduced the repository switch
effected through updates to Customizing settings or to the ABAP upgrade as the means of delivering a new release of R/3 to an
Workbench. Changes to master and transaction data are obviously part existing system. In the old days, before Release 3.0, only the
of normal production activity and are not considered changes in this changed repository objects were delivered with an upgrade; this
sense. method was called a delta upgrade. For example, the upgrade
4
The latter two types of changes changes to Customizing settings process between Releases 2.1D and 2.2C delivered a different set
and new ABAP Workbench development activity will be imported of objects than an upgrade from 2.2B to 2.2C. This strategy, while
into the newly upgraded system after the upgrade. Modification efficient from a data volume standpoint, led to many inconsisten-
adjustments are imported or manually performed at their respective cies and was difficult in general for SAP to support with a high
points during the upgrade itself. level of quality.
from time to time, but for the most part, and depend- upgrade projects. As such, the goal of this article is
ing where they fall on the aforementioned spectrum, to present the two basic approaches, Method A and
all upgrade projects use a variation on one of the Method B, and allow you to decide which elements of
following two landscape strategies: each to incorporate in your own plan.
Method A: Rehearsal of the upgrade process on a
separate, standalone R/3 sandbox system, with the
intent of rolling out the upgrade to the production Method A: Rehearsal of the
landscape at a later point in time. Upgrade Process on a Separate
Method B: Upgrade of the production land- Sandbox System
scapes development system right away, followed
after a period of time by the upgrade of the QAS When upgrading a system landscape to a new release,
system, with the maintenance of additional, you must perform the following general steps for
temporary development and QAS systems to each system in the landscape:
support the production system at the old release.
1. Apply the upgrade to the system and make any
Understanding the principles, benefits, and limita- necessary SPDD adjustments during the process.
tions of each of these two landscape strategies 6 will This process includes the entire technical upgrade
help you decide which approach best suits your (see sidebar entitled The Repository Switch
upgrade project. No single strategy could apply to all Upgrade). The system will identify for you
which objects, if any, must be addressed in the
6
For the sake of simplicity, a basic three-system landscape will be used SPDD adjustment, as shown in Figure 1. See
in the examples. Extending the concepts to larger landscapes should
be relatively simple once the basic principles of each strategy are sidebar for more information on SPDD
understood. adjustments.
As the process is repeated, the UPG system changes made in the UPG system through each of
is necessarily destroyed and re-created as another these refreshes. During the first refresh or two, your
complete database-level copy of one of the existing project team will most likely be in a discover-and-
systems. The trick to this approach is retaining the learn mode. Thus, retaining changes may not be
You can give this system any name (e.g., DMY in the
TMS Configuration for diagram). In addition, you must also define a customer-
Landscape Method A object transport route (shown as ZUPG) between
UPG and your virtual system. Without this route,
If you are using Method A (using a separate system for change requests created in UPG are not transportable
upgrade testing), you do not need to modify the existing and cannot therefore be exported from the system.
TMS configuration to support changes within the pro- If your policy is to allow modifications of SAP objects
duction landscape. You do, however, need to provide during the upgrade process, then you also need to
for the export of changes from the upgrade sandbox establish the SAP transport route between these
UPG. You can accomplish this by defining a virtual two systems.
system as a consolidation system for UPG, as shown
below. The DMY transport buffer contains a sequential
list of the changes exported from UPG. If you need to
TMS Configuration for Landscape Method A import these changes into another system or back into
UPG after a refresh, you can copy the transport buffer
SAP at the operating system level and use it to perform the
UPG DMY import. You can rename this transport buffer to the
4.6B ZUPG
proper SID and use it to execute a tp import all
command, or simply use it as a reference.
Figure 4 Considerations When Choosing a Source System for the Upgrade Sandbox
Source System Characteristics Suitability for Upgrade Testing
Development Source of all configuration and Probably suitable for functionality testing,
development activities. Probably depending on how congruent the configuration and
many in-process or miscellaneous repository are with the QAS and production systems.
changes that have never been
transported elsewhere.
Quality Assurance Same functionality as production, Suitable for functionality testing, depending
but may not have much, if any, on the requirement for real application data.
real production master/
transaction data.
Production Valid configuration with real Ideal if technically feasible, due to the presence of
master/transaction data. real application data. May not be feasible depending
on size of the database.
necessary, and you can treat the system as a sand- Figure 4 compares the merits of using
box to help you evaluate the new release. Eventu- each system.
ally, however, you will need to preserve these
changes by releasing the change requests prior to the The most often-used system is the production
refresh and rebuild of the UPG system. You can then system, because it contains real-world application
import the same change requests back into the UPG data. A key consideration in choosing to use the
system as part of step 3 of the next refresh. (See the production system as the source for your upgrade
sidebar on the previous page for more suggestions as sandbox is obviously going to be the volume of
to how the Transport Management System, or TMS, production application data in that system. If your
configuration of such a landscape should be configured.) database is particularly large, the costs involved with
duplicating it could be prohibitive e.g., the size
may exceed your available disk storage space, in
Which System Should Be Used As a Source for
which case you would need to purchase additional
Your Sandbox System?
space.
Before you create the UPG system, you have to
decide which of the existing R/3 systems should be If your production system is, in fact, prohibitively
used as the source for creating the upgrade sandbox. large, the QAS system is a good second choice.
In a standard three-system landscape, the develop- Here, the benefits of proper change management
ment system, quality assurance system, and produc- processes become evident. If managed correctly, the
tion system each has characteristics that make it more QAS and production systems should be functionally
or less ideal than the others for this purpose. identical, in the sense that they contain near-identical
repository and configuration settings in the primary
! Tip QAS client. They differ only in the volume of appli-
As you decide whether or not it is feasible to use cation data present in the system. In such a setup,
the production system as the source system for the QAS would be a perfect choice as an upgrade sand-
upgrade sandbox, remember that there are box, since it will allow for valid functional tests
currently no tools or methods for extracting a without requiring duplication of enormous amounts
logically consistent subset of master or transaction of application data.
data. Thus, you must copy the entire production
system if real production master/transaction data A development system would be useful for some
is needed for testing. early versions of the upgrade sandbox, but is probably
not suitable for more detailed upgrade testing. (See the sidebar on page 34 for a discussion of
A development system is probably more out of cross-release transports.)
synch with production than any other system,
and is also unlikely to contain master/transaction Introduce changes into UPG at the next
data that even remotely resembles production refresh of that system, instead of bringing
system data. production support changes directly into UPG.
You can rely upon the testing process in step 4 to
identify any new problems that arise as a result of
changes to the base configuration.
Managing Changes to the Production Landscape
When considering how to manage the production Your choice of policy will depend on many
landscape changes during an upgrade project, you criteria. Primarily, you need to estimate and
have three options: consider the volume of production changes that
need to be supported. A high volume of production
Manually re-enter all DEV changes in UPG at changes will mean propagating those changes
an appropriate time (e.g., once the change has more frequently to the upgrade testing system.
passed QAS testing and is approved for import The frequency of UPG system rebuilds is also
into PRD). These changes are included in the a key factor.
upgrade impact analysis, but excluded from the
adjustments made in step 3 since they would If your plans call for rebuilding UPG only three
already be part of the base configuration. times during an eight-month project, you will have
relatively few chances to understand the impact of
those new production changes at the new release.
Effectively maintaining and enforcing this policy
Refreshing more frequently diminishes the impact
might be problematic for example, a Custom-
of manual re-entry, since the changes will appear in
izing transaction may change entirely between
the UPG system in a relatively short amount of time.
two releases, obscuring the re-entry process.
Since the upgrade team will rely heavily on
In general, I tend to recommend a more frequent
proper replication of changes, you need to insert
refresh of an upgrade sandbox system, with no real
some sort of QAS into the transport process to
attempt to continually update those systems with
ensure that the changes made within the produc-
changes in the production landscape. The actual
tion landscape are indeed replicated properly into
tolerable refresh frequency will depend on the volume
the upgrade testing system.
of transports going through your production land-
scape, but one refresh per month should be sufficient
Import all DEV changes into UPG via for a majority of upgrade projects.
change requests at an appropriate time. This
method may be faster than manual re-entry.
However, there is a risk that the import will
overwrite changes made as part of the upgrade ! Tip
project, due to the way changes are transported Managing an upgrade project alongside
(e.g., the entire Workbench object or Customizing significant change to the production landscape
table entry is included at one time). More signifi- (e.g., new rollouts of users or functionality) will
cant is the fact that this option involves transports certainly increase the length of time and total
between differing releases of the R/3 system, cost of your upgrade project.
which makes it inadvisable in most cases.
Cross-Release Transports
Generally, SAP neither recommends nor supports cross-release transports. However, since there are cases
where it may save time and manual effort, lets examine whether you should even consider these types of
transports. Primarily, the contents of a change request determine whether a cross-release transport is
technically feasible, as summarized below.
SAP-owned ABAP Definitely not Since SAP may have changed the object, transporting
Workbench objects from a different release could introduce changes that
are incompatible with other objects in the repository.
Customer-owned Yes, in most cases Unless the object has also been changed by someone
ABAP Workbench at the new release, a cross-transport object usually
objects poses no problems. Whether the program functions
as before depends on separate factors that must be
evaluated as part of the upgrade impact analysis.
Customizing table/ Possible If the underlying ABAP Dictionary structures have
view data not changed significantly, transports usually can be
imported without a problem. Dictionary inconsisten-
cies are usually identified as warnings or errors in
the import logs. It is always prudent to examine
the relevant transactions in the IMG to review the
results of the import.
Transport-defined Probably not These objects represent special transport rules
objects other than embedded in the source code of the OS-level utilities
above e.g., R3TR that perform the export/import. Since a cross-release
AM17, R3TR COC1, transport usually also involves different versions of
R3TR SRTR the utilities (tp and R3trans), problems may result.
Potential problems in this case may not be identified
in the import logs, so you should only attempt such
transports with caution.
Note: This information is not an endorsement of cross-release transports and is provided for informational
purposes only.
Variation: Using Two Separate Rehearsal in the diagram). Using a second system allows you to
Systems release and transport changes to a separate environ-
ment. Since testing the transport itself is part of the
Alternatively, you could implement a variation of the change management process in general, using a sec-
Method A strategy that incorporates two upgrade test ond system should result in higher-quality transport
systems at the new release. Figure 5 shows the archi- requests for step 3 although at the expense of
tecture for this Method A variation with two separate maintaining an additional system. Finally, applying
systems for testing the upgrade (called UPG and UP2 the upgrade process to more systems gives you more
Production Production
Manual re-entry of Landscape Landscape
changes or system DB copies
refreshes
temporary systems for supporting production Based on this method, you can upgrade an entire
(called DV2 and QA2). landscape by following these steps:
Number of additional R/3 One system (potentially two, Two systems (potentially one,
systems required? based on your requirements). based on requirements).
Experience obtained with Many practice upgrades Practice is limited to the DEV
the upgrade process? are executed. and QAS systems.
Best strategy given a Yes, because production No, because all production
high volume of changes support changes may not need changes must be entered
within the production to be entered manually in manually.
environment? upgrade system.
Best strategy for a shorter, Maybe not, because the value added Perhaps, because the time involved
less complex upgrade project? by the extra systems decreases. is greatly minimized.
provide for changes within the production environ- scape to the high-level phases of the upgrade project
ment as needed? SAPs recent extension of support plan, and define the landscape separately for each
for Release 3.1I and 4.0B make this decision poten- unique situation. Figure 9 shows an example.
tially more important. For example, an upgrade from
3.1H to 3.1I is going to be quite low in its complexity During the Evaluation phase, no changes in UPG
due to the small functional and technological deltas are retained. UPG is rebuilt at the end of Evaluation,
between the two releases, while an upgrade from 3.0F and all changes will be preserved from then on. Two
to 4.6C is going to be at the other end of the spectrum more refreshes of UPG will again occur during
entirely. Buiness Blueprint, although these dont really change
the landscape per se. Once the Realization phase
Figure 8 contrasts key characteristics of the two begins, and the production landscape is upgraded, the
methods. landscape will change with each step of the way to
reflect new procedures and potentially the loss or
addition of systems in the landscape.
1st UPG 2nd UPG 3rd UPG 4th UPG DEV QAS PRD
build build build build upgrade upgrade upgrade
Points during the project in which the system landscape will change
You need to evaluate several factors when esti- up large databases (e.g., perform reorganizations)
mating the upgrade runtime. Carefully consider, and, before the upgrade to minimize this factor.
if necessary, address each of these factors before
beginning a production upgrade, especially if Database Size
minimizing downtime is a major priority: Although generally not the major factor in
upgrade runtime, database size can be critical
depending on the specific tables undergoing
Database Server Hardware
conversion and how big those tables happen to be
Note that the upgrade process does not use
in a given system. You can determine whether
application servers in a system. Generally, these
database size presents a consideration for
servers are shut down at the beginning of down-
you once the initial upgrades have occurred.
time and are not started again for the duration of
Also, additional clients tend to slow the
the upgrade. Therefore, the speed and processing
upgrade; delete any unnecessary clients before
power of the central database server is a primary
upgrading.
factor in determining upgrade runtime. In addi-
tion, investing in intelligent disk subsystems
Unexpected Problems
can pay significant dividends during upgrades,
Remember that encountering a problem that you
as they increase the overall I/O throughput of
have not seen on previous upgrades can result in
the system.
unexpected delays while you try to resolve the
problem. A single never-before-encountered
General Database Performance error that arises during a production upgrade
If a database is heavily fragmented, performance could prevent completion of the upgrade, if you
degradation may cause the upgrade to run longer cannot summon the necessary support resources
than is necessary. In general, consider cleaning in a timely manner. For this reason, I strongly
Readying to Resize
Your R/3 Platform
Kurt Bishop
Change is part of life for an SAP system. Functions change and expand
in scope. New applications are deployed. More users begin to log on.
Software gets upgraded. And more and more R/3 systems are feeling
the impact of Internet-enabled applications.
Whether youre sizing a brand-new system or Suppose you upgrade the entire suite of R/3
resizing an existing system, there is only one govern- modules, but dont plan to use any of the new func-
ing principle sizing requirements are defined tionality. Shouldnt the same old hardware work
by the extent of the SAP functionality to be fine? Probably not. Much of the new functionality,
implemented: whether you use it or not, is taking up space in
memory (the most common functions are stored there
Customers running Financials (FI), Asset to increase performance and keep database retrievals
Accounting (FI-AA), and Controlling (CO), who to a minimum).
are only upgrading their R/3 system to ensure
their system operates at the current release levels, How do you analyze your system to determine
will generally not take a big hit in performance. whether or not it is properly tuned? Then, once its
Realistically, the baseline functions for general tuned and its clear the system needs to be resized,
ledger, accounts receivable, accounts payable, how do you account for the workloads presented by
etc. havent changed in years. While there may current and future requirements from conventional
be a variety of new reports, screens, and GUIs, R/3, as well as new Web-based functionality such as
the purpose of these modules is still to gather mySAP.com, Workplace, and B2B? These are some
and report accounting statistics whose rules are of the questions I will address in this article.
defined by some of the most conservative groups
and rulesets in the world. Therefore, most new
releases of R/3s financial software will not have Make Sure Your Current
functionality that requires a massive addition of R/3 System Is Properly Tuned
memory or processing power.
Sizing based on workload or performance statistics
If your R/3 upgrade involves human resources, from an improperly tuned system will be inaccurate.
such as Personnel Accounting (PA) and Personnel Consider the following for confirmation.
Development (PA-PD); logistics, such as Sales
and Distribution (SD), Materials Management Every user or program in R/3 must have access to
(MM), Production Planning (PP), and Plant a variety of buffers and memory to store and process
Maintenance (PM); or any of the industry- information, perform calculations, and generate
specific modules like Retail (IS-R); and you are screens or reports. Before a user can access any R/3
upgrading to take advantage of new functionality, memory, you must properly implement 20-30 profile
workloads will probably increase significantly. parameters pertaining strictly to memory and buffer
allocations (e.g., abap/heap_area_total,
Similarly, if you add new modules or customize em/initial_size_MB, rdisp/ROLL_MAXFS)
existing ones e.g., custom ABAP (Advanced for each of your servers. The memory R/3 has avail-
Business Application Programming) programs or able to satisfy all of these requests is constrained by
new BAPI (Business Application Programming the operating system and how much of its memory is
Interface)-enabled applications you clearly are allocated exclusively to SAP. The operating system
changing the workloads, and subsequent demands memory is ultimately constrained by the physical
for memory, CPU, disk, etc. memory installed in your hardware.
And who isnt considering B2B (Business-to- When your system is first installed oftentimes
Business), Workplace, and other Web-based by someone you may never see again the system
frontends? These products change workload automatically generates memory parameters for the
demands and shuffle hardware requirements operating system and R/3. These default parameters
in a variety of ways. are based on estimates of typical users and
workloads, and a series of questions that are keeping ! The base configuration
the installer from catching an early flight home. ! The hardware and operating system statistics
! R/3 workload statistics
Lets assume your database server is delivered
with 2 gigabytes of physical memory, and the ! R/3 buffer and memory performance`
installation/setup program determines that SAP and
the database management system should each get half.
Analyzing the Base Configuration:
The R/3 installation program will define your startup
Servers, Work Processes, and Load Balancing
profile using a variety of assumptions to divide R/3s
1 gigabyte of memory among the multitude of buffers The Process Overview (SM50, SM51, and SM66) is
and memory pools available for the end users. So the most effective way to gain a high-level view of
what do we do when performance begins to decline? your R/3 systems current activity. These transac-
tions allow you to watch programs execute in real
With most of todays hardware, you could easily time as they record cumulative execution times for
assume memory to be a cheap fix for poor perfor- work processes. All three provide the same basic
mance and drop in an additional 2 gigabytes of physi- information, so try them all and settle on the ones you
cal memory. However, unless you update your R/3 prefer. Transactions SM50 and SM66 provide high-
startup profiles, the new memory will never be used level views of system components and ultimately
because SAP will only allocate the 1 gigabyte defined transport you to SM51 for details on each instance of
during your initial system installation. And guess R/3. For real-time analysis of specific memory and
who looks bad for spending money on memory buffer activity, explore transaction RZ03.
when performance shows no improvement at all?
(Its not the installer who took that early flight home.) If you observe uneven workloads where entire
servers appear much busier than others, review your
So, you should always tune your system before logon load balancing schemes before tuning indi-
conducting studies to determine the current systems vidual work processes.1 Statistics from SM51 on
ability to support future workloads. Similarly, work process activity will provide information about
suppose you have installed and properly allocated the types of jobs being processed and on the servers
4 gigabytes of memory on your server. Then you are handling the heaviest loads. This will help you iden-
told there will be another 25 users added to the sys- tify servers with too few or too many work processes.
tem next month. You log on to CCMS and check For example, if your system has a total of 40 update
memory allocations and find a shortage. You know work processes and 10 show no activity after several
how to allocate memory, so why not just call the days of normal business, you can save memory by
vendor and drop in another 2 gigabytes of memory? eliminating the unused work processes. If your dia-
log work processes are experiencing high wait times,
Well, if you logged on when a resource-intensive, you can simply convert the unused updates to dialogs.
end-of-quarter job was running, during the busiest If your workloads vary drastically but the activity can
part of the day, you might not realize that 96 percent be tied to specific time periods, explore the use of
of the time your system only uses 2 of the 4 gigabytes Operation Modes.
of memory. So will more memory improve overall
performance? When you see work processes in PRIV mode,
you need to analyze your memory management
You will need to study the system under a variety
of conditions to determine what the most appropriate 1
For more information on logon load balancing, refer to Janet
decision might be. I recommend you start with an Hutchisons article, Lessons in Logon Load Balancing, in the
analysis of: January/February 2000 issue of the SAP Professional Journal.
strategies and server profile parameters. Private mode Consistently low values for free swap space
is usually an indicator of complex problems that need generally mean you need more virtual memory
to be analyzed in agonizing detail. Although eliminat- or tuning of processes that are consuming large
ing private mode, or any memory problem, may amounts of memory
appear simple, verifying the underlying problem(s)
and implementing the appropriate solution is often
quite difficult. Simple solutions range from running
jobs in off-peak hours to allocating more extended ! Tip
memory. When those fail, you may find yourself Always interview the end users and determine
examining the entire environment and reconfiguring what specific functions they were trying to
dozens of profile parameters for each and every server. accomplish during the evaluated time
periods. This will often explain unusually
heavy workloads or values that just dont
Analyzing Hardware and make sense. If you arent careful, you may
Operating System Statistics spend a considerable amount of time and
Dont forget, R/3 is just another application running money trying to tune a one-time event.
under the control of the operating system and hard-
ware. In an ideal world, nothing other than R/3
would be running on the server. In the real world,
system monitors, sniffers, and other applications vie
for OS-level memory and processing power. This Analyzing R/3 Workload
can have a significant effect on the R/3 system, Statistics
because SAP memory management is completely Workload Analysis (transaction ST03) statistics
dependent on the resources allocated by the base produce some of the most intriguing indicators of R/3
operating system. performance. While Process Overview transactions
show real-time activity of individual servers and work
The following are some estimates and statistics processes, Workload Analysis collects, consolidates,
from R/3 transaction OS06 (Operating System Moni- and displays historical response times for the entire
tor) that would cause me to suspect problems with the environment and each individual R/3 process. You
hardware and operating system: can review statistics for specific transactions, function
CPU idle time for a server that consistently falls modules, and programs within any given time period.
below 30 percent Because R/3 will often divide user programs into
multiple components that may run in a variety of
Pages out/second that exceeds 10,000 per hour
work processes, we need some way to consolidate the
over a 24-hour period
activity and show results in a format that more closely
Load average over the last 15 minutes that resembles the business process. Workload Analysis
exceeds 3.00 does this and much more.
Low values for physical memory available
(this varies from system to system; however, Keep in mind, most statistics are averages for
newer releases of SAP and related database specific time periods, and therefore may be mislead-
systems need more memory) ing. For example, if transaction VA01 (Sales Order
Processing) shows an average response time of
High values for physical memory free 10 seconds, you may think you have a performance
indicate you are not using the memory you have problem. However, if the transaction executed nine
purchased, or are allocating it to something times with a response time of 2 seconds and one time
besides R/3 with a response of 82 seconds, the average response
reported by ST03 would be 10 seconds. And if the One more point to always note in Workload
transaction that took 82 seconds was processing 200 Analysis is whether the response times recorded are
order line items, while the others were processing for a transaction, program, function module, or dialog
2-3 line items, you would be experiencing acceptable step. R/3 normally records statistics at the dialog step
performance. Furthermore, when looking strictly at level, and then consolidates those where appropriate.
the average response times for VA01, you wouldnt An SAP transaction, program, or function module can
necessarily know whether the 82-second job ran in have any number of dialog steps depending on the
the foreground or background. This could easily work being performed by the user.
make online response appear poor when, in fact,
it is within acceptable guidelines and service level So what is acceptable performance? Take a look
agreements. at Figure 1 and Figure 2. I recommend further
investigation when you begin to notice the types of Analyzing R/3 Buffer and Memory
conditions listed here more than occasionally. Performance
The statistics presented in Figures 1 and 2 can Transaction ST02 (Tune Summary) can be used to
also be found for batch/background work processes. tune R/3 memory and buffers. Tuning memory and
When analyzing response times for batch work pro- buffers is very complex and tedious. Ultimately, all
cesses, you must determine acceptable performance memory and buffer allocations, whether at the SAP
statistics based on your particular jobs, technical or operating system level, must be satisfied by
environment, user demands, and budget. the same physical memory, so you must always tune
these as a unit. And with R/3 memory and buffers,
this concept is even more important. Changes in
Also consider the following when reviewing
one area will always affect something else. There
batch/background statistics:
are hundreds of profile parameters related to system
performance, and the majority of these directly
! Most batch jobs are reported as a single dialog
affect memory.
step, and therefore have misleading average
response times when compared to online
You should also note that most of these param-
jobs that normally have a minimum of four
eters, and the guidelines associated with them,
dialog steps.
assume your memory is plentiful and properly
managed.
! Most online programs are working with just
a few line items for each transaction versus
In Figure 3 you will find some baseline sugges-
several hundred or several thousand for each
tions for R/3 buffer analysis.
batch job.
As you are monitoring and tuning your system,
! Many batch programs are simply displaying or
be sure to note any unusual processes that may have
reporting data with no updating of files.
occurred during the times being reviewed. Processes
that may invalidate your analysis include transports,
Some additional tips for analyzing both dialog and
table and tablespace reorganizations, most database
batch programs:
maintenance, data conversions, one-time-only pro-
cesses, and interfaces from other systems.
! Because they simply read and display data,
response times for query or report programs
should have a lower percentage of CPU time
and higher percentage of database request time
As you are monitoring and tuning your
than other processes.
system, be sure to note any unusual
processes that may have occurred
! Programs that perform complex calculations,
during the times being reviewed.
scheduling, or allocation routines should have
Processes that may invalidate your
a higher percentage of CPU time and lower
analysis include transports, table and
percentage of database request time.
tablespace reorganizations, most
database maintenance, data
! Custom programs not stored in the buffer, and
conversions, one-time-only processes,
programs that generate new code with each
and interfaces from other systems.
execution, may have high load times. Most
others should average near zero.
Hit ratio The hit ratio reflects the buffers efficiency. Whenever a user or function module
requests data or additional objects, the system will search the appropriate R/3
buffer. When the system is first started, buffers are empty, and hit ratios are zero.
Ensure your system has been active for at least a full business cycle before you
begin your analysis. Also avoid analyzing buffers during unusual processing
periods. For a stable system, investigate when buffer efficiency appears to be
declining over time, or when hit ratios consistently fall below 95 percent.
Nametab, CUA, screen, These buffers should see little growth in a production environment and can
and calendar therefore be configured with 5-10 percent freespace. Most of the other buffers will
need 20 percent freespace or more.
Directory entries All buffers need lots of free directory entries to perform their job. The more
modules and functions you use, the more object addresses you will need to store in
directories. Memory space requirements for storing the entry is minimal, so dont
hesitate to increase the number of directory entries for any buffer.
Object swaps A large number of object swaps is an indication of poor tuning or the need for more
resources. Some swaps are unavoidable, but if you force all users and processes
to share the same buffers, the system may spend more time moving objects in and
out of memory than actually accomplishing work. Object swap totals are cumulative
from system startup, therefore you should expect to see these numbers grow over
time. SAPs Variant Product Configurator, and other functions that generate code
in real time, will increase swaps in the program buffer. Swaps that occur for short
periods of time (e.g., during month-end close) should generally not pose problems
and may not benefit from tuning efforts.
Roll and paging Analyze roll and paging area memory in detail when the percentage of current
area memory use consistently exceeds 80 percent or when a large portion of processing occurs
on disk rather than in real memory.
Extended memory Analyze extended memory in detail when use consistently exceeds 75 percent.
Work processes in PRIV mode usually result from problems with extended
memory allocations and related parameters.
Heap memory Batch programs can use large amounts of heap memory and therefore cause
OS-level swap space requirements to increase. When you see large amounts of
heap memory being used, make sure you have enough OS swap space to keep
from freezing your operating system. Investigate non-background processes that
allocate large amounts of heap memory.
Call statistics You can use call statistics to analyze table buffers and efficiency of ABAP
programs. Investigate low hit ratios and high numbers of fails. Unusually high
numbers for SELECT are often caused by programs performing large numbers
of table scans, improper use or unavailability of appropriate indexes, or improper
search techniques.
SAP R/3 table statistics Use transaction ST10 to review table call statistics. ST10 will show the number of
table updates, direct reads, and sequential reads, and the number of calls and rows
affected. These statistics can be invaluable when you are considering buffering a
table, adding an alternate index, or stripping data and tablespaces.
Resizing Symptoms
Most any system has room for optimization, and I firmly believe in making the most of what you already
have, but at some point your system will need more hardware. And after all, client/server technology
was founded on the premise that hardware is cheap, so lets look at some hardware solutions for poor
performance. The table below shows some key statistics that often indicate problems with current
(or lack of appropriate) hardware components.
Consistently low CPU idle times in OS06. More servers/separation of workloads; faster
servers to increase total throughput.
Slow average response times in OS06 for disks. Faster disks/controllers; more disks/controllers for
stripping of data, improved logical volumes,
tablespacing, etc.
R/3 response in ST03 is good, presentation server Network switches, more bandwidth, faster lines;
response is good, total response time is poor; slow separate LANs, WANs, etc.
times for LAN pings in OS06.
Good overall response times for R/3 and the More servers to support Application and Web Gates;
network; poor response times for mySAP.com more/better frontend processors and Web servers.
and Web-based users.
High CPU processing times that are inconsistent Faster processors and/or more CPUs.
with the amount of work performed (and your pro-
grams are properly written/tuned).
Poor response times for, or caused by, batch pro- More servers and/or work processes to allow com-
cesses, RFCs, Workflow, ALE, EDI, etc. plete separation of work.
High wait times in ST03. More R/3 work processes, and therefore more
memory and/or servers.
Memory management problems (e.g., PRIV mode More memory and/or servers.
in SM51, overloaded extended memory in RZ03)
after exhaustive analysis of profile parameters.
Lack of workspace for the database and/or R/3. More memory and/or servers.
High object swaps in ST02 due to sharing of More servers and/or separation of work.
buffers.
Poor buffer performance/hit ratios in ST02. More memory and/or servers (separate workloads).
Capacity Planning
As I mentioned, tuning R/3, or any system, is a A Six-Step Process
difficult proposition. Although I would seriously
The process of resizing an existing system and sizing
consider more hardware during my reviews, I
wouldnt go out and buy hardware as soon as a brand-new system is basically the same. We can
the statistics in the table to the left appear. summarize the process in six steps2:
Memory and CPU can often overcome a variety
of performance problems in the short term, but 1. The hardware vendors SAP R/3 Competency
if you have bad code, sooner or later you will Center provides you with a survey asking for
have to rewrite it. the number of users and their activity levels,
transaction types and counts, modules you plan
Hardware is often the appropriate solution when
performance problems are not limited to a to customize, interfaces, and other items
specific module or group of programs. This is that characterize the unique computing require-
especially true when you notice response times ments of your environment.
slowly decreasing for R/3s key programs that
have been in production for months or years. 2. You (the customer) accurately complete the
survey and return it to the hardware vendor.
The most common need for hardware arises
when adding new users or functionality. Each
active R/3 user consumes several megabytes
3. The hardware vendor takes your estimates and
of memory, even if they log on and do nothing. crafts an initial design of your environment, using
An inactive R/3 work process will consume custom tools and techniques to predict the perfor-
approximately 13 MB of memory. The more mance of their specific hardware.
complex the work being performed, or the larger
the files being processed, the more memory 4. You meet with the vendor to scrutinize the survey
both of these will consume. So, as you add results and initial system design. Most customers
users or increase the complexity of functions opt to have an SAP capacity planning expert
performed, you will have to add R/3 work participate in this process as well.
processes and memory. At some point you will
reach the practical capacity of your physical
memory or servers processing capability.
5. The vendor provides a final proposal that includes
a system configuration, price, and delivery
Because most hardware vendors still suggest schedules.
limiting the total number of work process on a
server to 25, you can reach the capacity of an 6. You verify the results and turn in your purchase
application server in short order. Even in less- order!
consuming modules like FI, an R/3 dialog work
process can generally handle 10 or fewer
concurrent, active users before wait times (the
In a previous article,3 I presented the details for
time spent waiting for a previous job or user these steps while discussing capacity planning of
function to finish before you gain access to the new systems.
work process) become an issue. Ill let you
struggle with some of the math and move on.
Just remember, all hardware and operating 2
Admittedly, these six steps belie the complexity of a real-world
systems are different, as is every program and capacity planning exercise. If you have never participated in such an
function you execute. If this job were easy, exercise, this listing would lead you to believe that you advance from
everybody would be doing it and we would all one step to the next. Thats not the case. You typically cycle through
be paid minimum wage! many of these activities several times to achieve accurate results.
3
Size Does Matter Strategies for Successful SAP R/3 Capacity
Planning, SAP Professional Journal, Premiere Issue.
In that article, I explained how to fill out the CCMS will provide historical statistics for trans-
vendor surveys, the sizing tools and techniques they actions, programs, function calls, etc. Be careful to
use, and how to validate their proposals to ensure note the level at which you are viewing and compar-
they understood your business before they designed ing these statistics. It is all too easy to confuse
your system. transactions, programs, function modules, and
dialog steps.
The key to capacity planning for both new and
existing systems is the accuracy of workload esti- If youve been through the vendors survey pro-
mates. Therefore, I will focus on Step 2, gathering cess before, you will remember the grueling task of
statistics needed to complete the survey. For your trying to get some of these statistics from users and
new system, you probably had no idea what R/3 consultants. Remember how hard it was just to get
transactions you would implement and use, or how the end users to tell you how many people will be
much workload these would consume. So, the hard- using the system, what transactions they normally
ware vendors used a variety of techniques, such as execute, and when they normally use the system?
user-based sizing, to estimate resource demands. With an existing system you can use CCMS to gather
this information, but dont ignore the users. After
For existing systems, most of this information is you collect your statistics and feel you understand the
available in excruciating detail via R/3s Computing workloads, review your estimates with the end users.
Center Management System (CCMS). Capacity They can quickly verify your user and transaction
planning, whether for conventional or Web-based counts to ensure you have gathered the correct
environments, consists of estimating the individual information.
workloads and resources they consume, understand-
ing the timing of demands for these resources, and The information available in CCMS will be over-
comparing this to the maximum capacity of your whelming, so keep reminding yourself of what you
available resources. are after and try not to get sidetracked with the other
details. For capacity planning, the following tips may
help you in your analysis:
Using CCMS to Estimate !"""Collect statistics for the few transactions in each
Workloads module that represent the majority of the workload.
Normally three to five transactions will represent
I could easily write an article or two describing 75-80 percent of the total workload for a module.
CCMS and how to use all the transactions and Estimate the remaining transaction volumes as a
information provided, but for now I will have to percentage of the volume from the most common
assume some knowledge and keep to the subject of transactions. For example, you may find that with
capacity planning. If you arent experienced with every 1,000 sales orders entered in the Sales and
CCMS, review SAPs standard R/3 documentation Distribution module, users tend to add two material
(search for CCMS and youll get a ton of masters.
responses), log on to your test/training/development
system and play around, and you will soon be com- !"""Note whether program/transaction statistics
fortable with its capabilities. Most of the information represent dialog or batch processing and the time
you will need can be collected from transactions frames for executions.
ST02 (Tune Summary), ST03 (Workload Analysis),
ST04 (Database Performance Analysis), ST07 ! Study time periods with poor performance, deter-
(Application Monitor), and OS06 (Operating mine the typical workloads, and try to determine
System Monitor). which, if any, resources are creating your bottlenecks.
Much of this information can be found via transaction - CPU idle times that are consistently below
OS06. You can study CPU idle times by specific 30 percent for some or all servers
time periods to see when the activity is the heaviest.
You can then match this time frame with response - Servers with multiple CPUs that are consistently
times, memory usage, system paging statistics, disk using the maximum number of CPUs available
response times, and a multitude of other factors to
- Disk response times that are consistently slow
analyze performance.
- Update response times that are significantly
!"""Review your notes from BC315 Workload slower than read-only times
Analysis training for a refresher on performance
and tuning. - Network response times (e.g., ping times) that are
consistently slow
!"""Determine whether poor performance is general
or specific in nature: - Servers with older/slower processors that are
consistently under-performing
- Is a single function/program slow?
Throughout all of the performance discussions,
- Are all functions in a module slow?
you are probably wondering what I consider slow or
- Are all functions in the entire system slow poor performance. Without hours of discussions and
(check the performance of Main_menu)? charging you a ridiculous sum of money for profes-
sional services, I cant answer that question. Fast or
- Are problems related to individuals or groups of slow depends on your companys goals, habits, and
specific users, servers, networks, disk drives or expectations. I can only recommend you set realistic
controllers, tables, tablespaces, buffers, memory performance goals before you ever undertake a tuning
pools, batch programs, dialog programs, etc.? or capacity planning exercise otherwise you can
spend your entire life and budget chasing faster
- Are specific work processes or types of process-
performance.
ing slow (batch, dialog, spool, update, message)?
- How do file-maintenance programs compare to
display-only programs?
- Do program or table sizes make a difference?
Hardware Needed for
Upgrades
!"""Determine whether hardware resources would
help. Do you need to purchase more memory or The final estimating of resource needs for upgrades is
simply reallocate the existing memory with R/3 and no easier than for new systems. You must do your
operating system startup profiles? The following are homework and spend lots of time analyzing the busi-
performance symptoms commonly solved by appro- ness and all available statistics. You will also need to
priate hardware purchases in a properly tuned system: optimize your system before and after the upgrades
are completed. This has never been proven better
- Object swapping in R/3 buffers than with the move from Oracle 7.x to 8.x database
engines. In the 8.x version of Oracle, the basic file
- PRIV memory mode for work processes retrieval method is changed from rule-based to
- Excessive memory paging/swaps cost-based optimization. Without going into techni-
cal detail, this means many of your poorly performing
- Need for more servers to support more R/3 work programs will start working better, while many others
processes and/or users (e.g., high wait times) will suffer tremendously.
When analyzing existing systems, there is cer- especially on the database server, improves
tainly a lot more information on which to base your performance almost every time.
capacity planning estimates. No more crystal balls to
determine what transactions the users will execute !"""Faster CPUs/processors, especially on the
and how many times a day. And even if youre database server, improve performance almost
the very first productive customer to accept a new every time.
release of R/3 from SAP, benchmark tests and other
statistics will be available to help you make an !"""More CPUs will improve performance until you
educated guess. reach the point where one to two CPUs remain idle
during peak processing periods.
I recommend you start with the following tips,
compare your current business functions and user !"""More servers, and the use of logon load balancing
habits with system statistics, and complete your esti- to separate similar workloads, will increase the shar-
mates by documenting all of your assumptions and ing of buffers/memory and improve performance.
risks. Then sit down with your hardware vendor and
!"""Most upgrades affect the network, especially
SAP to refine the list and your estimates. Every
frontend networks.
system and budget is different, and you will just have
to decide for yourself how much time and effort to
Given the move to Internet-based environments,
spend on this process.
we can make one final assumption: adding Web-
based technology will require complete analysis of
!"""Read all available SAP Online Support System
frontend processes and hardware associated with it.
(OSS) notes, release notes, and documents concerning
Your hardware needs will depend on the functions
your particular upgrade.
being processed and your choices associated with
security, backup and recovery, high availability, ease
!"""Modules with more complex processes typically
of maintenance, and related techniques. Lets com-
need more memory (e.g., servers supporting SD users
pare conventional R/3 to Internet/Web-based
need more memory than FI servers).
R/3 systems and identify the new resources you
will need.
!"""Modules supporting users from only one module
(e.g., SD) need less memory than servers supporting
multiple modules (e.g., FI, SD, PP).
!"""The more/larger the data tables you process, the Identifying R/3 Workloads
more memory you will need. and Resource Requirements
!"""Increasing the size of tables, or number of In a conventional R/3 environment, work starts when
accesses, generally requires more and/or faster disk an end user initiates an R/3 transaction on the work-
drives and controllers, as well as system memory for station, terminal, PC, or interfaced system. This
buffering of tables. presentation server will then call an R/3 application
server to initiate work. The R/3 application server
!"""Upgrades to databases (e.g., Oracle 8 versus will dispatch the necessary workloads to the database
Oracle 7) require more memory for database server and return all appropriate information to the
servers, and often more disk space to store new presentation server for redisplay. This cycle repeats
tables and indexes. until the user completes the task.
!"""Adding and properly allocating memory, Ignoring multiple, logical systems on physical
servers (e.g., multiple instances of R/3 on a single Web-based environments For these environ-
server), the common workloads for conventional ments (mySAP.com, Workplace, B2B, Employee
three-tiered R/3 will be something like the following: Self Service, etc.), the three-tiered architecture
and basic components of R/3 remain unchanged.
Presentation server The presentation server The impact of these new frontends and interfaces
will map/transform data to predefined R/3 screens is felt primarily at the presentation layer of an
via SAP GUI and send the appropriate requests SAP environment.4 Workloads within the presen-
for more information, screens, and reports to the tation layer will depend on the complexity of
work dispatcher. The dispatcher, residing in your Web pages/screens, formatting of data, and
the application layer of R/3, will control and the related processing that takes place before the
partition all work, dispersing the components to transaction is sent to R/3. For B2B systems, the
appropriate R/3 function modules and servers. end result will depend on where and how you and
Presentation servers, in addition to whatever your business partners share information and
requirements they have for non-SAP activities functionality.
(Windows, NT, Excel, etc.), need enough
memory and CPU resources to display graphics A request for information or processing within
and transfer data between screens. Although R/3 will still involve sending a request for informa-
most PCs benefit greatly from more memory and tion or a transaction to an application server and
faster processors, the minimum requirements for receiving some data in return. However, with Web-
these servers is quite small. based processes, the transformation of data to and
from screens on your PC is much more complex.
Application servers The work dispatcher on a Users can define an unlimited number of styles and
central instance of an R/3 application server presentation formats for their data in a variety of
will receive information and work requests from formats and protocols (e.g., SAP GUI, HTML,
the presentation servers. Via a multitude of Microsoft, Netscape).
transactions, programs, and function modules, the
application server will verify new data entered by Additionally, the presentation server will need to
the user, determine the appropriate business evaluate each user request and decide whether the
functions to be performed, dispatch any requests transaction is requesting information that resides on
for data to the database server, validate all new the Web server, within R/3, or on another companys
and existing data, perform calculations or addi- system (e.g., direct access to a vendors inventory
tional processing of information, dispatch updates system), a business information warehouse, or data-
and additional data requests to the database base that has been added to the current environment
server, and return the appropriate information for B2B processing (e.g., copies of a vendors master
to the presentation server. catalog). The presentation server will then (re-)map
the data in the proper format for transfer, choose the
Database server The database server will appropriate communication protocol (e.g., TCP/IP,
support workloads from the database engine ISAPI, NSAPI, CGI), and route the requests to the
(e.g., Oracle, DB2, MS/SQL, Informix) and R/3s appropriate server/system. When interfacing with
database interface processes. All input/output multiple systems, this may require the presentation
activity for information will transpire on this server to store and execute several system protocols,
server. The workloads will basically be those of Web browsers, and data transfer routines.
a file server merely transporting data from the
physical disk drives via buffers and caching
techniques through the database engine and on to 4
Could there be any stronger testimony to the merits of SAPs three-
tiered architecture?!
the application server.
Microsoft WGate
Web Server ISAPI
SAP
Windows NT Server
SAP GUI
TCP/IP
Netscape WGate AGate SAP SAP
RFC
Web Server NSAPI
SAP
Any WGate
SAP Application Servers
Web Server CGI
and Database
Windows NT Server
Your presentation layer of R/3 will now include Interchange), B2B, standard R/3, or most any
an entire set of resources to prepare data prior to e-commerce you choose to explore. Figure 4 can
execution of core R/3 processes. This includes PCs, be supported with a variety of hardware platforms.
network servers, Web servers, AGate (Application If your total workloads are small enough and you
Gate) servers, and WGate (Web Gate) servers. Many purchase hardware that can truly be partitioned,
of these items will have duplicate or multiple names you could employ this on one very large physical
and abbreviations. The terminology alone will be server. This design is obviously vulnerable to a
your biggest obstacle. multitude of problems, but also offers a variety of
advantages. The key to capacity planning, which
How you choose to meld your logical and physi- really incorporates system design, is to recognize
cal designs will determine how many pieces of equip- how the physical and logical characteristics work
ment you need and how powerful they must be to together to effectively support all your needs with
support all of these new processes. As with any a modular design.
system, you should consider where and how many
security firewalls you want; whether you prefer
single, large servers over multiple, small servers;
backup and recovery; high availability; ease of main- Tying Budgets to
tenance; network loads; and, of course, performance. System Expansion
Figure 4 shows an environment capable of Once youve armed the hardware vendor with all
supporting mySAP.com, EDI (Electronic Data your workload statistics and system preferences, they
will craft an initial design of your system. I recom- planning processes that mimic your companys
mend you work with your vendor to design a system business models are the best way I know to make
that mirrors your current and future business models. that connection.
Start with logical design techniques and match typical
user or business work patterns with the appropriate
system components supporting the work.
The key to capacity planning, which
For example, if your users are physically located really incorporates system design, is to
on separate floors or buildings (e.g., accounting recognize how the physical and logical
separate from production), group their presentation characteristics work together to
servers, and related equipment, into separate LANs. effectively support all your needs
If two groups can easily be serviced by a single net- with a modular design.
work router, fine, but keep track of them and/or
define them in the system as separate logical groups.
Then, as work activity grows and your network
becomes overloaded, you simply add a new router
and make a few updates to switch an entire group to Summary and Conclusions
the new equipment.
Because practice makes perfect, I strongly recom-
As you become comfortable with your modular mend you adopt the same capacity planning process
system, you will find the budgeting process also for new and existing systems. In this and previous
becomes much easier. When end users start planning articles,5 Ive outlined specific steps and explained
expansions of their business and define new users and how you normally cycle through each step several
transactions, you will be able to pinpoint the physical times before becoming comfortable with the end
demands on the system and tie equipment needs results. Adopting formal practices for capacity plan-
directly to their expansion. The conversion to dollars ning will increase your speed and accuracy with each
needed for the expansion becomes quick and easy, planning session, as the organization and your ven-
as you merely call the vendors, explain where dors become more familiar with the relationships
the system will see more workloads, and get between business activities, system performance,
a proposal. and technical resources.
My experience, working with management and With modular design and associated tracking of
budget processes, has shown that when you can tie SAPs CCMS data, you can establish baseline statis-
your budget and resource needs directly to specific tics for linking capacity planning to performance and
business expansions and support of their system, you tuning activities. You can further expand these
will get the money you really need. Too many IT efforts and define relationships between end-user
managers play the annual budget game by asking for activities, R/3 workloads, and the budgets needed to
15 percent for additional growth and overhead. support your plans.
They always complain when corporate steering com-
mittees and budget teams decide everyone must make You can apply these capacity planning techniques
sacrifices and force them to settle for the standard to any new technology and business applications,
10 percent increase. These same non-technical man-
agers are usually more than willing to approve money
5
for systems that support their own departments Size Does Matter Strategies for Successful SAP R/3 Capacity
Planning, SAP Professional Journal, Premiere Issue, and A Three-
and pet projects, but only when they can see the Step Process for Averting Downtime When Modifying Your R/3
connection. Modular design of systems and capacity System, SAP Professional Journal, March/April 2000.
59
The Essential Guide to SAP R/3 Upgrades
Name Title
Company
Address
Country E-mail
Phone ( ) Fax ( )
YES. Please send me the following issues of SAP Professional Journal. Each issue is $89.
View a complete table of contents for each issue on page 59 or at www.SAPpro.com.