ABAP Workbench 4.

5

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

Karlsruhe (K. 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. 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. Kessler) / 4 Page 2 . ABAP Objects Personalization Session Manager.Application Engineering Tools Development tools ABAP Workbench.

Interfaces) Screens Dictionary Cross references HTML Templates Online help . Karlsruhe (K. Kessler) / 5 Repository Browser Where used lists Interfaces Classes Generic access ® © SAP AG 1998 J02 SAPTechEd ’98.. Kessler) / 6 Page 3 .R/3 Repository ABAP Objects (Classes.. 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) / 7 Screen Painter Tab Strip Table Control Icons Buttons Boxes Flow control ® © SAP AG 1998 J02 SAPTechEd ’98. Kessler) / 8 Page 4 . Karlsruhe (K. Karlsruhe (K.Navigation ® © SAP AG 1998 J02 SAPTechEd ’98.

Kessler) / 10 Page 5 .News 4. ActiveX) Support for GUI objects Support for business objects and workflow ® © SAP AG 1998 J02 SAPTechEd ’98. Java Encapsulation of remote objects (DCOM.0/4.5/Enjoy Object-oriented extensions to ABAP language Class Builder Control-enabling technology (ActiveX integration) Workbench Manager (Enjoy initiative) Modification assistant R ® © 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++. Karlsruhe (K.

Karlsruhe (K. Truck->vehicleid = 123. CLASS CTruck IMPLEMENTATION. METHODS: LoadParcel IMPORTING parcel TYPE REF TO CParcel. DATA: VehicleId TYPE I.get input data for parcel from somewhere … CREATE OBJECT truck. … “-. Class Builder. APPEND parcel TO ParcelTab. DATA: ParcelTab TYPE REF TO CParcel OCCURS 0. 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. © SAP AG 1998 J02 SAPTechEd ’98. CREATE OBJECT parcel. UnloadParcel … PRIVATE SECTION. Karlsruhe (K.additional code … ENDMETHOD. Kessler) / 12 ® Page 6 . PUBLIC SECTION. PROGRAM xy.ABAP Objects ABAP Objects is available and in use Office Integration. METHOD LoadParcel. DATA: truck TYPE REF TO Ctruck. CALL METHOD truck->LoadParcel importing parcel = parcel. “-. Kessler) / 11 Example CLASS CTruck DEFINITION. ENDCLASS. DATA: parcel TYPE REF TO Cparcel. ENDCLASS.

Karlsruhe (K.x as ActiveX container T ActiveX as part of dynpro (Tree control. 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.Class Builder with Text Editor class ® © SAP AG 1998 J02 SAPTechEd ’98. Kessler) / 14 Page 7 . HTML control) T ActiveX full screen (ABAP editor. Kessler) / 13 ActiveX in ABAP SAPgui 4.

. methods) .. Kessler) / 15 Workbench Manager (Enjoy Release) ® © SAP AG 1998 J02 SAPTechEd ’98.Receive special ok-code. Set properties (attributes..Dispatch control event (dispatch methods) ...ActiveX Example: Web Browser Control PBO.. Karlsruhe (K.Call methods.Handle control event (handler classes) ® © SAP AG 1998 J02 SAPTechEd ’98... Karlsruhe (K. Kessler) / 16 Page 8 . ..Link to dynpro (constructor) .Create instance (constructor) . .Register for events (register methods) PAI. ......

Kessler) / 17 Example: extending the user interface Protected area (display only) Customer fields Customer function ® © SAP AG 1998 J02 SAPTechEd ’98. function. dynpro. Kessler) / 18 Page 9 . 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. transaction variants Personalization Customer exits menu. Karlsruhe (K.Modification Assistant Techniques to adapt the R/3 applications without modification T T T T Customizing Report variants. Karlsruhe (K. field.

Kessler) / 20 Page 10 . Karlsruhe (K. Kessler) / 19 Replace Insert ® Modification Browser (SE95) and Upgrade Support (SPAU) ® © SAP AG 1998 J02 SAPTechEd ’98. WHEN fun1. perform handle_myfun. ENDIF. CASE sy-ucomm. ELSE. WHEN fun2. *}# perform handle_fun1. *}# ENDCASE. *{# SDK0005378 05/25/1997 Replacement * IF condition.. *{# SDK0005466 06/19/1997 Insertion WHEN myfun. .Modifications in ABAP Editor FORM user_command. IF condition OR mycondition. Karlsruhe (K. ENDFORM. © SAP AG 1998 J02 SAPTechEd ’98. perform handle_fun2..

Karlsruhe (K. Kessler) / 22 Page 11 . Kessler) / 21 ® Add Ins: Definition Add ins are points in an object’s source code where additional functions or statements can be inserted. Karlsruhe (K. Add ins are defined by the object’s 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.Infrastructure for Industry Solutions Customer Development Modifications Hook Techniques Exit Techniques and Add Ins Customizing © SAP AG 1998 J02 SAPTechEd ’98.

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.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. IBU solutions. Kessler) / 23 Why Business Add Ins? Perform calls in programs / using tables T Flexible <-> Fuzzy interface (global data.... Karlsruhe (K.Requirements Delivery of implemented add ins (country-specific versions.) Customer exits (SMOD/CMOD) T System infrastructure: SAP . Kessler) / 24 Page 12 ..

. Karlsruhe (K. mth1 mth2 mth3 ... Call method. data: exit type ref to if_app_exit. Karlsruhe (K. Kessler) / 25 Architecture IF_app_exit Application Customer Program XXX... Create object. ® © SAP AG 1998 J02 SAPTechEd ’98. Generate class CL_imp_app_exit mth1 mth2 mth3 ...Business Add Ins: Architecture R/3 CORE Add in adapter: Distribution Filtering Control Interface Interface Specific industry ® © SAP AG 1998 J02 SAPTechEd ’98. Kessler) / 26 Page 13 ..

add ins can be defined for specific filter values. ® WRITE:/ 'Changed word: '. For this reason. WORD = 'Business add in'. START-OF-SELECTION. CALL METHOD EXIT->METHODE CHANGING PARAMETER = WORT. WORD. WORD. CLASS CL_EX_BADI DEFINITION LOAD. AT LINE-SELECTION. Karlsruhe (K. Karlsruhe (K. Add in must be implemented for a specific filter value ® © SAP AG 1998 J02 SAPTechEd ’98. for example).Example Program REPORT BADI . NEW-PAGE. CREATE OBJECT EXIT TYPE CL_EX_BADI. WRITE:/ 'Please click here'. Type of filter: data element with search help Parameter flt_val must be suitably filled when the add in is called. Kessler) / 28 Page 14 . © SAP AG 1998 J02 SAPTechEd ’98. WRITE:/ 'Original word: '. DATA WORD(15) TYPE C. 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. DATA EXIT TYPE REF TO IF_EX_BADI.

Karlsruhe (K. Karlsruhe (K.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 . ® © SAP AG 1998 J02 SAPTechEd ’98. Exit call ... Kessler) / 30 Page 15 .. Call method exit->mth1 exporting flt_val = country. 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. Country = ‚J‘.. Exit type ref to IF_app_exit.