cancel
Showing results for 
Search instead for 
Did you mean: 

Confused --> How to enhance the famous search BTQuery1O?

Former Member
0 Kudos

There are a few very good posts about how to enhance the order search in webclient 7.0, one is like

However after reading all the posts, it just confuses me for what are the steps to enhance the search.

I thought I only need to do two steps:

1) Append structure by adding zz-field (like zzprocess_type) to CRMST_QUERY1O_BTIL

2) Define the dyn. search field in CRMC_REPDY like:

Selection field : zzprocess_type

Fld Name in Database : CRMD_ORDERADM_H~PROCESS_TYPE

Dynamic Access Name : DYN_ORDERADM_H

Call Method : ' '

Since in CRMC_REPDY, SAP system already has all the information about the zz-field, SAP should be able to construct the select statement properly based on CRMC_REPDY.

I tested it, nothing happens.

So I reviewed all the posts again, there are multiple versions:

1) In addition to what I've done, I need to define z-handler BTIL class, enhance it and change entry in CRMCOBJ_BTIL_C

2) Implement BADI CRM_BADI_RF_Q1O_SEARCH

3) Implement BADI crm_badi_rf_q1o_filter

4) Implement another BADI whose name ends with EEB (can't remember the name)

So people, what are the right approach to enhance this search that many projects would need to do? I think the twe steps I've done are necessary, but I have no idea whatelse should be done, because there are conflicting information in the posts, I don't know which one to follow and how.

Anyone, who make the search enhancment work can share your solution?

In hte end, if I already defined he Dyn. field in CMRC_REPDY, why would I need to implement any BADI? for me, either you need to implement BADI or define the Dyn. field. but you do not need both.

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

If you have used AET to create the custom fields, CRMC_REPDY would have relevant values and you wont have to add them.

Now you will have to add these custom fields in search structure and then enhance BTIL class for query to perform search based on your input fields. And lastly you will have to give name of your enhanced class in table CRMCOBJ_BTIL_C.

You might have to add these fields in design layer in case they are not visible in configuration tab.

Regards,

BJ

Former Member
0 Kudos

Hi BJ,

you helped a lot of people for this search thing, hope you can help me out here.

So I just made a z-copy (ZCL_CRM_QUERY1O_RUN_BTIL) of the CL_CRM_QUERY1O_RUN_BTIL and modified the READ_BUSINESS_TRANSACTIONS accordingly.

Then I maintained the table CRMV_OBJ_BTIL in sm30 by adding the ZCL_CRM_QUERY1O as the second structure name (the first structure name is CRMST_QUERY1O_BTIL as it comes with the system) for BTQuery1O (BTW, the entry for BTQuery1O already exists in the system, so I can't create a new one for BTQuery1O, thus I just modified the existing entry by adding ZCL_CRM_QUERY1O as the second structure name )

When I test the web UI setting breakpoint, the process does NOT stop at my z-class, rather it still stops at the sap class. What is wrong here?

Thanks

Jayson

Former Member
0 Kudos

Also I tried adding a new entry in CRMV_OBJ_BTIL as below

Ext.Object Name: zzBTQuery1O

Object Name: <_>

Description:

Object Type: tried both as Search Object or left it empty

Structure: CRMST_QUERY1O_BTIL

Structure: ZCL_CRM_QUERY1O

Result Object Name: BTOrder

it does not work either. HTe process just does not stop at my z-handler class, but rather in SAP standard one.

Former Member
0 Kudos

Hi,

You will have to add entry in table CRMC_OBJ_BTIL_C with external object name = BTQuery1O and class ZCL_CRM_QUERY1O_RUN_BTIL. This will trigger your custom class whenever your query is executed.

All the best...

Regards,

BJ

Former Member
0 Kudos

BJ

1) how to add an entry in CRMC_OBJ_BTIL_C?

2) If I add a new entry to link BTQuery1O and class ZCL_CRM_QUERY1O_RUN_BTIL, then what is hte point to maintain the table CRMC_OBJ_BTIL?

This is the thing that confuses me, in my opinion, if it's designed in the right way, the z-handler class, the CRMC_OBJ_BTIL_C and CRMC_OBJ_BTIL, are all redundant. The config in CRMC_REPDY already provides SAP all data it needs to build the query.

Nevertheless, appreciate if you could answer the above questions, so I can continue to try it.

Thanks

Points awarded and more will be given.

Former Member
0 Kudos

in se16, when I click the button "Create Entries" for CRMC_OBJ_BTIL_C, I got error saying "Table maintenance not allowed for table CRMC_OBJ_BTIL_C".

Apparently there is no maintenance view available for CRMC_OBJ_BTIL_C

Former Member
0 Kudos

Hi Jayson,

You would have to make the ZZFields entry into another standard table CRMC_Q1O_FIELDS.

Please refer thread :-

[Thread: Enhance BTQ1Order with new Parameter|]

- Dedeepya

Former Member
0 Kudos

sm30->table name->find maintenance view

I guess it would be CRMV_OBJ*******

Regards,

BJ

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Jayson,

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