55
deeper Business Consulting Services © Copyright IBM Corporation 2003 Business Add-In’s November, 2003

14 Business Add-Ins (BAdIs)

Embed Size (px)

Citation preview

Page 1: 14 Business Add-Ins (BAdIs)

deeper

Business Consulting Services

© Copyright IBM Corporation 2003

Business Add-In’s

November, 2003

Page 2: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 2

Business Consulting Services

© Copyright IBM Corporation 2003

Lesson Objectives

After completing this lesson you will be able to :

Understand what Business Add In’s (BAdIs) are

Define BAdIs

Implement BAdIs

Use BAdIs

Create an implementation for an existing SAP BAdI

Create Multiple Use BAdIs

Create Filter Dependent BAdI

Create Menu Enhancement with BAdI

Page 3: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 3

Business Consulting Services

© Copyright IBM Corporation 2003

Introduction

Traditional way of doing code modifications – Exits

3 Tier Architecture

– PRESENTATION :

Field Exits

Screen Exits

Menu Exits

– APPLICATION:

Programs -> Program exits -> call customer function -> Include

– DATABASE

Table -> SE11 -> Goto -> Append Structure

With BAdIs you can make changes only at the Application Layer.

Page 4: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 4

Business Consulting Services

© Copyright IBM Corporation 2003

BAdIs

Business Add-Ins are a new SAP enhancement technique based on ABAP Objects

They can be inserted into the SAP system based on specific user requirements

Business Add-Ins should be considered generalized Business Transaction Events that can be used to bundle program, menu and screen enhancements into a single add-in.

Each Business Add-In has :

– at least one Business Add-In definition

– a Business Add-In interface

– a Business Add-In class that implements the interface

Page 5: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 5

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Enhancement options

In Business Add-Ins, all the components of an enhancement option are grouped together

– Program Enhancements: Functional enhancement of the program are defined in the form of interface methods and can be used with or without Menu Enhancements or Screen Enhancements

– Menu Enhancements: Function codes can be entered for a BAdI for the corresponding menu entries in the user interface definition.

– Screen Enhancements: Subscreen areas can be entered for a Business Add-In. Screen enhancements can be implemented for these in the form of subscreen screens.

Page 6: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 6

Business Consulting Services

© Copyright IBM Corporation 2003

BAdIs – SAP Delivered vs. Custom Developed

SAP has already created BAdI definitions (created with SE18) and placed references to these throughout the application code.

SAP developers create implementations (created with SE19) of these existing BAdI’s, entering custom code into the implemented methods

It is also possible for developers to create new BAdI definitions, and reference them in their own custom code. You would do this if you wanted to give future users of your application the ability to expand on functionality in a custom development. You would NOT define a new BAdI to place in SAP code!

Overview of steps to complete a BAdI.

– 1. Create BAdI definition with SE18

– 2. Code a reference to the BAdI in application code where functionality is to be expanded

– 3. Create an implementation of the BAdI that actually does something.

Page 7: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 7

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs

Enter BADI name

Click on CREATE

SE18

Page 8: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 8

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs – Attributes

Enter short text

BADI class is automatically created

Page 9: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 9

Business Consulting Services

© Copyright IBM Corporation 2003

BADI Definition - Save

Enter Package name

Page 10: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 10

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs

Package name populated

BAdI class created

Page 11: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 11

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs - Interface

BADI Interface is created automatically

To edit double clickon the interface

Page 12: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 12

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs – Interface methods

Method name

Method type

Page 13: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 13

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs – Interface methods - parameters

Import and Export parameters

Page 14: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 14

Business Consulting Services

© Copyright IBM Corporation 2003

Defining BAdIs – Exceptions

Exceptions

Page 15: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 15

Business Consulting Services

© Copyright IBM Corporation 2003

BADI Implementation

SE19

Enter Implementation name

Click on create

Enter the BAdI Definition name

Page 16: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 16

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Implementation

Double click onthe method to modify method code

Page 17: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 17

Business Consulting Services

© Copyright IBM Corporation 2003

Implementing BAdIs: Method implementation

Modify the method code within the

METHOD/ENDMETHOD statements and activate

Page 18: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 18

Business Consulting Services

© Copyright IBM Corporation 2003

Using a BAdI

Page 19: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 19

Business Consulting Services

© Copyright IBM Corporation 2003

Create an Implementation for an SAP provided BAdI

Find the corresponding BAdI for the SAP transaction

Create a custom Implementation for the BAdI

From the methods available in the BAdI and select the appropriate method

Enter custom code in the method and activate

Execute SAP transaction and test if method with custom code is being invoked

Page 20: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 20

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Transaction VD02

Select System->Statusfrom the drop down menu

Page 21: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 21

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Transaction VD02

Double click on the program name

Page 22: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 22

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Source program

Do a search onCL_EXITHANDLER=>GET_INSTANCE

Page 23: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 23

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Search results

Three BAdIs usedin this program. Double click required BAdI to see the source code

Page 24: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 24

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Call to a BAdI in the source code

BAdI being used

Interface referenceVariable for the BAdI

Page 25: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 25

Business Consulting Services

© Copyright IBM Corporation 2003

Finding a BAdI – Interface reference to the BAdI

Interface reference Variable defined

Page 26: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 26

Business Consulting Services

© Copyright IBM Corporation 2003

Using an SAP BAdI – Create a Custom Implementation

Enter the name of the BAdI

SE19

Enter theimplementation

name

Click on CREATE

Page 27: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 27

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Implementation – Attributes

Enter description

Page 28: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 28

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Implementation – Interface methods

Click on the interfacetab to view the available methods

Double click on method SAVE_DATA to modify it

Page 29: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 29

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Implementation – Class builder

Enter custom code

Page 30: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 30

Business Consulting Services

© Copyright IBM Corporation 2003

BAdIs – Execute the Change customer transaction

Change name of Customer

Click on SAVE button

VD02

Page 31: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 31

Business Consulting Services

© Copyright IBM Corporation 2003

BAdI Implementation – Invoked by VD02

Custom code for method invoked via BAdI

CUSTOMER_ADD_DATA

Page 32: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 32

Business Consulting Services

© Copyright IBM Corporation 2003

Multiple Use BAdIs

Single Use Business Add-Ins

– Do NOT select the Multiple use checkbox from the Administration tab when defining a Single Use BAdI

– BAdI has a single Implementation

– Similar to procedures

– Return values can be expected

– Can use importing, changing and returning parameters

– N/A

– A single implementation will be triggered by the application program

Multiple Use Business Add-Ins

– Select the Multiple use checkbox from the Administration tab when creating the BAdI definition

– BAdI has multiple implementations

– Similar to event calls

– Cannot expect return values

– Can use importing and changing parameters

– For multiple implementations there is no sequence control because at the time of BAdI definition it does not know which implementation will be active

– All active implementations will be triggered by the application program using the BAdI

Page 33: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 33

Business Consulting Services

© Copyright IBM Corporation 2003

Multi Use BAdIs – CUSTOMER_ADD_DATA Definition

Multiple use Button checked

SAP defined BAdI –CUSTOMER_ADD_DATA

Page 34: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 34

Business Consulting Services

© Copyright IBM Corporation 2003

Multi Use BAdIs – Custom Implementation for BAdI – CUSTOMER_ADD_DATA

Create a second implementationfor BAdI CUSTOMER_ADD_DATA

Specify BAdI name

Click on CREATE

Page 35: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 35

Business Consulting Services

© Copyright IBM Corporation 2003

Multi Use BAdIs – Interface method SAVE_DATA

Double click on method SAVE_DATA

Page 36: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 36

Business Consulting Services

© Copyright IBM Corporation 2003

Multi Use BAdIs – Modify method SAVE_DATA

Enter custom code for method SAVE_DATA

Page 37: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 37

Business Consulting Services

© Copyright IBM Corporation 2003

Multi Use BAdIs – View implementations for BAdI

SE18

Displays list ofImplementations

Select to display list of Implementations for BAdICUSTOMER_ADD_DATA

Page 38: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 38

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs

Business Add-Ins can be implemented based on a specific filter value

If you want to call the implementation of a Business Add-In depending not only on one filter value but on various values, you can enter the name of a structure into the Filter type field. The structure can consist of several data elements that fulfill the above conditions for data elements

Page 39: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 39

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – BAdI Definition

SE18

Click checkbox for Filter Dependent BAdIs

Enter Filter type

Page 40: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 40

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – BAdI Definition

Double click onthe Interface to add parametersand methods

Enter text

Page 41: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 41

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – Interface - Method Definition

Page 42: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 42

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – Interface – Parameter Definition

FLT_VAL parameterpreset for method

Create parameter toexport tax rate

Page 43: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 43

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – Implementation

Create BAdI Implementation

Enter name of BAdI

Select CREATE button

Page 44: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 44

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – BAdI Implementation

SE19

Select a value fromthe search help orenter a valid value

Click on button tocreate an entry for filter value

Page 45: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 45

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – BAdI Implementation

Double click onthe Method to enter source code

Select the Interface tab

Page 46: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 46

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – Method code

Enter code for the Method to calculate the tax rate based onthe company code inParameter FLT_VAL

Save and activate

Page 47: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 47

Business Consulting Services

© Copyright IBM Corporation 2003

Filter Dependent BAdIs – Source code to Invoke BAdI

Call BADI from within the program

Selection screen parameter for Company code

Call method get_bukrs passingthe company codeThe Tax rate isreturned

Page 48: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 48

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Creating a menu enhancement

Fcodes tab is only available whenmultiple use box isnot checked

SE18 – Create BADI definition

Menu enhancements are for Single Use BAdI’s only

Page 49: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 49

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Definition via SE18 – FCode Tab

Enter related program and function code information. Double clicking on the new line will take you to dialog for defining an icon and function texts

Page 50: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 50

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Function Code Attributes

Function texts screen shows all codes for associated program

Function attributes popup allows definition of code type and static texts

Page 51: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 51

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Define the Interface (SE18)

Add method to interface that will be implemented by the menu exit

Page 52: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 52

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Implement BAdI in SE19

Double click on method to add in custom code for the implementation

Don’t forget to activate during all steps in this process!

Page 53: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 53

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Enter Fcode in GUI status

Don’t forget to activate during all steps in this process!

Page 54: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 54

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Call the BADI in Application

Don’t forget to create a reference to the BADI instance in GLOBAL memory of the application as follows:

DATA o_exit TYPE REF TO zif_ex__menu_exit_badi_1. "BADI interface

Page 55: 14 Business Add-Ins (BAdIs)

ABAP | Confidential | 15_BAdl v1 .ppt | 04/11/23 55

Business Consulting Services

© Copyright IBM Corporation 2003

Menu Enhancement BAdIs – Call the BADI in Application!