Skip to Content
author's profile photo Former Member
Former Member

Linking two webdynpro application

How can I call a webdynpro from another? For instance, I tried using a URL as described in a previous post' solution by Karin Schatka, but it doesn't work.

Add a comment
10|10000 characters needed characters exceeded

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Mar 31, 2004 at 12:12 PM

    Hi ED,

    a little bit more low level call of another WD url is done by the following code snippet:

    //@@begin onActionRedirect(ServerEvent)

    // Application is in the deployable object of the caller component in this case.

    IWDDeployableObject componentDPO =

    wdComponentAPI.getDeployableObjectPart().getDeployableObject();

    String appName = "RedirApp";

    WDDeployableObjectPart[] applicationParts =

    componentDPO.getParts(WDDeployableObjectPartType.APPLICATION);

    if (applicationParts == null || applicationParts.length == 0) {

    throw new WDRuntimeException(

    "Redirect error: No application parts available in: " + componentDPO.getName());

    }

    WDDeployableObjectPart appPart = null;

    for (int idx = 0; idx < applicationParts.length; idx++) {

    appPart = applicationParts[idx];

    if (appPart.getShortName().equals(appName)) {

    break;

    }

    appPart = null;

    }

    if (appPart == null) {

    throw new WDRuntimeException(

    "Redirect error: The application: "

    + appName

    + " is not a part of: "

    + componentDPO.getName());

    }

    Map urlParameters = new HashMap();

    urlParameters.put(ClientConstants.APPLICATION_PREFIX + "Param1", "Parameter sent by caller.");

    try {

    String url = WDURLGenerator.getApplicationURL(appPart, urlParameters);

    if (!Task

    .getCurrentTask()

    .getClient()

    .sendRedirect(url, ClientConstants.SESSION_EXPIRED_REDIRECT_TYPE)) {

    throw new WDRuntimeException(

    "Redirect to application: "

    + appName

    + " in dpo: "

    + componentDPO.getName()

    + " failed.");

    }

    } catch (WDURLException e) {

    throw new WDRuntimeException(e);

    } catch (IOException e) {

    throw new WDRuntimeException(e);

    }

    //@@end

    Then, somewhere in the called app, you can receive the parameter of the sample by:

    String param1 =

    Task.getCurrentTask().getWebContextAdapter().getRequestParameter(

    ClientConstants.APPLICATION_PREFIX + "Param1");

    But beware! I'm not really sure, if this is really a "legal" way of calling another application.

    Hope that helps.

    Regards

    Stefan

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.