|
Blogs
The classification system (CA-CL) is a powerful tool inside SAP PLM. It allows adding business specific attributes to objects and grouping and structuring them. Main purpose is to enable users to find more easily their content later. However searching for classification can be quite slow when the content grows. One application that heavily uses classification is the document management system (CA-DMS). I know customers that have more than a million documents and don’t want to spend too much time waiting for a search result. This blog is about a feature of the classification system that allows you to speed up your search by up to 90%, and we are talking about minutes in some cases! ![]() Why is searching for classification slow? Simplified the classification is nothing more than a name and value pair stored in one table that has a lot of rows. State of the art data bases are still optimized to find content in columns and not in rows. So the main concept of accelerating classification search is to store the content in additional tables in column form and put an index over it; that is why it is called Generated index tables. This feature is already available since R/3 4.6 (1999). By the way, the SAP’s BI Accelerator is based on same idea. In general search leveraged by an index server is state of the art technology. PLM 7.0 offers search functionality that is completely build on an index server, including structured and non structured data. This technology is called Embedded Search and it currently supports a lot of objects except classification. This will hopefully change with PLM 7.1. But let us come back to pur topic. Technically the classification system is more than a name and value pair as it offers the following features:
1. CustomizingEnter the Classification customizing in IMG with the following path.Cross-Application Components -> Classification System -> Classes -> Maintain Object Types and Class Types ![]() Basically two settings have to be enabled for the specific class type:
Now the second checkbox can be flagged easily, if the first one is flagged. The fist flag can only be changed in the customizing if no classification exists on the database. Otherwise you have to migrate the existing data with the report RCCLUKA2. ![]() Background: The feature “Multiple classification” carries the wrong name; it should be called “Enable progressive features”. Since the classification system exists before release 4.6C the developers came to a point where they had to release from old burdens and that is why they introduced a migration path. Technically a new DB key is introduced and the old is stored in the DB table INOB. For more information have a look at note 942691. Just a few remarks:
Whenever you manage to set the two features, let’s continue. 2. Set up your classesNothing is endless, so the developers had to limit the number of index characters. I don’t know why but the limitation is 12 characteristics for every class. If you have more characteristics, focus on the 12 most important ones. If a user searches for a characteristic not covered by the twelve, still the old slow search logic will give a search reult.The flag for the 12 characteristics is hiding in the last column “Index relevant” in the transaction CL02 “Classes”. ![]() 3. Generate the Index TablesNow are you ready to press just one button to do the whole optimization and generate the index tables: Call transaction CLGT – “Set Up Tables for Search”, enter your class and hit execute.![]() Two remarks:
ResultYou are finished now. Go to transaction CL30N – “Find Objects in Classes” and perform a search. The result should show up much faster!The new index tables are also filled automatically with new or changed values. Optional: Speed up document searchIf you use the DMS you will properly go to transaction CV04N – “Document Search” and find out, that nothing has changed. Don’t worry: I am not finished yet!CV04N is a complex search transaction, which has to handle different sources. For this a search strategy is developed and classification is not asked first. So a result list is already passed to the classification search function and this is not supported with the index search. All you have to do is make classification search the first, if a user wants to search for classification. This can be done within a BAdI implementation of DOCUMENT_SEARCH01. This BAdI is available since ERP 6.0 (2005). Note 993462 The following code will make classification the first in the search order The implementation above can also help to speed up of CV04N search in ERP 6.0 if no index tables exist, because in most cases the classification search is much faster, if it does not have to handle a result list. Check out an article in the Wiki. However if it comes to complicated requests (case sensitive words or intervals) only a index search can really accelerate. Result 2.0Now the performance of CV04N should also have improved. The search is also accelerated in Easy DM, since it uses the same logic.
RestrictionsA few restrictions exit:
Technical DetailsIt is quite amazing what the generation program all does:
ConclusionIt is quite amazing what can be done with a tool that is 10 years old and hardly know. I hope you could manage to accelerate you search.
Stephan Heinberg is a Inhouse Consultant and Project Manager for Product Lifecycle Management and an enthusiastic fan of ABAP.
| |||||||||||||||||||||||