cancel
Showing results for 
Search instead for 
Did you mean: 

How to call an FPM application from Another FPM application

Former Member
0 Kudos

I want to call FPM application B from FPM application A.

FPM applications A & B are BOPF applications and reside on different system instances.

The general approach I am considering is:

  1. On the instance where FPM Application A resides, create a launchpad entry for FPM Application B using transaction LPD_CUST
  2. Create an RFC destination of type H for the launchpad “System Alias” since FPM Application B is on a separate box
  3. Specify option “Suspend/Resume” in the launchpad
  4. Navigate to FPM Application B by using IF_FPM_NAVIGATION
  5. Pass data between the 2 applications, by adding parameters to the URL and retrieving the parameters in the FPM applications

I am having a problem prototyping because of error ‘HTTPIO_PLG_CANCELED' when testing RFC connection.

Is this a correct approach?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I was able to fix the RFC error.

Once the RFC error was fixed, I was able to call a screen from FPM Application B.

However, if I try to execute an event on that screen, I get some authorization errors.

I assume that this occurs because the authorizations for Application A & B reside on different instances.

Is there a workaround?

Thanks

former_member183224
Participant
0 Kudos

Hi Raynald,

It is very much possible to do navigation between 2 Web Dynpro application in the FPM environment.

Create a launchpad customizing entry using the transaction LPD_CUST and maintain the target application details there. Now in your coding, you should use the API IF_FPM_NAVIGATION~NAVIGATE method. Create an instance of this API, and then pass the target application details in the NAVIGATE method.

This way you can navigate to the target application on click of a button in the same window.

You can use following code.

Here is a code snippet, which might help you:

ON BUTTON ACTION:

DATA : ls_navigation_key   TYPE             fpm_s_navigation_key,

            lr_navigation          TYPE REF TO IF_FPM_NAVIGATION,

            lv_target                LIKE LINE OF mr_navigation->mt_targets,

            ls_app_param        TYPE             apb_lpd_s_params,

      ls_navigation_key-key1 = lc_role.

      ls_navigation_key-key2 = lc_instance_a.

      lr_navigation = mr_fpm->get_navigation( ls_navigation_key ).

      READ TABLE lr_navigation->mt_targets

           INTO lv_target WITH KEY alias = (You can give a alias name in the LPD customizing)

      IF sy-subrc = 0.

        ls_app_param-key   = (Application Parameter Key).

        ls_app_param-value = (Application Parameter value).

        APPEND ls_app_param TO lt_app_param.

        CALL METHOD mr_navigation->navigate

          EXPORTING

            iv_target_key             = lv_target-key

            it_application_parameters = lt_app_param.

Regards,

Gourav

Former Member
0 Kudos

Gourav,

I was able to call the FPM from another FPM using the method you described. What I was trying to determine was if this was a good approach when the FPM applications are on separate instances.

One issue I am having when I call a screen from the external FPM application, is that the the screen contains buttons that use OBN. When I click on the button I get error:

Failed to resolve Object Based Navigation target <OBN System>.<OBN object>.<OBN operation>. Use transaction PFCG to define this OBN target in a role or contact your system administrator to assign a role with the relevant OBN entries to your user.

I don't get this error, if I am logged to the system where the external FPM application resides and access the screen from there.

Any ideas on how to avoid OBN error?

Thanks

former_member183224
Participant
0 Kudos

Dear Raynald,

I think in your system OBN (Object Based Navigation) has not proeprly configured.

So only you are getting this error message.

And when you logged in to your system where the external FPM application resides, that time you are not getting this error. The reason is, that time it does not call the OBN process.

I hope this will help your issue.

Thank you,

Gourav.

former_member183224
Participant
0 Kudos

This message was moderated.

Former Member
0 Kudos

Solution:

Had to import the role which contained the OBN entries from the called system instance to the calling system instance. The role in the calling system references the target system.

Thanks

Answers (0)