on 05-21-2013 9:50 PM
Hi Friends,
I have a FPM with a coupla of Mainviews, Subviews and UIBB's.
When I start the application, in componentcontroller of webdynpro component I use OVERRIDE_EVENT_OIF to add a new UIBB.
It works for the first time. It's proceeding GET_DEFAULT_CONFIG, GET_DEFINITION and GET_DATA.
Now I have a button and when I press this button I come to the OVERRIDE_EVENT_OIF again.
There I remove the UIBB with io_oif->REMOVE_UIBB and I add a new one with io_oif->ADD_UIBB and
the same parameters.
But this time it only passes the GET_DATA method and it does not pass the GET_DEFAULT_CONFIG, GET_DEFINITION methodes.
It seems there is still something left.
Is there a way to go through the methods GET_DEFAULT_CONFIG, GET_DEFINITION again?
Thanks for help.
Rg. Joerg
Hello Jörg,
FPM only creates one component instance per UIBB Instance key, which is defined by structure FPM_S_UIBB_INSTANCE_KEY. If you remove a component via IO_OIF->REMOVE_UIBB, it is only removed from the View assembly - the component isn't destroyed. After adding it again the same instance will be reused and therefore it will not be instanciated again.
The best way to circumvent this behaviour depends on your basis release:
Please be aware that although you get a new UIBB instance only the WebDynpro component is reinstantiated. This will cause new calls to GET_DEFAULT_CONFIG and GET_DEFINITION. Nevertheless the feeder won't be reinstantiated as feeder instances are shared between all GUIBBs using the same class with the same parameter set (as long as wiring isn't used).
Best regards,
Christian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Jörg,
creating a new instance is quite simple. When calling IO_OIF->ADD_UIBB parameter IS_UIBB_KEY has a field INSTANCE_ID. Just provide there a different value as the UIBB you removed had and that's it. For example if the initial UIBB had INSTANCE_ID = space then use INSTANCE_ID = 1.
If you want to repeat the procedure use INSTANCE_ID = 2, ...
Best regards,
Christian
Hello Pradeep,
this interface is meant to be implemented in feeder classes for Generic UIBBs (GUIBBs) such as the List UIBB or the form UIBB, where the WD component is provided by the FPM framework, while the application provides only a feeder class. If you are using a freestyle UIBB, you can re-instantiate it using the same mechanism (by raising event IF_FPM_CONSTANTS=>GC_EVENT-INVALIDATE_UIBB) but there is no need to implement this interface (as there is no such thing as a feeder class).
This interface is only necessary to inform the framework that this feeder class is using a dynamic configuration (the interface's signature is quite small). The configuration editor then offers only very limited configuration options and at runtime FPM takes care that feeder method GET_DEFAULT_CONFIG is called at the appropriate point in time.
Best regards,
Christian
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.