cancel
Showing results for 
Search instead for 
Did you mean: 

Method INITIALIZE of IF_FPM_GUIBB called only once per feeder class

Former Member
0 Kudos

Hello,

i implement the IF_FPM_GUIBB interface by a custom class but my redefined initialize is called only once per feeder class.

I have added 4 UIBB to the FPM, all with the same feeder class, but everyone with a different component configuration.

I read in this thread http://scn.sap.com/message/14363099#14363099 that the initialize method should be called for every UIBB.

Does this behaviour depend on the version of the sap system?

The problem i face is that i need the config id of each uibb to add it to the event data when we raise the event. As the initialize is called only once per feeder and not per uibb i don't get the information to address them later on again.

thanks in advance for any advices

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member193369
Active Participant
0 Kudos

Hello Julia,

GUIBBs share the same feeder instances as long as their feeder class is the same and the feeder parameters are equal.

So if you want to have an individual instance for each UIBB you have to make sure that you parametrize them differently.

Best regards,

  Christian

Former Member
0 Kudos

Hello Christian,

I have test your Answer.

Also with different Parameters in the Interface-Method IF_FPM_GUIBB~GET_PARAMETER_LIST my redefined initialize is called only once per feeder class.

Thanks

Julia

former_member193369
Active Participant
0 Kudos

Hello Julia,

you have to provide different values for the parameters in the configurations of your UIBBs (simply adding different parameters in  IF_FPM_GUIBB~GET_PARAMETER_LIST without providing a value in the configuration might not be sufficient).

In case this doesn't help you to solve the issue you can debug CL_FPM_GUIBB_FEEDER_FACTO->GET_FEEDER.

...

    ls_feeder-instance_id = calc_instance_id(
                 io_parameter_node = io_parameter_node
                 it_parameter      = it_parameter ).

    read table mt_feeder
      with table key
        fpm = ls_feeder-fpm
        name    = ls_feeder-name
        instance_id = ls_feeder-instance_id
        config_instance_id = ls_feeder-config_instance_id
      into ls_feeder.

These are the lines where the reuse decision is taken. The instance id is calculated by hashing the parameters and if there is a identical in the lookup table mt_feeder the instance is reused.

Best regards,

  Christian

Former Member
0 Kudos

Hello Christian,

I think this might be the problem.

In the method GET_FEEDER there is no config_instance_id in my system. I think the instance ID was added in 7.03, but we are working with a 7.02 system.

The GET_FEEDER method looks like this in my system:

ls_feeder-instance_id = calc_instance_id( io_parameter_node ).

    READ TABLE mt_feeder INTO ls_feeder

WITH KEY name    = iv_classname

instance_id = ls_feeder-instance_id.

Could this be the problem?

Thanks

former_member193369
Active Participant
0 Kudos

Hello Julia,

no that's not the issue.

You have to make sure that the Feeder Parameters you provide in the configuration editor are different. That's all!

At least one of the parameter values has to be different in order to get an own feeder instance.

This instance id which was added later than your system state allows to add the same UIBB twice to the same "page". But this is not related to feeder instantiation.

Best regards,

  Christian