Skip to end of metadata
Go to start of metadata

I. Scope

The goal of thisWiki is to demonstrate what has to be done to integrate the component of the Interaction Record of "Multilevel categorization" on other objects in the Webclient.
The means of the integration of the component on the screen is via the use of Component Usage.
As an example the component is added on the screen of the Task Object. This is merely an example. For the integration on other objects, the same principle must be used.
In the below described examples, the multilevel categorization levels are called 'Domain', 'Subdomain' and 'Process ID' corresponding to Category Level 1, Category Level 2, Category Level 3.

II. Example of expected result

When the component is available and via the configuration the fields are made available, the screen contains the new fields.

III. General information

III.1 Component name

The Components that need to have this enhancement are:

  • BT126H_CALL

III.2 View name

The following views need to be enhanced:

  • BT126H_CALL/SCDetails
  • BT126H_CALL/SCDetailsViewSet1
  • BT126H_APPT/ApptDetails
  • BT126H_APPT/ApptDetailsViewSet1
  • BT125H_TASK/TaskDetails
  • BT125H_TASK/TaskDetailsViewSet1

III.3 Runtime Repository Editor


The viewSets:

  • BT126H_CALL/SCDetailsViewSet1
  • BT126H_APPT/ApptDetailsViewSet1
  • BT125H_TASK/TaskDetailsViewSet1

Have to be enhanced with a new viewarea CategorizationViewArea.

The view ICCMP_BT_CAT.Main has to be assigned as the view to be shown in the new viewarea

Component Usage

ICCMP_BT_CAT is the component that has to be used

III.4 Component Structure Browser

Component Controller

The Component Controller of the components:

  • BT126H_APPT
  • BT125H_TASK
  • BT126H_CALL

has to be enhanced.

A new Context Node Z_MULTIL_CAT_APPLICATION (Value node) has to be added in order to have the Application of the Multilevel Categorization.

There is one attribute called "application" with type Char length 30.

The method IF_BSP_MODEL~INIT of the newly created context node has to contain the following code:

TYPES: BEGIN OF ltype_attr_struct,
         application  TYPE CHAR30,
       END OF ltype_attr_struct.
 DATA: lr_application TYPE REF TO ltype_attr_struct,
       lv_value_node  TYPE REF TO cl_bsp_wd_value_node,
       lr_current     TYPE REF TO if_bol_bo_property_access,
       lv_bo_coll     TYPE REF TO if_bol_bo_col.
 super->if_bsp_model~init( id    = id
                           owner = owner ).
* initialize value node
    CREATE DATA lr_application.
    CREATE OBJECT lv_value_node
      EXPORTING iv_data_ref = lr_application.
    CREATE OBJECT lv_bo_coll TYPE cl_crm_bol_bo_col.
    lr_current ?= lv_value_node.
    if lr_current is bound.
      call method lr_current->set_property
                         EXPORTING iv_attr_name = 'APPLICATION'
                                   iv_value  = CL_ICCMP_BT_CATDDLB_IMPL=>GC_INTERACTION_RECORD.
    lv_bo_coll->add( lv_value_node ).
    collection_wrapper->set_collection( lv_bo_coll ).

The Component Controller method WD_USAGE_INITIALIZE must contain the binding between the context nodes of the used component and the current component's Component controller.

  lv_usage TYPE REF TO if_bsp_wd_component_usage,
  lr_us_bttext  TYPE REF TO cl_btnote_bspwdcomponent_cn00.
  lv_usage = me->comp_controller->get_component_usage( iv_usage->usage_name ).
  CASE iv_usage->usage_name.
    when 'ICCMP_BT_CAT'.
      CALL METHOD lv_usage->bind_context_node
          iv_controller_type  = cl_bsp_wd_controller=>CO_TYPE_COMPONENT
          iv_target_node_name = 'BTADMINH'             "#EC NOTEXT
          iv_node_2_bind      = 'BTADMINH'.
      CALL METHOD lv_usage->bind_context_node
          iv_controller_type  = cl_bsp_wd_controller=>CO_TYPE_COMPONENT
          iv_target_node_name = 'APPLICATION'             "#EC NOTEXT
          iv_node_2_bind      = 'APPLICATION'.
    when OTHERS.
          IV_USAGE = iv_usage.

View Sets

The following viewsets have to be enhanced:

  • BT126H_CALL/SCDetailsViewSet1
  • BT126H_APPT/ApptDetailsViewSet1
  • BT125H_TASK/TaskDetailsViewSet1

Example result Source Code of view BT126H_CALL/SCDetailsViewSet1.htm:

<%@page language="abap" %>
<%@extension name="htmlb" prefix="htmlb" %>
<%@extension name="xhtmlb" prefix="xhtmlb" %>
<%@extension name="thtmlb" prefix="thtmlb" %>
<%@extension name="crm_bsp_ic" prefix="crmic" %>
<%@extension name="bsp" prefix="bsp" %>
<thtmlb:areaFrameSetter displayMode     = "<%= controller->view_group_context->is_view_in_display_mode( controller ). %>"
                        toolbarButtons  = "<%= controller->gt_button %>"
                        maxButtonNumber = "1"
<%-<thtmlb:grid xmlns:thtmlb="CRMThinHTMLBLibrary" cellSpacing="1" columnSize="1" height="100%" rowSize="2" width="100%"> -%>
<thtmlb:grid xmlns:thtmlb="CRMThinHTMLBLibrary" cellSpacing="1" columnSize="2" height="100%" rowSize="3" width="100%"
<%-<thtmlb:gridCell colSpan="1" columnIndex="1" rowIndex="1" rowSpan="1" colspan="2">-%>
<thtmlb:gridCell colSpan="1" columnIndex="1" rowIndex="1" rowSpan="1" colspan="2">
<bsp:call comp_id = "<%= controller->GET_VIEWAREA_CONTENT_ID( 'SCDetailsViewArea' ) %>"
          url     = "<%= controller->GET_VIEWAREA_CONTENT_URL( 'SCDetailsViewArea' ) %>" />
<%- Insert new viewarea CategorizationViewArea -%>
<thtmlb:gridCell colSpan="1" columnIndex="1" rowIndex="2" rowSpan="1" colspan="1">
<bsp:call comp_id = "<%= controller->GET_VIEWAREA_CONTENT_ID( 'CategorizationViewArea' ) %>"
          url     = "<%= controller->GET_VIEWAREA_CONTENT_URL( 'CategorizationViewArea' ) %>" />
<%-<thtmlb:gridCell colSpan="1" columnIndex="1" rowIndex="1" rowSpan="1">-%>
<thtmlb:gridCell colSpan="1" columnIndex="1" rowIndex="3" rowSpan="1" colspan="2">
<bsp:call comp_id = "<%= controller->GET_VIEWAREA_CONTENT_ID( 'NotesViewArea' ) %>"
          url     = "<%= controller->GET_VIEWAREA_CONTENT_URL( 'NotesViewArea' ) %>" />
  • No labels


  1. Unknown User (107o30a3x)

    This was a terrific Wiki for us, we tried doing this in 5.0 with limited success and my developer was ale to knock this out quickly after reviewing your post in our new 7.0 system.  Many Thanks.

  2. Unknown User (bul9m8e)

    Thanks a lot for this Wiki! With it I was able to quicky implement this in our 7.0 system.

  3. Unknown User (djwqu2g)

    Is Multi level categorization available on SAP CRM 7.0 Interaction record? If so we are not able to view the same?

    Can you let me know how to make these feilds available?

    Appreciate your replies to clear the ambiguity.