ABAP Shared Objects - Shared Memory Programming Made Easy

March 23, 2017 | Author: Bülent Balcı | Category: N/A
Share Embed Donate


Short Description

Download ABAP Shared Objects - Shared Memory Programming Made Easy...

Description

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 ‹ Cannot

to a single user session be accessed by a different user session

‹ Guarantees

user isolation

„ Shared Memory (SHM) ‹ Shared ‹ No

across session boundaries

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 „ aggregated

DB

User X Session

© SAP AG 2004, SAP TechEd / ABAP251 / 9

Data Access without Buffering Common data „ retrieved from DB and „ aggregated for

DB

„ each user session

Common Data

Common Data

Common Data

User X Session

User Y Session

User Z 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, „ aggregated

DB

User X Session

© SAP AG 2004, SAP TechEd / ABAP251 / 14

Data Access with Buffering by Copy Shared Memory (SHM) Common Data

DB

Common data „ retrieved from DB, „ aggregated, „ 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

DB

Common data „ retrieved from DB, „ aggregated, „ copied (EXPORT) to SHM, „ and copied (IMPORT) to each user session

Common Data

Common Data

Common Data

User X Session

User Y Session

User Z 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

DB

User X Session

© SAP AG 2004, SAP TechEd / ABAP251 / 18

Common data „ retrieved from DB directly into SHM

Data Access with in Place Buffering Shared Memory (SHM) Common Data

DB

Common data „ retrieved from DB directly into SHM, „ aggregated in place

User X Session

© SAP AG 2004, SAP TechEd / ABAP251 / 19

Data Access with in Place Buffering Shared Memory (SHM) Common Data

DB

Common data „ retrieved from DB directly into SHM, „ aggregated in place „ accessed copy-free by other user sessions

User X Session

© SAP AG 2004, SAP TechEd / ABAP251 / 20

User Y Session

User Z Session

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 „ Part of the shared memory

Shared Memory Shared Object Memory

„ Customizable by profile parameter

Shared object areas „ Organizational units (type) „ Defined at design time „ Identified by unique name

Shared object area instances „ Content stored at runtime „ Unique name within the area „ Single-instance area addressed by default name

© SAP AG 2004, SAP TechEd / ABAP251 / 28

Area I n s t a n c e

Area I n s t a n c e

I n s t a n c e

Area Instances and Objects „ Objects are reachable via references „ Area instances have a root object „ All objects must be reachable from the root object „ Area instances are selfcontained, 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

Instance Root

Design Time Support Areas are defined at design time with the shared objects area manager (transaction SHMA) „ Area name corresponds to a class to be generated (e.g. cl_my_area) „ Name of root class must be specified (e.g. cl_my_root)

© SAP AG 2004, SAP TechEd / ABAP251 / 30

Area:

cl_my_area

Instance Root: cl_my_root

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

© SAP AG 2004, SAP TechEd / ABAP251 / 33

cl_my_area2

cl_my_area3

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 objects area instance

Instance Root

„ Creates handle object „ Sets appropriate lock „ Makes reference to root object available

Handle Handle

Handle

User X Session

User Y Session

Methods „ attach_for_read „ attach_for_write „ attach_for_update

© SAP AG 2004, SAP TechEd / ABAP251 / 36

Example: Write Access data: ... myShmHandle type ref to cl_my_area, myRoot type ref to cl_my_root.

Open default instance for 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 Root

„ Invalidates handle object „ Releases lock „ Makes reference to root object unavailable Changes must be committed or rolled back Methods „ detach „ detach_commit „ detach_rollback © SAP AG 2004, SAP TechEd / ABAP251 / 38

Handle Handle

Handle

User X Session

User Y Session

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( ). else. myShmHandle->detach_rollback( ). endif. © SAP AG 2004, SAP TechEd / ABAP251 / 39

Commit changes Rollback changes

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: myShmHandle type ref to cl_my_area.

Open default instance for read

myShmHandle = cl_my_area=>attach_for_read( ). read table myShmHandle->root->itab into wa index i. ... myShmHandle->detach( ).

© SAP AG 2004, SAP TechEd / ABAP251 / 44

Access root object components

Release lock

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 = attach_wa-inst_name = attach_wa-lock_kind = insert attach_wa into

'ZCL_MY_AREA_1'. cl_shm_area=>default_instance. cl_shm_area=>lock_kind_read. table attach_tab.

attach_wa-area_name = attach_wa-inst_name = attach_wa-lock_kind = insert attach_wa into

'ZCL_MY_AREA_2'. cl_shm_area=>default_instance. cl_shm_area=>lock_kind_write. 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

Reader1 © SAP AG 2004, SAP TechEd / ABAP251 / 58

Version: under construction

Writer

Versioning Example Instance Version: active

Reader1 Reader2 © SAP AG 2004, SAP TechEd / ABAP251 / 59

Version: under construction

Writer

Versioning Example Instance Version: out of date

Reader1 Reader2 © SAP AG 2004, SAP TechEd / ABAP251 / 60

Version: active

Versioning Example Instance Version: out of date

Reader1 Reader2 © SAP AG 2004, SAP TechEd / ABAP251 / 61

Version: active

Reader3

Versioning Example Instance Version: out of date

Reader1 © SAP AG 2004, SAP TechEd / ABAP251 / 62

Version: active

Reader3

Versioning Example Instance Version: expired

Version: active

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 construction

active

out of date

expired

© 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 instance depending on database changes

Area Instance Version 1

Database © SAP AG 2004, SAP TechEd / ABAP251 / 76

Version 2

Transactional Areas Motivation Database changes Area instance depending on database changes Area commit, version 1 gets out of date

Database © SAP AG 2004, SAP TechEd / ABAP251 / 77

Area Instance Version 1

Version 2

Transactional Areas Motivation Database changes Area instance depending on database changes

Area 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 instance depending on database changes

Area Instance

Area commit, version 1 gets out of date and expires Database rollback Î inconsistency in area instance

Version 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 v2 under construction

v1 active v2 pending

v1 out of date v2 active

read v1 read v1 Read v2 write v2 detach_commit © SAP AG 2004, SAP TechEd / ABAP251 / 80

DB commit

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

version1 1 Version

version1 1 Version

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

© SAP AG 2004, SAP TechEd / ABAP251 / 86

Version 2

Version 2

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 Broker

Instance2

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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF