Session ID: ABAP251
ABAP Shared Objects
Shared Memory Programming Made Easy
Rolf Hammer, SAP AG
Holger Janz, SAP AG
Learning Objectives
As a result of this workshop, you will
be able to:
Understand the concepts of ABAP Shared Objects
Decide when (not) to use ABAP Shared Objects
Define shared memory areas
Store data in shared memory areas
Access data in shared memory areas
Adapt shared memory areas for your needs
Monitor shared memory areas
© SAP AG 2004, SAP TechEd / ABAP251 / 3
Motivation
Basic Concepts
Advanced Features 1
Advanced Features 2
What is Shared Memory ?
Data Access without Buffering
Data Access with Buffering by Copy
Data Access with in Place Buffering
Benefits for Application Programming
What is Shared Memory ?
Different kinds of main memory on an application server
Session Memory
Bound to a single user session
Cannot be accessed by a different user session
Guarantees user isolation
Shared Memory (SHM)
Shared across session boundaries
No user isolation
Requires access control in a business application context
Application development has longed for buffering data in
shared memory for a long time
© SAP AG 2004, SAP TechEd / ABAP251 / 6
What is Shared Memory ?
Data Access without Buffering
Data Access with Buffering by Copy
Data Access with in Place Buffering
Benefits for Application Programming
Data Access without Buffering
DB
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 8
Data Access without Buffering
Common data
retrieved from DB and
DB aggregated
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 9
Data Access without Buffering
Common data
retrieved from DB and
DB aggregated for
each user session
Common Common Common
Data Data Data
User X User Y User Z
Session Session Session
© SAP AG 2004, SAP TechEd / ABAP251 / 10
What is Shared Memory ?
Data Access without Buffering
Data Access with Buffering by Copy
Data Access with in Place Buffering
Benefits for Application Programming
Data Access with Buffering by Copy
DB
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 12
Data Access with Buffering by Copy
Common data
retrieved from DB
DB
Common
Data
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 13
Data Access with Buffering by Copy
Common data
retrieved from DB,
DB aggregated
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 14
Data Access with Buffering by Copy
Shared Memory (SHM) Common data
Common retrieved from DB,
Data aggregated,
DB
copied (EXPORT) to SHM
Common
Data
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 15
Data Access with Buffering by Copy
Shared Memory (SHM) Common data
Common retrieved from DB,
Data aggregated,
DB
copied (EXPORT) to SHM,
and copied (IMPORT) to
each user session
Common Common Common
Data Data Data
User X User Y User Z
Session Session Session
© SAP AG 2004, SAP TechEd / ABAP251 / 16
What is Shared Memory ?
Data Access without Buffering
Data Access with Buffering by Copy
Data Access with in Place Buffering
Benefits for Application Programming
Data Access with in Place Buffering
Shared Memory (SHM) Common data
Common retrieved from DB
Data directly into SHM
DB
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 18
Data Access with in Place Buffering
Shared Memory (SHM) Common data
Common retrieved from DB
Data directly into SHM,
DB
aggregated in place
User X
Session
© SAP AG 2004, SAP TechEd / ABAP251 / 19
Data Access with in Place Buffering
Shared Memory (SHM) Common data
Common retrieved from DB
Data directly into SHM,
DB
aggregated in place
accessed copy-free by
other user sessions
User X User Y User Z
Session Session Session
© SAP AG 2004, SAP TechEd / ABAP251 / 20
What is Shared Memory ?
Data Access without Buffering
Data Access with Buffering by Copy
Data Access with in Place Buffering
Benefits for Application Programming
Benefits for Application Programming
Significant boost in overall performance due to
Reduced memory consumption
Data is kept only once in memory
Reduced runtime costs
Data is aggregated only once
Fast access at main memory speed
In place aggregation for “arbitrary” data
structures including strings, internal tables,
and references
Reduced maintenance costs due to
Simplified programming model in contrast to
solutions based on IMPORT / EXPORT
© SAP AG 2004, SAP TechEd / ABAP251 / 22
Applications Using Shared Objects
Workbench navigation
Data is aggregated only once
Ported to ABAP Shared Objects
Saves 3 MB session memory per user
About 100 times faster at first access
Master Data Framework (Financials Basis)
Speed up factor 1000 and more for where used queries
Memory costs reduced to 1/15 per session
Simplified code simplifies maintenance
© SAP AG 2004, SAP TechEd / ABAP251 / 23
Motivation
Basic Concepts
Advanced Features 1
Advanced Features 2
Usage Scenarios
Areas and Area Instances
Locking Concept
Creating and Accessing Contents
Usage Scenarios
Main usage scenarios
Shared buffers
Low update frequency (e.g. once a day to once per hour)
(Very) costly amount of data
Many parallel readers, single writer
Exclusive buffers
Access by a single writer or reader
Buffer content is kept across transactions
Coarse granular locking concept
Only a complete buffer can be locked
Rare updates
Readers and writers know each other
© SAP AG 2004, SAP TechEd / ABAP251 / 26
Usage Scenarios
Areas and Area Instances
Locking Concept
Creating and Accessing Contents
Areas and Area Instances
Shared object memory Shared Memory
Part of the shared memory Shared Object Memory
Customizable by profile parameter
Area Area
Shared object areas
I
Organizational units (type) n I
s I n
Defined at design time t n s
a s t
Identified by unique name n t a
c a n
e n c
Shared object area instances c e
e
Content stored at runtime
Unique name within the area
Single-instance area addressed by
default name
© SAP AG 2004, SAP TechEd / ABAP251 / 28
Area Instances and Objects
Objects are reachable via Instance
references
Root
Area instances have a root
object
All objects must be reachable
from the root object
Area instances are self-
contained, i.e. no outgoing
references to
User session memory
Other shared objects
area instances
Inner references are allowed
© SAP AG 2004, SAP TechEd / ABAP251 / 29
Design Time Support
Areas are defined at design time Area: cl_my_area
with the shared objects area
manager (transaction SHMA)
Instance
Area name corresponds to a
class to be generated Root: cl_my_root
(e.g. cl_my_area)
Name of root class must be
specified (e.g. cl_my_root)
© SAP AG 2004, SAP TechEd / ABAP251 / 30
Shared Memory Enabling of a Root Class
Common class
defined with class
builder (transaction
SE24)
Checkbox
‘Shared Memory
Enabled’ active
© SAP AG 2004, SAP TechEd / ABAP251 / 31
Definition of a Shared Memory Area
Special class
defined with the
shared objects area
manager
(transaction SHMA)
Root class must be
specified
© SAP AG 2004, SAP TechEd / ABAP251 / 32
Abstract Area Class
Transaction SHMA generates for each area a class
which inherits from the abstract class cl_shm_area
cl_shm_area
cl_my_area1 cl_my_area2 cl_my_area3
© SAP AG 2004, SAP TechEd / ABAP251 / 33
Usage Scenarios
Areas and Area Instances
Locking Concept
Creating and Accessing Contents
Locking Concept
Coarse granular locking concept
Lock kinds: read, write, and update
Only complete area instances can be locked
Write/Update locks are exclusive
In general immediate response to locking requests
(success or exception)
Only one read lock per internal session on the same
area instance
Default lock duration until end of current internal
session
© SAP AG 2004, SAP TechEd / ABAP251 / 35
Attaching to an Area Instance
Provides access to a shared
Instance
objects area instance
Root
Creates handle object
Sets appropriate lock
Makes reference to root
object available Handle
Handle Handle
Methods
attach_for_read User X User Y
Session Session
attach_for_write
attach_for_update
© SAP AG 2004, SAP TechEd / ABAP251 / 36
Example: Write Access
data:
... Open default
myShmHandle type ref to cl_my_area, instance for
myRoot type ref to cl_my_root. write
myShmHandle = cl_my_area=>attach_for_write( ).
© SAP AG 2004, SAP TechEd / ABAP251 / 37
Detaching from an Area Instance
Cancels access to a shared
objects area instance Instance
Invalidates handle object Root
Releases lock
Makes reference to root
object unavailable
Handle
Changes must be committed Handle Handle
or rolled back
User X User Y
Methods Session Session
detach
detach_commit
detach_rollback
© SAP AG 2004, SAP TechEd / ABAP251 / 38
Example: Detach from Write Access
data:
...
myShmHandle type ref to cl_my_area,
myRoot type ref to cl_my_root.
myShmHandle = cl_my_area=>attach_for_write( ).
...
if ...
myShmHandle->detach_commit( ). Commit changes
else.
myShmHandle->detach_rollback( ). Rollback changes
endif.
© SAP AG 2004, SAP TechEd / ABAP251 / 39
Usage Scenarios
Areas and Area Instances
Locking Concept
Creating and Accessing Contents
Creating Data Objects
CREATE OBJECT … AREA HANDLE hdl.
Creates instance of a class
Only instance attributes are created
Class attributes exist only once per session
Class must be ‘shared memory enabled’
Class builder property flag
special addition SHARED MEMORY ENABLED
at class definition section
CREATE DATA … AREA HANDLE hdl.
Creates instance of a data type
All data types can be instantiated (future release)
© SAP AG 2004, SAP TechEd / ABAP251 / 41
Example: Filling Contents
data:
...
myShmHandle type ref to cl_my_area,
myRoot type ref to cl_my_root.
myShmHandle = cl_my_area=>attach_for_write( ).
create object myRoot area handle myShmHandle.
myRoot->name = 'My first area instance'.
append wa to myRoot->itab. Create arbitrary (data)
... objects in shared memory
if ...
myShmHandle->set_root( myRoot ). Set root object and
myShmHandle->detach_commit( ). commit changes
else.
myShmHandle->detach_rollback( ).
endif.
© SAP AG 2004, SAP TechEd / ABAP251 / 42
Accessing Data Objects
All objects are accessible via root object
Handle provides reference to root object
Example:
x = myShmHandle->root->myObject->myAttribute.
© SAP AG 2004, SAP TechEd / ABAP251 / 43
Example: Accessing Contents
data:
Open default
myShmHandle type ref to cl_my_area.
instance
for read
myShmHandle = cl_my_area=>attach_for_read( ).
read table myShmHandle->root->itab Access root
into wa index i. object
components
...
myShmHandle->detach( ).
Release lock
© SAP AG 2004, SAP TechEd / ABAP251 / 44
Shared Objects Area Monitor
Shared objects area
monitor (transaction
SHMM)
Overview on areas,
instances, and
locks
Content browser
© SAP AG 2004, SAP TechEd / ABAP251 / 45
Demo
Demo 1
© SAP AG 2004, SAP TechEd / ABAP251 / 46
Exercise
Exercise 1
© SAP AG 2004, SAP TechEd / ABAP251 / 47
Basic Concepts
Advanced Features 1
Advanced Features 2
Multi Attach
Preloading
Versioning
Client Dependency
Multi Attach
Method MULTI_ATTACH must be used to attach to more than one
area within one internal session
Precluding of dead lock situations
How to use MULTI_ATTACH
Pass an internal table with all needed area description
Specify ignoring errors, if needed
Specify wait time, if needed
Handles for every attached area or exception object will be
returned
© SAP AG 2004, SAP TechEd / ABAP251 / 50
Multi Attach Example
data:
attach_tab type shm_attach_tab,
attach_wa like line of attach_tab,
error_flag type abap_bool.
attach_wa-area_name = 'ZCL_MY_AREA_1'.
attach_wa-inst_name = cl_shm_area=>default_instance.
attach_wa-lock_kind = cl_shm_area=>lock_kind_read.
insert attach_wa into table attach_tab.
attach_wa-area_name = 'ZCL_MY_AREA_2'.
attach_wa-inst_name = cl_shm_area=>default_instance.
attach_wa-lock_kind = cl_shm_area=>lock_kind_write.
insert attach_wa into table attach_tab.
cl_shm_area=>multi_attach(
importing error_flag = error_flag
changing attach_tab = attach_tab ).
© SAP AG 2004, SAP TechEd / ABAP251 / 51
Multi Attach
Preloading
Versioning
Client Dependency
Preloading
Automatic preloading (buffer warm-up) for area instances can
be specified at design time
Requires the specification of a loader class implementing the
interface if_shm_build_instance
The automatically started loader runs asynchronously in a
separate session (of the same user) to avoid side effects on the
caller
Possible options for the preload starting point
Due to a read request if no active version is available
Due to invalidation, i.e. if the active version becomes
out of date or expires (includes above case)
© SAP AG 2004, SAP TechEd / ABAP251 / 53
Preloading
Preloading is
specified at design
time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 54
Preloading Example
data:
hdl type ref to zcl_my_area,
excp type ref to cx_shm_no_active_version.
try.
hdl = zcl_my_area=>attach_for_read( ).
catch cx_shm_no_active_version into excp.
if excp->textid <>
cx_shm_no_active_version=>build_started and
excp->textid <>
cx_shm_no_active_version=>build_not_finished.
raise exception excp.
endif.
wait up to 1 seconds.
hdl = zcl_my_area=>attach_for_read( ).
endtry.
© SAP AG 2004, SAP TechEd / ABAP251 / 55
Multi Attach
Preloading
Versioning
Client Dependency
Versioning Example
Instance
Version: active
Reader1
© SAP AG 2004, SAP TechEd / ABAP251 / 57
Versioning Example
Instance
Version: active Version: under
construction
Reader1
Writer
© SAP AG 2004, SAP TechEd / ABAP251 / 58
Versioning Example
Instance
Version: active Version: under
construction
Reader1
Reader2 Writer
© SAP AG 2004, SAP TechEd / ABAP251 / 59
Versioning Example
Instance
Version: Version: active
out of date
Reader1
Reader2
© SAP AG 2004, SAP TechEd / ABAP251 / 60
Versioning Example
Instance
Version: Version: active
out of date
Reader1
Reader2 Reader3
© SAP AG 2004, SAP TechEd / ABAP251 / 61
Versioning Example
Instance
Version: Version: active
out of date
Reader1
Reader3
© SAP AG 2004, SAP TechEd / ABAP251 / 62
Versioning Example
Instance
Version: Version: active
expired
Reader3
© SAP AG 2004, SAP TechEd / ABAP251 / 63
Versioning Example
Instance
Version: active
Reader3
© SAP AG 2004, SAP TechEd / ABAP251 / 64
States of Versions
The 4 States
1. Under construction (0..1): As long as a version is being changed
2. Active (0..1): Last committed version used for further read attaches
3. Out of date (0..n): Version with still attached readers, no further read
attaches possible
4. Expired (0..n): Out of date and no more readers; will be automatically
garbage collected
Version Version Version Version
under active out of date expired
construction
© SAP AG 2004, SAP TechEd / ABAP251 / 65
Versioning Concept
Versioning is defined at design time
Maximum number of versions can be specified
at design time
Versioning guarantees that read attaches can be satisfied
in general
Strictly speaking a version is an area instance version
© SAP AG 2004, SAP TechEd / ABAP251 / 66
Versioning
Versioning is
specified at design
time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 67
Multi Attach
Preloading
Versioning
Client Dependency
Client Dependency
Client dependency is specified at design time
Needed if area instances shall be client aware,
i.e. if different clients require different instances
Analogy to database client handling
Client is part of the area instance name
Optional client parameter for most area methods
(default: current client, only possible without preloading)
Predefined constant to address all clients
© SAP AG 2004, SAP TechEd / ABAP251 / 69
Client Dependency
Client dependency
is specified at
design time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 70
Demo
Demo 2
© SAP AG 2004, SAP TechEd / ABAP251 / 71
Exercise
Exercise 2
© SAP AG 2004, SAP TechEd / ABAP251 / 72
Basic concepts
Advanced Features 1
Advanced Features 2
Transactional Areas and Propagation
Displacement
Memory Limits
Binding
Transactional Areas Motivation
Database changes
Area
Instance
Version
1
Database
© SAP AG 2004, SAP TechEd / ABAP251 / 75
Transactional Areas Motivation
Database changes
Area
Area instance depending on
database changes Instance
Version
1
Version
2
Database
© SAP AG 2004, SAP TechEd / ABAP251 / 76
Transactional Areas Motivation
Database changes
Area
Area instance depending on
database changes Instance
Area commit, version 1 gets
out of date Version
1
Version
2
Database
© SAP AG 2004, SAP TechEd / ABAP251 / 77
Transactional Areas Motivation
Database changes
Area
Area instance depending on
database changes Instance
Area commit, version 1 gets
out of date and expires
Version
2
Database
© SAP AG 2004, SAP TechEd / ABAP251 / 78
Transactional Areas Motivation
Database changes
Area
Area instance depending on
database changes Instance
Area commit, version 1 gets
out of date and expires
Database rollback Î Version
inconsistency in area instance 2
???
Database
© SAP AG 2004, SAP TechEd / ABAP251 / 79
Transactional Areas Solution
Transactional behavior is specified at design time
Versions finished with detach_commit becomes active
with the next database commit
Read attaches before the next database commit will be
routed to still active version
Example: Area with versioning
v1 active v1 active v1 out of date
v2 under construction v2 pending v2 active
read v1
read v1
Read v2
write v2
detach_commit DB commit
© SAP AG 2004, SAP TechEd / ABAP251 / 80
Propagation Motivation
Instances reside on Application Server
instances
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version 1 Version 1
© SAP AG 2004, SAP TechEd / ABAP251 / 81
Propagation Motivation
Instances reside on Application Server
instances
Instance changes
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version 1 Version 1
Version 2
© SAP AG 2004, SAP TechEd / ABAP251 / 82
Propagation Motivation
Instances reside on Application Server
instances
Instance changes do not affect other servers
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version 1 Version 1
Version 2
© SAP AG 2004, SAP TechEd / ABAP251 / 83
Propagation Motivation
Instances reside on Application Server
instances
Instance changes do not affect other servers
Instance mismatch on other application servers
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version 1
Version 2 ??? ???
© SAP AG 2004, SAP TechEd / ABAP251 / 84
Propagation Solution
Instance changes are not propagated to other
servers, only an invalidation record is sent
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version
version1 1 Version
version1 1
??? ???
Version 2
© SAP AG 2004, SAP TechEd / ABAP251 / 85
Propagation Solution
Instance changes are not propagated to other
servers, only an invalidation record is sent
New versions are created at next read request
via automatic preloading
Database
AppServer 1 AppServer 2 AppServer 3
Instance Instance Instance
Version 1 Version 1
Version 2 Version 2 Version 2
© SAP AG 2004, SAP TechEd / ABAP251 / 86
Propagation
Propagation is automatically specified at design time for all
transactional areas
Needed for area instances that shall be kept in sync
on several application servers
Propagation is only possible for transactional areas
Technical reason: sync records via database
Conceptual reason: In general propagation will be
needed, if area contents depend on database contents
Pull model
Receiving a sync record lets the active version become
out of date
Rebuild is not forced (push model) but depends on
preloading options
Propagation only means a system wide invalidation of areas.
Automatic preloading is used to create updated version.
© SAP AG 2004, SAP TechEd / ABAP251 / 87
Transactional Areas and Propagation
Transactional Areas
are specified at
design time using
transaction SHMA
Propagation is done
via invalidation
using the
PROPAGATE
methods
© SAP AG 2004, SAP TechEd / ABAP251 / 88
Transactional Areas and Propagation Example
data:
root type ref to zcl_my_area_root,
hdl type ref to zcl_my_area.
hdl = zcl_my_area=>attach_for_write( ).
create object root area handle hdl.
hdl->set_root( root ).
hdl->detach_commit( ).
zcl_my_area=>propagate_instance( ).
commit work.
© SAP AG 2004, SAP TechEd / ABAP251 / 89
Transactional Areas and Propagation
Displacement
Memory Limits
Binding
Displacement
Displacement means that an area instance version with no
active readers can be pushed out of shared memory
Dynamic area property specified at design time
Recommended on 32-bit systems only
The following displacement modes can be specified
Simple displacement without saving area contents
Displacement by serialization to disk (future SAP NetWeaver
release)
Every object must be serializable (tag
interface if_serializable_object)
Deserialization at the next read request
© SAP AG 2004, SAP TechEd / ABAP251 / 91
Displacement
Displacement is
specified at design
time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 92
Transactional Areas and Propagation
Displacement
Memory Limits
Binding
Lifetime
Memory Limits
Memory limits are defined at design time for
one area instance
all instances of one area (future SAP NetWeaver release)
Used to prevent applications to run wild in shared memory.
Gives tools and administrator an idea how much shared
memory is needed for a certain application.
© SAP AG 2004, SAP TechEd / ABAP251 / 94
Memory Limits
Memory Limits is
specified at design
time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 95
Transactional Areas and Propagation
Displacement
Memory Limits
Lifetime
Lifetime
Lifetime is defined at design time
Automatic invalidation or preloading after lifetime
One out of three kinds of lifetime can be specified
Up to expiry (invalidation time), invalidation
Up to update (refresh time), preloading
Without read access (idle time), invalidation
Used to free unused or to refresh to contents of shared
memory
© SAP AG 2004, SAP TechEd / ABAP251 / 97
Lifetime
Lifetime is specified
at design time using
transaction SHMA
© SAP AG 2004, SAP TechEd / ABAP251 / 98
Demo
Demo 3
© SAP AG 2004, SAP TechEd / ABAP251 / 99
Exercise
Exercise 3
© SAP AG 2004, SAP TechEd / ABAP251 / 100
Encapsulation
Avoid direct access to shared memory area instances
Session Area
Reader
Instance1
Reader
Instance2
Reader
Instance3
Writer
© SAP AG 2004, SAP TechEd / ABAP251 / 101
Broker
Instead, it is recommended to communicate with an area
via a broker class that encapsulates
Area initialization
Area access
Lock administration
Authority checks
Session Area
Reader
Instance1
Reader
Instance2
Broker
Reader
Instance3
Reader
© SAP AG 2004, SAP TechEd / ABAP251 / 102
Area Properties - Overview
The following properties can be specified at design time
Versioning
Preloading
Transactional
Propagation
Client dependency
Displacement
Memory limits
Lifetime
© SAP AG 2004, SAP TechEd / ABAP251 / 103
Additional Features
Conceptual
Error handling via exceptions
Query methods for handle state
Special roll handle to address roll area
Technical
Consistency check for types used at area
build-up and attach time
Garbage collection for area instances
Copy-on-write becomes copy-on-detach for
internal tables and strings
© SAP AG 2004, SAP TechEd / ABAP251 / 104
Summary
ABAP Shared Objects is used to share common data
between different session
Coarse granular locking concept supports shared buffer
or exclusive buffer
Versioning is used to implement high available services
Transactional areas are used to synchronize shared
object instances with database
Propagation is used to synchronize shared object
instances on different application server
© SAP AG 2004, SAP TechEd / ABAP251 / 105
Further Information
Î Public Web:
www.sap.com
SAP Developer Network: www.sdn.sap.com
SAP Customer Services Network: www.sap.com/services/
Î Related SAP Education Training Opportunities
http://www.sap.com/education/
Î Related Workshops/Lectures at SAP TechEd 2004
ABAP201, Best of ABAP - The Ultimate ABAP 6.40 Feature Show , 2h Lect.
ABAP351, Advanced and Generic Programming in ABAP, 4h Hands-on
ABAP253, ABAP Troubleshooting, 4h Hands-on
ABAP151, ABAP Objects for Java Developers, 2h Hands-on
ABAP255, New ABAP Debugger and Memory Inspector , 2h Hands-on
© SAP AG 2004, SAP TechEd / ABAP251 / 106
SAP Developer Network
Look for SAP TechEd ’04 presentations and videos on
the SAP Developer Network.
Coming in December.
http://www.sdn.sap.com/
© SAP AG 2004, SAP TechEd / ABAP251 / 107
Questions?
Q&A
© SAP AG 2004, SAP TechEd / ABAP251 / 108
Feedback
Please complete your session evaluation.
Be courteous — deposit your trash,
and do not take the handouts for the following session.
Thank You !
© SAP AG 2004, SAP TechEd / ABAP251 / 109
Copyright 2004 SAP AG. All Rights Reserved
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express
permission of SAP AG. The information contained herein may be changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other
software vendors.
Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries,
pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or
registered trademarks of IBM Corporation in the United States and/or other countries.
Oracle is a registered trademark of Oracle Corporation.
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered
trademarks of Citrix Systems, Inc.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium,
Massachusetts Institute of Technology.
Java is a registered trademark of Sun Microsystems, Inc.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and
implemented by Netscape.
MaxDB is a trademark of MySQL AB, Sweden.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver and other SAP products and services mentioned herein
as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other
countries all over the world. All other product and service names mentioned are the trademarks of their respective
companies. Data contained in this document serves informational purposes only. National product specifications may vary.
These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated
companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group
shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and
services are those that are set forth in the express warranty statements accompanying such products and services, if any.
Nothing herein should be construed as constituting an additional warranty.
© SAP AG 2004, SAP TechEd / ABAP251 / 110