cancel
Showing results for 
Search instead for 
Did you mean: 

Personalization Menu Via Button Instead of Right-Click Menu?

Former Member
0 Kudos

Hello Experts,

I am attempting to call the standard Right-Click -> User Settings -> More... menu that controls the personalization options for a table (such as sorting the order that columns appear, and adding/removing columns from a table. I would like this screen to pop up when the user clicks a button rather than having to right-click the table (too confusing for users).

I have looked at IF_WD_PERSONALIZATION but this seems just to be a way to save/call personalization options and not a way just to call the screen that has already been built.

Is this view in a standard component somewhere that I can call? Any other way to call this menu up? I hate to re-invent the wheel....

Thanks,

Mike

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

I was finally able to resolve this. My last problem was that I was trying to call a component interface as a component. I instead should have brought this into my application as an implemented interface (click Implemented Interfaces tab from the properties view of your component and add it there).

However, to solve the original problem of explicitly calling the personalization view, I was able to find an out-of-box example by looking at the WDR_TEST_PERS_IMP_EXP component.

-Mike

Former Member
0 Kudos

Hi Michael,

I am trying to execute the Standard Demo Component WDR_TEST_PERS_IMP_EXP,

but i am getting Message as "Personalization not Possible".

Could you please help me out, although its been very long for you working on this issue,

but if possible please help me.

Thank You,

Shashikanth

Former Member
0 Kudos

Some updates on this. I have found the standard SAP interface IWD_PERSONALIZATION. As per the following link, this should provide an interface view with the screen I need:

http://help.sap.com/saphelp_nw70/helpdata/en/fd/2da442dc030e31e10000000a1550b0/frameset.htm

However, when I follow the instructions and try to make the method call INIT_PERSONALIZATION using this code:

data lo_view_controller type ref to if_wd_view_controller.

lo_view_controller = wd_this->wd_get_api( ).

DATA lo_INTERFACECONTROLLER TYPE REF TO IWCI_IWD_PERSONALIZATION .

lo_INTERFACECONTROLLER = wd_this->wd_cpifc_iwd_personalization( ).

lo_interfacecontroller->init_personalization(

i_view_controller = lo_view_controller " ref to if_wd_view_controller

i_view_element_id = 'MY_VIEW' " string

I get the following error:

Component Usage IWD_PERSONALIZATION Does Not Have an Active Component

When I then try to correct the above error by creating a component usage with this code:

data lo_cmp_usage type ref to if_wd_component_usage.

lo_cmp_usage = wd_this->wd_cpuse_iwd_personalization( ).

if lo_cmp_usage->has_active_component( ) is initial.

lo_cmp_usage->create_component( ).

endif.

I get the following error:

Error when Creating Component IWD_PERSONALIZATION. IWD_PERSONALIZATION Is a Component Interface, Therefore, an Instance Cannot Be Created. Name of Component May Not Be Specified. (Using Component: ZMYCOMP, Component Usage: IWD_PERSONALIZATION)

It seems to be impossible to create an active component for this! Can anyone please help?

Thanks,

Mike

ChrisPaine
Active Contributor
0 Kudos

Hi Mike,

It seems that the ALV manages to do this when you click on the "settings" link as well as when you right click etc - and I can't find a very good implementation of the personalisation for anything other than the ALV - running the standard DEMO_TABLE application, try right clicking there - not nearly as nice an interface.

It it the ALV style interface you want - in which case what's wrong with asking users to press the settings link? Or the standard table UI personalisation (I'd not want to expose this to users).

Cheers,

Chris