43
SAP Set Types Introduction – Set Types and Attributes Set Types and Attributes : Set Types are the group of different attributes which are assigned to Product/Material and are available on Product Page in CRM System. These Set Types are stored in system as a table which contains records. Set Types and Attributes are used together with Product Hierarchy and Categories created. A correct combination of set types with its hierarchy & category allows it to get displayed on Product page ‘COMMPR01’. Product Hierarchy : Product Hierarchy is mainly used to structure all the Product related data, this Hierarchy depends on individual Organization requirement and process. This Product Hierarchy consists of Product Category which is useful for categorization of Product. Categories are assigned to Hierarchy and one Hierarchy can contain multiple categories at different level e.g. Parent and Sub category. These Sub Categories can contain multiple Set Types with different attributes assigned to them. For above relationships refer Figure 0: Figure 0 – Set Type Relationship

SAP Set Types in Crm

Embed Size (px)

DESCRIPTION

SAP Set Types in Crm

Citation preview

Page 1: SAP Set Types in Crm

SAP Set Types

Introduction – Set Types and AttributesSet Types and Attributes: Set Types are the group of different attributes which are assigned to

Product/Material and are available on Product Page in CRM System. These Set Types are stored in

system as a table which contains records.

Set Types and Attributes are used together with Product Hierarchy and Categories created.

A correct combination of set types with its hierarchy & category allows it to get displayed on

Product page ‘COMMPR01’.

Product Hierarchy: Product Hierarchy is mainly used to structure all the Product related data, this

Hierarchy depends on individual Organization requirement and process.

This Product Hierarchy consists of Product Category which is useful for categorization of Product.

Categories are assigned to Hierarchy and one Hierarchy can contain multiple categories at

different level e.g. Parent and Sub category.

These Sub Categories can contain multiple Set Types with different attributes assigned to them.

For above relationships refer Figure 0:

Figure 0 – Set Type Relationship

“COMM_ATTRSET” is the Transaction Code for creating Attribute and Set Type in SAP CRM

system.

Page 2: SAP Set Types in Crm

Set Types can be created only for Material/Product objects in CRM system and not for any other

Objects. Set Types are customized attributes of Object Material/Product in addition to the standard

attributes.

Following Figure 1 shows Set Type name “ZWATCH_SET_TYP” and Attribute name as

“ZWATCH_MODELS”.

Step 1: Create AttributeLaunch the T-Code “COMM_ATTRSET” to Create Attribute.

Figure 1 – Creating Attribute

Attributes basically contains of two tabs, one for Definition and other for Value Range. Definition

defines the characteristics of the attribute and Value Range provides option for fixed range values.

Definition and Value Range are shown in Figure 2 and 3 respectively.

Figure 2 – Defining Characteristics

Page 3: SAP Set Types in Crm

Refer to Attribute “ZWATCH_MODELS” in Figure 3 for value range.

Figure 3 – Assigning Values

Step 2: Create Set TypeThe Set types can be created as shown in Figure 4, the assignment of attributes to the created set

type is discussed further. Refer Figure 4 for creation of Set Type.

Figure 4 – Creating Set Type

Page 4: SAP Set Types in Crm

The Set Type creation requires defining the set type and assigning attributes to it. The definition

part contains option for ‘Product type selection’ and other details related to characteristics,

refer Figure 5.

Figure 5 – Defining Set Type Characteristics

Definition of single or multiple values can be done with check “Multiple Values Possible” option.

With the above option checked each record of a set type is assigned indirectly to a product using

an assignment table.

Page 5: SAP Set Types in Crm

Figure 6 – Defining Set Type Characteristics

Figure 7 – Multiple value attribute

Now created Attribute needs to be assigned to Set Type, refer Figure 8.

Page 6: SAP Set Types in Crm

Figure 8 – Assigning Attribute

The steps so far showed the process to create attribute and then create a set type with reference

to the attribute. The next part of the document discusses about hierarchy and how set type can be

attached to screens so that users can access it.

Step 3: Create HierarchyIn its basic form hierarchy is used to maintain the products or the object within certain criteria for

differentiation. This configuration depends on individual organizations process flow.

Hierarchy can have multiple levels depending upon the information flow for any product or Object.

“COMM_HIERARCHY” is Transaction code to create Hierarchy, refer Figure 9.

Figure 9 – Creating Hierarchy

Page 7: SAP Set Types in Crm

When New Hierarchy button is clicked, Hierarchy ID and its descriptions are entered, refer Figure

10.

Figure 10 – Defining Hierarchy ID

When Hierarchy is created (by pressing OK button), the following screen insists for category

creation. Categories, similar to hierarchy groups products and individual objects based on different

criteria.

These Categories are arranged in Hierarchy, and Set Types are arranged in Categories.

These Categories can also have multiple level for Example one Root Category is mandatory and

inside that Root Category there are multiple child categories.

The information shown in below Figure 11, Figure 12 and Figure 13 contains a hierarchical

structure,

The reason why this has been created is to allow for flexibility in defining products.

Step 4: Create New Category

Page 9: SAP Set Types in Crm

Figure 12 – Setting Product Type for Category

Creating Child Category “ZW02” under Root Category “WAT_R_CAT”, refer Figure 13

Step 5: Create New Sub Category

Page 10: SAP Set Types in Crm

Figure 13 – Creating Sub Category

When creating sub-category we need to set the Product Type as Material, refer Figure 14

Page 11: SAP Set Types in Crm

Figure 14 – Created Sub Category

Now we have got one hierarchy “ZWATCH_HY” within which we have got one Root Category

“WAT_R_CAT” and again within this Category we have got another sub-category with name

“ZW02”.

· ZWATCH_HY : HIERARCHY NAME

· WAT_R_CAT : ROOT CATEGORY NAME

· ZW02 : SUB-CATEGORY NAME

Step 6: Assign Set Types to CategoryTo assign Set Type to a particular Category refer Figure 15.

Page 12: SAP Set Types in Crm

Figure 15 – Adding & Assigning Set Type to Sub-Category

After assigning Set Types to a Category, refer Figure 16, Along with this we need to set two

attributes Position and View-ID of that Set Type.

Both of these parameters are used to configure the availability of this Set Type in Product Master.

In Our Example we have set Position = 0 and View ID = Basic (Figure 16 and Figure 17), so

according to this configuration, newly added Set Type will get displayed at Position 0 in General

Tab, refer Figure 18.

Page 14: SAP Set Types in Crm

In Figure 17 we have assigned our created Set Type to Category “ZW02”. Now we are all set to

use this Set Type in our Product/Material screen.

To use this Set Type in Product/Material Screen we need to move to another Transaction Code

“COMMPR01” to open Product/Material Details, refer Figure 19.

Figure 19 – Adding Sub Category to Product Page

Here we need to add our Set Type (T-Code “COMMPR01”). Click on SAP Basic Data Tab and then

click on Edit button so that changes to the screen data are made.

Now when the Screen is open to edit, enter the Category in SAP Basic Data tab and press Enter,

rest of the information about that Category will automatically be populated, refer Figure 19. This

information will contain the Hierarchy ID and Category Description.

When once all information is entered, the document can be saved. Now, when transaction

code “COMMPR01” is executed the Set Types can be seen under general tab, refer Figure 20.

Figure 20 – Displayed Set Type on Product Page

Page 15: SAP Set Types in Crm

Above Figure 20 shows the value range that we have defined while creating Set Type, this value

range will be available as F4 Help along with Set Type. For table and field details refer Figure 21.

Figure 21 – Set Type Table and Field name

All information that will be saved through this Set Type will be stored in table “ZWATCH_SET_TYP”

this table name is same as that of Set Type name, having one field “ZZ0010” which will actually

store this value shown, refer Figure 22

Figure 22 – Set Type Table with Saved Information

While creating a Set Type one table gets generated automatically (“ZWATCH_SET_TYP”) which

stores the Set Types value, refer Figure 23

Page 16: SAP Set Types in Crm

Figure 23 – Set Type Table Structure (Fields)

Step 1: Code DemoThe steps/processes so far discussed (creation of Attributes, Set Types, Hierarchy, Category and

finally Sub Category) were from functional aspect.

After that we have to assign this Category to Products using T-Code “COMMPR01” (Product

master workbench).

The following section provides technical information on how to update set types trough

ABAP.

Example

Function Module “Z_UPDATE_EXT_AB” which explains how to update information in Set Type

programmatically.

Figure 24 shows the Set Type under Transaction “COMMPR01” (Product master workbench).

Figure 24 – Code Example Set Type

Page 17: SAP Set Types in Crm

Figure 24 – Code Example Set Type Table & Fields

Above Figure 24 shows Set Type “ZKEYWORD_EX_AB” which is used to demonstrate the ABAP

code example.

Report Program to update value of Set TypeFUNCTION Z_UPDATE_EXT_AB.

*"----------------------------------------------------------------------

*"*"Local Interface:

*" IMPORTING

*" REFERENCE(L_PRODUCT_ID) TYPE COMT_PRODUCT_GUID

*" REFERENCE(L_PROD_DESC) TYPE CHAR_50

*"----------------------------------------------------------------------

CONSTANTS:

abap_true TYPE sap_bool VALUE 'X',

lc_ptype TYPE char2 VALUE '01'.

DATA: lt_bapireturn TYPE bapiret2_tab, "For Error Messages

ls_bapireturn TYPE bapiret2, "For Error Messages

ls_product TYPE comt_product, " Product Information

lv_logsys TYPE comt_logsys. "Logical system Name

DATA: lt_product TYPE comt_product_maintain_api_extt,

ls_prod_chg TYPE comt_product_maintain_api_ext,

lt_set TYPE comt_product_maintain_api_sett,

ls_set TYPE comt_product_maintain_api_set,

lt_key TYPE REF TO zkeyword_maintain_abt,

ls_key TYPE zkeyword_maintain_ab.

ls_product-product_type = lc_ptype. "Passing Product Type

ls_product-product_guid = l_product_id. "Passing Product GUID

ls_prod_chg-header-com_product = ls_product.

ls_set-settype_id = 'ZKEYWORD_EX_AB'. "This is SetType Name

ls_key-data-logsys = 'BC1CLNT100'. "This is Logical system

CREATE DATA lt_key.

ls_key-data_x-zz0010 = abap_true. "Need to pass abap_true

ls_key-data-zz0010 = l_prod_desc.

APPEND ls_key TO lt_key->;*.

ls_set-data = lt_key.

APPEND ls_set TO ls_prod_chg-data.

CLEAR ls_set.

APPEND ls_prod_chg TO lt_product.

CALL FUNCTION 'COM_PRODUCT_MAINTAIN_MULT_API'

IMPORTING

et_bapireturn = lt_bapireturn

CHANGING

ct_product = lt_product

Page 18: SAP Set Types in Crm

.

IF sy-subrc <;> 0.

ENDIF.

CALL FUNCTION 'COM_PRODUCT_SAVE_API'

EXCEPTIONS

OTHERS = 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = ls_bapireturn.

ENDFUNCTION.

 

Join:

www.imhere4.comRate this:

     

 

2 Votes

SAP, Enhancement Framework, ABAP, CRM SAP, Set Types

Enhancement Framework –   BADI 7 CommentsPosted by Abhishek on July 5, 2013

The new Enhancement Framework and Kernel BADI

The BADI is an object-oriented enhancement option. The BADI defines an interface that can be

implemented by BADI-implementations that are transport objects of their own. The new BADI is

fully integrated into the Enhancement Framework.

BAdis are like predefined Enhancement options available in SAP which can then be Implemented by

the Industries as per there needs.

BAdis: Business Add Ins are Enhancements to the standard SAP code. These BAdi Enhancement

can be done with the Interfaces which contains various methods (standard or customized). This

Interface name is generated automatically and can be changed as required.

Page 19: SAP Set Types in Crm

After defining the Interfaces developer assign some methods as required to these interfaces. These

methods can have only Importing and Changing parameters Exporting Parameters are not

allowed. Finally BAdi is Activated and ready to be used in program.

For creating BAdi first we need to create Enhancement Spot. New BAdi can only be created inside

SPOT.

Below figure shows how to create Enhancement SPOT (TCode-SE18)

 

New Enhancement SPOT is created.

Page 20: SAP Set Types in Crm

Now we are creating new BAdi inside this created Enhancement SPOT

Click on Create BADI button.

Provide BAdi name and short description.

BAdi requires one Interface which will contains all methods.

Creating new Interface, just doule click on Interface link under the BAdi definition section.

Page 22: SAP Set Types in Crm

As soon as you will save Interface, it will open new screen to define methods inside this Interface.

All these methods can then be called using BAdi.

Page 23: SAP Set Types in Crm

Create two different methods namely Addition and Subtraction and provide the parameter list for

these methods created inside Interfaces.

The parameters inside these Interface methods can only be Importing and Changing.

Exporting parameters are not allowed in Interface methods.

Page 24: SAP Set Types in Crm

Two created methods are displayed inside Interfaces.

Two steps are already completed

1. Created new BAdi

2. Created Interface and added two methods as required.

 

Now need to create Enhancement Implementation so that methods created inside Interfaces can

be called.

Page 25: SAP Set Types in Crm

Enhancement Implementation required Class name.

Class name is required here because using this class only we will be able to use ethods.

Page 26: SAP Set Types in Crm

A new BADI implementation will be created with name “Z_BADI_IMPL”.

Double click on Implementing Class then following screen with two Interface methods will get

displayed.

Page 27: SAP Set Types in Crm

Double click on any Interface method. Currently these methods are all blank and need to

Implement to have custom logic inside these methods.

Page 29: SAP Set Types in Crm

ABAP statements GET BADI, CALL BADI are used to Access Badi Objects.

Filters:

Filters are mainly used as a condition to switch over different implementations methods.

For example there is one BAdi having Implementation for converting any amount to UD.

Now there is one more new requirement to have currency conversion to IN.

In this case we need to have different Implementation in BAdi which will be switched

based on the input provided by the user. This calling of Implementation is all dynamic

and can only be determined by BAdi at runtime.

Now creating filters in BADI

Page 31: SAP Set Types in Crm

Click on Activate.

Now Double click on Enhancement Implementation to open it.

Page 32: SAP Set Types in Crm

Double Click on Filter and then click on EDIT button.

After this to add different Filter condition click on Combination button.

Now time to add filter condition in created Filters.

Page 33: SAP Set Types in Crm

When click on Combination button following screen will be displayed.

Here double click on “????” to add new filter conditions.

Page 34: SAP Set Types in Crm

Need to place value for these filters which will be used by BAdi to decide at runtime which method

to call.

In our example we are making calculation based on Country so I have taken IN (India) and another

filter will be US.

Two filters are created.

Activate the BADI.

Page 35: SAP Set Types in Crm

Now to play with Filters we need to create another Implementation which will get called based on

Country selected by User.

Need to create another Implementation which will calculate the result based on US country.

Every Implementation needs a class, if we provide same class name then this Implementation will

inherit the methods of first Implementation which will be useless.

Page 36: SAP Set Types in Crm

Now we have two Enhancement Implementations, having different method implementations one

for US and another for IN.

Double click on Enhancement

Page 37: SAP Set Types in Crm

Now create new filter for this Implementation

For US we have added 100 more to both parameters.

Page 38: SAP Set Types in Crm

Now filters are all ready to be used in Report program.

In above screen shot highlighted section shows how to use filters in program.

Source Code:

Page 39: SAP Set Types in Crm

REPORT z_badi_calc_ab.

PARAMETERS : pctry TYPE land1,

paramet1 TYPE i,

paramet2 TYPE i.

DATA : resultadd TYPE i,

resultsub TYPE i,

objbadi TYPE REF TO z_badi_calc_ab. "Creating object to call BADI's implemented methods

GET BADI objbadi

FILTERS

z_country_filter = pctry. "Passing Filter values.

CALL BADI objbadi->;;addition

EXPORTING

param1 = paramet1

param2 = paramet2

CHANGING

RESULT = resultadd.

WRITE: / 'Add Result: ', resultadd.

CALL BADI objbadi->;;substraction

EXPORTING

param1 = paramet1

param2 = paramet2

CHANGING

RESULT = resultsub.

WRITE: / 'Substraction Result: ', resultsub.

 

This is how we can implement BAdis.

Rate this:

  

Page 40: SAP Set Types in Crm

   

 

Rate This

SAP, Enhancement Framework, ABAP, CRM BADI, Enhancement Framework, SAP

SAP Enhancement FrameworkLeave a commentPosted by Abhishek on July 1, 2013

 

This New Enhancement frame work provides all new enhancement technologies such as new

business add-ins ( BAdIs ) and source code plug-ins.

Kernel BADIs

New BADIs are also Known as Kernel BADIs , These BADIs are object-oriented enhancement options

(or plug-ins). These BAdIs are based on interfaces that may be implemented by classes that may

then be transported.

You can see Kernel BADIs from the transaction code Se18:

(Note :Technically badis are link with the Enhancement Spot)

 Source code plug-ins

In Source code plug-ins we have many options like Explicit Enhancement and Implicit Enhancement

Developers (both SAP and non-SAP) may provide special hooks or portions in their code where

Page 41: SAP Set Types in Crm

enhancements may be applied. These are known as explicit enhancement options, and are mostly

created by SAP at specific points of standard programs.

Explicit Enhancement:

In simple word explicit enhancement is provided by SAP, It is predefined location or plugs where

you can put your code and enhance the standard. To see the explicit enhancement options in the

object it requires to click on the spiral button (shown in yellow color and blue border in below

image) which is given in the top tool bar.

 

Supported Enhancement Technologies

The Enhancement Framework supports a number of different enhancement technologies,

including:

• Class Enhancements. Class enhancement lets you add new methods to a class. Moreover, you

may also

add optional parameters to existing methods.

• Function Group Enhancements. You may add new parameters to a function module via

function group

enhancements.

• Source Code Enhancements. These may be enhancement points in the source code where

source

code plug-ins may be attached. These plug-ins contain the code that enhances the given program,

and

Page 42: SAP Set Types in Crm

are treated as an addition to the original code of the program in question. On the other hand, the

code

with the enhancement section may be substituted with the source code plug-in code used.

This plug-ins in the source code is called as Enhancement SPOTS.

SPOTS can be categorized in :

1. Enhancement POINTS

2. Enhancement SECTION

In simple words When you want to add your extra logic over the existing one use POINTS while

when you want to replace the existing one use SECTION. When a SPOT is static it is used for data

declaration while Dynamic SPOTS are used for coding.

Enhancement POINTS and SECTION are looks like as mentioned Below:

ENHANCEMENT-POINT <name> SPOTS <spot1> [<spot2>] [STATIC] …

ENHANCEMENT-SECTION <name> SPOTS <spot1> [<spot2>] [STATIC] … END-

ENHANCEMENT-SECTION.

Implicit Enhancement:

In last if nothing works , like you don’t have any Explicit enhancement or you don’t have any

BADIs, Do implicit enhancement .

This is easiest enhancement you can ever find.

Implicit enhancement options are provided internally in the beginning and end of every

subroutine , Function module and methods. Where you can put your own code. Check the article

Switch Frame Work:

Each Enhancement package contains a set of business functions. Each “business function” are

optionally implemented and activated. Switch frame work is something using which you can

deactivate certain Business functionality depending on the client requirement. You can also assign

switch to your implemented enhancements so if required you can de activate all of them in single

go.

Code Example of Explicit and Implicit Enhancement :

Page 43: SAP Set Types in Crm

CMOD and SMOD:

CMOD and SMOD is another Enhancement technique.

CMOD is the Project Management of SAP Enhancements

(i.e., SMOD Enhancements). SMOD contains the actual enhancements and CMOD is the grouping

of those SMOD enhancements. 

Enhancements are exits developed by SAP. The exit is implemented as a call to a function module.

The code for the function module is written by the developer. You are not writing the code directly

in the function module, but in the include that is implemented in the function module.