Top Banner
SAP50 4.0B Basis-Technology Preface Copyright Level 1 Target Audience Course Goals Course Content Basis System and the System Environment Objectives R/3 Integration Diagram R/3 in the Business Framework Business Framework Components R/3 as an Open System Client / Server - Scalability of the R/3 System Client / Server Principles R/3 System Client / Server Configurations Three-Tier Hierarchy R/3 Basis Middleware R/3 Basis System Overview System Platforms for the R/3 System Basis System - Summary Navigation Objectives Logging On Clients in the R/3 System R/3 Menu Structure Screen Selecting Functions Field Help R/3 Online Help System Functions - Services System Functions - User Profile Favorites List Session Manager Summary System Kernel System Kernel - Objectives R/3 Presentation Interface Relational Database Management Systems R/3 Database Interface Processing User Requests Dialog Work Processes R/3 Application Services SAP Transactions and Screens LUW (Logical Unit of Work) Requesting a Lock SAP Lock Objects Writing Log Records Updating Log Records Removing Locks Background Processing
173
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SAPAG+-+SAP50

SAP50 4.0B Basis-Technology Preface Copyright Level 1 Target Audience Course Goals Course Content Basis System and the System Environment Objectives R/3 Integration Diagram R/3 in the Business Framework Business Framework Components R/3 as an Open System Client / Server - Scalability of the R/3 System Client / Server Principles R/3 System Client / Server Configurations Three-Tier Hierarchy R/3 Basis Middleware R/3 Basis System Overview System Platforms for the R/3 System Basis System - Summary Navigation Objectives Logging On Clients in the R/3 System R/3 Menu Structure Screen Selecting Functions Field Help R/3 Online Help System Functions - Services System Functions - User Profile Favorites List Session Manager Summary System Kernel System Kernel - Objectives R/3 Presentation Interface Relational Database Management Systems R/3 Database Interface Processing User Requests Dialog Work Processes R/3 Application Services SAP Transactions and Screens LUW (Logical Unit of Work) Requesting a Lock SAP Lock Objects Writing Log Records Updating Log Records Removing Locks Background Processing

Page 2: SAPAG+-+SAP50

Workload-Balancing R/3 Printer Services R/3 Instance Summary Interfaces Interfaces - Objectives Communication: R/3 as an Open System R/3 Gateway Service Communication With CPI-C Remote Function Call RFC from R/3 System to R/3 System Business Objects and BAPIs R/3 System as an OLE Client R/3 System as an OLE Server Internet Architecture EDI Architecture Distribution of Business Processes with ALE Data Transfer Batch Input Interfaces - Summary ABAP Dictionary Objectives Modeling Models Data Modeler / SERM Conversion of the Model What is the ABAP Dictionary? Integration of the ABAP Dictionary Tables and Fields ABAP Example: Access to a Table Basic Objects of the ABAP Dictionary Two-Level Domain Concept What is a Foreign Key ? Example: Inserting a Data Record Tables and Structures Views R/3 Standard Function: Input Help Summary ABAP Workbench Unit Objectives Change Levels The Three-System Landscape Recommended by SAP Project Management in the Workbench Organizer Logical and Temporal Organization Closing a Project Writing an Application R/3 Repository and Repository Objects ABAP Workbench Tools Principles of ABAP ABAP Dialogs User Dialogs Database Dialogs ABAP Query / Reporting Testing and Tuning Summary

Page 3: SAPAG+-+SAP50

Administration and Remote Services Administration - Objectives Security Aspects in the R/3 System The Authorization Concept The Profile Generator System Administration System Administration: Terminations R/3 Computing Center Management System New Monitoring Architecture R/3 Service & Support: Virtual Infrastructure SAP Remote Services R/3 Online Service System (OSS) Administration - Summary Exercises Exercise for Unit: Navigation Exercise for Unit: System Kernel Exercise for Unit: Interfaces Exercise for Unit: ABAP Dictionary Exercise for Unit: ABAP Workbench Exercise for Unit: Administration Solutions Solutions for Unit: Navigation Solutions for Unit: System Kernel Solutions for Unit: Interfaces Solutions to Unit: ABAP Dictionary Solutions for Unit: ABAP Workbench Solutions for Unit: Administration Appendix The Java GUI R/3 System Architecture Worksheet for SAP50 / ABAP Dictionary Transactions for SAP50 Question 1 Question 2 Question 3 Question 4 Question 5 Question 6 Question 7 Question 8 Question 9 Question 10 Question 11 Question12 Question 13 Question 14 Question 15 Question 16 Question 17 Question 18 Question 19 Question 20 Question 21 Question 22 Question 23 Question 24 Question 25

Page 4: SAPAG+-+SAP50

© SAP AG

R

SAP 50SAP 50

Basis TechnologyBasis Technology

SAP50 Basis-Technology Release: 4.0B Material no.: 50025021 November 1998

Page 5: SAPAG+-+SAP50

© SAP AG

R

Copyright

Copyright 1998 SAP AG. All rights reserved.

Neither this training manual nor any part thereof maybe copied or reproduced in any form or by any means,or translated into another language, without the priorconsent of SAP AG. The information contained in thisdocument is subject to change and supplementwithout prior notice.

All rights reserved.

Trademarks • SAP and the SAP logo are registered trademarks of SAP AG. • MS-DOS and EXCEL are registered trademarks of Microsoft. • OS/2, CICS, MVS, ACF/VTAM, VSE, AIX, OS/400 and AS/400 are registered trademarks of

IBM. • X Window System is a registered trademark of MIT University. • SINIX, UTM and BS2000 are registered trademarks of Siemens. • UNIX is a registered trademark of AT&T. • HP-UX is a registered trademark of Hewlett Packard. • DECnet, DECstation, DECsystem, VAXstation and VMS are registered trademarks of DEC. • Ethernet is a registered trademark of the Xerox Corporation. • ORACLE SQL*net, SQL*+ PRO*C are registered trademarks of the ORACLE Corporation. • INFORMIX-OnLine and INFORMIX-ESQL/C are registered trademarks of the INFORMIX

Corporation.

Page 6: SAPAG+-+SAP50

© SAP AG

R

Level 1Level 1

SAP 70 1 dayIDESModel Company

SAP 80 2 daysR/3 Service & Support

SAP 50 2 daysBasis Technology

SAP 20 2 daysSAP R/3 Overview

SAP 60 1 dayBusiness Solutionsfor the Internet

Level 2

SAP 81 1 dayOSS Online ServiceSystemSAP 82 1 dayNetwork Technology

Basis

Level 3Applications Applications

Basis

Page 7: SAPAG+-+SAP50

© SAP AG

R

Target Audience

Project team

Consultants

R/3 administrators

R/3 developers

Notes to the user

The training materials are not teach-yourself programs. They complement the course instructor's explanations. On the sheets, there is space for you to write down additional information.

Page 8: SAPAG+-+SAP50

© SAP AG

R

Course Goals

R/3 System architecture

R/3 System navigation

R/3 System interfaces

R/3 System development environment

R/3 System administration

This course will provide you with knowledgeabout the following topics:

Page 9: SAPAG+-+SAP50

© SAP AG

R

Course Content

Unit 5 ABAP Dictionary

Unit 6 ABAP Workbench

Unit 7 Administration and Remote Services

Unit 1 Basis System and the System Environment

Unit 2 Navigation

Unit 3 System Kernel

Unit 4 Interfaces

Introduction

Exercises

Solutions

Appendices

Page 10: SAPAG+-+SAP50

© SAP AG

R

Basis System and the System Environment

The Integration Model

Business Framework Architecture

Openness and Scalability

The Client / Server Concept

The R/3 Basis Components

Page 11: SAPAG+-+SAP50

© SAP AG

R

Objectives

Discuss the Business Framework model as the newstrategic product architecture of the R/3 System.

Specify the basic technological properties of the R/3System, such as portability, openness andscalability.

Define the client / software concept and its influenceon the R/3 System software architecture.

Outline the R/3 Basis components and their tasks forthe whole system.

R

Page 12: SAPAG+-+SAP50

© SAP AG

R

R/3R/3BasisBasis

SDSales &

DistributionFI

FinancialAccounting

COControlling

TRTreasury

PSProjectSystem

WFWorkflow

ISIndustry

Solutions

MMMaterials

Mgmt

HRHuman

Resources..

PPProduction

Planning

QMQualityMgmt PM

PlantMain-

tenance

Accounting

Human Resources

Logistics

Industry /Cross-Application

Extensive businessfunctions

R/3 Integration Diagram

The R/3 System is based on an economic model that covers the following application areas: Financial accounting, controlling, asset management, materials management, production planning and production control, sales and distribution, quality management, plant maintenance, project management, service management, human resources, office communication, workflow functions, industry solutions, Open Information Warehouse.

An outstanding feature of the components of the R/3 System is the combination of up-to-the-minute technology with comprehensive business functions. The high level of application integration ensures that all functions can be accessed directly throughout the system and, therefore, your company. When you install your R/3 System, the data is integrated using a common database.

Processing business processes with the R/3 System is not restricted to individual application modules. All data and functions are closely connected to each other. This enables cross-application business processes to be carried out at smoothly as possible.

Page 13: SAPAG+-+SAP50

© SAP AG

R

R/3 in the Business FrameworkExtensive businessadministration functionsR/3 as a family ofseparate, integratedcomponents

BusinessInformationWarehouse

BusinessInformationWarehouse

HR 4.0HR 4.0

LO 4.0

FI 4.0

Core 3.1Core 3.1

InternetApplications

InternetApplications

............

......

EmployeeSelf-

Service

EmployeeSelf-

Service

Add-onDevelop-

ment

Add-onDevelop-

ment

Comple-mentarySoftware

Comple-mentarySoftware

............

......

Internet

Intranet

The Business Framework is the new, strategic R/3 System product architecture. It works with business components, which are software modules that can be configured and provides enterprises with a moving business infrastructure. Therefore, enterprise software can react quickly to new business requirements and be changed or enhanced simply without interrupting the business process. Using the Business Framework technology, SAP provides its customers with a new platform to configure and connect business processes and information flows across all components of the Business Framework - and also across physically separated application components.

Examples of types of business components are core components such as FI (Financial Accounting), LO (Logistics), HR (Human Resources) or industry components for the formation of specific applications for different sectors or Internet application components for Business-to-Business, Consumer-to-Business and Intranet applications.

The advantages of the Business Framework Architecture (BFA) include the ability to easily change and configure dynamically business processes independently of usual releases, easy integration of Internet and Intranet components in their business processes, simple connection between R/3 and third-party software, customers’ own developments and evolutionary implementation of the latest technology without interrupting the business operation.

Page 14: SAPAG+-+SAP50

© SAP AG

R

Extensive businessadministration functionsR/3 as a family ofseparate, integratedcomponentsWorking with businessadministrationcomponents:BC, BO, BAPIs

Business Framework Components

BOBOBAPIBAPI

ALE

Clientcomponents

Clientcomponents

BAPI BAPI

BAPI

BOBOBOBO

BAPIBAPI

BusinessComponents

BAPIBAPI

e.g. Human Resources

e.g. Order, employee,applicant

e.g. Display order,change employeeaddress

The Business Framework graphic shows the R/3 System as a family of separate, integrated components. Components:

Business Components (Human Resources, for example) Business Objects (Order, employee, applicant, for example) BAPI-Interfaces (create an order, change employee address, for example)

Business components interact in the Business Framework over open Business Application Programming Interfaces (BAPIs). BAPIs also provide a stable, standardized interface to integrate external applications and components into the Business Framework. These interfaces are defined within the framework of the SAP initiative with customers, partners and leading standardization organizations.

To distribute business information to in the Business Framework, there are stable technologies such as Application Link Enabling (ALE). ALE guarantees integration between the business components.

Page 15: SAPAG+-+SAP50

© SAP AG

R

Extensive businessadministration functionsR/3 as a family ofseparate, integratedcomponentsWorking with businessadministrationcomponents:BC, BO, BAPIsIntegration of externalapplications via openinterfaces

CPI-CCPI-C

RFCRFC

OLEOLE

EDIEDI

ALEALE

R/3 as an Open System

The R/3 System ensures portability by using industry standards for interfaces that allow the integration of applications, data and user interfaces. This is how the system is compatible with different operating systems, databases and networks. The R/3 System uses open system industry standards such as TCP/IP, EDI, OLE and Open Interfaces.

TCP/IP: Network communication protocol

EDI (Electronic Data Interchange): Process for the exchange of business data between different systems

OLE (Object Linking and Embedding): Integrates PC applications with the R/3 System

Open Interfaces: Such as optical archiving, barcoding devices, etc.

As well as the industry standards used by SAP, the R/3 System also uses additional communication tools which allow integration beyond system borders:

RFC: Remote Function Calls use CPI-C protocols (IBM's communication standard) to facilitate communication and processing of applications and tasks between R/3, R/2 and other systems.

ALE: Application Link Enabling allows distributed processing autonomy and the integration of R/3, R/2 and other systems that are linked to each other.

Page 16: SAPAG+-+SAP50

© SAP AG

R

Extensive businessadministration functionsR/3 as a family ofseparate, integratedcomponentsWorking with businessadministrationcomponents:BC, BO, BAPIsIntegration of externalapplications via openinterfacesFlexibility, scalabilityand performance usingclient / serverarchitecture

PresentationPresentation

ApplicationApplication

DatabaseDatabase

Scalability . . . . . . . . . . . .

Client / Server - Scalability of the R/3 System

The R/3 System has a modular software architecture that follows the software-oriented client / server principle. This architecture forms the basis of the many options available to customers for planning and operating their individual R/3 System installations. Central configurations are supported as well as distributed systems with numerous dedicated servers.

This architecture allows you to separate application logic from the presentation and the database. This is the prerequisite for distributing load in client / server configurations as well as using the performance potential and various cost structures of present and future hardware generations.

This architecture allows you to adjust the performance of the installed host service (scalability), for example, if load profiles have changed as a result of increasing user numbers or because additional components are used.

Features and uses of the scalability of the R/3 System: Installation of additional servers with resource bottlenecks Parallel servers with homogeneous load and local program execution Buffer data and programs near to the processors Logon and load balancing (distribution of users to dedicated servers,

load distribution with background processing)

Page 17: SAPAG+-+SAP50

© SAP AG

R

Client / Server Principles

Process 1 Process 1

Requirementfor a

service Software-oriented

view

Hardware-oriented

view

LAN / WAN

Client Server

Client Server

Provisionof a

service

In SAP terminology, a software component provides a service (software-oriented view). This type of component can consist of a process or a group of processes and is then called a server for that service.

Software components that use this service are called clients. At the same time, such clients can also be servers for specific services.

A server often also means a computer (host) on which software components run that provide specific services (hardware-oriented view).

Page 18: SAPAG+-+SAP50

© SAP AG

R

R/3 System Client / Server Configurations

ApplicationApplication

DatabaseDatabase

PresentationPresentation

Database, application, presentation processes

Central system Two-tier config. Three-tier config.

Presentation processes

Database, application processes

Flow of: Database processes

Application processes

The fundamental services in a business application system are presentation services, application services and database services.

In a central R/3 System configuration, all processing tasks are performed by one host. This corresponds with the classic mainframe processing, with X terminals instead of character-oriented terminals.

Two-tier R/3 System configurations are usually implemented using special presentation servers that are responsible solely for formatting the graphical interface. Many R/3 System users use Windows PCs for example as presentation servers. An alternative two-tier configuration is to install powerful desktop systems and to use these for presentation and applications (two-tier client/server). This type of configuration is particularly useful for expensive applications (such as simulations) or for software developers.

In a three-tier configuration, you use your own host for the three tiers. Using data from the database server, several different application servers can operate at the same time. To ensure that the load on individual servers is as even as possible and to achieve optimal performance, you can use special application servers for individual application areas such as sales planning, distribution or financial accounting (Logon-/ Load Balancing).

Page 19: SAPAG+-+SAP50

© SAP AG

R

Three-Tier Hierarchy

SAPpresentation

Applicationserver

Databaseserver Database access

Dialog processingBackground processingUpdate / lock

X terminals, NC terminals

Terminal server

Presentationserver

Workstations, PCs, laptops

The R/3 System refers to all software components that are assigned to the same database. If you use the distribution options of the R/3 System according to the client / server principle, the R/3

components extend over a three-tier hierarchy. The database server is installed on a central host, that is, the database server processes run on this host. Several application servers can be connected to the database server. Application servers process the actual

application logic. Several presentation servers can also be connected to each application server. These are also called frontends

(workstation, PC). These individual computers process all presentation tasks. Users work interactively with the R/3 System using the user interface provided by the presentation services.

Page 20: SAPAG+-+SAP50

© SAP AG

R

R/3 Basis Middleware

ABAP Workbench

R/3 application

R/3 Basis (Middleware)

System Software

R/3R/3Client / ServerClient / Server

ABAP/4ABAP/4

COCOControllingControlling

AMAMAsset MgmtAsset Mgmt

PSPSProjectProjectSystemSystem

WFWFWorkflowWorkflow

ISISIndustry Industry SolutionsSolutions

HRHRHumanHuman

ResourcesResources

SDSDSales & Sales &

Distribution Distribution

PPPPProductionProduction

PlanningPlanning

QMQMQualityQualityMgmtMgmt

FIFIFinancialFinancial

AccountingAccounting

PMPMPlant Main-Plant Main-

tenancetenance

MMMMMaterialsMaterials

MgmtMgmt R/3R/3Client / ServerClient / Server

ABAP/4ABAP/4

COCOControllingControlling

AMAMAsset MgmtAsset Mgmt

PSPSProjectProjectSystemSystem

WFWFWorkflowWorkflow

ISISIndustry Industry SolutionsSolutions

HRHRHumanHuman

ResourcesResources

SDSDSales & Sales &

Distribution Distribution

PPPPProductionProduction

PlanningPlanning

QMQMQualityQualityMgmtMgmt

FIFIFinancialFinancial

AccountingAccounting

PMPMPlant Main-Plant Main-

tenancetenance

MMMMMaterialsMaterials

MgmtMgmt

Using the R/3 Basis System, the applications can run on different platforms with high performance and can be adapted to meet the individual user requirements.

R/3 Basis software (also called middleware): Provides the runtime environment for the R/3 applications Takes care of optimally embedding the application in the system environment Defines a stable architecture framework for system enhancements Contains the tools for administering the whole system Allows resources and system components to be distributed Provides interfaces for decentral system parts and external products.

Features of Basis technology are: The R/3 Basis System architecture particularly complies with the structure of client / server configurations Relational databases Graphical user interfaces

Page 21: SAPAG+-+SAP50

© SAP AG

R

Ben

utze

rsch

nitts

telle

Screen interpreter ABAPinterpreter

R/3 Basis System Overview

System software and platforms

System interfaces

Flow control

Programming interfacesU

ser i

nter

face

Applications

Ben

utze

rsch

nitts

telle

Com

mun

icat

ion

inte

rfac

e

ABAPDictionary

To guarantee portability of the R/3 System applications, the system software interfaces are combined in their own level. Above this level, the functions of all R/3 System components are completely independent of the hardware and software environment.

The flow control sits on top of the system interfaces. It controls services such as scheduling or memory administration that could partly be left to the surrounding operating system software, but which are executed within the R/3 System for reasons of portability and performance.

The user interface provides the application presentation options. The communication interface defines the channels for exchanging information electronically, for transferring

legacy data, for example, or for program-to-program communication according to the CPI-C protocol and for the standard exchange of application data using EDI (this will be explained later in the course).

All application programs in the R/3 System are formulated in SAP's own ABAP programming language. The controlling components for the screen sequence are DYNPROS (= dynamic programs). The interaction between the screen and ABAP interpreters forms the technological basis of the R/3 System applications. Both interpreters use the overall view of the R/3 System data that is stored in the ABAP Dictionary.

Page 22: SAPAG+-+SAP50

© SAP AG

R

System Platforms for the R/3 System

* not supported with AS/400

DB2 forOS/390DB2 forOS/390

Windows 3.1, Windows 95, Windows NT,OSF/Motif *, OS/2 Presentation Manager (PM),

Macintosh *, Java

Windows 3.1, Windows 95, Windows NT,OSF/Motif *, OS/2 Presentation Manager (PM),

Macintosh *, Java

ABAP, C, C++, HTML, JavaABAP, C, C++, HTML, Java

OS/390OS/390AIX

Digital UNIXHP-UX

AIXDigital UNIX

HP-UX

ReliantUNIX (SINIX)

SOLARIS

ReliantUNIX (SINIX)

SOLARISWindows NTWindows NT OS/400OS/400

Hardware Bull/ZenithCompaqData General...

Bull/ZenithCompaqData General...

NCRSequentSNI

NCRSequentSNI

DigitalHP (Intel)IBM (Intel)

DigitalHP (Intel)IBM (Intel)

BullDigitalHP

BullDigitalHP

IBMSNISUN

IBMSNISUN

UNIX SystemsUNIX SystemsIBM

AS/400IBM

AS/400

Operatingsystems

DialogSAPGUI

Languages

Data-bases

IBMS/390IBM

S/390

DB2 Common ServerINFORMIX-OnLine

ORACLE

DB2 Common ServerINFORMIX OnLine

ORACLE

DB2 Common Server INFORMIX-OnLine

ORACLEMS SQL Server

DB2 Common Server INFORMIX OnLine

ORACLEMS SQL Server

DB2 for AS/400DB2 for AS/400

The R/3 System's open architecture means that it is extremely portable. The R/3 System is fully compatible with all important UNIX platforms and Windows NT (Microsoft) as well as

with AS/400 and S/390 (IBM). You can also use database systems such as Informix Online, Oracle 7, ADABAS D from Software AG, IBM's

DB2/6000 and Microsoft's SQL Server 6.0. The graphical user interface of the R/3 System (SAPGUI) is also compatible with desktop systems such as OS/2

PM, OSF/Motif, Macintosh and Windows.

Page 23: SAPAG+-+SAP50

© SAP AG

R

Summary

The Business Framework concept works with thebusiness components, that is, configurablesoftware modules (Business Components). Itprovides companies with a flexible businessinfrastructure.

The R/3 System has a modular architecture thatfollows the software-oriented client / serverprinciple. This allows scalability of the R/3 System(distribution of application levels).The R/3 Basis software provides the runtimeenvironment for the R/3 System applicationsand ensures that the applications are embeddedoptimally in the system environment.

Page 24: SAPAG+-+SAP50

© SAP AG

R

Navigation

Logging onto the R/3 System

User interfaces and choosing functions

System functions and user defaults

The Session Manager

Page 25: SAPAG+-+SAP50

© SAP AG

R

Objectives

Define the essential features of the R/3 System.Specify the user interfaces and their components aswell as the options for controlling the R/3 Systemfunctions.

Discuss some of the basic functions of the R/3System and configure your own settings.

Page 26: SAPAG+-+SAP50

© SAP AG

R

Client

User

Password

Language

Client

User

Password

Language

Logging On

The R/3 System is a client system. With the client concept you can control several separate enterprises at the same time in one R/3 System. Each user session only accesses data on the client that you selected when you logged on.

So that you can log onto the R/3 System, you must have a user master record created for you for the corresponding client.

For reasons of access protection, you must enter a password when you log onto the R/3 System. The system does not display the password that you enter.

The R/3 System is multilingual. The default language is EN (English). Enter DE if you want to display the user interface in German, for example.

Page 27: SAPAG+-+SAP50

© SAP AG

R

Clients in the R/3 System

R/3R/3

FIFIFinancialFinancial

AccountingAccounting

TRTRTreasuryTreasury

BasisBasis

COCOControllingControlling

PSPSProjectProjectSystemSystem

WFWFWorkflowWorkflow

ISISIndustry Industry SolutionsSolutions

MMMMMaterialsMaterials

MgmtMgmt

HRHRHuman Human

ResourcesResources

SDSDSales & Sales &

DistributionDistribution

PPPPProductionProduction

PlanningPlanning

QMQMQualityQualityMgmtMgmt

PMPMPlant Main-Plant Main-

tenancetenance

Default clients

Freely-selectable customer clients

Client 000Client 001Client 066

Client 100Client 200

Client xxx

A client is a self-contained organizational unit in the R/3 System. Clients have their own data environment and therefore their own user master and transaction data, assigned user master records and chart of accounts and specific Customizing parameters.

Users of different clients coexist independently and isolated in the same R/3 System. Users can only see or process data in a client for which they have authorization. This isolation specification is fixed in the design of the R/3 tables, as well as at the level of the application tables and in the Customizing tables. (Customizing = Adjusting the R/3 System to users' individual requirements)

Client 000 is defined as an SAP standard and must not be changed by customers. You can use this client as a template for additional clients that you want to create.

Clients have a three digit name.

Page 28: SAPAG+-+SAP50

© SAP AG

R

R/3 Menu Structure

Customer

Company code

Address

Control data

Payment transactions

General data

AccountingAccountingFinancial accountingFinancial accounting

...

...

...

..

...

...

33

11.........

22Application

level

Task level

Accounts Receivable

Main menu levelAccountsAccounts rec rec..

Master recordsMaster recordsCreateCreate

Once you have logged on, the system displays the R/3 main menu level. When you choose one of these menu options, the system displays a pull-down menu (1). From here you can choose the application levels. Menu options with arrows have cascading menus.

If you choose a menu entry or choose a submenu, the system displays the applications in the application level (2). This lists the functions that you can call for each application (create a data record, for example).

When you choose the required function, the system displays the initial screen (3) to edit the object for your application. You are now in a special SAP application called a transaction.

The dynamic menu provides an alternative option to using menus to choose functions. You can display the dynamic menu by choosing Dynamic menu.

Page 29: SAPAG+-+SAP50

© SAP AG

R

13:10

Display Customer Line Items: Initial ScreenLine items Edit Goto Settings Environment System Help

Line layoutTotals variant

Open itemsCleared itemsParked itemsWith vendor line items

CustomerCompany code

Line item selection

Selection criteria... With work list

SettingsStandard Line items

Totals

List begins with

PushbuttonPushbutton

Status barStatus bar

CheckboxesCheckboxes

Command fieldCommand field StandardStandard toolbartoolbar

RadioRadio button button

OptionsOptions

TitleTitle bar bar

Screen

Title bar: The title bar displays the task in which you are currently working. Command field: You can choose a task directly by entering the corresponding transaction code in the command

field. You can find the transaction code for a task by using the dynamic menu or by choosing System → Status. Options: When you choose Options, you can change the R/3 System user interface to your individual

requirements. Standard toolbar: In the standard toolbar you can find the icons that are frequently used for navigating within

the system, as well as icons for saving data and calling the online help. If you place the cursor over on an icon for while, the system displays a flag with quick info text that explains the icon's function.

Checkboxes: Checkboxes allow you to choose several items from a selection at the same time. Radio buttons: Radio buttons allow you to choose exactly one item from a selection. Status bar: The status bar displays information on the current status of the system, such as the R/3 System

name, session number, client, application server on which you are working andf the PC time.

Page 30: SAPAG+-+SAP50

© SAP AG

R

Selecting Functions

By entering a transaction code in the command field:

Using the menus SystemCreate sessionEnd sessionUser profileServicesUtilitiesListObject servicesOwn spool requestsOwn jobsShort messageStatus . . .Log off

Hold dataSet dataDelete dataApp. valuesOwn dataFavourite maint.

/NSM50

You can select a function in the following ways: Using the mouse by choosing menu entries,

or using the keyboard (Alt + access characters (underlined letters in the menus).

By entering a transaction code in the command field: Each function in the R/3 System is assigned a transaction code. You can enter the transaction code for a transaction in the command field of any screen in the R/3 Systems (for example, to choose a function enter "/n" and then a four-digit transaction code /nsm50). You can determine the transaction code by choosing System → Status. Additional input options: “/n” ends the current transaction “/i” deletes the current session “/osa38” opens a new session and branches to the transaction specified.

You can also access the command field using the keyboard, by choosing STRG+TAB. This takes you from one field group to another. Within a field group, you go to another by choosing TAB.

Page 31: SAPAG+-+SAP50

© SAP AG

R

Field HelpCustomer Change:

Customer Edit Goto Extras Environment System Help

CustomerCompany code

?F1F1F4F4

SAP R/3 F1 Help

Help Technical Info About F1 HelpCustomer account number

Definition

Procedure

Key via which the customer is clearly identifiedwithin the SAP system.

When creating a customer master record, theuser decides whether he/she enters theaccount number of the customer or whether itshould be determined by the system when therecord is saved, depending on the type ofnumber assignment specified.

Company CodeCo. Code Company name City Curr.1000 IDES AG Frankfurt DEM1111 IDES I Rome XEU1310 IDES F Paris XEU2000 IDES UK London GBP2200 IDES R Moskow RUB3000 IDES US New York USD5000 IDES JP Tokyo JPY 5061 IDES BR Sao Paulo BRL5070 IDES SA Capetown ZAR6500 IDES A Sydney AUD… … … ...

You can choose the F1 key to display an explanation of fields, menus, functions and messages. You can also choose the F1 help to display technical information for that field. Here you can find, for example,

the parameter ID to fill the field with default values. You can use F4 to display possible input values.

Alternatively, you can choose the possible entries pushbutton located directly to the right of the field. If fields are filled with a question mark (?), the system can only continue to process the task once you have

entered a permitted value in the field. Users can specify whether many fields in a task should be flagged as required fields or optional fields, or whether they should be suppressed (hidden).

Page 32: SAPAG+-+SAP50

© SAP AG

R

R/3 Online HelpCustomersCustomers

Postings Doc. Account Master records Periodic proc. Env. System

R/3R/3

HelpEExtended helpxtended helpRR/3/3 library libraryGGlossarylossaryReleaseRelease NNotesotesGetting startedGetting startedSettiSettingngssHelp on helpHelp on help

WORKING WITH R/3IDES (DEMO SYSTEM)IMPLEMENTATION TOOLSRELEASE NOTESR/3 SERVICE & SUPPORT

BASISFINANCIAL ACCOUNTINGTREASURYCONTROLLINGINVERSTMENT MANAGEMENTENTERPRISE CONTROLLINGLOGISTICS GENERALMATERIALS MANAGEMENT

CROSS-APPLICATIONPLANT MAINTENANCEPROJECT SYSTEMQUALITY MANAGEMENTPRODUCTION PLANNINGSALES & DISTRIBUTIONPERSONNEL PLANNING & DEVELOPMENTPERSONNEL ADMINISTRATION & PAYROLL

BC CA FI HR LO i ?ABC

R/3 Library

BC - BasisCA - Cross-Application

ComponentsFI - Financial AccountingHR - Human Resources MgmtLO - LogisticsINFO - InformationGlossaryHelp

Welcome to SAP OnlineHelp.Choose the application component forwhich you need more information.

Copyright 1997 by SAP AG. All rights reserved

depending on R/3 Release

4.0 B

The R/3 System provides detailed online help. You can call this help from every screen in the system by choosing Help.

From Release 4.0A, you can display the online help in HTML format.

By choosing the menu option Help, you can: • call context-sensitive help (Extended help), • access online documentation (R/3 library), • find definitions of terms in the Glossary, • query Release notes, • get started with the R/3 System, • choose help settings (modal (R/3) window or modeless window (ext. viewer)), • see how you can use this help (Help on help).

Page 33: SAPAG+-+SAP50

© SAP AG

R

System Functions - Services

System

Create sessionEnd sessionUser profileServicesUtilitiesListObject servicesOwn spool requestsOwn jobsShort messageStatus . . .Log off

ReportingQueryOutput controllerExt. Table maint.Table maintenanceBatch inputFast inputDirect inputCATTJobsQueueSAP ServiceAppointment cal.Office

Dynamic menu

Opens the company menu,favorites list and thetransaction search help

You can find the following options in the System menu option: • Create/End session Create and delete additional sessions (up to 6). • User profile Make user-specific settings • Services Important service functions • List E.g. search for specific character strings, download, print... • Status Display various user and system data • Log Close the user's SAP session (with confirmation).

By choosing System → Services you can also find the following functions:

• Reporting Start reports • ABAP Query Start queries • Output controller Manage user-specific spool / print requests • Table display Call the table display / maintenance (Shortcut to SM30) • Batch input Manage batch input sessions (transfer legacy data) • Jobs Manage jobs in background processing • SAP Service Log onto the SAP OSS System.

Dynamic menu calls the company menu and also allows you to search for keywords.

Page 34: SAPAG+-+SAP50

© SAP AG

R

System Functions - User Profile

System

Create sessionEnd sessionUser profileServicesUtilitiesListObject servicesOwn spool requestsOwn jobsShort messageStatus . . .Log off

Dynamic menu

Hold dataSet dataDelete dataApplication valuesOwn dataFavourite maint.

The menu option User profile contains: Hold data, Set data, Delete data. These options allow you to hold data during a session and then set it the next time you call the application.

Own data: Here you can set your address, defaults and user parameters in three additional templates. Fixed

values include your choice of start menu, date and decimal format. You can only use a work area or an area menu as a start menu (see F1 help on the start menu). Using user-specific parameters you can predefine regularly used input fields. (To find the field parameter, position the cursor on the field to be filled. Choose F1 help and the technical information. This displays the internal field parameters that you use to predefine the field.)

Page 35: SAPAG+-+SAP50

© SAP AG

R

Favorites ListEdit the Favorites List

Menu Edit Favorites list Goto System Help

Company menu

Favorites list

Office InboxInventory management Environment Stock Stock/rqmts listLogistics Sales/distribution Sales Order Create

Customers Environment Credit management Control Credit overview

Logistics Sales/distribution Sales Order ChangeLogistics Sales/distribution Sales Info System Standard analyses Customer

++

++

++-

OfficeLogisticsAccountingHuman resourcesInfo catalogTools

Each user can define his or her favorites. Favorites are regularly used R/3 functions. You can display them by choosing System → User profile → Favorite maint. Or by choosing Dynamic menu from any screen. The system then displays the company menu, which was previously created using the Customizing functions and which displays all of the applications relevant for the customer in a tree structure.

In this transaction (SES0), you can also maintain your favorites, that is, you can insert or delete them or arrange them in simple structures.

Creating Favorites: To insert a transaction in your favorites list, use the mouse to select the transaction in the menu tree. Then choose the menu option to create a favorite. You can also create favorites directly by specifying a transaction code. When you use the Session Manager, the favorites you have chosen are displayed in the user view.

Page 36: SAPAG+-+SAP50

© SAP AG

R

Session Manager - Company ViewSAP Session Manager

Logon Overview T83/400/D

Office

Logistics

Accounting

Human resources

Info systems

Client 400, User Smith, Language EMaterials managementSales & distributionProductionProduction - processPlant maintenanceService managementQuality managementLogistics controllingProject managementCentral functions

Business partnersProductsConditionsOutputAgreementsOther

Master dataSales supportSalesShippingTransportationBillingForeign tradeSales informationsystem

Sold-to partyShip-to partyPayerBill-to partyOne-time customersHierarchy nodesOther customersCustomer hierarchyForwarding agentSales employeesArchiving

Financial accounting, Accounts receivable, Postings, InvoiceFinancial accounting, Accounts receivable, Postings, Credit memoInbox

Create Customer Credit Memo: Header Data

T61/400/D T66/400/E

User-specific folders

Session list

The Session Manager is a user interface for controlling the R/3 System in its own window. You use the Session Manager to log onto one or several R/3 System. This enables users to manage sessions from within this user interface.

Once you have logged onto the Session Manager, the system displays a tab that contains the components to control calls to transactions and reports centrally.

Users can use the mouse to display two views: the SAP standard menu and the company menu. The SAP standard menu displays all of the business transactions supported by SAP, the company menu displays the transactions selected from the SAP standard menu and which are are relevant for a company.

Note: The Session Manager runs on Windows 95 and Windows NT (from release 3.51) and is available from SAP

R/3 Release 3.0 D.

Page 37: SAPAG+-+SAP50

© SAP AG

R

Summary

Navigating within the R/3 SystemUsing entries in the System menu suchas creating user profiles, reporting, tablemaintenance, flow control, list functions.

Page 38: SAPAG+-+SAP50

© SAP AG

R

System Kernel

Presentation interface

Database interface

Dialog processing

SAP transaction concept

Asynchronous update and the lock concept

Background processing

Spooling

R/3 instance

Page 39: SAPAG+-+SAP50

© SAP AG

R

Objectives

Discuss the components of the R/3 Systemapplication server and analyze how a dialog requestis processed.

Outline the basic techniques for processing R/3transactions.

Define the instance concept and the basic structureof an R/3 System and its components.

R

Page 40: SAPAG+-+SAP50

© SAP AG

R

R/3 Presentation Interface

Presentation

Application

Windowmanager

SAPGUIprocess

SAPGUIprocess

SAPGUIprocess

X terminalX terminal

Workstation / PCWorkstation / PC

X terminalserver

X terminalserver

X terminalX terminal

X terminalX terminal

LAN / WAN network

SAPGUIprocess

SAPDispatcher

SAPDispatcher

The presentation interface SAPGUI (GUI = Graphical User Interface) implements the platform-specific input and output functions of the R/3 System. The SAPGUI is available for several platforms and provides the same functions for each. If you have learned to use the R/3 System on one platform, with the exception of a few small platform-specific GUI attributes, you can use the system on another platform exactly the same as before.

Together with the frontend processes of the window management software, the SAPGUI implements in this way the graphical control elements of the R/3 System. The R/3 presentation software therefore implements the graphical user interface using the functions provided by the presentation environment.

The flow of data between the presentation level and the application level does not consist of prepared screens, but rather logical, compact information using control elements and user input.

The data set to be transferred for each screen change is generally between 1 and 2 kB. You can also connect application servers over WANs.

Page 41: SAPAG+-+SAP50

© SAP AG

R

Pers# Name Tel. no. Address PC

4711 Dirk Esch 069 2453 Mozartstr. 45 Munich 60944

4712 Hans Kluge 0324 2533 Wagnerstr. 22 Cologne 13802

4710 Tom Smith 030 1188 Schubertstr. 76 Berlin 1000

. . . . . . . . . . . . . . .

Pers# Dept.#

4711 008

4710 007

4712 007

. . . . . .

Dep.# Dept.

008 Finance

007 EDV

009 Vehicles

. . . . . .

Boss

132

65

142

Relational Database Management Systems

Relational Database Management Systems (RDBMS) are generally used to manage large sets of data. An RDBMS saves data and relationships between data in the form of two-dimensional tables. SQL (Structured Query Language) is responsible for data organization, access and manipulation. Different manufacturers produce RDBMS products. These products are not fully compatible. Relational database management systems distinguish themselves by their logical simplicity. All data as well as

the relationships between this data is stored in two-dimensional tables. The definition of the data, tables and table relationships takes place in the database catalog (the data dictionary) of the database system.

The ISO standard 9075 SQL (Structured Query Language) is used to query and manipulate data in relational database systems.

Page 42: SAPAG+-+SAP50

© SAP AG

R

ABAPABAPinterpreterinterpreter

DBDBinterfaceinterface

EXEC SQL.SELECT ...END EXEC.

DatabaseDatabaselocallocalbufferbuffer

SELECT *FROM ... Native SQLOPEN-SQL

App. data

Data

DB data

DB data

Native SQL

Application server Database server

DB

R/3 Database Interface

Within the ABAP programming language, you can use SAP OPEN SQL to access data in the database regardless of your database management system.

The R/3 database interface converts Open SQL statements from the ABAP statements into corresponding database statements. This means that the application programs that are written in ABAP do not depend on the database used.

When interpreting Open SQL statements, the R/3 database interface checks the syntax of these statements and ensures that the local SAP buffers in the shared memory of the application server are utilized optimally.

Data that is frequently required by the applications is stored in these buffers so that the system does not have to access the database to read this data. In particular, all technical data for such as ABAP programs, screens and ABAP Dictionary information, as well as business administration parameters such as the number interval supply, usually remain unchanged in a running system and are therefore suitable for buffering. The same applies to transaction data which is generally accessed as read-only.

Page 43: SAPAG+-+SAP50

© SAP AG

R

Presentation

Application

Buffer

Database

Communication

SAPGUISAPGUI SAPGUISAPGUI

Workprocess

Workprocess

Workprocess

DBDB processes

Processing User Requests

Dispatcher

The central process of the R/3 application level is the SAP dispatcher as a control instance. Together with the operating system, the SAP dispatcher controls the resources for the R/3 applications. The main tasks of the dispatcher include distributing load to the work processes, connecting to the presentation level and organizing communication.

User screen input is received by the SAP presentation program SAPGUI, converted into its own format and then sent to the dispatcher. The processing requests are then saved by the dispatcher in request queues and processed.

The dispatcher distributes the requests one after the other to the available work processes. Data is actually processed in the work process. There is no fixed assignment of work processes to users.

Once the data has been processed, the processing result from the work process is sent via the dispatcher back to the SAPGUI. The SAPGUI interprets this data and generates the output screen for the user.

When the R/3 System is initialized, the dispatcher executes amongst others the following actions: it reads the system profile parameters, generates roll areas, starts work processes and logs onto the message server (this service will be explained later).

Page 44: SAPAG+-+SAP50

© SAP AG

R

Work process 1

Work process n

Shared memory

RequestRequestqqueues

Frontend: SAPGUI

Dispatcher

Screen processor

ABAPprocessorDatabaseinterface

Taskhandler

Factory calendarScreensABAP programsTablesDictionary objects...

Application buffer

Roll fileRoll fileUser context

Roll area

inte

rnal

mem

ory

. . .

Roll inRoll out

Buffer access

LAN / WAN network

Dialog Work Processes

The main components of an R/3 application server are: Dispatcher as a central control instance Dispatcher queues for incoming requests Configurable number of work processes for processing ABAP programs Commonly used buffers in the shared memory.

The task handler coordinates activity within a dialog work process. It activates the screen processor or the ABAP processor (which control the screen flow logic and process ABAP statements respectively) and executes the roll-in and the roll-out of the user context.

The memory management system differentiates between main memory areas that are available exclusively to a work process, and memory areas that can be used by all work processes. The memory space used exclusively by a work process has two reserved areas for session-specific data that must be kept longer than the duration of a work step. These are called roll and paging areas. Paging areas play a less important role from Release 3.0. The roll area contains data that is automatically made available to the process at the start of a dialog step (rolled-in) and that is saved at the end of the dialog step (rolled-out). The roll area also contains data that characterizes users (user context), such as their authorizations, administration information and additional data for the ABAP and dialog processor. This data was already collected in the dialog steps that were already executed. There are also additional memory areas for all processes in the shared memory for the factory calendar, screen, table and program buffers.

Page 45: SAPAG+-+SAP50

© SAP AG

R

V2

Dialog

D

SAP dispatcher

M

Message service

SpoolS

G

Gateway service

R/2 R/3

Background12

9

6

3

11 1

7 58 4

210

B

UpdateV

Lock admin.

E

Disp.

R/3 Application Services

Disp.

Disp.

Disp.

The R/3 runtime system is a group of parallel, cooperative processes. On each application server, these processes include the dispatcher as well as a number of work processes that depend on the resources. Special work processes may be installed for dialog processing, update, dialog free background processing and spooling.

As well as these work process types (dialog processing (D), update (V), lock management (E), background processing (B), spool (S)), the R/3 runtime system provides two additional services for internal and external communication: The message server (M) communicates between the distributed dispatchers within the R/3 System and is

therefore the prerequisite for scalability with several application servers that are processing in parallel. The gateway server (also called the CPI-C handler) allows communication between R/3, R/2 and external

application systems.

Page 46: SAPAG+-+SAP50

© SAP AG

R

First userdialog step

PBO

Second userdialog step

Third userdialog step Time

SAP transaction

PAI PBO PAI PBO PAIScreen200

Screen300

Screen100

Systemdialog step

Systemdialog step

SAP Transactions and Screens

User chooses Save / Exit

Transactions are processing units that are grouped in functions which execute consistent, database changes that are can be permitted for business administration. Typical examples are credit and debit postings, that are only useful together, or creating an order and reserving the material concerned.

Accordingly, an SAP transaction is implemented as a series of consistent, connected dialog steps. A user dialog step is represented by a screen (or a dynpro, which is a dynamic program = template and flow logic).

SAP transactions are not necessarily executed within one single dialog work process. Instead, different dialog work processes can process the individual dialog steps in a transaction. You can also use asynchronous update for processing the dialog part of the transaction and the corresponding database update in different work processes and even on different hosts.

In an R/3 System, a dialog step starts by processing the data entered by the user (PAI: Process After Input) and by processing and sending the next screen template (PBO: Process Before Output); the system then receives the next screen processed by the user and once again analyzes and processes the input data on this screen. Dialog steps for the user and the system do not therefore take place at the same time. For the system, both halves of the dialog steps are called PBO and PAI.

Page 47: SAPAG+-+SAP50

© SAP AG

R

Start oftransaction

CALL FUNCTION'ENQUEUE_E...'EXPORTING CALL FUNCTION '...'

IN UPDATE TASK

COMMIT WORK

Startupdate

End update

SAP LUW 1

SAP LUW 1

∆ t

First part of the SAP LUW 1 Second part of the SAP LUW 1

New SAP LUW 2

Requestlock

Note changes

Releaselock

“Save"

LUW (Logical Unit of Work)

The transaction concept, in as far as it has been previously explained, corresponds to the term Logical Unit of Work (LUW)

As current database systems do not support transaction flows for all processes, you should differentiate between the elementary processing layers (LUWs) in the R/3 System and in the database system (from now on referred to as: SAP-LUW / DB-LUW). A DB-LUW is fully executed, or not at all. It ensures that the database is consistent. This means that the data are logically correct before and after the LUW. The same applies for DB-LUW and SAP-LUW.

The start of an SAP transaction is also the start of an SAP-LUW. SAP-LUWs are completed by a "COMMIT WORK" statement in the ABAP coding or by the end of the asynchronous update (second part of the SAP-LUW). Within an SAP-LUW, each dialog step is executed by a work process, as described previously and therefore corresponds to a DB-LUW. Database updates occur within a DB-LUW.

The technique predominantly used within SAP-LUWs is asynchronous update. This means that user change requests are collected temporarily and at the end of the dialog phase (that is, in the second part of the SAP-LUW,) the database is updated in separate update work processes. Like any other dialog step, this update takes place in one of its own DB-LUWs to achieve data consistency. The following slides explain asynchronous update.

Page 48: SAPAG+-+SAP50

© SAP AG

R

Call function'ENQUEUE_E...'

Enqueue server

. . .

Lock table inmain memory

. . .

Dialog server

a)

b)

Requesting a Lock

V-WPV-WP

Dispatcher

E-WPE-WP

Dispatcher

D-WPD-WP

MessageMessageserverserver

The lock mechanisms present in the current relational database systems are not generally sufficient to handle business data objects (such as sales orders) that may affect several tables in the database. The R/3 System has lock management function that is executed by the enqueue work process. This prevents several applications from accessing the same objects.

The enqueue work process manages the locks using a lock table (b) stored in the server's main memory (where the enqueue work process runs).

If a lock is requested (a), the system checks whether or not this lock clashes with existing entries in the lock table. If this is the case, the lock request would be rejected. In this way the application program can warn users in advance that the operation requested is not currently available.

As the screen dialog and enqueue work processes are not located in the same application server, these two work processes communicate over the message server. This R/3 System service will be explained later in the course.

Page 49: SAPAG+-+SAP50

© SAP AG

R

SAP Lock Objects

Activate

Lock objectLock object

ESFLIGHT

ABAPfunction moduleENQUEUE_ESFLIGHT

ABAPfunction moduleDEQUEUE_ESFLIGHT

ABAPDictionary

So that the system can execute lock requests, you must first define a lock object in the ABAP Dictionary. The lock object contains tables whose entries are to be locked. A lock object consists of a primary table. You can also have additional secondary tables using foreign key relationships (the name of a user-defined lock object must begin with "EY" or "EZ").

For a lock object, you can specify the lock mode ("S" read lock, "E" write lock). A write lock (mode "E") can only be set if no other user in the data record has set a lock. The same user can remove a lock from mode "E" or "S" within a call sequence of programs (call chain).

If a lock object is activated, the system generates an ENQUEUE and a DEQUEUE function module. The function modules are called ENQUEUE_<object_name> and DEQUEUE_<object_name>.

Locks set by an application program are either reset by the application program itself, or using a special update program (second part of the SAP-LUW).

Page 50: SAPAG+-+SAP50

© SAP AG

R

Call function ...in update task

c)

Writing Log Records

DBVBLOG

Enqueue server

. . . V-WP

Dispatcher

E-WP. . .

Dialog - Server

Dispatcher

D-WP

MessageMessageserverserver

Dialog work processes can cause direct changes to the database via the database interface, for example, using statements to the database server (regardless of whether or not the database is on the same host).

With asynchronous update, processing the ABAP language element CALL FUNCTION '...' IN UPDATE TASK of the change request is designated as a log record in "intermediate table" VBLOG (c). This system table saves the user change requests that occurred within an SAP transaction.

The log record contains the names of the update routines to be triggered as well as all data necessary to make the changes to the database. If the user cancels a transaction during the dialog phase, or the transaction terminates for other reasons, then the header entry in the VBLOG table may not be completed. The changes are not written to the database.

Updating log records can be subdivided into V1 and V2 update components. Primary, time-critical processes are stored in V1 components; secondary processes that are less time-critical are stored in V2 components.

Page 51: SAPAG+-+SAP50

© SAP AG

RVBLOG DB

Second part ofSAP-LUWe) f)

Save:COMMIT WORK

d)

Updating Log Records

. . .

Dialog server

Dispatcher

D-WP

Enqueue server

. . . V-WP

Dispatcher

E-WP

MessageMessageserverserver

The update itself is triggered by the ABAP statement COMMIT WORK specified in the last dialog step (d) of an SAP transaction. The locks set by the application program using the enqueue work process are passed onto the update task.

In the second part of the SAP-LUW, the update work processes take over copying (e) the log records from the VBLOG table and updating the change requests buffered there in the corresponding application tables in the R/3 database (f).

Errors cannot be corrected during the update by interactive contact with the user. Instead, the system terminates processing of the current update components. In the case of errors in the primary V1 components, the database changes that have already been made are reset. The log record is given an error ID and is not deleted from the VBLOG table. Subsequent V2 updates are not executed either. If a V2 component is terminated, only the database changes that have been made by this component are reset. The log record is given an error ID and is not deleted. The system continues updating the remainder of the secondary components.

Users are automatically notified by express mail if an update (V1 or V2) is terminated. The system can evaluate and handle the incorrect update that terminated (see “Administration" unit).

Page 52: SAPAG+-+SAP50

© SAP AG

R

Removing Locks

Lock table inMain memory

h)

. . .

Dialog server

Dispatcher

D-WP

Enqueue server

. . . V-WP

Dispatcher

E-WPg)

Messageserver

At the end of the SAP-LUW, the update task removes the locks (g). Locks are also removed from the lock tables if an update is unsuccessful (h). If an update is terminated, log records can be updated later in the VBLOG table, depending on the problem. This

method is generally used by terminated V2 components. You should not use it for terminated V1 components. SAP recommends that you process the transaction again (OSS note 16083).

If the database breaks down whilst it is being updated, the VBLOG log records that have not yet been updated (these have status "INIT") are automatically updated when the database is later restarted. You can use profile parameters to control this R/3 System function.

Page 53: SAPAG+-+SAP50

© SAP AG

R

111444

Scheduling table

Job1 C ... ...

Background Processing

333

Background processing server

. . .D-WP

Dispatcher

B-WPB-WPBatchscheduler

12

9

6

3

11 1

7 58 4

210

?Job

333

222. . .

Dialog server

Dispatcher

333D-WPSchedulejobs

Background processes for background processing (and not in dialog mode) are defined for periodic tasks such as reorganization or automatically transferring data from a legacy system into the R/3 System. This type of processes is handled in the system analogous to online processing.

Background processing is scheduled in the form of jobs. Each job consists of one or more steps (ABAP reports or external programs), that are processed sequentially. You can also set priorities (from "C" to "A") so that certain jobs are handled first.

Job processing is not generally triggered immediately (immediate start). Instead you specify a start date when you schedule the job. It may also be necessary to start jobs periodically. If, for example, there are any system control jobs that are repeated on a fixed cycle.

The batch scheduler is responsible for automatically triggering the job at the specified time. The batch scheduler is an ABAP program that searches for jobs to be executed in the scheduling table and then ensures that they are executed.

Page 54: SAPAG+-+SAP50

© SAP AG

R

Name Class Targ. Server Start timeName Class Targ. Server Start time

Job2Job2 CC

Server 1Server 1

Job1Job1 CC Server 1Server 1 23:0023:0023:0023:00

Job3Job3 AA 23:0023:00Job4Job4 CC 23:0023:00Job5Job5 CC 23:0023:00Job6Job6 BB 23:0023:00Job7Job7 CC 23:0023:00Server 2Server 2

Scheduling table

Workload Balancing

Dialog andbackground processingserver 1

B-WPB-WP

B-WPB-WPB-WP

D-WP

D-WP

D-WPD-WP

Dialog and background processingserver 2

D-WP

Workload balancing is used for background processing. This supports installations with several background servers as well as installations with several batch work processes on one server. Unless otherwise specified, a background process that has become free executes the next background request (job) that occurs in the system.

All jobs that specify the target server are taken up by the background processing server batch schedulers and started on the allocated servers.

The remaining jobs that do not specify the target server are then distributed according to the load on the background processing server.

Job processing also takes the priority of a job into account. Jobs belonging to class "A" have the highest priority and are therefore processed first. (Sequence: Priority A with target server specified before priority A without specifying the target server; priority B with the target server specified before priority B without specifying the target server and so on).

Page 55: SAPAG+-+SAP50

© SAP AG

R

Printer server

R/3 System

Printer serverTemSe

LAN WAN

Operatingsystemspooler

Output processor

saplpd

Spool

R/3 application

LAN WAN

Operatingsystemspooler

Operating system spooler

R/3 Printer Services

S-WP

Print

Spooling refers to the buffered transfer of data to output devices such as printers, fax devices and so on. In distributed systems, networked administration is necessary for this output.

The R/3 System spool mechanism can supply print requests to printers and external spoolers both within a local network as well as over WANs. On each host concerned, the spool mechanism cooperates with the local spool system.

Spool requests are generated in dialog mode or during background processing and are then set in the spool database with details on the printer and the print format. The data itself is stored in the TemSe (TEMporary SEquential object).

When data is to be printed, a print request is generated for a spool request. This print request is processed by a spool work process.

Once the spool work process has formatted the data for output, it returns the print request to the operating system spool system.

The operating system spooler takes over the queue management and ensures that the required data is passed on to the output device.

Page 56: SAPAG+-+SAP50

© SAP AG

R

R/3 InstanceInstance (a)

. . . D-WP

Dispatcher

D-WP

Instance (b)

. . . B-WP

Dispatcher

D-WP

“Central” Instance (c)

. . . V-WP

Dispatcher

D-WP E-WP B-WP S-WPMessageMessage

serverserver

An instance is an administrative unit that combines R/3 System components provifing one or more services. The services provided by an instance are started or stopped at the same time. You use a common instance profile to set parameters of all the components of an instance are.

A central R/3 System consists of a single instance that provides all the necessary R/3 System services. Each instance has its own SAP buffer area. The example displays setting up an additional dialog server (a) and a background processing server (b). These

instances that provide specific services generally run on their own hosts but can also be accommodated on the same host.

The message server provides the application servers with a central message service for internal communication (update trigger, request and remove locks, trigger background requests, for example).

The dispatchers for the individual application servers communicate via the message server that is installed once in each R/3 System (it is configured in the R/3 System profile files).

Even presentation servers can log onto an application server via the message server. This means that you can use the message server performance database for automatic load distribution (logon balancing).

Page 57: SAPAG+-+SAP50

© SAP AG

R

Summary

The database interface converts the SAP OPEN SQLfrom ABAP into the SQL of the database softwareused.

Flow control consists of the dispatcher and the workprocesses that process user requests.

The presentation interface is implemented using theSAPGUI.

A dialog request is sent from the presentation serverSAPGUI to the application server dispatcher and thenprocessed by a dialog work process.

Page 58: SAPAG+-+SAP50

© SAP AG

R

Interfaces

General communicationCPI-C communicationRFCBusiness Objects and BAPIsOLEInternet architectureEDIALEData Transfer into the R/3 System

Page 59: SAPAG+-+SAP50

© SAP AG

R

Objectives

Define the R/3 System as an open system.

Recognize the principle communication mechanismsin an R/3 System.

Discuss the options the R/3 System provides whenyou transfer legacy data.

Page 60: SAPAG+-+SAP50

© SAP AG

R

Communication: R/3 as an Open System

Ethe

rnet

Toke

n rin

g

X.25

LU6.2(R/2)

CPI-C (SAP implementation)

TCP/IP(R/3)

RFC

Toke

n rin

g

Ethe

rnet

. . . . . .Physical

layer

Connection layer

Network layer

Transportlayer

Presentation layer /

session layer

Application layer

OLE Automation

The R/3 System is an open system. It supports a variety of network communication protocols. Information can be exchanged between R/3 Systems and other R/3, R2 or non-SAP systems over the network.

Network communication can be divided into seven different layers. Each layer provides the layer above with functions whilst building on the services from the layers below. Handling communication is always easier at the upper layers.

SAP supports the TCP/IP (Transmission Control Protocol/Internet Protocol) and SNA LU6.2 (System Network Architecture; Logical Unit 6.2) protocols. Communication within the R/3 System takes place in the standard protocol TCP/IP. LU6.2 was developed by IBM and is used to communicate wuth mainframe-based R/2 Systems.

R/3 application programming supports CPI-C (Common Programming Interface Communication), RFC (Remote Function Call) and OLE Automation (Object Linking and Embedding) as communication interfaces.

You can find detailed information on communication in the online documentation. You can also get an “Interface Adviser” knowledge CD from SAP, which explains the options for communication in the R/3 System using examples.

Page 61: SAPAG+-+SAP50

© SAP AG

R

R/3 Gateway Service

SAPGateway

R/3 System

R/3 System R/2 System

Externalapplications

TCP/IP

TCP/IP

LU6.2

DB1

DB2

DB3

TCP/IP

The CPI-C protocol connects protocol types LU6.2 and TCP/IP. You can therefore use CPI-C to connect mainframes (R/2 Systems) and client server systems (R/3 Systems).

The SAP gateway (CPI-C handler) is a group of processes that allow communication between R/2 Systems, R/3 Systems and external applications based on the CPI-C protocol. The gateway can run together with an R/3 application and / or an R/3 database server, either on shared hardware or separately on its own.

Whereas short messages are exchanged between the application servers via the message server in an R/3 System, larger datasets (application data) flow through the SAP gateway. This means that the communication partner may be part of the same system, of a different R/3 or R/2 System, or part of an external program.

In the R/3 System, the SAP gateway processes communicate with clients based on the TCP/IP protocol. LU6.2 (from IBM) is used for mainframes.

Page 62: SAPAG+-+SAP50

© SAP AG

R

Communication with CPI-C

Structure connection

Data exchange

Remove connection

InitiatorInitiator

CMINITCMALLOC

CMSENDCMRCVCMSEND...

CMDEAL

Program 1

Connection partner

Connection partner

CMACCP

CMRCVCMSENDCMRCV...

CMRCV

Program 2 88MHz

The R/3 System supports the CPI-C “starter set” as an elementary program-to-program communication method. It is used for communication between R/2 Systems (before Version 5.0D) or external (mainframe) applications, for which you cannot or do not want to use protocol types that are easier to use.

ABAP contains six communication commands: COMMUNICATION INIT - specify communication parameters COMMUNICATION ALLOCATE - structure communication COMMUNICATION ACCEPT - accept communication COMMUNICATION SEND - send data COMMUNICATION RECEIVE - receive data COMMUNICATION DEALLOCATE - end communication. Once connection has been made, there is a program for sending the data. At this point, the other program must

be ready to receive the data. Senders and recipients may change. At the end of the data transfer, the connection is removed. As well as configuring the sending buffer, you can evaluate extensive return codes.

For CPI-C communication with external programs, in addition to the CPIC Advanced Function Calls (for converting ASCII to EBCDIC, for example,) SAP also delivers functions in the form of C libraries (to set up a connect string, for example).

Connection-related parameters are not components of the communication program. You maintain table TXCOM using Transaction SM54. External systems require a side info file.

Page 63: SAPAG+-+SAP50

© SAP AG

R

Remote Function Call

External system

RFCinterface

CPI-CProgrammProgrammProgrammProgram

R/3 System

RFCinterface

CPI-C

ABAPProgramm

ABAPProgramm

ABAPprogram

R/2 System

RFCinterface

ABAPProgramm

ABAPProgramm

ABAPprogram

CPI-C

Remote Function Call (RFC) is a communications interface that is based on CPI-C, but which has more functions and is easier for application programmers to use. You can use R/3 and R/2 Systems as well as external applications as RFC communication partners.

RFC is the protocol for calling special subroutines over the network. These subroutines are labeled function modules. Function modules are comparable with C functions or PASCAL procedures. They have a defined interface via which data, tables and return codes can be exchanged. Function modules are managed in the R/3 System in their own function library, called the Function Builder.

The Function Builder (Transaction SE37) provides application programmers with a useful environment for programming, documenting and testing function modules that can be called locally as well as remotely. The R/3 System generates the additional coding required for remote calls (RFC Stub) automatically.

The technical requirements for RFC are the same as for CPI-C. You maintain the parameters for RFC connections using Transaction SM59. The R/3 System is also delivered with an RFC-SDK (Software Development Kit) that uses extensive C libraries to allow external programs connecting to the R/3 System.

Page 64: SAPAG+-+SAP50

© SAP AG

R

RFC from R/3 System to R/3 System

RFC

Calling systemABAP coding

...CALL FUNCTION XY

DESTINATION...EXPORTING...IMPORTING......

88MHz

FUNCTION XY....

ENDFUNCTION.

Called system

Function module remote calls across system borders are only different to local remote calls in that a special parameter (Destination) specifies the destination host on which the program is to be executed.

There are three types of RFC call: Synchronous RFC call: the calling program stops until the function module has been processed in the

destination system and any results have been returned to the caller. Only then does the calling program continue processing.

Asynchronous RFC call: The calling program runs parallel to and independently of function module processing in the destination system. Programmers are responsible for handling result processing. In addition, the destination system must also be available at the time of the RFC call.

Transactional RFC call: Several function modules can be grouped into one transaction. They are processed once only in the destination system within an LUW, and in the sequence in which they were called. In the case of an error, the calling system receives a confirmation that you can assess using Transaction SM58. In the case of transactional RFC, the destination system does not have to be available at the time of the RFC call. In addition, you can configure the frequency and intervals of individual queries.

Page 65: SAPAG+-+SAP50

© SAP AG

R

Business Objects and BAPIs

BOBOBAPIBAPIBAPI

BOBO BAPIBAPIBAPI

BORBORBOR

BAPIBAPIBAPI

BOBO

BAPIBAPIBAPI

Clientprogram

ClientClientprogramprogram

BOR: Business Object Repository

BO: Business Objects

BAPI: Business API

Business objects form the basis for communicating at high and user-friendly network layers. They allow the R/3 System to become Internet-enabled or enable desktop programs to be connected, for example. SAP uses business objects with the aim of integrating objects at a business level rather than on a purely technical level.

Business objects • Form the basis of well-defined communication between client / server systems. • Are business-oriented: there are objects such as "Customer", "Order" or "Offer", for example. • Provide business functions (methods). For a "Customer" object, for example, there are

"Create customer" and "View customer" methods. These names enable clear and therefore error-free programming.

• Are managed centrally in the R/3 System in the Business Object Repository (BOR). BAPIs (Business Application Programming Interfaces) are functional interfaces. They use the business methods

from the business objects. BAPIs may be addresses within or external to the R/3 System.

Page 66: SAPAG+-+SAP50

© SAP AG

R

R/3 System as an OLE Client

ABAPprogramABAP

programRFC

SAPGUISAPGUI

PCprogram

PCprogram

OLEserverOLE

server

188188

R/3

OLE (Object Linking and Embedding) is an object-oriented way for inter-program communication. You can connect desktop applications to the R/3 System for programs that provide OLE2 automation (Word, Excel, for example). In this way users can use the R/3 System without having to sacrifice their usual desktop environment.

If the R/3 System is acting as an OLE client, then the user calls the desktop program from the ABAP application. OLE commands are transferred from the ABAP coding as RFCs via the SAPGUI to the PC. The SAPGUI maps RFC calls to OLE commands for the PC application.

The desktop program's OLE functions are specified in the R/3 System in the type information. This information contains a description of the methods, attributes and parameters. Type information is language-independent.

ABAP contains five special OLE commands CREATE OBJECT, CALL METHOD, GET/SET PROPERTY and FREE OBJECT with which you can access the desktop functions.

Page 67: SAPAG+-+SAP50

© SAP AG

R

R/3 System as an OLE Server

Functionmodules

BusinessobjectsBAPIs

RFC

Data

PCprogram

PCprogram

R/3

188

RFCAPI

SAP

automation

server

When the R/3 System is used as an OLE server, its functions can be called from a desktop application. This sends OLE commands to the SAP Automation server. The server converts these commands into RFC calls and sends them to the R/3 System. This triggers function modules or BAPIs from business objects in the R/3 System. Once these have been processed, their data is then sent via the SAP Automation Server back to the desktop program.

As regards programming, users can use the R/3 System function modules. Programming is object-oriented, for example in Visual Basic or Visual C++.

The business objects that are managed centrally in the R/3 System in the Business Object Repository can be called from the desktop level using Visual Basic for example. This means that all of the business functions implemented in the Repository are available to external applications.

Both function modules and business objects are located within the R/3 System. Users must therefore first log onto the R/&3 System. This logon may be automated.

Page 68: SAPAG+-+SAP50

© SAP AG

R

Internet Architecture

Web hostWeb host

HTTPserver

R/3 applicationserver

R/3 applicationR/3 applicationserverserverITSITSITS

WG

ate

AG

ate

ClientClient

Bro

wse

r

The Internet is a global network of computer networks. It is a standardized platform for exchanging data between individuals and organizations. Business-to-business and consumer-to-business scenarios have developed during the furious development phase of the Internet over the last few years, so that it may be useful to connect companies to the Internet.

The R/3 System has been Internet-enables since Release 3.1G. The Internet Transaction Server (IST) forms the main component of the Internet architecture. It is made up of two program components: Application Gate (A gate) and Web Gate (W gate).

With regard to the R/3 System, the A gate behaves like a normal dialog user, since the protocol between the A gate and the R/3 System corresponds to the SAPGUI protocol. The A gate includes the data sent by the R/3 System to HTML templates and sends them over W gate to the HTTP server. From there they are displayed via the Internet in the customer's Web browser.

Customers are provided Web transactions which are a section of the Internet Application Components (IAC) provided by SAP. These are easy to handle and do not require any training to use them. Web transactions are mapped to R/3 transactions, which select and change the data in the R/3 System. You can format the appearance of the Web transaction as you would any Internet page.

Page 69: SAPAG+-+SAP50

© SAP AG

R

EDI Architecture

Documents

Ext. application

EDI messages

EDI subsystem

Idoc type

Idoc interface

Control record

Daten-satz

Daten-satzData

record

SteuersatzSteuersatzControl record

R/3 application

SAP documents

EDI stands for Electronic Data Interchange and describes the electronic exchange of structured business data between different applications.

EDI architecture consists of: • EDI-enabled applications: They allow business transactions to be processed automatically. • The IDOC interface: This was conceived as an open interface and consists of the intermediate documents

and the corresponding function modules. • The EDI subsystem: This converts the intermediate documents into EDI messages and inverse. SAP does

not supply this element of the EDI architecture. The main component of the IDoc interface is the IDoc type. An IDoc is an SAP standard that specifies the

structure and format of the data to be transferred electronically. It was developed with the standards EDIFACT and ANSI X12 in mind. IDocs are identified uniquely using a control record. The data records form the centerpiece of the application. The status records log the status of an IDoc on its way from the application to the trading partner and vice versa.

Page 70: SAPAG+-+SAP50

© SAP AG

R

Distribution of Business Processes with ALE

Order entry,billing, accounting,inventory controlling

Programplanning,centralpurchasing

Shipping,inventory management

MRP,CRP, SFC,inventory manage-ment

Ware-housemanagement

Head office

ShippingBusiness

unit

Plant Warehouse

For technical, organizational and business reasons, it may be useful to decouple application systems, with the aim of installing and operating them decentrally.

The ALE concept (Application Link Enabling) allows you to set up and operate distributed SAP applications. ALE comprises business controlled message exchange with consistent data retention across loosely linked systems. The applications are integrated through sycnronous and asynchronous communication, not through a central database.

To set up a distributed yet integrated system, the customer specifies in a logical model which applications run on which systems and how the applications exchange data.

Data is exchanged using IDocs (intermediate documents) from the EDI interface. EDI supports the exchange of messages between the R/3 Systems of different companies, whereas ALE allows information to be exchanged within a company.

Page 71: SAPAG+-+SAP50

© SAP AG

R

Sequentialfiles

SAP-interfaces /

checks

Legacy system

SAP data

R/3 System

Data Transfer

When you transfer data from one R/3 System to another, or from a legacy system into an R/3 System, you must ensure the integrity of the data that is transferred.

Since the system uses the same transactions to transfer data into the R/3 System as a dialog user, the legacy data is subjected to the same checks and controls as data that was entered manually. This ensures the integrity of the data.

The methods used to transfer legacy data are known as "batch input" methods. For many areas in the R/3 System, SAP provides standardized legacy data transfer methods. These methods use

batch input, call transaction and direct input programming techniques. The SAP standard methods are controlled using the Data Transfer Workbench (Transaction SXDA). If no SAP standard transfer method is available, you can program transfers using batch input or call transaction.

Page 72: SAPAG+-+SAP50

© SAP AG

R

Batch Input

Queue file

SAPdatabase

Application functionApplication function

Batch input functionBatch input function

BDC tableBDC table

BATCH INPUT:BATCH INPUT:

SAPdatabase

Application functionApplication function

BDC tableBDC table

CALL TRANSACTION:CALL TRANSACTION:

CALLTRANSACTION

SAPdatabase

DIRECT INPUT:DIRECT INPUT:

SAP-transfer program

Sequentialfile

Sequentialfile

Sequentialfile

With batch input, transfer data is buffered as a BDC table (Batch Data Communication) in a queue file (batch input session). In the next step, the system processes this session, that is, the data is transferred to the application transaction within the batch input environment and therefore entered in the database.

The R/3 System enables you to record a transaction in dialog mode. You can use this recording to generate a batch input session and a transfer program.

Alternatively to batch input, you can also call the transaction directly (Call Transaction), after a data record is taken from the sequential file and placed in the BDC table. The read and write process for the queue file does not apply here.

The batch input and call transaction methods access application transactions within the R/3 System. The data is therefore subjected to the same consistency checks before it is transferred as data in the dialog mode.

Direct input programs execute the consistency checks and update the data in the database, without having to access the application transactions. Direct input methods are used in a few SAP standard transfer methods such as transferring bills of material and documents). These processes are only programmed by SAP developers.

Page 73: SAPAG+-+SAP50

© SAP AG

R

Summary

The R/3 System provides several communicationsinterfaces. CPI-C and RFC are standard interfaces.OLE is used to connect Windows programs to thedesktop level.

EDI and ALE allow business data to be exchangedacross system borders.

Business objects provide business functions andare managed centrally in the BOR.

R/3 is Internet-enabled.

Batch input refers to methods to transfer legacydata into the R/3 System.

Page 74: SAPAG+-+SAP50

© SAP AG

R

ABAP Dictionary

Modeling in the R/3 System

The objects of the ABAP Dictionary

Tables and foreign keys

The two-level domain concept

Views

Search help functions

Page 75: SAPAG+-+SAP50

© SAP AG

R

Objectives

Become familiar with some of the modeling tools ofthe R/3 System (Data Modeler / EPCs).

Become familiar with the main tasks of the ABAPDictionary as an instrument for managing R/3 metainformation (data descriptions).

Become familiar with the uses of tables, foreignkeys, data elements, domains and views.

R

Page 76: SAPAG+-+SAP50

© SAP AG

R

Modeling

Modeling object

Real world

Why do we need models? A person or a group can only cope with a limited level of complexity. Models permit you to reduce the complexity of a system to its essential components. You can then build new and more complete systems and solve more demanding problems. Modeling is based on a segment of the real world that is significant for business-oriented operations.

Page 77: SAPAG+-+SAP50

© SAP AG

R

Objects

Plant Material Purchase requisition

Warehouse stock

Purchaseorder

DataModels

11003Plant

Material11027

Plantmaterial

11006

SERM

Models

Processes

EPC

Create materialmaster

Define mat.type

Material type isdefined

Transaction

Table

Navigation

Navigation

The SAP application model documents the business-oriented relationships and processes in the R/3 applications. It thus ensures a greater transparency of the application software: The structures of business-oriented objects and the business processes are described precisely and represented graphically from the company's point of view. The complexity of the integration can easily be understood. Because of its clear structure, the model shows who can implement what, when and with what objects within a company.

Dynamic aspects of the buisness-oriented information system are represented in the process model. This representation describes the time dependencies of functions. The triggering mechanism for a function is called an event. An event determines the flow logic of event-controlled process chains (EPCs). In addition to representing the time-dependent sequence of functions, the input and output functions as well as the organizational units used for executing the function can also be described.

Data models are created to formally map the data needed within the business-oriented processes in a global functional context. The SAP data model represents the information objects that are relevant for the company and their relationship to each other from the business-oriented point of view in the form of a Structured Entity Relationship Model (SERM). An entity type maps objects of the real world that have a business-oriented significance and a corresponding object in the R/3 System.

Page 78: SAPAG+-+SAP50

© SAP AG

R

Data Modeler / SERM

. . .

. . .

Simplified representation !

Entity typeCardinality

Material11027

11003Plant

Plantmaterial

11006Log.system

11001

Visualization and creation of datamodels as Structured EntityRelationship ModelsSupport during modelingSupport when mapping the createdmodel to the ABAP DictionaryHierarchical structuring of datamodels

SAP-SERM provides rules and construction principles that are required to represent the business-oriented objects, their semantics and the SAP-specific information in a model (SAP Enterprise Data Model EDM).

Entity types represent object types of the real world that have a SAP-specific meaning and a corresponding object in the R/3 System. The relationships between the entity types are classified by type and cardinality.

Data models can be represented both as text and graphically from within the ABAP Development Workbench. The section of the data model displayed can be changed dynamically. The user can define the required section of the data model individually.

The Data Modeler is a development tool with which data models can be created according to the Structured Entity Relationship Model (SERM). It supports the user both when modeling and when mapping the created model on the ABAP Dictionary.

Data models can be structured hierarchically to any depth in the Data Modeler. They can be expanded and compressed in the graphic display, which greatly simplifies work with large models. The graphic editor permits you to design data models as on a drawing board.

Page 79: SAPAG+-+SAP50

© SAP AG

R

Table 2

PhysicalDB tables DB

Dictionary table definitions

Table 1Table X

SAP EDM

User ViewConversion of the Model

The SAP EDM (Enterprise Data Model) is a stable reference point for both business-oriented reality and the particular RDBMS.

Despite the close relationship between the SAP data model and ABAP Dictionary, it could be necessary to distribute entity types on several tables of the ABAP Dictionary or to combine several entity types in a table for technical reasons. In this case views that define the relationship between the entity types of the data model and the tables of the ABAP Dictionary are defined in the ABAP Dictionary. Developers can display the version of entity types by selecting views and use them for programming at the level of business-oriented objects.

A view is the logical view on one or more tables. The data of a view is not physically stored, but is derived from one or more tables. For example, if a table contains a large number of fields, but only a few of them should be read, you can restrict access to the required data by defining a view on the corresponding table fields. You can therefore access specific data by defining a view.

Page 80: SAPAG+-+SAP50

© SAP AG

R

What is the ABAP Dictionary?

What data is used in R/3 ?

How is this data linked ?

What attributes does the data have ?

ABAPDictionary

Description of data

DB

The ABAP Dictionary is used to create and manage data definitions. It permits you to describe all the data used in the system centrally and without redundancies.

All the data created in the ABAP Dictionary is available throughout the entire system. Modifications take effect immediately in all the relevant system components due to the activation

mechanism. The R/3 Repository Information System enables you to use the Dictionary to answer a number of

questions. (The R/3 Repository Information System is described in the next chapter.)

Page 81: SAPAG+-+SAP50

© SAP AG

R

Integration of the ABAP Dictionary

ABAPDictionaryDictionary

ScreenPainterABAP

ABAPProgram

Tools of the developmentenvironment

These objects aredirectly influenced by theDictionary:

Selection screens Screen

The ABAP Dictionary is an integrated and active Dictionary, that is it is completely integrated in the development environment. The Dictionary information is created only once, but is available throughout the entire system at all times. The active ABAP Dictionary automatically provides all the information that was created or modified, thus ensuring current runtime objects, data consistency and data security.

The link of the ABAP Dictionary to the program flow is based on the interpretative method of the R/3 runtime environment. Instead of working with the original of an ABAP program, the ABAP processor interprets a runtime object generated from the program text prior to its first execution. Runtime objects are automatically generated again before execution if it is found that the time stamp differs from the ABAP Dictionary.

All the information that is critical to performance is stored in the runtime objects (programs, masks, etc.). System functions ensure that this information is always up-to-date at the time of execution.

Page 82: SAPAG+-+SAP50

© SAP AG

R

Row

Primary key Function fields

TableKey 1

.

.

.

Key 2

.

.

.

Key n

.

.

.

F 1

.

.

.

F 2

.

.

.

F n

.

.

.

Tables and Fields

A table is a two-dimensional matrix. It has a name and attributes, such as the table type. A field has a name and attributes. For example it can be a primary key field. A table has at least a primary key field, which uniquely identifies a row in this table. The ABAP Dictionary describes the logical structure of the objects of the application development and

their representation in structures of the underlying relational database. It provides a logical view on the application data and the organization of this data using the underlying database system.

Page 83: SAPAG+-+SAP50

© SAP AG

R

REPORT ZDEMO1.

SELECT * FROM SPFLI.

WRITE: / SPFLI-CARRID,SPFLI-CONNID.

ENDSELECT.

DBSPFLI

TABLES: SPFLI.

. . .

. . .

. . .

ABAP Example: Access to a Table

Loop processing: Read out the entire SPFLI table ("Full Table Scan")

There is a direct link between the ABAP Dictionary and the ABAP Workbench. Only the required tables must be defined in an ABAP program (TABLES: <tabname>). Main storage is thus reserved for one record of the table to be read, and all the fields of this "table working area" are correctly initialized.

All the information that is important for the runtime environment, such as the field length and field type, are obtained from the ABAP Dictionary.

In the above example, the "SELECT" command is used to read table "SPFLI", which is defined in the ABAP Dictionary. The command shown here reads all the records from the database table one after the other in a loop. The "WRITE" instruction outputs the record of the table row "SPFLI" currently being accessed on the screen.

Page 84: SAPAG+-+SAP50

© SAP AG

R

Domainuses

usesData element

TableField

Semantic field attributes

Basic Objects of the ABAP Dictionary

Technical field attributes

The basic objects for defining data in the ABAP Dictionary are tables, domains and data elements. The domain is used for the technical definition (e.g. field type, field length) and the data element for the semantic definition (e.g. short text) of a table field.

The field is not an independent object; it depends on the table and can only be maintained within a table.

The data element assumes that a domain exists. The domain can be defined without references to other Dictionary objects. It contains information

about the value range, such as the value table, the external format and fixed values (technical attribute, for example CHAR, length 4).

The data element and domain are the objects of the two-level domain concept in the R/3 System.

Page 85: SAPAG+-+SAP50

© SAP AG

R

Table SBOOK

. . . FORCURAM . . . .

Table SFLIGHT

. . . . . . PRICE . . .

Domain S_PRICE

Two-Level Domain Concept

Data elementS_F_CUR_PR

Data element S_PRICE

For example, table fields FORCURAM (table SBOOK) and PRICE (table SFLIGHT) have the same domain S_PRICE. The difference is that field FORCURAM uses data element S_F_CUR_PR and field PRICE uses data element S_PRICE. Both fields use the same domain because both fields FORCURAM and PRICE are currency fields and therefore have the same technical attributes.

The two-level domain concept permits you to define and maintain technical field attributes at domain level. A domain can pass its field attributes on to any number of fields, whereby only the domain, but not the individual fields, must be explicitly changed when the field attributes thus described are modified.

The data element describes the semantic attributes of a field in context with the table. These are attributes that are only of importance at that location and not globally (such as the technical attributes).

Page 86: SAPAG+-+SAP50

© SAP AG

R

What is a Foreign Key ?

Table T1Field1 Field2

Primary key

Table T2Field3 Field4

Primary key

Check table orvalue table

Foreign key table

Foreign key field

Relationships between tables can be defined in the ABAP Dictionary. These relationships are called foreign key and must be defined explicitly at field level.

Foreign keys are primarily used to ensure data consistency. Data that was entered must be checked against existing data to ensure that the data is not inconsistent, for example if you assign a printer that does not exist.

A combination of fields of a table is called the foreign key if this field combination is part of the primary key of another table.

A foreign key creates a link between two tables T1 and T2 when table T2 refers to the primary key of table T1. In T2, the foreign key fields are assigned to the primary key fields of T1. Table T1 to be checked is called the check table and table T2 is called the foreign key table. They are also called the dependent table (foreign key table) and the referenced table (check table).

If a foreign key is defined between two tables, a record of the foreign key table refers to a record of the check table. Since a record is identified by its key, it is sufficient to refer to the primary key of the check table in the foreign key definition for the foreign key field.

Page 87: SAPAG+-+SAP50

© SAP AG

R

Example: Inserting a Data Record

Foreign key relationship

CarrnameAAACAFLH

SRUA

......

American AirlinesAir CanadaAir FranceLufthansa

SwissairUnited Airlines

.....

CARRID

LH 0400........... ........

CARRID

LHLHLH

040204102402

CONNID. . . . . .

. . . . . .

CITYFROM CITYTO ...................

...........TZ 0400 . . . . . .

SCARR (Check table)

SPFLI (Foreign key table)

Primary key

Primary key

Insertion Insertion allowedallowed ? ?

Field 'CARRID' was defined as the foreign key field in table SPFLI. The corresponding check table is table SCARR with the primary key field 'CARRID'.

When a data record is entered in table SPFLI, the values for field 'CARRID' are checked against all existing carriers in table SCARR. Question: May you insert the above data record in table SPFLI?

Page 88: SAPAG+-+SAP50

© SAP AG

R

Tables and Structures

Database - physical definition of the table

ABAP Dictionary logical table definition

Field 1 Field 2 Field 3 Field 4

Table

ABAP Dictionary structure definition

Field 1 Field 2 Field 3 Field 4

Field 1 Field 2 Field 3 Field 4

A transparent table is automatically created on the database when it is activated in the ABAP Dictionary. The database-independent description of the table in the ABAP Dictionary is converted into the language of the database system used.

The database table has the same name as the table in the ABAP Dictionary. The fields also have the same name on the database and in the ABAP Dictionary. The data types in the ABAP Dictionary are converted to the corresponding data types of the database system.

Since Release 3.0, the order of the fields in the ABAP Dictionary may differ from the order of the fields on the database. This permits you to insert new fields without having to convert the table with a physical reorganization. New fields are inserted by changing the database catalog (ALTER TABLE). A new field is appended to the database table, whatever position the new field has in the ABAP Dictionary.

Page 89: SAPAG+-+SAP50

© SAP AG

R

ABAP-Dictionary

User view 1

Views

Join

Projection

Selection

Table 1

Table 1Table 3

The usual method in the relational model of providing problem-oriented data views in the form of views can also be used in the R/3 System. In the ABAP Dictionary, views can be defined as virtual tables, that is they do not actually contain data, but represent data of other tables of the ABAP Dictionary in a suitable form as a table.

The SAP view supports the relational operators JOIN, PROJECTION, and SELECTION. The join defines how the base tables used in the view are linked. (Tables 1 to 3) The projection defines those columns of the base tables that should be included in the view (fields of

the table that are marked in bold). The selection condition of a view provides the rows that should appear in the view table. You can read

the required records of the view with the corresponding ABAP programming commands.

Page 90: SAPAG+-+SAP50

© SAP AG

R

R/3 Standard Function: Input Help

No. Departure city Arrival city

CarrierCarrier

04000400 FrankfurtFrankfurt New YorkNew York

04020402 FrankfurtFrankfurt New YorkNew York

LHLH

24022402 FrankfurtFrankfurt BerlinBerlin

...... ...... ......

Carrier

Flight number

Flight maintenance

LH

F4F4

The input help (F4 help) is a standard function of the R/3 System. It allows the user to display a list of possible values for a screen field. A value can be directly copied to an input field by selecting it from the list.

The fields having an input help are visualized in the R/3 System with a combo box to the right of the field. This combo box appears when the cursor is in the corresponding screen field. The help can be started either by clicking on this box or with function key F4.

If the number of possible entries in a field is very large, the input help allows the user to restrict the number of values displayed by defining further restrictions.

The input help provides additional information in the display for fields where no corresponding entries are expected.

Since the input help is a standard function, it should look and behave the same throughout the entire R/3 System. The ABAP Workbench therefore provides simple tools for assigning a standardized input help to a screen field.

The input help of a field can usually be precisely defined based on its semantics. For this reason, the input help of a field is normally defined in the ABAP Dictionary.

Page 91: SAPAG+-+SAP50

© SAP AG

R

Summary

The ABAP Dictionary is the instrument formanaging metadata in the R/3 System. It thereforecontains descriptions of the data:“What tables and what fields and data types arethere in R/3?”“What views are there in R/3?”“What foreign key relationships are there?”

Page 92: SAPAG+-+SAP50

© SAP AG

R

ABAP Workbench

Change levels in the R/3 System

The R/3 system landscape

The Workbench Organizer

The software development cycle

The R/3 Repository

The ABAP Workbench

ABAP Query

Testing and optimizing

Page 93: SAPAG+-+SAP50

© SAP AG

R

Unit Objectives

At the end of this unit you will be able to:

Identify the change levels in the R/3 System

Describe the structure of the system landscape, withdevelopment, test, and production systems

Understand the use of change requests, tasks, andthe Workbench Organizer

Identify the different tools in the ABAP Workbench,and understand how they can be used to develop R/3applications

R

Page 94: SAPAG+-+SAP50

© SAP AG

R

Change Levels

R/3 Basis

System Software

ABAPWBCust.

ProgramR/3 Businessapplications

(SAP standard)

CustomerCustomerdevelop-develop-

mentment

Enhancements

CustomizingCustomizing

Modification

112233

Cust. exit 1

44

Cust. exit 2

There are four different ways in which you can adapt the R/3 System to meet your requirements: 1) Customizing: Here, you set system parameters using a special user interface. All of the possible settings

have been allowed for and organized by SAP. Customizing is a mandatory part of setting up your system. 2) Enhancement concept: This allows you, the customer, to enhance SAP Repository objects without using

modifications. 3) Customer development: The R/3 System contains a customer namespace, in which you can create your

own Repository objects. 4) Modification: Modifications are changes to SAP Repository objects. When you upgrade your system, you

must compare your versions of modified objects with the new SAP version.

Page 95: SAPAG+-+SAP50

© SAP AG

R

The Three-System Landscape Recommendedby SAP

ProductionDevelopment Quality Assurance

SAND

TEST CUST QTST TRNG PROD

To ensure system consistency, SAP recommends you set up a system landscape consisting of three systems. These three systems include the "productive" clients (where development, Customizing and production occur) and any other clients desired (training, sandbox client and so on).

A three-system landscape facilitates the following recommended process: Development of customer-specific programs as well as required Customizing takes place in the development

system. All Customizing settings as well as changes (developments, corrections or modifications if required) to the

Repository are transferred to the quality assurance system (or "test system" for short) to be checked there without influencing production.

All objects and settings imported into the test system can then be transferred into one or more production systems.

A three-system landscape also allows testing of upgrades and helps to minimize downtime during upgrades of the production system.

The systems within a system landscape must have unique three-character names.

Page 96: SAPAG+-+SAP50

© SAP AG

R

Change requestChange request

Task

Task

Task

Project leaderProject leader

Developer

Developer

Project Management in the Workbench Organizer

Developer

When a new development project starts, the project leader creates a change request, and assigns the project team members to it. A change request is a container for all of the Repository objects that are created or changed during a development project. The Workbench Organizer assigns a project number to the change request (<sid>K9<nnnnn>, so for example, C11K900001).

The Workbench Organizer then creates a task for each team member. Whenever a team member assigns a Repository object to the change request, it is entered in his or her task. At the end of the project, the task contains all of the objects that the team member has worked on.

When they have finished with their part of the development project, each team member releases his or her task. This passes the objects from the task to the change request. Once all team members have released their tasks, the project leader can release the change request.

Page 97: SAPAG+-+SAP50

© SAP AG

R

Logical and Temporal Organization

Assign object to a development class

Assign object to a change request

Create object

Developer

Object automaticallyassigned to a task

Development system

When you create or change a Repository object during a development project, you must assign it to a development class. Development classes are used to group objects that belong together logically or due to their content. All of the objects in a development class share a common transport path. You can create development classes using the ABAP Workbench (Repository browser SE80).

Each development class has a contact person who is responsible for it. Development classes allow you to divide up your Repository objects logically and thus provide helpful orientation within the ABAP Workbench.

Once you have assigned a Repository object to a development class, you must also assign it to a change request. In contrast to the logical and permanent assignment of repository objects to development classes, the assignment of repository objects to change requests is project-specific. Objects in different development classes (that is, from different areas) can be managed together in one project (change request).

The Workbench Organizer automatically assigns objects to the relevant task within a change request.

Page 98: SAPAG+-+SAP50

© SAP AG

R

Closing a Project

Create object

Object Lock

ExportImport

TMS

Set Release

Assign object to a development class

Assign object to a change request

Releasetask

Automatic assignment to a task

Releasechange request

QAS/ Production system

Project leader

While developers are working on objects in a change request, these objects are reserved exclusively for the developers.

When the developers have finished their work, they release their tasks. The objects and their locks are passed from the task to the change request. The objects can still be changed by all project team members, since the Workbench Organizer creates additional tasks as required.

When the project is complete, the project leader releases the change request. The locks on the objects in the change request are released.

Change requests may be transportable or local. The Workbench Organizer classifies them automatically depending on their development class. The following steps are performed only after transportable change requests are released: As soon as the change request has been exported, a test import determines whether it is possible to import all

of the objects into the target system The Repository objects are exported to a transport directory. The export and test import results are written to the transport log, which is then checked by the developers.

Import into the target system is not automatic. It is triggered in the Transport Management System (TMS). After the import, you can check the import log.

Page 99: SAPAG+-+SAP50

© SAP AG

R

Writing an ApplicationThe ABAP Workbench supports the entire software development cycle

Modeling

RepositoryBrowser

ABAPDictionary

Screen Painter

Menu Painter

FunctionBuilder

ABAP Editor

Debugger

Testsequences

Performancetools

WorkbenchOrganizer

Versionmanagement

Analysis/Analysis/designdesign ImplementationImplementation TestTest AdministrationAdministration

SAPsolution

Project management - Workflow model - Documentation - PrototypingProject management - Workflow model - Documentation - Prototyping

The ABAP Workbench is the development environment in the R/3 System for client/server business solutions. It supports the entire software development cycle with tools for modeling, programming using ABAP, defining data and table structures, and for designing graphical user interfaces. It also contains tools for testing, tuning, and maintaining software, as well as supporting development in large teams.

In the concept phase of a project, you enter the results of your analyses into the SAP data model. This enables you to turn your concepts into fields, tables, and other R/3 objects. You can then develop your program components in any sequence you choose - they do not have to be combined into a single application until you want to run it. The development cycle concludes with program tests and transport into the production system.

As well as the ABAP Workbench, SAP also provides a library of business and utility software components, which you can easily incorporate in your own programs.

Page 100: SAPAG+-+SAP50

© SAP AG

R

R/3 Repository and Repository Objects

FI HR

MM

SD

WM

Function modules

Programs

Data elements

. . .

Development classes

Repository Objects

MMM M

The objects that you create using the tools in the ABAP Workbench are called Repository objects. They are stored in a special part of the database in the R/3 System called the R/3 Repository.

The R/3 Repository is divided into applications. Applications are divided into development classes. Repository objects are often made up of several subobjects that are themselves Repository objects. For example,

an application program is a Repository object, and so are the screens, user interfaces, and text elements that it contains.

Whenever you create a new Repository object, you must assign it to a development class. You can retrieve information about Repository objects (tables, fields, domains, and so on) using the R/3

Repository Information System. This consists of a series of programs, each of which provides a particular view of the R/3 Repository.

Page 101: SAPAG+-+SAP50

© SAP AG

R

RepositoryBrowser Dictionary ABAP

EditorFunctionBuilder

ScreenPainter

MenuPainter

ABAP Workbench

ABAP Workbench Tools

Function Builder

Screen Painter

ABAP DictionaryABAP Editor

Repository Browser

Menu Painter Painter

The tools in the ABAP Workbench allow you to create and change Repository objects. To change a Repository object, you can either start the relevant tool and enter the name of the object, or use

forward navigation to open the relevant tool by double-clicking the name of the object you want to work with. The Repository Browser provides an overview of Repository objects. The ABAP Workbench contains tools that support the entire software development cycle. The ABAP Workbench allows you to easily create client/server applications without having to worry about

communication or distribution problems.

Page 102: SAPAG+-+SAP50

© SAP AG

R

ABAP ...Stores all metadata in the active ABAP DictionarySupports business-relevant data types andoperationsUses Open SQL, allowing you to accesswhichever database system you are usingwith the same set of statementsProvides open programming interfaces such asRemote Function Call (RFC) and Object Linkingand Embedding (OLE)Is event-drivenAllows object-oriented programming

Principles of ABAP

ABAP

SAP has developed its Advanced Business Application Programming (ABAP) language to provide optimal conditions for application development. It supports structured programming, and contains control structures and modularization concepts. It allows prototype-based program development by allowing developers to write a preliminary version of the program and its user interface, and then to fill in the missing functions.

ABAP is an interpretative language. You can easily generate and test intermediate versions of programs, which you can then adopt in your final version.

ABAP is multilingual. Text such as titles, headers, and texts on screens are stored separately from the program code, allowing you to change and translate them without having to change the program itself. ABAP supports business-relevant data types and operations, including special date and time fields that you can use in calculations. The system performs necessary type conversions automatically.

ABAP contains a subset of ANSI SQL called Open SQL. This allows you to read from and write to the database in your programs regardless of the underlying database system.

Page 103: SAPAG+-+SAP50

© SAP AG

R

SELECT-OPTIONS..SELECT ...

WRITE ... CALL SCREEN ...

Screen

User dialogs

Database dialogs

ListSelection screen

ABAP Dialogs

The three basic dialog forms in ABAP are screens, selection screens, and lists. You create selection screens and lists using ABAP statements in the ABAP Editor. Screens are static objects that you create graphically. You call them from ABAP programs, and they in turn call

other ABAP modules from their flow logic (refer to SAP transaction processing in the System Kernel unit).

Page 104: SAPAG+-+SAP50

© SAP AG

R

REPORT BC400D_GETTING_STARTED.

PARAMETERS pa_carr LIKE sdyn_conn-carrid.

pa_carrLH

PA_CARR LH

Selectionscreen

User Dialogs

User selection Execute (F8)

You can define selection screens for ABAP programs. These allow the user to enter values that restrict the data selected from the database (in the example, the user has entered the airline 'LH').

In the program, you can process the data selected by the user and display the results, for example, in a list. Use the PARAMETERS statement to define a field in which the user can enter a single value. If the user enters

a value and then chooses 'Execute', the value is placed in the internal data object pa_carr in the program. The system will only allow you to enter values that conform to the type of the data object.

Page 105: SAPAG+-+SAP50

© SAP AG

R

DATA wa_spfli LIKE sdyn_conn....SELECT SINGLE CARRID CONNID CITYFROM CITYTO FROM spfli INTO CORRESPONDING FIELDS OF wa_spfli WHERE carrid = ‘LH‘ AND connid = ‘0400‘.

Table SPFLI

wa_spfli

ABAPDictionary

Database Dialog

The system reads the fieldsCARRID CONNID … of anentry in database table SPFLIand places the contents in theidentically-named fields of thework area WA_SPFLI

The statement DATA wa_spfli like sdyn_conn declares an internal data object using a reference to an object in the ABAP Dictionary (the LIKE addition). We can now use this data object as a work are for the data that the ABAP program reads from the database.

ABAP contains a set of statements called Open SQL. These statements are a subset of ANSI standard SQL, with certain SAP-specific enhancements. Open SQL is used to access the database.

In the example, we are using the Open SQL statement SELECT. The SELECT statement reads certain columns of a line of the table SPFLI from the database and places the data

into the identically-named fields of the work area wa_spfli. Tables that you access using Open SQL must be defined in the ABAP Dictionary.

Page 106: SAPAG+-+SAP50

© SAP AG

R

ABAP Query / ReportingReport(ABAP)Data retrieval List

ReportingQuery

Methods for generating lists: Report: Statements in the ABAP programming languageQuery: Description of the desired result

Methods for generating lists: Report: Statements in the ABAP programming languageQuery: Description of the desired result

List definition(Query)

List definition(Query)

Report generatorReport generator

Functional areaFunctional area

ABAP Query allows you to define simple reports without having to program them in ABAP. Instead, the user only has to define how the list should appear (what information should be visible, and how it should be arranged). From this query, the system generates an ABAP report program that generates the list.

Within a query, there are three different types of list: 1. Basic lists. These contain unsummarized data, exactly as it occurs in the database. You can sort it by any criteria and calculate totals and subtotals. 2. Statistics. These contain summarized data. 3. Ranked lists. These are special statistics. They too contain summarized data.

ABAP Query does not access the database tables straight away. To protect access to the database, it uses an environment in which it can determine which users have access to which data. The main object in this environment is the functional area. Functional areas describe the tables and fields that a user may access.

The report program assigned to a query is a normal ABAP report program. This means that you can use all of the tools and utilities available for normal ABAP programs. In particular, it allows you to create variants, and to execute queries in the background.

Page 107: SAPAG+-+SAP50

© SAP AG

R

Quality and performance are essential to company-wide businesssoftware.

The ABAP Workbench has three tools for testing and tuningABAP applications:

CATT

SQL Trace

Runtime analysis

Testing and Tuning

ABAPRuntime in microseconds

Runtime Analysis OverviewRuntime analysis Edit Goto Utilities System Help

Group hit list

DatabaseR/3 System

4.124.023

314.050

1.904.109

100 %50 %

Program: ZZTESTUser: TESTUSER

Hit list Tables Hierarchy

CATT stands for Computer Aided Test Tool. You can use this tool to test the quality of software. The SQL trace is implemented to analyze an application's database activity. The SQL trace is used to:

• Recognize unnecessary database accesses • Specify which database tables are buffered • Specify whether database read accesses can be optimized by creating or redefining indices.

The runtime analysis provides information on the performance-relevant attributes of a particular transaction or report. The tool measures in detail how much CPU is consumed by the statements and operations.

Page 108: SAPAG+-+SAP50

© SAP AG

R

Summary

Organized software development is ensured by theWorkbench Organizer, which is integrated in theABAP Workbench and linked to the transportsystem.

The ABAP Workbench is the software developmentenvironment in the R/3 System. It contains a rangeof development tools that support the entiresoftware development process.

Page 109: SAPAG+-+SAP50

© SAP AG

R

Administration and Remote Services

Principles of R/3 System security

Profile Generator and user administration

Administration functions

Computing Center Management System

SAP service and support

Page 110: SAPAG+-+SAP50

© SAP AG

R

Objectives

Describe the elementary aspects of security as well as asimple way to assign authorization.

Define the tools used by system administrators and thefunctions for extended system monitoring.

Discuss SAP’s service and support

Page 111: SAPAG+-+SAP50

© SAP AG

R

Security Aspects in the R/3 System

Client(SAPGUI)

Firewall(SAProuter)

Applicationserver

Applicationserver Database

server

Internettransactionserver (ITS)

WEBserver

Presentation ApplicationNetwork / Communication

DatabaseInternet

Firewall

WEB browser

Firewall

R/3 System technology integrates various security mechanisms at several levels:

Presentation: The SAPGUI software uses check totals to check for integrity each time the R/3 frontend is started. This also recognizes if there is a computer virus present.

Network / Communication: A firewall and the SAP router protect the internal network. You can also use additional security mechanisms by integrating external security products such as SECUDE (or Kerberos).

Application: The authorization concept prevents unauthorized access to data and transactions. Users must authenticate themselves with their user ID and password. The lock mechanism internal to the R/3 System also prevents users making changes to data at the same time.

Internet: The R/3 System supports current Internet security standards, such as https for example. Database: Only database administrators can access data in the R/3 database from outside the R/3 System. The

database manufacturer's security mechanism applies here. Passwords: Preconfigured users exist in clients 000 and 001 after the R/3 System has been installed. These

default users, DDIC and SAP*, have comprehensive authorization. You should, therefore, change their initial passwords immediately.

You can find additional information on the subject of security in the OSS Notes, the installation guide, R/3 online documentation or in the security guide.

Page 112: SAPAG+-+SAP50

© SAP AG

R

The Authorization Concept

Profile 1 Composite profile 2

Authorization 1

Profile 2 Composite profile 1

Authorizationprofile x

Authorization 2 Authorization x

User master record

Authorization object 1 Authorization object 2 Authorization object x

The SAP authorization concept recognizes a series of different user authorizations. These are all managed centrally in the user master record for that user.

The SAP authorization concept is object oriented. Several units to be protected (factory, cost center, supplier, for example) make up an authorization object.

To create an authorization, you use exactly one authorization object. The authorization object is then filled with values and forms an authorization.

Authorizations are not assigned to users directly, but in profiles. To keep maintenance to a minimum, you can combine authorizations in authorization profiles. These are then

assigned to users and do not have to be individually maintained in the user master records. Changes to access authorizations in profiles become effective for all users who have the corresponding profile in their user master record.

Composite profiles are an additional organization level, which combine several authorization profiles. They are defined for those users who have to work with several authorization profiles at the same time.

Page 113: SAPAG+-+SAP50

© SAP AG

R

Profile Generator: Authorizations

Transaktionscode FD02

Change Activity Group: AuthorizationsAuthorizations Edit Goto Utilities Environment System Help

Open Changed Maintained Org. levels...

Maint.: 0 Non-maintained org. levels, open fields, Status: Changed

Standard Transaction code check at transaction start

Standard Transaction code check at transaction start

Standard Cross-Application Authorization Objects

Standard Financial Accounting FI

Standard Customer: Change authorization for specific fields Standard Customer: Change authorization Standard Customer: Account authorization Standard Customer: Authorization for company codes

Standard Customer: Authorization for company codes

Activity 02 Company code 0001-9999

+

-

-

-

-

-

-

++

The Profile Generator was developed to facilitate maintaining authorizations and profiles. First define an activity group and then choose the transactions that belong to it. From the company menu, find all

of the transactions that belong to the required task. Then assign users to the activity group. For reasons of security, users do not receive the authorization profile until you choose "Compare in user master

record ". Additional people can perform the tasks "Assign user to activity group" and "Assign profile to user master record".

Summary: Only required authorization objects are used. Authorization profiles and authorizations are generated automatically. You no longer require technical details - the system administrator uses transactions to choose authorizations from the company menu. This simplifies creating and administering authorization profiles.

Page 114: SAPAG+-+SAP50

© SAP AG

R

System AdministrationDisplay application server

Manage user sessions

Manage work processes

Manage lock entries

Manage update records

Send system messages

Manage transaction codes

System log

SM51

SM04 AL08

SM50 SM66

SM12

SM13

SM02

SM01

SM21

Administrationfunctions

The R/3 System provides system administrators with a number of powerful tools to perform their daily tasks. You can find the following functions in some of the transactions listed above: Server, user and work process overviews Manage locks and updates Create system messages Lock transaction codes Monitor and analyze the system log.

Page 115: SAPAG+-+SAP50

© SAP AG

R

System Administration: Terminations

VBLOG DB

Inconsistent data in the DB?

Enqueue server

. . .

TERMINATION!

Insert

Dialog server

. . .

Insert

Dispatcher

D D

Dispatcher

VD

TERMINATION!

12

If a dialog work process is terminated as it is written to the VBLOG (1), then there will be incomplete data in the VBLOG that cannot be updated. These entries can be automatically deleted the next time you start the system. The application tables themselves remain unchanged.

An update termination (2) may be triggered for several reasons. Report "VBTST300" displays an example. If you execute this report using option "I" instead of the default "U", then an insert is transmitted to a table. If this insert is then repeated in the same table, this triggers the exception condition "Duplicate Key" in the coding because an entry already exists in the table under this key.

If updates are terminated, the system sends an express mail to the user who triggered the update. Any further steps to be taken must be carried out by the system administrator.

Transaction SM13 provides system administrators with analysis tools to handle terminated updates. Once the error that causes the termination has been corrected (for example, if you reorganize the table, increase the maximum extent number, correct the coding and so on,) the end user should then restart the update.

In the case of terminates V2 updates, you can update these log records can be later. You must not, however, handle V1 updates in this way, otherwise this may create inconsistencies in the data.

Page 116: SAPAG+-+SAP50

© SAP AG

R

R/3 Computing Center Management System Control

System administration (Start, stop, reconfigure the system) Manage system profiles Background processing and job scheduling Dynamic load distribution Fine-tuning the system

Monitoring Performance control of the R/3 System,

database and operating system Analysis of execeptional situations and alerts Control data transport between R/3 applications

With the Computing Center Management System (CCMS) you can monitor, control and configure an R/3 System. You can use the tools provided to analyze system load and determine the resource consumption by the various system components.

The CCMS provides you with a series of graphical monitors and administration functions: · Starting and stopping the R/3 Systems · R/3 System monitoring and analysis · Automatic reporting of system alerts · Dynamic user distribution · R/3 System configuration: Editing system profiles (not authorization profiles) · Processing and controlling background jobs, scheduling database backups.

Page 117: SAPAG+-+SAP50

© SAP AG

R

New Monitoring Architecture

Current status Display alerts Complete alerts Customizing

Basis Development ( Basic monitor )

View: Open alerts ( 30.03.1998 , 15:37:08 ), Visible level: Developer

I41

Spool pswdf046_I41_46

OperatingSystem DatabaseClient R3Services R3BasisSystem

Buffers

Program SingleRecord GenericKey

DirectoryUsed

SpaceUsed HitRatio 51 % < 60 % 15 min. mean value

Monitoring Object

Monitoring attribute: Type performance

Monitoring Summary

Virtual monitoring tree element

Switch view: Current status < - > Open alerts

Propagation of highest alert

A new system monitoring structure is available from Release 4.0 using Transaction RZ20. This new structure allows centralized monitoring of many system parameters and includes the following:

Links to existing analyses Open interfaces that can be used to incorporate other system monitoring tools (including non-SAP tools). Allows monitoring of other R/3 Systems provided an RFC connection with the other system is possible and

configured. It is also possible to define your own monitors in the new infrastructure. These can be used to provide specific

people with only those alerts they are interested in. All threshold values can be maintained using simple Customizing settings. These can be valid either for one

monitoring attribute or for an entire class of monitoring attributes. How full are various directories on the operating system level is an example of a typical monitoring attribute.

You can define the alert condition for a specific directory using an individual threshold value or the threshold value of the "percentage_used" group (for example, change from green to yellow when 95% full)

The example above displays the "HitRatio" attribute of the "GenericKey" buffer monitoring object. This attribute is also used for other monitoring objects (program buffer, for example). The buffer content is below the specified threshold value triggering a red alert and propagating the red alert higher up in the hierarchy (dependent of its assigned priority).

Page 118: SAPAG+-+SAP50

© SAP AG

R

Local

Local Regional Central

Softwarefactory

Developmentsupport

Servicecenter

Regionalsupport

ImplementationHardware

Consulting

Technology

Regional centers(7x24)

R/3 customer

SAP

Partners

Local supportTraining

Consulting

. . . System resellers

Headquarters

R/3 Service & Support: Virtual Infrastructure

How is the service and support organized?

SAP International Subsidiaries (local) Training Consulting Local support

Regional Service & Support Center (regional) Service and support for Europe, America, Asia and Australia Secondary processing of support requests (7 x 24h)

Headquarters (central) Development Strategic service and support planning Coordination of service and support activities

Page 119: SAPAG+-+SAP50

© SAP AG

R

SAP Remote Services

Online Service System (OSS)

Going Live Service, Early Watch

Remote Consulting

SAPNet

Online Service System (OSS): The OSS allows users to consult SAP's extensive database of notes if they have any questions or if any problems occur, before they create a problem message in the OSS.

Going Live and Early Watch: The Going Live check occurs shortly before an R/3 System is used productively. This test checks once again that the system is able to meet the requirements set. An Early Watch session recognizes performance bottlenecks in an R/3 System and proposes suitable counter-measures.

Remote Consulting: During a Remote Consulting session, SAP consultants are able to access the customer SAP system at a time specified by the customer, and attempt to analyze and solve the problem in the R/3 System from their work station.

SAPNet: SAPNet displays current notices, documentation, a few tools (QuickSizer) and much more. You can also use the discussion forum to offer and search for information, which makes considerable competence and customer experience available to a wide range of users.

Additional services: Remote upgrade and archiving, conversion, migration and Euro services.

Page 120: SAPAG+-+SAP50

© SAP AG

R

R/3 Online Service System (OSS)

OSS

Customer/ CCC

PartnerPartner

SAP /SAP /branchbranchFunctions

Problem messages

Notes

Hot news

Online corrections

Service requirements

SAP software change registration

Training information

User master record maintenace

Which functions can you use in the OSS?

You can report problems in R/3 customer systems. You can search for notes in the OSS using keywords. You can display latest SAP information (HotNews) on hot packages or new OSS functions, for example. You can generate and release developer keys (from Release 3.0) for developers and also for SAP standard

objects. You can import preliminary corrections directly using hot packages into an R/3 System. You can maintain customer OSS user data yourself (telephone and fax number, first name and surname) and

submit new users. You can find the latest SAP training course overview. Using service connection you can allow an SAP employee to access a customer system to ensure that an error is

corrected more quickly.

Page 121: SAPAG+-+SAP50

© SAP AG

R

Summary

Overview of security measures

R/3 System administration tools

Profile Generator functions

The CCMS system administration tool

SAP service and support

Page 122: SAPAG+-+SAP50

© SAP AG

R

Exercises

Note:

There may not be sufficient time to workthrough all the exercises during the course.The exercises should be seen assupplementary examples that can be used,time permitting, during the course. Attendeescan also use these exercises after the course,to consolidate what they have learned.

Page 123: SAPAG+-+SAP50

Unit: Navigation Topic: Using the R/3 System

• Navigating using the menu; calling transactions in R/3

• Entering the user profile

• Configuring the favorites list

Using the R/3 System; setting the user defaults

1. Logging on the system

1.1. Start the SAPgui and choose the appropriate R/3 System. Use the user name, client and initial password provided by your instructor. When logging on for the first time, a window appears in which you must enter a new password twice.

1.2. Call the system status.

1.3. What is the current system time (not identical to the frontend time!)?

1.4. Which R/3 Release (version) are you using?

2. Navigation

2.1. Open sessions (maximum number?) and then close them. (”/o” opens the session overview).

2.2. Minimize a session window and then restore the original window size and position. 2.3. Test the functions of the following commands:

a) “/i" b) “/n" c) “/nend" and d) “/nex"

2.4. What are the corresponding transaction codes for the following menu paths? a) System → Services → Jobs → Job overview b) Tools → Administration → Monitor → System monitoring →

User overview 2.5. You are interested in transactions for accounts receivable accounting, for example.

Display relevant transaction codes for this topic.

Page 124: SAPAG+-+SAP50

3. User defaults

3.1. Using the example of Transaction FD03 (displaying accounts receivable), set a user default for the field Company code.

3.2. The Administration menu (Transaction S002) should appear automatically when logging

onto the system. Set this under your Festwerte???..

3.3. Set a favorite of your choice (see dynamic menu). The favorite should consist of two folders, each with two applications (transactions).

Page 125: SAPAG+-+SAP50

Unit: System Kernel Topic: Recognize the structure of the R/3 training system using the instance overview.

• Using the server / process overview

• Working with the job overview.

The R/3 System in which the participant is currently working is consists of how many instances? How are these configured?

1. System overview

1.1. The training system consists of which application servers?

1.2. On which of these servers are you working?

1.3. Which server provides lock management work process?

1.4. How many work processes of this type does the central instance provide?

1.5. (Optional difficult question!) On which instance is the message server running?

2. Background processing

2.1. Did the "Collector_for_Performance_Monitor" job run on this training day?

2.2. When did it last run?

Page 126: SAPAG+-+SAP50

Unit: Interfaces Topic: Communication and Data Transfer

• RFC communication with external systems.

• Data transfer using batch input.

The R/3 System can communicate with external systems, using the ABAP interface RFC. You use batch input methods to transfer legacy data into the R/3 System.

1. Communication using RFC. 1.1. Find function module RFC_READ_TABLE. 1.2. What does the module do? 1.3. Ensure that the function module is RFC-enabled. 1.4. Familiarize yourself with the function module interface and run a single test: the RFC

target system is either 'NONE' or a system defined by the instructor. Query table = 'SFLIGHT'

1.5. Restrict the table selection to airline 'AA'. 2. Data transfer with batch input.

2.1. Which batch input sessions were generated today? 2.2. Are there any sessions that are still to be processed or incorrect? 2.3. What is the content of the sessions that are still to be processed? 2.4. (optional for experts)Record changing a customer's address.

Generate a batch input session from the recording. Process the batch input session in the foreground.

Page 127: SAPAG+-+SAP50

Unit: ABAP Dictionary Topic: ABAP Dictionary Metadata

• Modeling in the R/3 System.

• Tables and their components.

R/3 System metadata is stored in the ABAP Dictionary. The ABAP Dictionary describes the tables, matchcodes, views, foreign key relationships and elements.

1. Modeling.

1.1. Navigate to the data model BC_TRAVEL.

1.2. Is there an entity type BC_MEAL in model BC_TRAVEL?

1.3. What type of relationship exists between the entity types BC_SFLIGHT and BC_BOOKING?

2. ABAP Dictionary.

2.1. Using which table is entity type BC_BOOKING implemented in the ABAP Dictionary?

2.2. Look at the table fields of this table. The primary key consists of which fields?

2.3. Are the following entries in this table conceivable (consistent)? 400 LH 0400 19980101 00000001 00000001 X. 60.5 KG .. 400 LH 0400 19980101 00000001 00000001 10.2 KG...

2.4. For the current week, are there any flight bookings for airline LH and connection number 0400?

Page 128: SAPAG+-+SAP50

Unit: ABAP Workbench Topic: The R/3 System Development Environment

• Function modules as an ABAP programming modularization technique.

Which modularization techniques can be used within ABAP development?

1. The development environment function modules.

1.1. Navigate to the ABAP development environment in the R/3 System.

1.2. Branch to the "Function Builder".

1.3. Use the input field to view a list of all function modules that begin with "STRING".

1.4. View the documentation on function module STRING_REVERSE.

1.5. Execute this module using the test environment. You can use any character string you like to do this (do not use "otto").

2. Where-used list in the R/3 Repository Information System

2.1. In which programs is function module STRING_REVERSE used?

2.2. Which programs are used to access table SBOOK?

Page 129: SAPAG+-+SAP50

Unit: Administration Topic: Basic Administration Functions

• Working with the user overview

• Finding open locks and update terminations. Finding warnings and errors in the system log.

• Displaying an alert monitor

A system administrator's daily tasks.

1. System overview I

1.1. How many sessions have you opened?

1.2. How many sessions has one of your neighbors opened?

1.3. Try to delete one of your neighbor's sessions. Did it work?

2. System overview II

2.1. Are there currently any open locks? To which user are these locks assigned?

2.2. Were there any update terminations this week?

2.3. View the messages that concern you in the system log.

3. System overview III

3.1. What is the current average response time? This is an important value to describe system performance.

Page 130: SAPAG+-+SAP50

© SAP AG

R

Solutions

Page 131: SAPAG+-+SAP50

Unit: Navigation Topic: Using the R/3 System

• Navigating using the menus; calling transactions in R/3

• Specifying user defaults

• Configuring the favorites list

Using the R/3 System; user-specific defaults

1. Log on to the R/3 System

1.1. Log on to the R/3 System indicated by the instructor and change your password.

1.2. To display system status, choose System → Status.

1.3. The current system time (application server time) is in the top right corner of the System: status screen under System time.

1.4. You can also find the R/3 Release (version number) in the System: status screen under SAP System data → SAP Release.

2. Navigation

2.1. To create and end sessions, choose System → Create session and System → End Session (also possible by entering /i). Six sessions can be open simultaneously during one user terminal session.

2.2. To minimize and maximize a window, use the buttons located in the upper right-hand corner of the window frame. To move a window around, click the title bar and hold, then move the window around screen. You can also alter the shape of the window by selecting the window frame (at the corners) and holding then pulling the corners in any direction.

2.3. Test the functions of the following commands:

a) /i ends a session

b) /n ends the current transaction and you are returned to the calling menu.

c) Use /nend to log off the system

d) Use /nex to end the session immediately without any prompt.

Page 132: SAPAG+-+SAP50

2.4. What are the corresponding transactions for the following menu paths?

a) SM37 (see System status under transaction) b) SM04 (see System status under transaction)

2.5. Go to the Dynamic menu. To activate the technical names, select the magnifying glass or choose Edit → Technical name → Technical name on. Place the cursor on Company menu and choose Edit → Find. Enter customer in the Call trans. Code or choose menu text window that appears and start the find. The transactions found are displayed.

3. User profile

3.1. To set a user default for a field, you need the parameter ID of that field. To find the parameter ID, choose a transaction which displays this field. Then, select the field by placing the cursor over it and choose F1 → Technical info → Parameter ID for the required entry. For the Company code field, the parameter ID is BUK. Enter this ID in the user profile (System → User profile → Own data) along with a value of your choice under the Parameter tab. This setting will take affect the next time you log on to the system.

3.2. The start menu definition is found in the defaults: System → User profile → Own data → Defaults. The StartMenu field is found under the Defaults tab. You must enter a special abbreviation for the corresponding start menu. To determine abbreviations for application level menus, go to an application level menu (choose Tools → Administration and then call the system status). The last four characters under Program (GUI) is the abbreviation you must enter under defaults, as long as the first four characters are MENU. After logging off and logging back on, the Administration screen should start automatically. (A start menu can also be an area menu. For further information see the ABAP Workbench unit).

3.3. To maintain a favorites list, go to the dynamic menu. The company menu appears that was defined by Customizing. To create favorites, select specific applications (transactions) in the menu tree of the company menu, that are your favorites (those applications that you use daily). By selecting an application and then choosing, Favorites list → Create favorites, you can add entries to your favorites lists. To sort your favorites into folders, you first need to create folders (special areas such as Admin, ABAP and so on): Favorites list → Create folder. You can move favorites into folders later by choosing Favorites list → Move favorites.

Page 133: SAPAG+-+SAP50

Unit: System Kernel Topic: Recognize the structure of the R/3 training system using the instance overview.

• Using the server / process overview • Working with the job overview.

The R/3 System in which the participant is currently working is consists of how many instances? How are these configured?

1. System overview I

1.1. Call the server overview: Tools → Administration → Monitor → System monitoring → Servers, or Transaction SM51.

1.2. In the status bar you can see the logical host name of the server on which you are working. You can also choose System → Status under "Host name - Node name".

1.3. In the server overview, in the right column called "Type" you can see the work process type that is offered for each work process.

1.4. From the server overview, once you have selected the required server, you can branch to the process overview for this application server. You can also choose Tools → Administration → Monitor → System monitoring → Process overview, provided that you are working on the instance required.

1.5. There are several ways to establish this: Using Transaction AL11 you can view the R/3 System directory structure: 1) The ID for the MS appears in the instance path name for the central instance, such as "usr/sap/IT2/DVEBMGS/work " the working directory of the instance 2) Call report RSPFPAR using Transaction SA38 (Reporting). Find profile parameter "rdisp/mshost" from the list. 3) You can also use Transaction AL11 to check the default profile "DEFAULT.PFL". This profile is in the "Profile" directory in the R/3 System.

2.

2.1. Choose System → Services → Jobs → Job overview, or use Transaction SM37. Enter ”Coll*” in the Job name field and "*" in the User name field then choose Execute

2.2. Choose Edit → Sort → Chronological . After successful selection, displays jobs in one hour intervals (from 2.1).

Page 134: SAPAG+-+SAP50

Double-click latest job (Status "finished") to display the corresponding job log.

Page 135: SAPAG+-+SAP50

Unit: Interfaces Topic: Communication and Data Transfer

• RFC communication with external systems.

• Data transfer using batch input.

The R/3 System can communicate with external systems, using the ABAP interface RFC. You use batch input methods to transfer legacy data into the R/3 System.

1. Communication using RFC.

1.1. In Transaction SE37 (Tools → ABAP Workbench → Function Builder,) enter function module RFC_READ_TABLE.

1.2. Choose Interface to branch to the interface description of the module and choose Function module docu to view the documentation.

1.3. Ensure that you have selected "RFC supported" as the process type.

1.4. The documentation provides a description of the interface parameters. You can choose the single test on the initial screen of Transaction SE37. Once you have specified the RFC target system and the query table, you can start the test by choosing Execute or by choosing F8.

In this exercise, you must first determine in table SFLIGHT the column name CARRID for the airline. To do this, use Transaction SE11. In the single test of function module RFC_READ_TABLE, you can use the parameter OPTIONS to define a WHERE requirement. Once you select the icon, you must enter the text CARRID='AA'.

2.

2.1. Batch input: The batch input transaction (SM35) can be called by choosing System→ Services→ Batch input→ Edit.

2.2. (see 2.1.)

2.3. You can select folder contents by placing the cursor on a folder and then choosing Folder. In the next dialog box, select Contents.

The Log button displays any errors that occurred during folder processing (again, place the cursor on the corresponding folder before selecting Log.

2.4. Optional exercise: Choose Recording in Transaction SM35. Enter a name for the recording and then select Create (the piece of paper icon).

Page 136: SAPAG+-+SAP50

Using Transaction FD02 (accounts receivable transaction), you can practice changing a customer's address. Choose Transfer transaction and then Save.

Using Create session in the recording screen, you can create a batch input session from the recording. The session is processed in the session overview of Transaction SM35 (deselect process in foreground).

Page 137: SAPAG+-+SAP50

Unit: ABAP Dictionary Topic: ABAP Dictionary Metadata

• Modeling in the R/3 System.

• Tables and their components.

R/3 System metadata is stored in the ABAP Dictionary. The ABAP Dictionary describes the tables, matchcodes, views, foreign key relationships and elements.

1. Modeling.

1.1. You access the Data Modeler by choosing Tools → ABAP Workbench. Then choose Development → Data Modeler. Enter BC_TRAVEL in the input field and choose Display. The system displays information on this model. Choose Graphics. This activates the Data Modeler (this takes a few seconds).

1.2. You can use the search and zoom function to navigate easily over the selected part of the whole model and to localize the required entity type.

1.3. The relationship type between the two entity types is displayed graphically using the arrow. The arrow joins the left side of target entity type BC_BOOKING. It has the identifier "H" for "Hierarchical relationship type". (The existence of BC_SBOOKING also depends strongly on BC_SFLIGHT.)

2. ABAP Dictionary.

2.1. You can now navigate using the ABAP Dictionary or answer the following questions from the modeling environment. By selecting the entity type BC_BOOKING and choosing Dictionary, followed by Table / View on the next screen you access the ABAP Dictionary. The table name is SBOOK.

2.2. The primary key consists of the fields MANDT, CARRID, CONNID, FLDATE, BOOKID and CUSTOMID.

2.3. These entries are not conceivable, since the primary key is unique. Both records consist of the same primary key share. Neither the database nor the ABAP Dictionary would permit such entries!

2.4. You can display the table contents for particular tables using the Data Browser (Transaction SE16 or choose Tools → ABAP Workbench; Overview → Data Browser).

Page 138: SAPAG+-+SAP50
Page 139: SAPAG+-+SAP50

Unit: ABAP Workbench Topic: The R/3 System Development Environment

• Function modules as an ABAP programming modularization technique.

Which modularization techniques can be used within ABAP development?

1. The development environment function modules.

1.1. Tools → ABAP Workbench (Transaction S001).

1.2. Choose Function Builder.

1.3. In the function module input field, enter STRING* and choose F4.

1.4. Select the name of the module you are looking for and choose Display and then Function module docu to display the documentation on this function module.

1.5. From the Function Builder initial screen, choose Single test to branch to the test environment. In the input field STRING you must now enter a character string. Once you have run the test (using F8) the character string should be displayed in reverse.

2. Where-used list in the Repository Information System

2.1. Navigate to the Repository Information System (Transaction SE84) by choosing Tools → ABAP Workbench, Overview → Infosystem. Expand the following tree structure: Programming → Function Builder → Function modules. Enter the function module on the selection screen and then execute the search (F8). Once the system displays the module, select it and then choose Where-used list.

2.2. You now proceed in exactly the same way as in the previous exercise. The path in the Repository Information System this time is ABAP Dictionary → Basic objects → Tables and so on.

Page 140: SAPAG+-+SAP50

Unit: Administration Topic: Basic Administration Functions

• Working with the user overview

• Finding open locks and update terminations. Finding warnings and errors in the system log.

• Displaying an alert monitor

A system administrator's daily tasks.

1. System overview I

1.1. You can enter "/o" in the command line to view your sessions. The administration transaction for the sessions belonging to all users on an instance is Transaction SM04. Choose Tools → Administration → Monitor → System monitoring → Users. Double-click on the user.

1.2. In Transaction SM04, select the user name of your neighbor and double-click on it. Do you have authorization to do this?

1.3. If you do have authorization to display sessions belonging to your neighbor, try to delete one of these sessions. To do this, select the session and choose End session.

2. System overview II

2.1. Call the lock overview by choosing Tools → Administration → Monitor → Lock entries, or by calling Transaction SM12. This also displays the assignment of locks to users.

2.2. Call the update overview by choosing Tools → Administration → Monitor → Update, or by calling Transaction SM13. Make the appropriate selection.

2.3. Call the system log by choosing Tools → Administration → Monitor → System log, or by calling Transaction SM21. Make the appropriate selection.

3. Call the stoplight monitor "Current Local Workload" by choosing Tools → Administration → Monitor → Performance → Alerts → Local → Current workload, or by calling Transaction AL05. Choose Monitor on to display current times. The average daily response time is in the left column.

Page 141: SAPAG+-+SAP50
Page 142: SAPAG+-+SAP50

© SAP AG

R

Appendix

The Java GUISystem architectureSAP transaction overviewQuestions and answers

Page 143: SAPAG+-+SAP50

© SAP AG

R

The Java GUI

R/3 transactionR/3R/3

Java

AppletGUI serverGUI server

(in C++)(in C++)

Web browserWeb browser(virtual machine(virtual machine) HTTP HTTP

serverserver

SSL

ORB(orbix)

The Java GUI allows access to an R/3 System without requiring any additional enhancements or developments. The Java applet can be executed by any "virtual machine". The GUI looks exactly the same as in the SAP GUI

and does not look like an Internet page. The HTTP and GUI servers must be running on the same host, since the Java applet may only communicate with

the machine from which it was loaded. You should consider system security when you use this strategy:

Use SSL to ensure that the Java applet really does come from the server to which you want to connect. Communication between the Java applet and the GUI server is secure because the components were developed with Orbix from IONA Technologies. Orbix is a complete implementation of the Common Object Request Broker Architecture (CORBA) from the Object Management Group (OMG). You can use Orbix to develop distributed applications that use object-oriented client/server technology. The GUI server will be available for Unix and Windows NT.

Page 144: SAPAG+-+SAP50

© SAP AG

R

R/3 System Architecture

X terminalserver

PC

88MHz

hs2003hs2003

hs2001hs2001

I45I45

PresentationApplication

Database

Externalsystem

Instance name (SM51)

hs2002hs2002

Page 145: SAPAG+-+SAP50

© SAP AG

R

Worksheet for SAP50 / ABAP Dictionary

Fields Fields Fields

Entity types

Enter a cross for primary key fields

Table namesEnter relationship typesand cardinalities

Page 146: SAPAG+-+SAP50

Navigation Help for Some SAP Transactions (SAP50)

Unit 1) Business Navigator Tools Business Engineer Business Navigator;

Component view / Process view (SB09) Business Framework Tools Business framework BAPI Browser (BAPI) Unit 2) System status System Status User profile System User profile

-Defaults / parameters Own data (SU3) -Favorites Favorite maint. (SES0)

System services System Services -Reporting Reporting (SA38) -ABAP Query Query (SQ00) -Spool requests Output controller (SP01) -Table maintenance Table maintenance (SM31) -Batch input monitor Batch input (SM35) -Background processing Jobs (SM36 / SM37)

Unit 3) Instance overview Tools Administration Monitor System

monitoring (SM51) Unit 4) RFC dest. maint. Tools Administration Administration Network

RFC destinations (SM59) OLE environment Tools Administration Development

Programming environment OLE2 OLE demo (OLE) ALE environment Tools Business framework ALE ...

Page 147: SAPAG+-+SAP50

Unit 5) ABAP Dictionary Tools ABAP-Workbench ABAP Dictionary (SE11) DATA Browser Tools ABAP-Workbench Overview Data Browser

(SE16) Data modeller Tools ABAP Workbench Development Data

Modeller (SD11) Unit 6) Workbench Tools ABAP Workbench (S001) ABAP editor Tools ABAP Workbench Editor (SE38) Function modules Tools ABAP Workbench Function Builder (SE37) Repository Browser Tools ABAP Workbench Repository Browser

(SE80) Repository info. sys. Tools ABAP Workbench Overview Information

system (SE84) Workbench Organizer Tools ABAP Workbench Overview Workbench

Organizer (SE09) Enhancements Tools ABAP Workbench Utilities Enhancements

(CMOD) Unit 7) Administration Tools Administration (S002) Processes Tools Administration Monitor System

monitoring Process overview (SM50) Instances Tools Administration Monitor System

monitoring Server overview (SM51) Users Tools Administration Monitor System

monitoring User overview (SM04) Locks Tools Administration Monitor Lock entries

(SM12) Asyn. update Tools Administration Monitor Update (SM13) System log Tools Administration SYSLOG (SM21) User administration Tools Administration User maintenance Users

(SU01) OSS System Services SAP Service (OSS1)

Page 148: SAPAG+-+SAP50
Page 149: SAPAG+-+SAP50

© SAP AG

R

Question(1) Which of the following statements are correct?

The R/3 System has open interfaces to integrate external data and functions.The word ”openness“ refers to using standardized interfaces.

The “openness of the R/3 System “ refers to the ability to include application modulessuch as FI, CO, HR and so on in the global system.

Data retention takes place for all applications in one of the databases common to theapplications.

Business processes are processed in the R/3 System application modules.

ALE was developed to integrate the data of different databases (for each applicationmodule)

(2) Which of the following are R/3 interfaces for desktop applications:

OAG

ALE, LU6.2

OLE

The correct answers are: 1a, c, e 2c

Page 150: SAPAG+-+SAP50

© SAP AG

R

Question

(3) How are cross-system business processes connected in the R/3System?

(4) Which of the following components belong to the R/3 developmentinfrastructure and can also be used for customer-specific development?

MAIL

ALE

DDE

OLE

R/3 Gateway

R/3 Repository

ABAP Development Workbench

R/3 memory management

The correct answers are: 3b 4a, d

Page 151: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

A server is a host on which software components run that provide specificservices.

A server is a group of processes that provide specific services.

(2) State the advantages of the client / server concept for the R/3 System:

Clients are processes that use a specific server service.

Question

The correct answers are: 1a, b, c 2: See slides

Page 152: SAPAG+-+SAP50

© SAP AG

R

Question(1) Which of the following statements are correct?

You can also improve response times using parallel processing.

A lot of data and runtime objects in the R/3 System can be buffered to optimize response times.

You can optimize response times by saving costly database access.

So that database capacity is not exhausted, master records are buffered in the R/3 System. Heterogeneous load on the application servers shortens the response times you can expect.

Data modelling takes place using the SERM model. This represents therelationships between information objects.

Economic connectivity within the R/3 System applications can be modelledusing Petri nets.

EPC is a modelling method that maps event-oriented process chains.

(2) Which of the following statements are correct?

The correct answers are: 1a, b, e 2b, c

Page 153: SAPAG+-+SAP50

© SAP AG

R

(1) Name the important components in the R/3 SystemBasis layer:

Question

(2) Why are tasks such as scheduling and memorymanagement in the R/3 System not left entirely to theoperating system software?

Few operating systems support memory management

For reasons of portability (independent of manufacturer)

For reasons of performance

The correct answers are: 1: see slide 2a, b

Page 154: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

Question

Middleware is a county in England.

The “middleware“ layer is situated between the database and theoperating system layer in the database server.

Middleware is a specially-developed retail application in the R/3 System.

The middleware in the R/3 System is also a basis component. It embeds theapplication in the system environment.

Middleware is the software layer between the R/3 System application leveland the system software. It isolates the applications from the heterogeneoussystem interfaces.

The correct answers are: 1c, d

Page 155: SAPAG+-+SAP50

© SAP AG

R

Question(1) Which of the following is the standard network protocolfor communication in the R/3 client / server system?

OLE

SQL

TCP/IP

(2) Which of the following statements are correct?

You connect the R/3 System to an IBM mainframe using the SNA protocolLU6.2.

You access an R/3 System on an IBM mainframe using the TCP/IP networkprotocol.

(3) Why do you use the CPI-C “Starter Set” within the ABAPprogramming language?

The correct answers are: 1c 2a 3: see documentation

Page 156: SAPAG+-+SAP50

© SAP AG

R

Question(4) Which of the following statements are correct?

(5) Why do you need the OLE concept in the R/3 System?

Only R/3 Systems are possible as RFC communication partners.

RFC is a network protocol that can be classified in level 2-4 of the ISO-OSInetwork standard.

RFC is a communication protocols standardized by IBM.

RFC is an SAP-specific protocol to call function modules across all hosts.

RFC functions are managed in their own special function libraries.

The correct answers are: 4c, d 5: See documentation

Page 157: SAPAG+-+SAP50

© SAP AG

R

Question(1) Which client / server configuration options are conceivablein a distributed R/3 System?

(2) Which of the following statements are correct?

Moving the presentation level to the level within the R/3 Systemprotects system resources.

Within the client / server concept, you talk of the scalability of the databaselevel of the R/3 System.

Scalability refers above all to the distribution of the task level to several hosts.

To relieve the load on an R/3 System (consisting of one host), the task level may be distributed.

The correct answers are: 1: see documentation 2b, c

Page 158: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

Question

ALE stands for “Application Load Extracting“. This is a process that sendsapplication server data via RFC.

ALE messages are exchanged via RFC or EDI.

ALE is used to disconnect application services.

With ALE you no longer need to integrate business processes over systemboundaries.

You can use ALE to exchange messages between R/2 and R/3 Systems.

(2) Give examples of where you would use the ALE concept:

The correct answers are: 1b, d, e 2: see documentation

Page 159: SAPAG+-+SAP50

© SAP AG

R

Question

(3) Which of the following statements are correct?

The following work processes are in the R/3 System: dialog WP, batch WP,enqueue WP, update WP, spool WP, message WP, gateway WP.There are five types of work processes in the R/3 System: 1) Dialog 2) Batch3) Enqueue 4) Spool 5) Update.There are also “Message-Server“ services to communicate within the R/3System and “Gateway-Server“ services to communicate with external systems.

(1) What is an SAP transaction?

(2) What is an SAP LUW?

SAP transactions are processed by the dispatcher and work processes.

The correct answers are: 1: see documentation 2: see documentation 3b, c, d

Page 160: SAPAG+-+SAP50

© SAP AG

R

Question

(5) Which of the following statements are correct?

(4) Why do you need the dispatcher queue?

The dispatcher is a central process within a distributed R/3 System. It onlyruns on the database host of the R/3 System.

The dispatcher receives the incoming user requests via the frontend (PC,terminal) and then finds available online work processes that can processthese requests.

The dispatcher is the central process within the R/3 Basis flow control. Itreceives the requirements from the presentation level and distributes thework to the dialog work processes.Each user recevies exactly one dialog work process to occupy systemresources optimally. This work process then processes the requests for thatuser.

The dispatcher queue is used to catch requests that cannot beprocessed directly, if the work processes are occupied, for example.

The correct answers are: 4: see documentation 5b, d, e

Page 161: SAPAG+-+SAP50

© SAP AG

R

(1) Why is background processing required in the R/3 System?

A job consists of several steps. You schedule steps to run automatically (usuallyduring the night).

You can only schedule specific ABAP programs as a job. Usual reports thatgenerate lists cannot be processed in the background.

A job consists of one or several steps. Each step contains an ABAP program oran external program call.The job scheduler automatically triggers a scheduled job. Each job is processedby one batch work process.When you process background jobs, this by-passes lock administration to importchanges to the database.Scheduled jobs are located in the scheduling table in the R/3 System database.

Question

(2) Which of the following statements are correct?

1: see documentation The correct answers are: 2b, c, e

Page 162: SAPAG+-+SAP50

© SAP AG

R

Question(2) What are the advantages of the batch input process?

(3) Which of the following statements are correct?

You can use a batch input session to simulate a user dialog in the R/3 System.

The batch input process uses the consistency check of the onlinetransaction logic to import data into the R/3 System.

A batch input session consists of at least one transaction and its input, whichis to be imported into the R/3 System.

For the batch input process, you use specially-developed ABAP programs withdata integrity checks to import external data into the R/3 System.

The correct answers are: 2: see documentation 3a, c

Page 163: SAPAG+-+SAP50

© SAP AG

R

Question(1) What do you understand by desktop integration:

(2) Which of the following statements are correct?

Using OLE you can extract data from the R/3 System and send it to afrontend device such as a PC. (It is currently not possible to send data theother way.)

You can address desktop applications from the R/3 System using RFC andOLE.You can even use OLE automation to query R/3 System services from anexternal application. The calling application program acts in this caseas the OLE client.

The correct answers are: 1: see documentation 2a, b

Page 164: SAPAG+-+SAP50

© SAP AG

R

(1) When is the update process in the R/3 System used?

Question

(2) Describe the flow of an SAP transaction that uses asynchronousupdate and the lock concept.

Each time data changes in the database.

With synchronous update, the update takes place directly in the dialog part, thereforewithin the transaction that is running.

The update work process (V-WP) is only used for asynchronous update.

With asynchronous update (implemented using the ABAP statement ”CALL FUNCTIONIN UPDATE TASK“) the update is executed following the dialog phase.

The correct answers are: 1b, c, d 2: see documentation

Page 165: SAPAG+-+SAP50

© SAP AG

R

(3) Which of the following statements are correct?

Question

Concurrent write access to specific R/3 System objects must not be prevented in the R/3System as this is dealt with by the database system.

To prevent concurrent access to the same data, there is an enqueue work process(E-WP) in the R/3 System.

The enqueue work process uses the lock concept of the database system used to set locks.

Change transactions use the E-WP to set a lock at the start of the transaction. You canchange data while the transaction is running. The lock is then released at the end of thetransaction.

You must release a lock again at the end of the transaction so that you prevent other usersfrom working for as short a time as possible.

To optimize performance, numerous change transactions that manipulate the transaction dataare implemented without enqueue / dequeue objects.

The correct answers are: 3a, c, d

Page 166: SAPAG+-+SAP50

© SAP AG

R

(1) What do you understand by “logon balancing". (Difficult question)

Question

Tip: See Unit 1 - Client / Server

The correct answers are: See documentation

Page 167: SAPAG+-+SAP50

© SAP AG

R

(1) What are the tasks of the R/3 memory management system?

(2) Which of the following statements are correct?

Question

From Release 3.0, the memory management system speeds up theexchange of contexts. The whole user context is now in the area that canbe directly addressed.

You can improve response times by directly addressing the user contexts inthe external roll area.

The memory management system distributes the workload directly to thedifferent application servers in a distributed R/3 System.

The correct answers are: 1: see documentation 2a, c

Page 168: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

Question

To manage data from the R/3 application modules, the system usesseveral relational database systems in a heterogeneous environment.

The R/3 System mainly uses statistical SQL as this saves memoryspace.

The system uses relational database systems to manage data in the R/3System. This type of database system stores data and relationships inthe form of two-dimensional tables.SQL is used to access data over a network.

SQL is a database query language and stands for Structured QueryLanguage.When you use dynamic SQL, the commands are not compiled until theapplication program is executed. It is therefore more flexible thanstatistical SQL.

(2) What is OPEN-SQL

The correct answers are: 1b, c, d, e 2: see documentation

Page 169: SAPAG+-+SAP50

© SAP AG

R

Question

(4) What advantage does OPEN SQL provide for ABAP developers?

(3) Which of the following statements are correct?

Buffering data in the R/3 System application servers can noticeably increasesystem performance.

It is useful to distribute the individual R/3 System application modules to specialservers to fill the buffers on these machines optimally (workload balancing).

The R/3 database interface temporarily stores the application data in the relationaldatabase system to increase response times.

The R/3 System does not generally buffer master records and transaction data, butrather R/3 system data that is frequently used for the applications.

ABAP programs are not buffered in the R/3 System application buffers.

It is not advantageous to place heterogeneous load on the buffers, since managing thebuffer contents requires additional time because of the displacement mechanism.

The correct answers are: 3a, c, e, f 4: see documentation

Page 170: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

Question

(2) Summarize the tasks of the CCMS:

CCMS is a tool for ABAP programming.

CCMS is a tool to monitor the R/3 System.

The CCMS is responsible for managing jobs as well as scheduling andmanaging batch input sessions.The CCMS monitors exceptional situations and alarm situations. An alarmsituation would be triggered by a memory problem, for example.

The CCMS can also recognize exceptional situations in the database. Thesystem administrator must intervene if a critical alert occurs (red stoplights,for example).You can use the CCMS to correct any problems that occur, such as memorybottlenecks immediately and automatically, without any intervention from thesystem administrator.The CCMS displays many alarm situations using optical warning systems.These warning signals are triggrered when the preset threshold values areexceeded.

The correct answers are: 1b, d, e, g 2: see documentation

Page 171: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?

(2) Name the additional remote services provided by SAP:

Early Watch is a service that SAP provides for its customers to recognizeproblem situations in productive R/3 Systems.

The Early Watch service is available from 10:00 to 14:00, depending on thetime zone.

You should use this remote service if any problems occur.

The Early Watch team connects itself to the customer system. Client 001 isused the analysis environment for this.

The Early Watch team has unrestricted authorization in the customer system.

There are sufficient security aspects that prevent the Early Watch team fromchanging the data in the customer system. This means that during the EarlyWatch session, connection to the customer system can only be initiated bythe customer.

Question

The correct answers are: 1a, e 2: see documentation

Page 172: SAPAG+-+SAP50

© SAP AG

R

Question(1) Why is the authorization concept required in the R/3 System?

The R/3 System uses the authorization concept for the database used toensure access protection.Each task in the R/3 System is protected by an authorization. To call a task /transaction, a user must first be assigned the appropriate authorization in aconfirmation field.

The authorization concept is used as access protection from unauthorizedaccess to specific transactions. This is a concept that is anchored in the R/3System and which processes independently of the database.

Authorizations are grouped together in profiles. These profiles are thenincluded in the user master records. Each user is assigned a specific numberof authorizations in his or her user master record.

(2) Which of the following statements are correct?

The correct answers are: 1: see documentation 2c, d

Page 173: SAPAG+-+SAP50

© SAP AG

R

(1) Which of the following statements are correct?Question

The ABAP Workbench is fully integrated into the R/3 System and cannot beused as an independent development environment.The ABAP Dictionary manages metadata. The data itself is retained in thetables in the database.You use the Screen Painter to define screens (templates), and the MenuPainter to create menus. Both tools are used for online programming.

You can access ABAP Dictionary objects directly from the ABAPprogramming. The individual development objects for dialog programs, forexample, are displayed as hierarchical lists.

The Data Modeler enables you to map the models you created onto theABAP Dictionary.

To analyze ABAP programs, you can “trace“ the program coding.This creates a runtime analysis.

Batch Input Editor

Screen Painter

Menu Painter

ABAP Dictionary

ABAP Editor

Job Editor

Repository Browser Memory Manager

(2) Which of the following are ABAP Workbench development tools?

The correct answers are: 1b, c, d, e, f 2a, b, d, f, g (read in columns)