Registration

Dear SAP Community Member,
In order to fully benefit from what the SAP Community has to offer, please register at:
http://scn.sap.com
Thank you,
The SAP Community team.
Skip to end of metadata
Go to start of metadata

 

The CRM ES Modeling Manager contains all basic classes, which are required for the following usage:

  • Persisting Template and Template Set Models in the database and provide APIs to access the Model data (CL_CRM_ES_MODEL_DATA).
  • Prepare the CRM Template data for the model transfer to NW Enterprise search (CL_CRM_ES_MODEL_MGR).
  • Generate request and response structures for the UI (CL_CRM_ES_MODEL_MGR).
  • Utility to check the usage of templates and operations for edit transport and client-copy (CL_CRM_ES_MODEL_MGR).
  • Build a tree model which can generically be used on the UI and provide APIs for the UI Modeling (CL_CRM_ES_MODEL_UI).

The data model is designed to provide flexible extensions of the model. You can see the data model in the table diagram:


  • Template sets provide a grouping for templates belonging to the same BOL-component-set.
  • The descriptions of template sets are maintained in the text-table CRMD_ES_TMPLSETT; the assigned component set is stored in CRMD_ES_TMPLSETC.
  • The detail data of a template model is saved in CRMD_ES_TMPLHDR in an XML-String (Field data). This concept enables us for flexible extension without changing basic database tables. Here we store technical templates and business templates.
  • The according text-table for the templates is CRMD_ES_TMPLHDRT
  • Relation information of template nodes and links to foreign templates are persisted in CRMD_ES_TMPLREL.

Classes of the modeling manager

In detail, we have following classes:

Class

Description

CL_CRM_ES_ATTRIBUTE_NODE

used to build attribute nodes in the tree-model for the UI

CL_CRM_ES_ATTR_STRUCTURE_NODE

used to build attribute structure nodes in the tree-model for the UI

CL_CRM_ES_BOL_OBJECT_NODE

used to build bol object nodes in the tree-model for the UI

CL_CRM_ES_BO_TEMPLATE_NODE

used to build business template nodes in the tree-model for the UI

CL_CRM_ES_FOREIGN_REL_NODE

used to build foreign relation nodes in the tree-model for the UI

CL_CRM_ES_MGR_UI_ROUTINES

GUI ES Manager methods

CL_CRM_ES_MODEL_DATA

Data provider class for ES model

CL_CRM_ES_MODEL_MGR

ES Modeling Manager Class to prepare data for the model transfer

CL_CRM_ES_MODEL_TREE_FACTORY

Factory class for different types of nodes in ES model tree

CL_CRM_ES_MODEL_TREE_NODE

Implementation of ES model tree node

CL_CRM_ES_MODEL_UI

ES Modeling UI Class (building UI Tree)

CL_CRM_ES_RELATION_NODE

used to build relation nodes in the tree-model for the UI

CL_CRM_ES_REL_FOLDER_NODE

used to build relation folder nodes in the tree-model for the UI

CL_CRM_ES_SIMPLE_NODE

used to build simple nodes in the tree-model for the UI

CL_CRM_ES_TECH_TEMPLATE_NODE

used to build technical template nodes in the tree-model for the UI

CL_CRM_TREE_NODE

Default implementation for tree node

Interfaces of the modeling manager

For the modeling of the UI-tree, we are using:

Interface

Description

IF_CRM_ES_MODEL_TREE_NODE

ES model tree node

IF_CRM_TREE_NODE

Generic tree node interface

Implemented interfaces relevant for template model transfer

For the model transfer we are implementing: IF_CRM_ES_MODEL_TRANSFER (API for CRM model transfer to ES) Implementing Class is CL_CRM_ES_MODEL_MGR (ES Modeling Manager Class) Methods are

DESCRIBE

ES description of a CRM object template

DESCRIBE_REQU_AND_RESP

Describe object type responses and requests

Overview is visible in the Class diagram:

Data model

For model-information following tables are used table diagram:

  • CRMD_ES_ATTR: Foreign relation attributes : used in EhP1
  • CRMD_ES_DELETED: Table of delated templates : for transport
  • CRMD_ES_FIELD_EX: Table of excluded fields : not used
  • CRMD_ES_PATHS: Relation Paths : used in EhP1
  • CRMD_ES_PATHSTEP: Steps of Relation Paths : used in EhP1
  • CRMD_ES_TMPLHDR: Template model information
  • CRMD_ES_TMPLHDRT: Text to template model information
  • CRMD_ES_TMPLREL: Relations between templates
  • CRMD_ES_TMPLSET: Template sets
  • CRMD_ES_TMPLSETC: Assignment of set to BOL-Component-Set
  • CRMD_ES_TMPLSETT: Text to template sets

The hierarchy is:

  • CRMD_ES_TMPLSET
    • 1:1 CRMD_ES_TMPLSETC
    • 1:n CRMD_ES_TMPLSETT
    • 1:n CRMD_ES_TMPLHDR
      • 1:n CRMD_ES_TMPLHDRT

The table CRMD_ES_TMPLHDR holdes in each row the basic information about the template model. In the field data a XML-String is stored. This XML is transformed into an internal "node"-table of format CRMS_ES_XML_DATA_TAB

with fields

Field

Type

Text

TEMPLATE_ID

CRM_ES_TEMPLATE_ID CHAR

Template ID for CRM ES

RELATION_ID_CRM

CRMT_RELATION_NAME CHAR

Relation Name

RELATION_ID

CRM_ES_RELATION_ID CHAR

Relation ID for CRM ES

OBJECT_ID_CRM

CRMT_EXT_OBJ_NAME CHAR

External Name of Object

OBJ_ID

CRM_ES_NODE_ID CHAR

Node ID for CRM ES

FIELD_ID_CRM

FIELDNAME CHAR

Field Name

.INCLUDE

CRMS_ES_NODE_DATA

ES Modeling Tree Node Data

NODE_TYPE

CRM_ES_NODE_TYPE CHAR

Node Type for ES

DESCRIPTION

CRM_ES_DESCRIPTION CHAR

Descriptions for CRM ES

MY_TEMPLATE_ID

CRM_ES_TEMPLATE_ID CHAR

Template ID for CRM ES

OBJ_DATA

CRMS_ES_OBJ_DATA

ES BOL Object Data

REL_DATA

CRMS_ES_OBJ_REL

ES BOL Object Relation Data

ATTR_DATA

CRMS_ES_ATTR_DATA

ES BOL Attribute Data

HEADER_DATA

CRMS_ES_HEADER_DATA

ES Header Data for Business Template

SEG_DATA

CRMS_ES_SEG_DATA

Segment-Data for ES- structures

HEADER_DATA_TO

CRMS_ES_HEADER_DATA_TO

ES Header Data for Technical Template

FOREIGN_REL_DATA

CRMS_ES_FOREIGN_REL

ES Foreign Relation Data for other Templates

REL_FOLDER_DATA

CRMS_ES_REL_FOLDER_DATA

Structure of relation folder node

FOREIGN_TEMPL_DATA

CRMS_ES_FOREIGN_TEMPL_DATA

Foreign template data

FOREIGN_TEMPL_REL_DATA

CRMS_ES_FOREIGN_TEMPL_REL_DATA

Foreign template relation data

PATH_ID

CRM_ES_PATH_ID

Path ID

The *_DATA-segments hold the data for the related entities as OBJ, ATTR, HEADER, REL, a.s.o. The ID fields are used as identifiers to read the data out of the internal node-table, when the model informatiion is retrieved from the UI. On this node-table most operations are triggered from CL_CRM_ES_MODEL_MGR and CL_CRM_ES_DATA.