Enterprise Search (ES) is an SAP NetWeaver (NW) component dealing with searching for both structured and unstructured information in an enterprise. Unstructured information is of the type one searches for in search engines such as Google or Yahoo, i.e. flat documents on file and web servers. Structured information, on the other hand, has a defined structure. Business objects are a typical case of structured objects of which sales orders, products and bid invitations are a few examples.
ES provides a unified user interface across all search sources thus unburdening the user from having to acquaint himself with different presentation technologies. It runs on a web browser to enable searching and presenting its results. However, CRM uses it own search UI which the CRM user is already accustomed to. All ES functionality is hidden behind the search option 'Free text search' in the CRM UI.
The Web Client UI Framework provides a generic mechanism for CRM applications to connect their objects, to be searched for, to ES. This Wiki describes the architecture thereof.
In this NetWeaver release searching for objects in CRM is done locally, i.e. only objects contained in the system where the search query was initiated can be found. In ES parlance this is called embedded search. In future it will be possible to search for CRM objects or any other object across several systems. This is called central search and will be supported with the ES Appliance in NW Release 7.2. ES can be used to search for data indexed in it or to search for data indexed elsewhere. This brings us to the notion of search providers. We differentiate between two kinds:
- Search Data Provider: It supplies the search object data to ES while ES does the indexing and provides the search results.
- Search Service Provider: It does not provide any data to ES and is responsible for its own indexing. It merely sends the search result to ES. This option has been provided so as to enable SAP applications already using their own indexing engine to connect to ES.
The ES infrastructure is shown in the figure below.
CRM is a Search Data Provider as it does not do any indexing itself, but rather leaves it to ES to index the data. Application ERP2005, on the other hand, is a Search Service Provider as it manages its own TREX server. Take a look at detailed architectural picture below:
CRM 7.0 SP01 contains the Enterprise Search functionality which in turn is based on NW 7.01 SP02. This document therefore describes the architecture available at that time.
New from SAP WEBCUIF 7.0 EhP1 on
- Modeling of External Template Attributes
- Modeling of switches on Template Header-Level, Node Level and Attributes-Level. A defaulting of switches out of BOL is provided. For each entity, the related switch-information out of BOL is taken as default. The default switch-assignment can be overwritten. If a switch is existing for a BOL-object, but no switch for an attribute of this BOL-object, the object switch is also taken as default for the ES-attribute. On template header level, the BOL-switch of the related root-object is taken for defaulting.
In order to work with the CRM ES Modeling Workbench the following authorization objects are required:
Restricts access to Enterprise Search Modeling Workbench
Restricts transfer of CRM models to Enterprise Search
Restricts client copy of CRM models
Restricts maintenance of customizing transport containing the CRM models
- Modeling of ES templates in CRM
- Configuration of extraction query
- Implementation of extraction interface for large data volume
- Transport of template models
Out of scope:
- Deletion of templates
- Modeling of authorizations - this must be done in the ES Template Modeler
- Modeling of associations between template and authorization object
- Searching in attachments
Enterprise Search provides a tool, the Template Modeler, with which applications can model their templates. However, the CRM object model is too complex to maintain by hand on ES, so we have come up with an architecture for modeling templates directly in the CRM system and transferring them - after completion - to ES. This is possible because of the use of the Business Object Layer (BOL) upon which the majority of CRM objects are based. Not only modeling, but also data extraction can be done generically. It is these two points that have shaped the Enterprise Search architecture in CRM.
The architecture of the CRM Framework supports the CRM application developers and business object owners with connecting their objects to ES in an easy and efficient manner. The approach is to amalgamate all required tasks into a simple to use UI, the CRM Enterprise Search Modeling Workbench. The advantages are the following:
- Reuse of the existing CRM Business Object Layer (BOL) for modeling search objects and configuring their data extraction.
- Consistent Enterprise Search object template definitions since they are maintained at the CRM system, rather than redefined ES.
- Data extraction is handled by the General Interaction Layer (GenIL).
The scope of the CRM ES enablement covers the following:
- An ES modeling infrastructure exposed by a modeling UI for modeling ES templates in the CRM system. This includes configuration of the data extraction.
- Transfer of ES templates to ES.
- Extraction of CRM object data to ES. This includes initial and delta extraction.
- A UI to launch a CRM free text search will be embedded in the CRM central search UI component.
- A common UI component to display the search result in CRM.
- Client copy and transport utilities for shipment of CRM templates and related customizing.
An integral part of Enterprise Search are authorization checks. Users may only find objects which they are authorized to use. Modeling of authorizations is not supported by the CRM ES infrastructure (See Scope). Instead it has to take place directly in the ES Template Modeler.
The Big Picture
The following block diagram depicts the high level architecture of the Enterprise Search Infrastructure within the Web Client UI Framework.
At the conceptual level we distinguish between following components:
- CRM ES Manager - for details refer to The CRM Interface to Enterprise Search section
- CRM ES Modeling UI - for details refer to Modeling ES Templates section
- CRM ES Modeling Manager - for details refer to ES Modeling Manager
- Extraction Manager - for details refer to Extracting ES Template Data section
- Business Object Extractor - for details refer to Extracting ES Template Data section
- Technical Object Extractor - for details refer to Extracting ES Template Data section
- CRM Simple Search UI - for details refer to CRM Simple Search UI section
- API for change pointer handling - for details refer to ES Manager
The CRM Interface to Enterprise Search
All communication to and fro Enterprise Search is handled by the CRM ES Manager. No other components may communicate with ES directly. It handles general administration tasks such as authorizations, logging and error handling. Consequently it implements all ES interfaces and delegates requests from ES to the appropriate component. It collects the responses from a component and passes it back to ES. Additionally it provides CRM applications with a delta change API which enables them to propagate changes to objects to ES as well.
The CRM ES Manager implements following interfaces:
It also exposes interfaces that need to be implemented by the Modeling Manager and the Extraction Manager. These are:
For further details, such as methods used and class diagrams refer to section ES Manager.
Modeling ES Templates
CRM templates are modeled using the CRM ES Modeling Workbench. It can be called from the CRM SAP Easy Access Menu with the following path: Enterprise Search Integration → Tools → CRM ES Modeling Workbench. Alternatively it can be called with transaction CRM_ES_WB.
The Modeling Workbench supports two kind of templates:
- Business Templates: Also called Business Objects (BOs). These are CRM application objects with GenIL implementations.
- Technical Templates: Also called Technical Objects (TOs). These are used by several BOs and are typically value tables, text tables or DDIC domain fixed values. TOs are referenced by BOs in order to extract some value or text.
The following operations can be carried out in the main screen of the CRM ES Modeling Workbench:
- Create template set: Related templates are grouped into template sets, for example templates CRM_BUS2000111 (CRM Opportunity) and CRM_BUS2000115 (CRM Sales Order) both belong to template set CRM_ONEORDER. A template set is based on a BOL component set.
- Change template set: Only template set description may be changed.
- Create template: A template is based on a BOL root object. Here modeling takes place.
- Change template: Changes / enhances template model
- Delete template: Deletes a template. This functionality is not yet adequately covered. See Scope.
- Check template: Verifies consistency of template model.
- Transfer model: Transfers model of a business object or a technical object.
- Transfer all Technical Objects: Transfers model of all technical objects of a template set.
- Transport: Adds template model to a customizing request for subsequent transport.
After a template was selected the familiar BOL tree is shown on the left hand side of the screen. The CRM application developer traverses the tree by means of relations until he reaches a BOL node. In the attribute structure of the node he can specify - for each attribute - the following ES specific criteria:
- Attribute is part of key structure - column Key Indicator
- Attribute is a search criterion - column Search Criteria
- Attribute is part of the search result - column Result
- Attribute is neither a selection criterion, nor is part of the search result, however, it is indexed on ES - column Select
- Attribute is a language specific text - column Text
All actions in the Modeling Workbench are controlled by the Modeling Manager. These include reading, changing and saving. When transferring a template to ES, it transforms the CRM model to the corresponding ES model. Additionally it provides consistency checks for the templates. For further details see section ES Modeling Manager.
Extracting ES Template Data
Extraction of CRM template data is handled by the Extraction Manager. It is responsible for handling all extraction requests originating in the Enterprise Search by calling the appropriate extractors. The following two types of extraction processes are supported:
- Initial extraction: Process of extracting existing data of a particular template to Enterprise Search. For further details refer to ES Initial Extraction.
- Delta extraction: Process of extracting changed (new/updated/deleted) records after the initial extraction is completed. For further details refer to ES Delta Extraction.
Note: While initial extraction is running change pointers are written so that they can be considered after completion of the initial extraction during a subsequent delta extraction.
For technical details see here.
As mentioned in Modeling ES Templates two templates are supported: BOs and TOs. They are handled by the BO Extractor and TO Extractor respectively.
CRM Simple Search UI
The Enterprise Search has been integrated into the CRM Central Search. GenIL component CRM_ES contains all query and query result objects per template. It is used to display the query results in the CRM UI. The central search hover menu is filled from central search customizing containing the corresponding query object from the CRM_ES GenIL component for each business role and UI object type. The main logic for the search is provided by generic framework classes. They ensure that only the data which are visible (e.g. first 10 rows) are retrieved from Enterprise Search. The same applies to sorting, filtering or paging. This is due to performance reasons as the complete result from the Enterprise Search might be huge and therefore it should not kept in the framework.
For further details see ES Simple Search UI.
The SAP Easy Menu has been enhanced by sub-menu Enterprise Search Integration. It groups together all Enterprise Search related transactions so that the CRM application developer requires when working with ES. It features the following functionality:
- Tools → CRM ES Modeling Workbench Calls the CRM ES Workbench
- Tools → ES Administration Cockpit Calls the ES administration cockpit. This enables the creation of search connectors and scheduling of delta indexing.
- Utilities → Structure Generation of CRM Search Queries Generates the request and response structures for a template to be used during search
- Utilities → Client Copy of CRM Templates Does a client copy of templates belonging to one or more template sets
- Utilities → Transport of CRM Templates Generates a transport request for the templates.
- Utilities → Model Transfer of CRM Templates Perform a mass data transfer of templates belonging to a specific template set.
- Reports → Comparison of ES and CRM Templates Monitors the status of a template in ES and CRM.
The CRM customizing has been enhanced by sub-menu Enterprise Search Integration. It groups together all Enterprise Search related customizing so that the administrator can configure CRM for ES. It can be reached via following path: Customer Relationship Management → UI Framework → Enterprise Search Integration
Following customizing can be carried out during system setup:
- Specify Client for Template Modeling
- Specify Software Component for Template Transfer
- Define RFC Destination for TREX
- Specify parameters for initial extraction
Related How to Guides
- Analyze missing Enterprise Search Entries in the Central Search Menu - How to Guide
- The CRM Enterprise Search Operations Guide helps to set up a system for Enterprise Search and carry out the day-to-day operations.
Link to User Documentation
- SAP Help Portal (SAP CRM 7.0): Enterprise Search Integration
- SAP Help Portal (SAP CRM 7.0): Enterprise Search Integration
- Note 1269914: Unexpected Result or Exception during Enterprise Search for troubleshooting if menu entries to launch Enterprise Searches are not as expected and according to the customizing or that the search results are not as expected.