cancel
Showing results for 
Search instead for 
Did you mean: 

Follow on Tickets multilevel categorization not getting copied from incident (ZMIN) to Knowledge Article

Former Member
0 Kudos

Greetings,

We have created ZMIN as incident transaction type and ZNAR as Knowledge Article transaction type copied for standard transaction type. The multilevel categorization is not getting copied from ZMIN to ZNAR. All the configurations are in place. Below are the details of the config. Categories are getting copied to other transaction type except for ZMIN to ZNAR.

Please provide your valuable suggestions to resolve this issue.

Categorization schema


Regards,

Mohar

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi, Mohar!

Firstly, read note 1567003, point 11. If it not helps use this instruction.


1. You must ensure that both transaction types have the same subject profile:

in SPRO

IMG-> CRM-> Transactions -> Basic Settings -> Define Transaction Types

Choose your transaction type SMIN… (here in my CRM example I chose ITIN) then ‘Assignment of Business Transaction categories’ on the left:

Select BUS2000116 Service Process and select ‘Customizing header’ on the left. Put in edit mode and add the ‘SERVICE’ subject profile (when the transaction is not in edit mode, you might not see the ‘Subject Profile’ field):

Save.

Make sure all your changes look fine in transaction CRMC_SERVICE_H:

2. Create the missing catalog category assignment for Knowledge Article (KNAR D):

SPRO: IMG->CRM->CRM Cross-Application Components->Multilevel Categorization->Assign Transaction Types to Catalog Categories.

3. Modify the categorization schema – create a new version. 

Under ‘Application Areas’, add KNAR/D .In the scenario provided, I believe the schema ID was SAP_SOLUTION_MANAGER_TEMPLATE:

Release the schema. Wait for it to become active.

4.  There exist two variants. Variant 1 – may be not working.

Enhance component CRM_KNOWART_H to modify this code (CL_CRM_KNOW_BSPWDCOMPONE0_IMPL->WD_USAGE_INITIALIZE). Catalog ‘D’ must be used now:

Transaction BSP_WD_CMPWB (component CRM_KNOWART_H):

Variant 2 – works! Enhance class CL_CRM_KNOW_BSPWDCOMPONE0_IMPL and redefine its method WD_USAGE_INITIALIZE. Copy all content from standard method to redefined method.

Then you have to add “me->core_object” to all method calls. For example:

lv_usage = me->CORE_OBJECT->comp_controller->get_component_usage( iv_usage->usage_name ).

Instead

lv_usage = me->comp_controller->get_component_usage( iv_usage->usage_name ).

It’s because we must call methods of object of original class which is kept in attribute CORE_OBJECT of object of enhanced class.

Steps for both variants.

Code (around line 74):

WHEN 'CUCategories'.

      get_custom_controller( 'CRM_KNOWART_H/CUBTCategoriesCuCo' ).

*     Pass the catalog category type - Subject

      DATA: lv_struct_ref TYPE REF TO crmst_catalogtype_btil,

      lv_value_node TYPE REF TO cl_bsp_wd_value_node,

      lr_target_node TYPE REF TO cl_bsp_wd_context_node,

      lv_bo_coll    TYPE REF TO if_bol_bo_col.

      CREATE DATA lv_struct_ref.

      lv_struct_ref->*-catalog_type = 'E'.    = put ‘D’ instead of ‘E’

      CREATE OBJECT lv_value_node

        EXPORTING

          iv_data_ref = lv_struct_ref.

      CREATE OBJECT lv_bo_coll TYPE cl_crm_bol_bo_col.

      […]

5. Create a new example (new incident SMIN) to test the scenario again. Existing incidents will probably not work because of the subject profile.

Andrey

Former Member
0 Kudos

Hi Andrey,

Thanks for the reply and i really appreciate the effort you have put in it, I have done all the configuration as mentioned by you,  but after redefining the WD_USAGE_INITILAIZE method of Component Controller and coded as u mentioned above system is giving Syntax error.

PFA screen shot .

Regards,

Mohar

0 Kudos

Hi, Mohar!

It's strange, because redifining methods can use attributes of redefined methods only as own attribute me->CORE_OBJECT.

How is made class ZL_CRM_KNOW_BSPWDCOMPONE0_IMPL? In my system, redefining method keeps in local class LCL_Z_CL_CRM_KNOW which created after redifinition.

Redefined method.

And its implementation.

Andrey

Former Member
0 Kudos

Hi Andrey,

Thanks for the reply, we have implemented as you have mentioned and its working.

But we didn't required to change the code as mentioned below

Variant 2 – works! Enhance class CL_CRM_KNOW_BSPWDCOMPONE0_IMPL and redefine its method WD_USAGE_INITIALIZE. Copy all content from standard method to redefined method.

Then you have to add “me->core_object” to all method calls. For example:

lv_usage = me->CORE_OBJECT->comp_controller->get_component_usage( iv_usage->usage_name ).

Instead

lv_usage = me->comp_controller->get_component_usage( iv_usage->usage_name ).

It’s because we must call methods of object of original class which is kept in attribute CORE_OBJECT of object of enhanced class.

We have only enhanced the method WD_USAGE_INITIALIZE and implemented the below code


WHEN 'CUCategories'.

      get_custom_controller( 'CRM_KNOWART_H/CUBTCategoriesCuCo' ).

*     Pass the catalog category type - Subject

      DATA: lv_struct_ref TYPE REF TO crmst_catalogtype_btil,

      lv_value_node TYPE REF TO cl_bsp_wd_value_node,

      lr_target_node TYPE REF TO cl_bsp_wd_context_node,

      lv_bo_coll    TYPE REF TO if_bol_bo_col.

      CREATE DATA lv_struct_ref.

      lv_struct_ref->*-catalog_type = 'E'.    = put ‘D’ instead of ‘E’

      CREATE OBJECT lv_value_node

        EXPORTING

          iv_data_ref = lv_struct_ref.

      CREATE OBJECT lv_bo_coll TYPE cl_crm_bol_bo_col.

      […]

Answers (0)