cancel
Showing results for 
Search instead for 
Did you mean: 

enhancing search object BTQuery1o

raj_kumar86
Participant
0 Kudos

Hi,

I am very new to CRM. i need to enhance the search object BT Query1o with new zfield (custom) for the comoponent icccmp_bt_inr. what are the nesccessary steps to be followed as it is of type cs_prm_bol_query_service, what is the different from cs_prm_bol_dquery_service?

Thanks,

RaJ.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi RaJ,

most guides for SAP CRM Web UI Business Transaction Search Enhancement tell you how to implement a BADI or how to hack the search query object even in cases you just want to add some simple fields as search criteria or result list field.

Because I didn´t want to develop in cases it is not needed, I searched for a better solution. And I found it. I hope my solution will help you too.

http://www.hybrid-eichhoernchen.de/business-transaction-search-enhancement/

Kind regards,
Peter

raj_kumar86
Participant
0 Kudos

I am very new to CRM. i need to enhance the search object BTQuery1O with new zfield (custom) for the comoponent icccmp_bt_inr. what are the nesccessary steps to be followed as it is of type cl_crm_bol_query_service, what is the different from cl_crm_bol_dquery_service?

sorry for mistakes in in typing for my previous posting....

raj_kumar86
Participant
0 Kudos

Hi Gangadhar,

May I know, how exactly we can find the class name CL_CRM_QUERY1O_RUN_BTIL to be enhanced for BTQuery1O, as well after copying to Zcalss and modify method, then how it get invoked...?

awaiting for reply...

Former Member
0 Kudos

Hi ,

In Customer Relationship Management->CRM Cross-Application Components->Generic Interaction Layer/Object Layer->Component-Specific Settings->Business Transactions->Define Custom Handler Classes for Business Transaction Model Nodes

You need to give the external obj name BTQuery1O and the handler class -


Z CLASS name.

You can put a break point in methods GET_RESULT_LIST and IF_CRM_QUERY_RUNTIME_BTIL~GET_QUERY_RESULT of the class CL_CRM_QUERY1O_RUN_BTIL to check how result is fetched.

Regards,

Gangadhar.S

Edited by: gangadhar rao on Mar 30, 2011 8:13 AM

raj_kumar86
Participant
0 Kudos

Hi Gangadhar,

requirement is, After adding zfield to search screen, then need to filter the entries with comparing zfield which exists in table 'CRMD_ORDERADM_H', is it automatically take care for filtration after add of zfield or I need to compare and remove entities which are not matching with entered zfield value in screen,

as well what ever the path shown is to make BTQurery1O will uses zclass after maintaining it, I am right?

so u r suggested that need to maintain object name with class, but here it showing object name and structure name?..

looking forward for your help,....

Former Member
0 Kudos

Hi,

You need to give the z class name in the structure name

Example if the class name is ZCL_CRM_QUERY1O_RUN_BTIL to need to give ZCL_CRM_QUERY1O in the structure name removing RUNBTIL .

After getting the results from GET_RESULT_LIST compare the results and modify .

Regards,

Gangadhar.S

Edited by: gangadhar rao on Mar 30, 2011 9:12 AM

raj_kumar86
Participant
0 Kudos

Hi Gangadhar,

so what exactly I understand is :

1. first enhance the structure CRMST_QUERY1O_BTIL with new zfield by append structure.

2. then copy the class CL_CRM_QUERY10_RUN_BTIL to Zclass then modify method get_quary_result

at the point after GET_RESULT_LIST for filtration.

3. then maintain zclass at Define Custom Handler Classes for Business Transaction Model Nodes in SPRO transaction,

what ever the path shown by you...

is it ok to complete this application...or any further steps also needed...?

case - 1:

I heared for some of search extension,

1. enhance structure

2. enhance search class

3. enhance API for GENIL

4. enhance Database....

In which case we do all these...

also how we can find API for this...?

case - 2:

I seen one of forum which says :

I am trying to add a field in the IC Interaction History. I have enhanced the BOL structure for BTQuery10 and displayed the field in the Web UI. I have implemented the BADI CRM_RF_SEARCH_EEW, Added entry to CRMC_REPDY for the field.

But when i enter any value in the Field it is not executing the BADI. I tried with the Break Point but it has not executed the BADI.

You can redefine the genil CL_CRM_BTIL->get_query_dynamic_result method (oneorder) and write the logic only for required object else all the one order objects will be affected.

when we use this process...

looking forward, sorry for making you to get answered a lot...please....

Former Member
0 Kudos

Hi Raj,

Try this:

1. Add Z fields in CRMST_QUERY10_BTIL, append z fields in standard structure

2. Copy class CL_CRM_QUERY1O_RUN_BTIL in to Z Class - ZCL_QUERY1O_RUN_BTIL

3. Change READ_BUSINESS_TRANSCTION write below code:

If is_query10-YOURFIELDNAME is not initial.

Call method get_range

exporting

iv_value = is_query10-YOURFIELDNAME

Importing

et_range = lt_range

endif.

add above code for all your fields. Make sure that your lt_range is different for all fields.

4. Go to table CRMC_OBJ_BTIL_C in sm30 and maintain your custom class name for query object. Dont enter RUNBTIL here.

5. Maintain these ZFIELDS in Standard table CRMC_REPDY in sm30. enter appropriate dyn method. Your dyn method depends upon the area you are extending. Scan through present entries and you would get fair idea. In case you are enhancing activity header then you dyn method should be dyn_activity_h. Also here you will have to define the database table where your field resides on Db. Like for activity header its crmd_activity_h~yourfieldname.

Trust this solves your issue.

Please let me know if this helps.

e Regards,

Bhushan

Former Member
0 Kudos

Hi Raj,

after appending your z structure to standard search structure if you want to search the OneOrder objects you should use Enhancement Spot ES_CRM_RF_Q1O_SEARCH (method Search) to implement your logic for search.

Regards

Snehasish

raj_kumar86
Participant
0 Kudos

Hi Bhusan,

as we copied calss CL_CRM_QUERY1O_RUN_BTIL in to Z Class - ZCL_QUERY1O_RUN_BTIL,

and modifying method READ_BUSINESS_TRANSCTIONS, in this method we need to call super class method in addition to

modifications, this method is private, so how we call?

thanking you.

Best Regards,

Raj

Former Member
0 Kudos

Hi Raj,

Copy code from standard method READ_BUSINESS_TRANSACTIONS and paste it in your redefined method. Then add code for your custom fields.

Then you don't have to make a call to super method.

e Regards,

Bhushan

raj_kumar86
Participant
0 Kudos

Hi Bhushan,

I followed what ever u suggested but no results, any changes?

Former Member
0 Kudos

Hi,

You need to extend the structure CRMST_QUERY1O_BTIL with Z FIELD and copy the class CL_CRM_QUERY1O_RUN_BTIL to Z CLASS and modify the method IF_CRM_QUERY_RUNTIME_BTIL~GET_QUERY_RESULT .

Regards,

Gangadhar.S