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

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

ViewSets

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:

method IF_BSP_MODEL~INIT.
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.
    endif.
    lv_bo_coll->add( lv_value_node ).
    collection_wrapper->set_collection( lv_bo_coll ).
endmethod.

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.

method WD_USAGE_INITIALIZE.
  DATA:
  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
        EXPORTING
          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
        EXPORTING
          iv_controller_type  = cl_bsp_wd_controller=>CO_TYPE_COMPONENT
          iv_target_node_name = 'APPLICATION'             "#EC NOTEXT
          iv_node_2_bind      = 'APPLICATION'.
    when OTHERS.
      CALL METHOD SUPER->WD_USAGE_INITIALIZE
        EXPORTING
          IV_USAGE = iv_usage.
  ENDCASE.
endmethod.

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' ) %>" />
</thtmlb:gridCell>
<%- 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>
<%-<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' ) %>" />
  </thtmlb:gridCell>
</thtmlb:grid>
  • No labels

3 Comments

  1. Guest

    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. Guest

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

  3. Guest

    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.

    Thanks