|
Blogs
As of today SAP Customer Relationship Management product offers numerous capabilities and here I am explaining just one of those for the sake of those yet uninformed. I hope this will help CRM consultants and business process experts in many ways like budgeting, effort estimating and even during a dilemma whether anything like this is ever provided by SAP.
We all know SAP is aggressively marketing its CRM line of products in a big way to win the battle against that which should not be named. The press release in 2006 does just that. And to focus on the technical aspect of the marketing jig behind the unified easy-to-use user interface, I would now concentrate on the new user interface framework; Interaction center (IC) web client that is applicable for both on-premise and on-demand product deployments. Looking forward to the future of SAP CRM and its de-facto UI standard from CRM release 5.1 onwards, it makes it all the more important for customers and consultants equally to understand if not master this technology. Also, following my contribution posted last year in SDN, I wanted to request SDN moderators to create a new topic dedicated to 'Interaction Center (IC) Web Client' in the Emerging and UI technologies section of the SDN homepage as the starting point for all SDNers.
Who would not like the architecture of a software product that is not only flexible but also extensible? These extensible architectures help customers, application developers and consultants to design and build functionalities on top of the SAP standard components and thus make powerful and effective business applications. Please note that the basic provisions for this feature for some business objects have already been accommodated since CRM version 4.0 except for a few additional functionalities. As of now, this write-up will concentrate only on the CRM Implementation Guide (IMG) customizing activities, Business Object Layer (BOL) and the Generic Interaction Layer (GENIL) of IC Web Client with the aim of extending the product master component in CRM 5.1 or CRM 2006s release. For the sake of modularity, the article will be divided into the following sections:
1. Architectural overview and analysis 2. Development methodology.
Architectural overview Detailed Analysis: API Layer: The Application Processing Interface (API) layer will have all the implementation logic pertaining to the customer-specific business processes built in E.g.: Logic for search, create, read, update and deletion of business data. The search API needs to be re-written to accomodate the custom-defined fields. However, the other product master APIs for data maintenance need not be touched!
Custom search Handler layer: The handler class implementation for the custom search functionality is built in this layer. This handler class needs to implement the interface SAP interface IF_CRM_PRIL_QUERY. This class will retrieve the search request from the GENIL layer using the customer-defined search business objects. Based on the search object name, the handler class will then trigger the appropriate search API to retrieve the result list. Once the result list is returned, the search handler layer will hand over the list to the GENIL layer which will in turn help get the list to be displayed in the UI.
BOL model layer: In the business object model layer you would mostly define the business objects and model their relationships. This is generally done in two parts. i) In the first part, you would specify the name your custom-built business objects; be it set-type, attribute or query objects. For query/search objects you will have to define the handler class name and the search structure name (which will contain custom-defined fields as per business requirements). You can even define if these business objects need to be service-enabled in-line with the ESOA (Enterprise service architecture) ideology. Besides these, there are some naming convention specifics which you can find in the tree node documentation of IMG in a CRM 5.1 system (transaction SPRO). Customer Relationship Management->CRM Cross-Application Components->Generic Interaction Layer/Object Layer->Component-Specific Settings->Products->Define Objects Please note that this is the place where you would find differences between CRM 5.0 or CRM 2005 and CRM 5.1 or CRM 2006s as far as customer-defined set types and multi-valued attributes are concerned. ii) To use set types generated in the product master within applications requiring the business object layer (here, Interaction Center Web Client), these set types must be included in the object model of the product master component. In this activity of the second part, you would extend the object model by defining a new relationship from a source object to the newly defined destination object (assigned object). Fortunately from CRM 5.1 onwards, you do not need to do anything here. The entries are generated automatically in this table for customer set types. Customer Relationship Management->CRM Cross-Application Components->Generic Interaction Layer/Object Layer->Component-Specific Settings->Products-> Extend Object Model
GENIL layer: The GenIL part will remain un-touched in our purpose to extend the product master component. This is sweet. The logic has already been implemented as part of the standard product master and it has the ability to dynamically use the enhanced BOL model for any requests and responses.
UI layer: In the UI layer, the activities as to the extension in the IC web client views vis-à-vis the customer requirements will be normal. Of course, there are some neat features like enhancement sets that are offered from CRM 5.1 onwards to achieve this. I plan to cover this in a separate blog.
Development Methodology
Now, where to begin your actual development activity? You can either follow a top-down or a bottom-up approach. As a starter, it would be beneficial if you begin your enhancement activity at the SAP Implementation Guide (IMG) level; at the nodes already outlined above. This will give you a fair idea of at least the naming conventions to be followed for customer-specific set-types and attributes. You can proceed in the following direction:
1. Define the different set-types as per business requirements by following the naming conventions for organization (in)dependant set types and the attributes. 2. Define objects in IMG 3. Extend Object model in IMG ( You need not do this from CRM 5.1 ) 4. Define the DDIC objects like the search structures (in case you have custom-defined search functionality). 5. Define and implement the handler class for the custom-search functionalities.
After this, you can run the model browser transaction GENIL_MODEL_BROWSER to check the consistency of the BOL model and the transaction GENIL_BOL_BROWSER to test your custom built functionality of your extended application.
All in all, CRM 5.1 provides many such useful features to help customers enhance and build additional business functionality to help streamline their day to day CRM businesses and help win customer loyalty and satisfaction. Sudipta Sarma is a SAP CRM analyst working in different CRM initiatives at Apple Inc. and is an ex-SAP employee.
| |||||||||||||||||||||||