cancel
Showing results for 
Search instead for 
Did you mean: 

How to change a component which is already enhanced

Former Member
0 Kudos

Hello,

I have to add a checkbox to the BP_HEAD_SEARCH/MainSearch View and adjust the Event EhOnSearch.

The normal way to do that is to enhance the component and the view. But the problem is that you can use only one enhancement set per client and we use already the SAP CRM eXPRESS package which is nothing else than an enhancement set.

In the old CRM system you can create your own BSP application, set up a runtime framework profile, replace the component, create an IC WebClient Profile and assign this profile in organizational

management. But like the name suggests it is an IC profile. Does this also work in the Web UI?

I tried a lot of things but nothing works. I always see the standard view.

Any help will be appreciated.

Best regards,

Stefan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Have you tried using the badi 'COMPONENT_LOADING'. I think this is a solution to your problem.

You can define your own determination logic (for example, based on the business role of the user) in a customer implementation.

Regards,

Shrita.

CarstenKasper
Active Contributor
0 Kudos

Hi,

this BAdI will help during runtime, no questions asked.

I doubt that it is possible, however, to make an enhancement of an already enhanced component. The problem is that you need to load BOTH enhancement sets.

I do not know what would happen if you implemented the BAdI in the following way:

Get both enhancement sets. Iterate over the second enhancement set if the object is enhanced. If yes you are done. If no then check the first enhancement set.

Anyway, I fear that it might perhaps work during runtime, but I have serious doubts that it will be possible to use it in the component workbench properly.

Maybe someone here who has tried it? Or a SAP employee?

cheers Carsten

Former Member
0 Kudos

Thanks for the responses!!

@shrita sharma

I tried this. But the problem with this solution is, that even if you select the business role the whole application for this user will use the own enhancement set instead of the SAP one.

If it will be possible to assign an enhancement set to a component that solution would be ok. But thats not the case.

I found a really simple solution for the problem.

Create your own BSP-Application, Create your own enhancement set. Enhance the component and the view you want.

Then open the transaction SM34 choose the Viewcluster 'BSPWDVC_CMP_EXT'.

Now you can see both enhancement sets.

Select the SAP one -> go to the enhancement definitions select/replace/add the component you want to enhance and insert your BSP application -> specify your controller substitutions -> ready.

You always use the SAP enhancement set, you have your own repository for code changes and you only have to customize. I think a better way isn't available.

Now, I want to make the same changes from BP_HEAD_SEARCH (for UI profiles) in ICCMP_BP_SEARCH (for IC WebClient) profiles. But I can't make my changes (my enhanced view) visible. I tried it with assigning ic webclient framework profiles. Is this the right way?

Thanks,

Stefan

CarstenKasper
Active Contributor
0 Kudos

Hi Stefan,

interesting approach. It should work for components that have not been enhanced before.

For components which have already been enhanced, say:

BP_HEAD --> YBP_HEAD

It might be different when you want to have a:

BP_HEAD -->YBP_HEAD --> ZBP_HEAD

Meaning an enhancement of an already enhanced component. The aim is to take over all additional logic made in YBP_HEAD to ZBP_HEAD.

The second drawback is that you alter SAP namespace. With the next service pack you might get a problem.

Seems you are pioneering on this. Please keep us posted if you have any good discoveries!

cheers Carsten

Former Member
0 Kudos

Hello Carsten,

you're right. But I was lucky enough that that's not the case. So the way I described works without intricacies.

Regards,

Stefan

Answers (1)

Answers (1)

robert_kunstelj
Active Contributor
0 Kudos

Did you assign your enhancement set in SM30 --> BSPWDV_EHSET_ASG?

Former Member
0 Kudos

Thanks for fast response.

As i wrote there is already an SAP enhancement set in use. And I don't want to use another, because that will have an influence on the look&feel of the application.

CarstenKasper
Active Contributor
0 Kudos

Hi Stefan,

interesting one. I have been asked the same question back in december by a colleague of mine.

Sadly there is no solution I know of.

Every ISV trying to develop a template (that is what the Y namespace is for ) on basis of CRM 6.0 using enhancement sets is going to face it.

My answer to my colleague was: I suppose that it is possible to more than one enhancement set active. All you have to make sure is that the correct replacements are given and used. The rest should be handled by inheritance and the things that are always copied.

This holds true for runtime. Development in such an environment will get tricky and is not that easily solved.

This short answer includes a lot of work. Ask SAP about it!

cheers Carsten