cancel
Showing results for 
Search instead for 
Did you mean: 

Details Item 20: No item category could be determined Details Item 20: The product does not exist in the system

former_member198180
Active Participant
0 Kudos

Hi Team,

I am trying to create complaint . I got an error say in - Details Item 20: No item category could be determined Details Item 20: The product does not exist in the system

Can you please tell me, when such type of error comes? Do we need to check any configuration for this?

In item assignment block item 20 is coming , so i don't want 20 line item here.if i remove item number 20 then that errors are not coming.how to do it? could you please help here..Thanks in advance.

Thanks & regards

Kalpana

Accepted Solutions (0)

Answers (3)

Answers (3)

dharmakasi
Active Contributor
0 Kudos

Hi,

Check your code available in do_prepare_output of the items assignment block view. What code you are using to populate line item 10 based on header data, check this logic functionality in debug by keeping break point.

Even keep break points in do_prepare_output of the items assignment block and check what is happening after adding the line item 10, generally empty line would created after adding line item 10. But in your case empty is adding with number int and other details.

Regards,

Dharmakasi.

Former Member
0 Kudos

Hello!

You can check if enhancements are source of your problem: set parameter WCF_IGNORE_ENHANCEMT to A on your user in SU01 and retest. If there would not be error - problems are in enhancement.

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

I have added the parameter on SU01. it is not even showing single business role and its directly opened one role automatically and there is no service orders.so it is blunder..it is not working.

Could you please provide me any solution here.

Thanks

Kalpana

Former Member
0 Kudos

Hello!

Do you have parameter CRM_UI_PROFILE * on your user? If not, please set, close your browser and launch WebUI again.

Parameter WCF_IGNORE_ENHANCEMT allows to ignore most of enchancements. In my system this parameter works fine.

You can find more trics in link

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

I have added the same parameter ,all custom developments will be removed.and i have created AET fields and added same fields on complaint creation screen.but its get removed and entire z configurations ares removed.it is showing all standard.

Complaint creation screen-if you enter serial number(i.e AET field) item level 20 is coming and erros is coming that is the exact issue we are facing.

After adding this parameter on SU01 now there is no custom developments here..So with out disturbing our custom developments how to remove this errors. please help.

Thanks

Kalpana

Former Member
0 Kudos

Hello!

You can try to turn off only part of enhancements as decribed in link

How to check and identify whether an issue on CRM WebUI is caused by enhancement of some component o...

and check which enhancement gives you this problem

Have you enhanced views of assignment block "Items"? Could you give me a name of this component?

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

please find the below details of component and item view.in this item list i have added 3 AET fields and just implemented drop down end editable on based on return replacement button of item view.for this i have enhanced the EH_ONACTION event handler and i have copied same standard code but added some logic for return replacement functionality.

Component - BT120H_CPL

View - BT120H_CPL/ItemList

Thanks & Regards

Kalpana

Former Member
0 Kudos

Hello!

Can you give a new code that you have in EH_ONACTION method? Looks like you add somewhere in code empty row to collection.

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

Please find the below code.

METHOD eh_onaction.
*CALL METHOD SUPER->EH_ONACTION
* EXPORTING
*    IV_EVENT_NAME = IV_EVENT_NAME.


DATA: lv_action_set  TYPE REF TO cl_crm_bol_entity,
lv_actions     TYPE REF TO if_bol_entity_col,
lv_action      TYPE REF TO cl_crm_bol_entity,
lv_entity      TYPE REF TO cl_crm_bol_entity,
lr_ent2        TYPE REF TO cl_crm_bol_entity,
lr_core        TYPE REF TO cl_crm_bol_core,
lr_col         TYPE REF TO if_bol_entity_col,
lr_marked      TYPE REF TO if_bol_bo_col,
lr_cucompl     TYPE REF TO cl_bt120h_c_bspwdcomponen_impl,
lv_ttype       TYPE string,
lv_msgv        TYPE symsgv,
lr_msg_srv     TYPE REF TO cl_bsp_wd_message_service,
lv_dummy       TYPE c LENGTH 1.                   "#EC NEEDED

lr_core = cl_crm_bol_core=>get_instance( ).

lr_marked = me->typed_context->btadmini->collection_wrapper->get_marked( ).
IF lr_marked IS BOUND.
IF lr_marked->size( ) = 1.

lv_entity ?= lr_marked->get_first( ).
CHECK lv_entity IS BOUND.

lv_action_set = lv_entity->get_related_entity( iv_relation_name = 'BTItemAction' ).

IF lv_action_set IS BOUND.
TRY.
lv_action_set->execute( iv_method_name = 'ACIDetermine' ).
CATCH cx_crm_genil_model_error
  cx_crm_bol_meth_exec_failed.
ENDTRY.

lv_actions = lv_action_set->get_related_entities( iv_relation_name = 'ACIInactiveActionRel' ).
IF lv_actions IS BOUND.
lv_action ?= lv_actions->get_first( ).
WHILE lv_action IS BOUND.
lv_ttype = lv_action->get_property_as_string( 'TTYPE' ).
IF lv_ttype = iv_event_name.
TRY.
lv_action->execute( iv_method_name = 'ACIActivate' ).

lv_entity->set_property( iv_attr_name = 'MODE' iv_value = '' ).

CATCH cx_crm_genil_model_error
  cx_crm_bol_meth_exec_failed.
ENDTRY.


lr_ent2 ?= me->typed_context->btitems->collection_wrapper->get_current( ).
lr_col ?= lr_ent2->get_related_entities( iv_relation_name = 'BTOrderItemAll' iv_mode = cl_crm_bol_entity=>bypassing_buffer ).

IF lv_ttype = 'ZSUBST_DEL'.
DATA : lr_btadmini TYPE REF TO cl_crm_bol_entity,
lv_serial   TYPE string,
lv_itemno TYPE crmt_item_no,
lr_iterator TYPE REF TO if_bol_entity_col_iterator.

CALL METHOD lr_col->get_iterator
RECEIVING
rv_result = lr_iterator.

CALL METHOD lr_iterator->get_first
RECEIVING
rv_result = lr_btadmini.

WHILE lr_btadmini IS BOUND.

CALL METHOD lr_btadmini->if_bol_bo_property_access~get_property_as_value
EXPORTING
iv_attr_name = 'NUMBER_INT'
IMPORTING
ev_result    = lv_itemno.

IF lv_itemno = '30'.

IF lr_btadmini IS BOUND.

CALL METHOD lr_btadmini->set_property
EXPORTING
iv_attr_name = '/RCRM/F005V'
iv_value     = ' '.
***today changeSeptmber 2nd 2015
CALL METHOD lr_btadmini->set_property
EXPORTING
iv_attr_name = '/RCRM/F005T'
iv_value     = '1000'.
****today chnge septmber 2nd 2015
CALL METHOD lr_col->add
EXPORTING
iv_entity = lr_btadmini.

EXIT.

ENDIF.
ENDIF.

CALL METHOD lr_iterator->get_next
RECEIVING
rv_result = lr_btadmini.

ENDWHILE.

ENDIF.

*****************return solc set 1000 defualt septmber 2nd 2015


IF lv_ttype = 'YCREATERTNREQ1'.
CALL METHOD lr_col->get_iterator
RECEIVING
rv_result = lr_iterator.

CALL METHOD lr_iterator->get_first
RECEIVING
rv_result = lr_btadmini.

WHILE lr_btadmini IS BOUND.

CALL METHOD lr_btadmini->if_bol_bo_property_access~get_property_as_value
EXPORTING
iv_attr_name = 'NUMBER_INT'
IMPORTING
ev_result    = lv_itemno.

IF lv_itemno = '20'.

IF lr_btadmini IS BOUND.
CALL METHOD lr_btadmini->set_property
EXPORTING
iv_attr_name = '/RCRM/F005T'
iv_value     = '2999'.

CALL METHOD lr_col->add
EXPORTING
iv_entity = lr_btadmini.

EXIT.

ENDIF.
ENDIF.

CALL METHOD lr_iterator->get_next
RECEIVING
rv_result = lr_btadmini.

ENDWHILE.
ENDIF.
*********** return sloc value should set 1000 Septbmber 2nd 2015
*****************************************

me->typed_context->btadmini->collection_wrapper->set_collection( lr_col ).
me->typed_context->btadmini->collection_wrapper->find( iv_bo = lv_entity ).

lr_cucompl ?= me->comp_controller.
lr_cucompl->force_save = abap_true.

EXIT.
ENDIF.
lv_action ?= lv_actions->get_next( ).
ENDWHILE.
ENDIF.

lv_actions = lv_action_set->get_related_entities( iv_relation_name = 'ACIActiveUnprocessedActionRel' ).
IF lv_actions IS BOUND.
lv_action ?= lv_actions->get_first( ).
WHILE lv_action IS BOUND.
DATA lv_dispatch TYPE i.
lv_ttype = lv_action->get_property_as_string( 'TTYPE' ).
lv_dispatch = lv_action->get_property_as_string( 'DISPATCH' ).
IF lv_ttype = iv_event_name AND lv_dispatch = 3. "immediate only
TRY.
lv_action->execute( iv_method_name = 'ACIExecute' ).

lv_entity->set_property( iv_attr_name = 'MODE' iv_value = '' ).

CATCH cx_crm_genil_model_error
  cx_crm_bol_meth_exec_failed.

lv_msgv = lv_action->get_property_as_string( 'TTYPEDESCR' ).
MESSAGE e028(crm_complaint) WITH lv_msgv INTO lv_dummy. "#EC *
lr_msg_srv = me->view_manager->get_message_service( ).
IF lr_msg_srv IS BOUND.
lr_msg_srv->add_message( iv_msg_type   = sy-msgty
  iv_msg_id     = sy-msgid
  iv_msg_number = sy-msgno
  iv_msg_v1     = sy-msgv1
  iv_important_info = abap_true ).
ENDIF.

TRY.
lv_action->execute( iv_method_name = 'ACIDeactivate' ).
CATCH cx_crm_genil_model_error
  cx_crm_bol_meth_exec_failed.
EXIT.
ENDTRY.
EXIT.
ENDTRY.


lr_ent2 ?= me->typed_context->btitems->collection_wrapper->get_current( ).
lr_col ?= lr_ent2->get_related_entities( iv_relation_name = 'BTOrderItemAll' iv_mode = cl_crm_bol_entity=>bypassing_buffer ).
me->typed_context->btadmini->collection_wrapper->set_collection( lr_col ).
me->typed_context->btadmini->collection_wrapper->find( iv_bo = lv_entity ).

lr_cucompl ?= me->comp_controller.
lr_cucompl->force_save = abap_true.

EXIT.
ENDIF.
lv_action ?= lv_actions->get_next( ).
ENDWHILE.
ENDIF.

ENDIF.

ENDIF.
ENDIF.

ENDMETHOD
.


Thanks & Regards

Kalpana

Former Member
0 Kudos

Hello!

I have compared your code with standard and see that your code has 2 additional If constructions where you call

CALL METHOD lr_col->add

              EXPORTING

                  iv_entity = lr_btadmini.

Please try to skip your changes via shift+f12 and see if your issue still exists. If not - reason is in those part of code.

P.S. I see that mentioned lr_col->add calls are without changing of NUMBER_INT - is it correct? As per my understanding it could be a source of problems

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

No still it is not working. i have commented that code ,and debug mode also i have checked but still it is coming.

See user enter header level  Serial number ,then few fields on header and item its gets filled automatically.in the item i,item value 20 that time user clicks return and replacement buttons i have copied serial number on 2nd line item based on edit non edit that's it only these changes  i did at item level.

So what to do here .Could you please hep. still item 10 and 20 is coming.

Thanks & Regards

Kalpana

Former Member
0 Kudos

Hello!

You have mentioned that some data is filled automatically on item levels. I suggest to check code there. Set breakpoint and see if you enter data only to items that have product.

Regards,

Viktor

former_member198180
Active Participant
0 Kudos

Hi Viktor,

I have checked all ready in debug mode ,i am skipping that lines but still its getting same item value. in the header level code i have checked all ready ,in entity level item number is not getting populated.so what was the error and how to solve this.

Thanks & Regards

Kalpana

former_member198180
Active Participant
0 Kudos

Hi Team,

Still i am looking help here.Please help.

Thanks

Kalpana

navn_metts
Active Participant
0 Kudos

Hi Kalpana,

Please keep a break point in the FM "CRM_ORDERADM_I_MAINTAIN_OW" and follow the same actions you are doing. once this FM is triggered check if the item number 20 is there in the importing structure.

If it is there go to desktop 2 and check the call stack. hopefully you can find from where the item 20 is added.

Br,

Navn

former_member198180
Active Participant
0 Kudos

Hi Naveen,

i have  debugged crm_orderadm_i_maintain_ow function module,but item number value is not getting filled. Number_int fiels should be empty only.

Thanks
Kalpana

navn_metts
Active Participant
0 Kudos

Hi Kalpana,

As per my knowledge this FM has to trigger twice. first time is for line item 10 and second time is for line item 20. For item 10 the ORDERED_PROD will be you entered (49002465xx) and for item 20 the ORDERED_PROD will be blank.

Please check in above way once and let me know.

Br,

Navn

former_member198180
Active Participant
0 Kudos

Hi Naveen,

Thanks for your reply.

Yes its correct.first item number 10 and product its get filled entire item 10 line item gets filled.but item 20 is coming and ORDERED_PROD should be empty..item 20 is only coming ORDERED_PROD is empty and remaining fields also empty.

Thanks & regards

kalpana

navn_metts
Active Participant
0 Kudos

Hi Kalpana,

When the FM is triggered 2nd time goto desktop2 and check the call stack. you can find out where exactly the code is written to add the line item 20.

Br,

Navn

former_member198180
Active Participant
0 Kudos

Hi naveen,

see user enter serial number on header level ,item 10 its come automatically and item 20 product id blank it comes first time only.

Thanks

Kalpana

samantak_chatterjee
Active Contributor
0 Kudos

Hi Kalpana,

It looks like the Product ID is wrongly entered. Can you check the correct product ID in the Product master ? Also, check the item group of the product. It will throw error if the correct item category is not mapped.

Hope this helps.

Thanks,

Samantak Chatterjee

former_member198180
Active Participant
0 Kudos

Hi samantak,

Thanks for your reply..see here actual  scenario is header level user enter serial number automatically filling the header Object ID and sold to party employee responsible,and item level product ID,quantity is filling automatically.

So above screen shot user enter serial number on header level, based on that item gets filled and item 20 additionally it is coming so here we don't want item 20 line..

i have checked commpro1 transaction ,please find the below image.

help here how to solve this issue.

Thanks & reagrds

Kalpana

samantak_chatterjee
Active Contributor
0 Kudos

Hi Kalpana,

This looks like a custom logic. Can you check the events and the code base which are getting triggered once the item number is entered. How are the products getting selected in the item ?

Hope this helps.

Thanks,

Samantak.