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.