on 09-16-2014 5:17 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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.
[…]
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.