Enhancement Framework What it means to you Thomas Jung Oliver Mayer SAP NetWeaver Product Management ASUG Call Series
Agenda 1. Introduction 2. Enhancement Packages 3. Enhancement Framework 4. Switch Framework SAP 2007 / Page 2
SAP ERP is the Platform for Innovation Delivering Predictability and Innovation Without Disruption 2005 2006 2007 2008 2009 2010 Enhancement Packages SAP ERP 6.0 (2005) Next Suite Release SAP NetWeaver Customers can adopt innovation at their pace Process and User Interface Simplification New Enterprise Services Industry-Specific Enhancements Cross-Industry Functional Enhancements
Introducing Enhancement Packages More innovation, more quickly, more accessible to customers 2006 2007 2008 2009 2010 Enterprise Services Talent Management Areas of innovation Financial Collaboration Industry-specific capabilities Functional enhancements Technical enhancements Enterprise services Optional Adoption
SAP enhancement package for SAP NetWeaver SAP enhancement packages for SAP NetWeaver contain new functionality, in addition there will be Support packages containing only corrections. The main goal is to strictly separate maintenance from innovation and increase the quality of support packages. Maintenance Current Situation Innovation Feature Pack SP incl. new features Maintenance Innovation Corrections and legal changes only Support Package Development, corrections and legal changes Enhancement Package Future Major Release SAP 2007 / Page 5
Enhancement Packages for SAP NetWeaver Their Value for Customers SAP enhancement packages for SAP NetWeaver their value for customers Reduced effort for testing and non for training when applying Support Packages New features are shipped with enhancement packages and new releases only Adding new functionality between releases becomes predictable and controllable One enhancement package per year Enhancement package are optional Minimal training effort when applying an enhancement package Enhancement package add new but do not replace existing functionality SAP 2007 / Page 6
Agenda 1. Introduction 2. Enhancement Packages 3. Enhancement Framework 4. Switch Framework SAP 2007 / Page 7
SAP Enhancement Packages & the New SAP Enhancement Package Installer (SAPehpi) SAP enhancement packages Allow functional updates without system upgrade, and are available for SAP NetWeaver and SAP ERP Are developed according to Support Package rules regarding compatibility, interfaces, and UIs Updates in an EhP for SAP NetWeaver are compatible with each other and can be mixed in the landscape SAP Enhancement Package Installer (SAPehpi) SAP EhPs are installed in one process with the SP stack All installation steps run as a guided procedure: Preparing the download stack Applying the download stack All prerequisites are checked Downtime is minimized through Use of shadow tables Synchronization of ABAP and Java stacks Measurably better then with SPAM/SAINT/JSPM* EhP 1 EP* * PI* AS Java* DI* BI Java* AS ABAP* BI* SAP NetWeaver 7.0 EHP1 EhP 2 EhP SAP ERP 6.0 EHP3 * used for the identical scenario
What Do SAP Enhancement Packages Mean for You? Example EhP1 for SAP NetWeaver 7.0 Why should you adopt enhancement packages for SAP NetWeaver? For content enhancements cover: AS ABAP and AS Java Usage types BI, BI Java; DI, PI, EP, EPC For ease of use of the installation: EhP development rules are based on support package rules full compatibility of SAP NetWeaver 7.0x systems EhP Installation is a new guided procedure Prerequisites are checked in detail before changes are applied Downtime during installation is minimized Sync of ABAP and Java stack of a system Note: With SAP enhancement packages patches in SPs and functional updates in EhPs are separated. EP EP* Visual Composer* PI* AS Java* DI* BI Java* AS ABAP* incl. CTS+* BI* SAP NetWeaver 7.0 EHP1 AS ABAP incl. CTS+ EhP installation Visual Composer PI AS Java DI BI Java BI SAP NetWeaver 7.0 With the enhancement package concept SAP makes innovations for well-tried system landscapes available the safe way.
Why Should You Adopt SAP Enhancement Packages? For Content SAP enhancement package 4 for SAP ERP updates Financials, Sales and Service, Corporate Services, HCM, Product Development and Manufacturing Procurement and Logistics Execution SAP enhancement package 1 for SAP NetWeaver 7.0 updates usage types AS ABAP/AS Java, BI/BI for Java EP/EPC DI PI For details see EhP 1 EP/EPC* Visual Composer* PI* AS Java* DI* BI Java* AS ABAP* incl. CTS+* BI* SAP NetWeaver 7.0 EHP1 Release Notes for enhancement package1 for SAP NetWeaver 7.0 Enhancement Packages for SAP ERP at SAP Service Marketplace. EhP 2 EhP SAP ERP 6.0 EHP4 SAP enhancement packages for SAP ERP 6.0 and SAP NetWeaver 7.0 bring essential innovation.
Enhancement Package Installation vs. Upgrade Installing SAP enhancement packages has no additional requirements: No additional hardware is needed Installing SAP enhancement packages does change your landscape setup SAP enhancement package rules are built upon SAP s Support Package rules No table conversions are needed No XPRAs are needed (only After Import Methods are executed) This means a very short downtime Compatibility is guaranteed: No changes with regards to components inbound interfaces No changes with regards to other systems (outbound interfaces) This means that system communication in your landscape will work like before Existing user Interfaces will not change* there will be no additional training costs Installing SAP enhancement packages is no t an upgrade. * Business Suite 2008 only
Why Should You Adopt SAP Enhancement Packages? For Ease of Use You install SAP enhancement packages Using the new SAP Enhancement Package Installer (SAPehpi) SAPehpi seamlessly integrates with SAP Solution Manager 7.0 Maintenance Optimizer In a process that is recommended to be used for Enhancement packages for SAP NetWeaver Enhancement packages for SAP ERP With minimized downtime In AS ABAP-based systems a shadow system is built and operated by SAPehpi In AS Java-based systems JSPM is controlled by SAPehpi 1 2 3 System Data 1 2 3 4 5 Download Stack 1 2 3 4 5 6 7 8 System Installation EhP Installation Planning EhP Installation SAP enhancement packages for SAP NetWeaver and SAP ERP are installed in a new optimized process seamlessly integrated with installation and maintenance of systems.
Agenda 1. Introduction 2. Enhancement Packages 3. Enhancement Framework 4. Switch Framework SAP 2007 / Page 13
Evolution of SAP Enhancement Technology User Exits Form routines Business Transaction Events Industries Application Customer Exits Function modules Business Add Ins Filters Classes Workbench Enhancement Framework Kernel based Business Add Ins Kernel
Enhancement Browser Search for Enhancements possibilities (Definitions typically provided by SAP) Enhancement Implementations (typically done by Customer) Integrated into Object Navigator (SE80)
Source Code Enhancements Overview Modification-free enhancement of source code Implicit Enhancement Option At common enhancement places, implicit Enhancement options are available. Examples: End of Executable Program, Include, Function group, Dialog module Begin/End of Form routine / Function module / Method End of a structure End of Private/Protected/Public Section of a local class... Explicit Enhancement Option Predefined enhancement options can be defined in source code. They are additionally stored inside Enhancement Spots.
Implicit Enhancement Options
Explicit Enhancement Options
Source Code Plugin Technology - Example PROGRAM p1. WRITE Hello World. ENHANCEMENT-POINT ep1 SPOTS s1....... ENHANCEMENT-SECTION ep2 SPOTS s1. WRITE Original. END-ENHANCEMENT-SECTION. ENHANCEMENT 1. WRITE Hello Paris. ENDENHANCEMENT. ENHANCEMENT 2. WRITE Hello London. ENDENHANCEMENT. ENHANCEMENT 3. WRITE Enhanced. ENDENHANCEMENT.
Editor Modes for Enhancements Use Change Mode for creating enhancement points & sections. Use button Display <-> Change to switch to change mode. Use Enhancement Mode for creating enhancement implementations. Use button Change Enhancements Use button Display <-> Change to switch to Enhancement mode to leave Enhancement mode
DEMO Source Code Plugin
Class/Interface Enhancements Class/Interface Enhancements allow for addition of: Optional parameters to existing methods Methods Events and event handlers References to interfaces Exits to existing methods Pre-Exit Called at the beginning of a method Post-Exit Called at the End of a method Overwrite-Exit Replaces the original method
Adding Methods & Parameters Adding new methods Adding optional parameters to existing methods
Pre/Post Exits Call method instance->hugo( ). Coding. Coding. Coding. Method Hugo. Endmethod. Method Pre.. Endmethod. Method Post... Endmethod.
BADIs - Overview What are BAdIs? Business Add-Ins Is an anticipated point of extension these points act like sockets and exist in the original coding Has a well-defined interface in contrast to source code plug-ins and is therefore more stable to changes in the original coding Kernel BAdIs - New Features Are integrated directly in the ABAP Language/Runtime Improved filter support allows non-character filter types (packed, numeric, string) and complex filter conditions Enable reusable implementation instances (Stateful BAdI) Control of the lifetime of implementations (BAdI-context) Allow for inheritance of implementations Can be switched by the Switch Framework
Comparison: Usage of Old BAdIs vs. New BAdIs With Classic BAdI DATA: bd TYPE REF TO if_intf. DATA: flt TYPE flt. CALL METHOD cl_exithandler=> get_instance EXPORTING exit_name = `BADI_NAME` CHANGING instance = bd. flt-lang = `D`. CALL METHOD bd->method EXPORTING x = 10 flt_val = flt. selecting implementations and issuing calls is mixed up calls cause DB access calls are redirected over a proxy class With New BAdI data bd type ref to badi_name. get badi bd filters lang = `D`. call badi bd->method exporting x = 10. selection occurs when the handle is requested no DB access during runtime Implementations are called directly (without a proxy) Active implementations are evaluated at compile time and included in the load of the BAdI-handle. Old BAdIs are more expensive than the new ones.
New BAdIs and Enhancement Framework Switch_1 Simple Enhancement Spot Spot_1 BAdI BADI_A BAdI BADI_B BAdI BADI_C BAdI Implementation 1 Simple Enhancement Implementation SEI1 BAdI Implementation 2 BAdI Implementation 3 BAdI Implementation 4 Simple Enhancement Implementation SEI2 BAdI Implementation 5 Package A Package B Switch_2
Creating BADI in SE80 BADI Implementation (Creating Filters) BADI Definition under Enhancement Spot
DEMO Kernel-BAdI
BAdI Migration (Automatic Migration) Automatic migration by selecting Utilities Migrate from BAdI Specify Builder Enhancement (SE18) Spot for BAdI Defintion Automatic migration by selecting utilities migration from BAdI Builder (se18) Specify Enhancement Implementation for BAdI Implementation Specify Enhancement Spot for BAdI Definition no special knowledge necessary Specify Enhancement Implementation for BAdI Implementation effort: 5 minutes per BAdI (with some implementations). The migration can be automated. no special knowledge necessary effort: approximately 5 minutes per BAdI. SE18 -> Utilities -> Migrate ONLY when you have created Custom-BADI definitions in old systems
Performance Comparison Classic BAdI Migrated BAdI New BAdI 1 2-27 x faster as classic BAdI 40-600 x faster as classic BAdI 200%-2600% 4000%-60000% The more implementations are defined, the higher is the performance improvement
Agenda 1. Introduction 2. Enhancement Packages 3. Enhancement Framework 4. Switch Framework SAP 2007 / Page 32
Switch Framework - Motivation Goal of the Switch Framework: Control visibility of repository objects at runtime through switches The Switch Framework can be used to Switch on industry solutions / Enterprise Add-ons Develop new functions without affecting existing ones Enhance delivered systems at partner and customer site in the context of the enhancement framework with own functions Benefits: Industry Solutions are available with every release and SP without delay (i.e. timely provision of legal requirements), CRT s* are no longer necessary for add-on systems Industry Solutions can be enriched by generic functions from other industries Synchronization of release cycles and planning * CRT Conflict Resolution Transport
Switchable Objects Switchable Objects by package assignment Appends, SI-, CI-includes for structures in DDIC Fixed value appends to domains Secondary Indexes Append Search Helps Enhancement Implementations Switch Business Configuration Sets ( Switch BC-Sets) by direct assignment Screen elements & Flow logic Menu entries & functions IMG nodes Customizing
DEMO Web Dynpro switch
Thank you! QUESTIONS? How to contact us: Thomas Jung Thomas.jung@sap.com Oliver Mayer Oliver.mayer@sap.com SAP 2007 / Page 36
Copyright 2007 SAP AG All rights reserved No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, Duet, Business ByDesign, ByDesign, PartnerEdge and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned and associated logos displayed are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. The information in this document is proprietary to SAP. This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence. The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Einige von der SAP AG und deren Vertriebspartnern vertriebene Softwareprodukte können Softwarekomponenten umfassen, die Eigentum anderer Softwarehersteller sind. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, Duet, Business ByDesign, ByDesign, PartnerEdge und andere in diesem Dokument erwähnte SAP-Produkte und Services sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und in mehreren anderen Ländern weltweit. Alle anderen in diesem Dokument erwähnten Namen von Produkten und Services sowie die damit verbundenen Firmenlogos sind Marken der jeweiligen Unternehmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen. Die in diesem Dokument enthaltenen Informationen sind Eigentum von SAP. Dieses Dokument ist eine Vorabversion und unterliegt nicht Ihrer Lizenzvereinbarung oder einer anderen Vereinbarung mit SAP. Dieses Dokument enthält nur vorgesehene Strategien, Entwicklungen und Funktionen des SAP -Produkts und ist für SAP nicht bindend, einen bestimmten Geschäftsweg, eine Produktstrategie bzw. -entwicklung einzuschlagen. SAP übernimmt keine Verantwortung für Fehler oder Auslassungen in diesen Materialien. SAP garantiert nicht die Richtigkeit oder Vollständigkeit der Informationen, Texte, Grafiken, Links oder anderer in diesen Materialien enthaltenen Elemente. Diese Publikation wird ohne jegliche Gewähr, weder ausdrücklich noch stillschweigend, bereitgestellt. Dies gilt u. a., aber nicht ausschließlich, hinsichtlich der Gewährleistung der Marktgängigkeit und der Eignung für einen bestimmten Zweck sowie für die Gewährleistung der Nichtverletzung geltenden Rechts. SAP übernimmt keine Haftung für Schäden jeglicher Art, einschließlich und ohne Einschränkung für direkte, spezielle, indirekte oder Folgeschäden im Zusammenhang mit der Verwendung dieser Unterlagen. Diese Einschränkung gilt nicht bei Vorsatz oder grober Fahrlässigkeit. Die gesetzliche Haftung bei Personenschäden oder die Produkthaftung bleibt unberührt. Die Informationen, auf die Sie möglicherweise über die in diesem Material enthaltenen Hotlinks zugreifen, unterliegen nicht dem Einfluss von SAP, und SAP unterstützt nicht die Nutzung von Internetseiten Dritter durch Sie und gibt keinerlei Gewährleistungen oder Zusagen über Internetseiten Dritter ab. Alle Rechte vorbehalten. SAP 2007 / Page 37