Classes and Characteristics
Classes and Characteristics
Transactions in characteristics/classes:
Activities in the Classification System
Transaction Activity
Classification
Master Data
Assignment
Specification System
Reporting Functions
CT10 Characteristics list
Introduction
Hi folks,this is the start of a several-part series in which I want to give an in-depth explanation of the
classification functionality in SAP ERP®. Starting with this post, where I give an overview of the topic and
mention important terms, I will go through the data model and demonstrate how to read data from
classification and how to set up authorization. I will also explain the user exits that can be used in
classification.
Here, I’d like to give you a general overview about what the SAP ERP® classification can do. In plant
maintenance, we often have a situation where we manage many different objects of the same kind, which
have the same specific properties and require to be handled the same way. Let’s say we want to maintain
our company fleet as PM equipments, which is not uncommon to do. Cars have very specific properties,
such as color, number of doors, fuel type, et cetera. With classification, there is an easy way to maintain
this in the equipment master data transactions (and much more, as we’ll see) without doing any
development or customizing. Instead, we follow these steps to set up classification for our object.
Maintaining characteristics – transaction CT04
Characteristics Maintenance
To add custom data to objects, the first thing we need to do is create Characteristics for it. A characteristic
describes a specific property of an object. For a car, you might want to create a characteristic called
“COLOR” to maintain the color of your cars.
Basic Data
When creating a characteristic, you can choose between different data types. The system offers you data
types for character fields, currency, dates, numbers, or time. Depending on what data type you pick, you
can further refine options for the characteristic field. In this case, the character field we choose lets us
enter the maximum number of characters as well as an indicator for case sensivity.
Allowed Values
This way of value control allows to create suggestion values for characteristics that the user can pick from
during object classification. By unchecking the Additional Values box it’s also possible to restrict the
possible values to only the ones listed in this tab.
Check Table
A table which contains the allowed values can be named here. It must have exactly one field and its data
type must correspond exactly to the characteristic’s data type.
Function Module
A function module can be entered here that allows the implementation of custom logic to check the
characteristic value. This is by far the most sophisticated (and work-intensive) way to check the values for
a characteristic in SAP ERP®. More information on how to do this can be found in the F1 help for the
function module name field or here: Function Module Interface.
(http://help.sap.com/erp2005_ehp_05/helpdata/en/ec/62a9c8416a11d1896d0000e8322d00/content.htm)
Catalog Characteristic
Via the Catalog Characteristic strategy, the characteristic can be linked to a Selected Set. A Selected Set
can be created using transaction QS51. It can contain codes from multiple catalogs, which then restrict
the possible values of the characteristic if the set is linked. However, it only works for catalogs 1
(Characteristic Values) and 3 (Usage Decisions, this is needed in the QM calibration process).
Allowed Values
In our case, we use the Allowed Values strategy to create suggestions for the colors our cars usually
have, but leave the user free to enter more. Also, we set Black as the default by checking the respective
box. Note how if we use this method of value assignment, the values are created as key/value pairs. This
will have an impact on how the data can be read later on.
Additional Data
In the Additonal Data tab, you get even more control over the way the characteristic behaves during
classification. You can link the characteristic to a table field, creating what is called a Reference
Characteristic. If you do that, the properties (such as name, data type and possible values) are entirely
deducted from the data element of the field you linked to; any previous entries are overwritten. You can
also link to multiple table fields, extending the value possibilities to all the tables entered. However, the
referenced fields must have exactly the same data type.
In addition to that, links to documents can be added here. This can be displayed by the user during
classification for additional information - in our case, we can add a color chart. Furthermore, you have
some control over how (or if) data is entered. You can set the characteristic to “display-only” or hide it
entirely. Obviously, this only makes sense if the characteristic value is inferred from another characteristic,
something that I will probably cover in a later article.
Additional Data for Characteristics
Restrictions
If you create a characteristic, it can be used in all classes, as we will see in the next chapter. It is,
however, possible to restrict the classes that the characteristic can be used in. This is done on the
Restrictions tab.
Basic Data
The basic data of a class includes a description, a status (only classes with status Released can be used
in objects), a group for quicker class search, the possibility to check for identical classification values, and
organizational area, as well as some authorization data (which we will use in a later part of this series). All
we really need to enter here is a short description.
Class Basic Data
Keywords
It is possible to enter keywords for a class that can be used when searching for classes – this is done
here.
Characteristics
The Characteristics tab is where we get to the core of classification. To add characteristics to a class, they
must be entered in the list displayed here. They will be available later during classification of an object.
You can also insert some additional control data here.
Adding Characteristics
The overwrite functionality should be mentioned here as well. By pressing the Overwrite Characteristics
button at the bottom of the list, you will be taken to the characteristic maintenance screen. However, the
changes you make here will only apply to the characteristic if it is used in the context of the particular class
you’re editing. It will remain unchanged on other classes where it is used. The same also works for the
characteristic values – with the Overwrite Values function, you can modify the existing characteristics
without influencing the usage of the characteristic in other classes.
You should note, however, that this creates additional complexity and maintenance effort – in some cases,
it might be better to create new characteristics. If, for example, the original characteristic values get
updated, the changes will not be taken over automatically to the overwritten characteristic. Instead, you
will need to access the characteristic from the class via the Overwrite Values button and then use the
function Extras → Overwrite → Update Values to take over updated data from the master characteristic.
After having entered the object, we can select the class(es) which we want to assign. By setting the
Standard Class indicator, we can tell the system to display the characteristics of this class by default if the
object is assigned to more than one class. We also have the possibility of setting a classification status
that restricts if and how the object is found in classification search. With this it’s possible to mark a
classification as incomplete, retrieve additional needed data and come back later to finish it.
When that is done, the characteristics that we assigned to the class are listed below the class selection
area. They can be assigned values there, depending on which methods of entry and value check
strategies we chose. Since we’ve suggested allowed values for our COLOR characteristic, these are
supplied in a pop-up window here. When you click the Document (original) button at the top, the document
that was linked to the characteristic is displayed to support the user when making his choice.
Maintaining Characteristic Values
And of course there is – transaction CLMM allows us to perform a mass valuation of objects or copy the
valuation of one object to many others. That makes classification of multiple objects quite convenient.
Finding objects via classification
When working with classified objects, of course it is important to be able to find them according to their
characteristic values. SAP ERP® offers two transactions to deal with this. These are CL30N – Find
Objects in Classes and CL31 - Find Objects in Class Type.
Transaction CL30N will let you search for objects in a specific class. You can enter the class type and
class and will be able to set filter criteria for each characteristic in that class. This transaction is also the
only one where overwritten values are searchable, because the characteristics will be loaded in the
context of one specific class.
On the opposite, transaction CL31 lets you search for objects in a class type. Here, you have the
advantage of being able to enter characteristics from multiple different classes – very useful if you’re
using multiple classes for objects. However, characteristics are not loaded in the context of a class, so
overwritten values will not be available as search criteria.
More interesting topics
Where-Used List and Object List
There are some more interesting transactions in the classification environment that can help you find what
you look for. One of those is the transaction CT12 – Where-Used List of Characteristics. It is a flexible
way of finding various elements where characteristics are used, such as classes and classified objects. It
is thus another means to find classified objects in SAP ERP®, this time using the prettier ALV tree
structure.
Another nice transaction to know is CL6BN – Object List. It gives you another convenient way to get a
quick overview about classified objects of a certain type and their valuation.
This concludes the first part of my series on classification. It was a general introduction to the classification
functionality in SAP ERP®, giving an overview about the most frequently used features. In the next part, I
will address the developer community when I discuss the data model of classification and show you how
the classification system is reflected in the actual database tables.
Read on…
After I introduced you to the classification system in SAP ERP® in the first part of this series, I’d like to go
into more technical detail and explain the data model that is behind the classification. Why is this relevant?
While it’s true that there are function modules to read and write classification data, sometimes (and by
sometimes, I mean most of the times) it’s faster to read classification data directly – if you know how. This
will be demonstrated in the next part of the series. First, however, I will introduce the tables that are
involved. I also prepared a handy cheat sheet which you can use to get a quick overview about the
relevant classification tables.
These are the relevant tables for classification in SAP ERP®.
Note that this cheat sheet does not include all table fields. The key fields are complete, but non-key fields
are only listed if necessary for the following explanation.
Table IFLOT, which contains functional locations, is listed in TCLT as classifiable. In table TCLO, the field
KEYF1 contains the entry TPLNR. Other fields are not filled. That means that the object key for functional
locations throughout the classification system will be the field IFLOT-TPLNR (which, by coincidence, is the
primary key for the functional location table). For keys that consist of more than one field, the field values
are concatenated. This means that for example plant-independent batches, which have the table MCH1
and the key fields MATNR and CHARG, will have the concatenated value of MCH1-MATNR and MCH1-
CHARG as their classification key.
A quick example is in order here. Let’s remember the example from the first part – we assigned the
characteristic COLOR to the class CAR. This is what it looks like in KSML:
The class CAR has the internal class number 0000000481 in CLINT. Since it’s in first position, POSNR is
001. The internal ID of the characteristic COLOR is saved in field IMERK.
If the class type you’re using does not allow classification of multiple objects, the external object key can
be used to read data directly from the data tables. In this case, table INOB is completely irrelevant and will
hold no entries for the class type.
Normally, after classification of multiple objects has been activated, it cannot be revoked again if objects
have been classified. Consequently, it can’t be activated afterwards as well. There are, however, two
reports mentioned by SAP to reorganize this data: RCCLUKA2 and RMCLINOB. For more information on
this, read the F1 help in SPRO -> Cross-Application Components -> Classification System ->
Classes -> Maintain Object Types and Class Types -> Details of your Class Type -> Field Multple
objs allowed.
In a nutshell:
If TCLA-MULTOBJ is set for your class type, read the internal object key in field INOB-CUOBJ to
access classification data. Use the external classification key (which is determined by the settings
in table TCLO) as selection criterion on field INOB-OBJEK.
If TCLA-MULTOBJ is initial for your class type, use the external object key to access classification
data directly.
OBJEK is the classification key of the object you’re looking for. It’s either the external one as
defined in TCLO or the internal one from INOB.
MAFID is called Indicator: Object/Class. This field contains an “O” if we’re classifying anything but
a class, in which case it contains a “K”.
KLART is the class type we’re reading from.
CLINT is the internal ID of the class which comes from table KLAH.
ADZHL, once again, is used only when Engineering Change Management is active.
Stay tuned!
Hi all,
After creating a KMAT material, configurable, i create a variant class 300, with characteristics.
When I create a PO with specific values for the characteristics,
I'm able to get the characteristics and values for that configurable material on the PO ME23N
but in what table these values are stored ???
that's to say i need a table with both PO number, and values of the characteristics on the item.