Вы находитесь на странице: 1из 15

ABAP Workbench 4.

Karl Kessler
SAP AG
SAP AG 1998
J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 1

Application Engineering Tools


Development tools
ABAP Workbench, ABAP Objects

Personalization
Session Manager, Transaction Variants

Simplification
SAPscript Form Painter and Editor

Software quality
Test Workbench and CATT

Online documentation tools


SAP Knowledge Engineer

Customizing tools
View maintenance

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 2

Page 1

Application Engineering Tools


Development tools
ABAP Workbench, ABAP Objects

Personalization
Session Manager, Transaction Variants

Simplification
SAPscript Form Painter and Editor

Software quality
Test Workbench and CATT

Online documentation tools


SAP Knowledge Engineer

Customizing tools
View maintenance

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 3

Runtime Architecture for ABAP Objects


Presentation server GUI interface Controls SAP GUI
RFC DIAG

Application server
Dynpro

Database server DB interface

ABAP Objects

SQL

DB

System interface

Operating system Hardware

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 4

Page 2

R/3 Repository
ABAP Objects (Classes, Interfaces) Screens Dictionary Cross references HTML Templates Online help ...

R/3
Repository

Menu Painter Screen Painter Repository EDM Maintenance ABAP Tools Transport system

Documentation Maintenance

Runtime system

Models

Development environment
SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 5

Repository Browser
Where used lists Interfaces Classes Generic access

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 6

Page 3

Navigation

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 7

Screen Painter
Tab Strip Table Control Icons Buttons Boxes Flow control

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 8

Page 4

News 4.0/4.5/Enjoy
Object-oriented extensions to ABAP language Class Builder Control-enabling technology (ActiveX integration) Workbench Manager (Enjoy initiative) Modification assistant

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 9

Object Orientation: Design Goals


Natural extension of conventional ABAP Compatibility with earlier releases Integration into 3-tier architecture Efficiency through kernel implementation Features based on: C++, Java Encapsulation of remote objects (DCOM, ActiveX) Support for GUI objects Support for business objects and workflow

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 10

Page 5

ABAP Objects
ABAP Objects is available and in use
Office Integration, Class Builder, ActiveX Integration

Local and global classes in R/3 repository ActiveX Controls as ABAP classes Java Beans as ABAP classes Control framework independence Basis for remote object systems

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 11

Example
CLASS CTruck DEFINITION. PUBLIC SECTION. DATA: VehicleId TYPE I. METHODS: LoadParcel IMPORTING parcel TYPE REF TO CParcel, UnloadParcel PRIVATE SECTION. DATA: ParcelTab TYPE REF TO CParcel OCCURS 0. ENDCLASS. CLASS CTruck IMPLEMENTATION. METHOD LoadParcel. APPEND parcel TO ParcelTab. -- additional code ENDMETHOD. ENDCLASS. PROGRAM xy. DATA: truck TYPE REF TO Ctruck. DATA: parcel TYPE REF TO Cparcel. -- get input data for parcel from somewhere CREATE OBJECT truck. Truck->vehicleid = 123. CREATE OBJECT parcel. CALL METHOD truck->LoadParcel importing parcel = parcel.
SAP AG 1998
J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 12

Page 6

Class Builder with Text Editor class

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 13

ActiveX in ABAP
SAPgui 4.x as ActiveX container
T ActiveX as part of dynpro (Tree control, HTML control) T ActiveX full screen (ABAP editor, SAPscript form painter)

Method invocation through automation Intelligent automation queuing and flushing Event registering and filtering Events can be handled with callbacks (forms) Integration with function modules and ABAP classes

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 14

Page 7

ActiveX Example: Web Browser Control


PBO. ...Create instance (constructor) ...Link to dynpro (constructor) ...Call methods, Set properties (attributes, methods) ...Register for events (register methods) PAI. ...Receive special ok-code. ...Dispatch control event (dispatch methods) ...Handle control event (handler classes)

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 15

Workbench Manager (Enjoy Release)

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 16

Page 8

Modification Assistant
Techniques to adapt the R/3 applications without modification
T T T T
Customizing Report variants, transaction variants Personalization Customer exits menu, dynpro, field, function, keywords

Do not allow for arbitrary modifications Modification assistant


T Built-in support for controlled modifications T Upgrade support

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 17

Example: extending the user interface

Protected area (display only)

Customer fields

Customer function

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 18

Page 9

Modifications in ABAP Editor


FORM user_command. CASE sy-ucomm. WHEN fun1. *{# SDK0005378 05/25/1997 Replacement * IF condition. IF condition OR mycondition. *}# perform handle_fun1. ELSE. ... ENDIF. WHEN fun2. perform handle_fun2. *{# SDK0005466 06/19/1997 Insertion WHEN myfun. perform handle_myfun. *}# ENDCASE. ENDFORM.
SAP AG 1998
J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 19

Replace

Insert

Modification Browser (SE95) and Upgrade Support (SPAU)

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 20

Page 10

Infrastructure for Industry Solutions

Customer Development Modifications Hook Techniques Exit Techniques and Add Ins Customizing
SAP AG 1998
J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 21

Add Ins: Definition


Add ins are points in an objects source code where additional functions or statements can be inserted. Add ins are defined by the objects initial developer and allow other developers to easily include additional code in a subsequent phase of development without having to modify the original. Additional advantages:
No change licences necessary Interfaces are upwardly compatible Less work at upgrade

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 22

Page 11

Requirements
Delivery of implemented add ins (country-specific versions, IBU solutions, partner software, ...) Technique can be used by other software vendors Delivery and correction of default solutions Filter-dependent implementation possible Event-like add ins (Publish & Subscribe) Integrated administration and documentation Trace possibilities

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 23

Why Business Add Ins?


Perform calls in programs / using tables
T Flexible <-> Fuzzy interface (global data,...)

Customer exits (SMOD/CMOD)


T System infrastructure: SAP - customer T Naming convention not compatible with namespace extrension

Business Transaction Events (Open FI)


T No bundle of objects that belong together T No interface elements

Business add ins should be viewed as expanded and enhanced business transaction events

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 24

Page 12

Business Add Ins: Architecture

R/3 CORE

Add in adapter: Distribution Filtering Control

Interface

Interface

Specific industry

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 25

Architecture

IF_app_exit

Application

Customer

Program XXX. data: exit type ref to if_app_exit. Create object... Call method...

Generate class CL_imp_app_exit


mth1 mth2 mth3 ... mth1 mth2 mth3 ...

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 26

Page 13

Example Program
REPORT BADI . CLASS CL_EX_BADI DEFINITION LOAD. DATA EXIT TYPE REF TO IF_EX_BADI. DATA WORD(15) TYPE C. CREATE OBJECT EXIT TYPE CL_EX_BADI. START-OF-SELECTION. WRITE:/ 'Please click here'. AT LINE-SELECTION. NEW-PAGE. WORD = 'Business add in'. WRITE:/ 'Original word: ', WORD. CALL METHOD EXIT->METHODE CHANGING PARAMETER = WORT.

WRITE:/ 'Changed word: ', WORD.


SAP AG 1998
J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 27

Filter Dependence
Sometimes it is important for partners to be able to implement and deliver a single add in with different filter values ( for different countries, for example). For this reason, add ins can be defined for specific filter values.

Type of filter: data element with search help Parameter flt_val must be suitably filled when the add in is called. Add in must be implemented for a specific filter value

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 28

Page 14

Filter-Dependent Add Ins


Add in definition IF_app_exit Type of filter dependency: country-specific Add in implementation

IF_app_exit

Country: Japan Country: China ...

Exit call ... Exit type ref to IF_app_exit. Country = J. Call method exit->mth1 exporting flt_val = country.

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 29

Add In Manager
Definition of related objects
T Interfaces T User interface functions T Documentation

Test implementation Assignment to Implementation Guide (IMG) Implementation Implementation calls from IMG

SAP AG 1998

J02 SAPTechEd 98, Karlsruhe (K. Kessler) / 30

Page 15

Вам также может понравиться