Closing window of web dynpro application with exit-plug don't run in the EP

Hi everybody,
I want to close a window that contains a Web Dynpro with a close button, because it's used and create as a popup from an other iView (that's not created with web dynpros) in the EP. I read the different threads how to close a window in web dynpro, like JavaScript in WD
I create a HTML file with the javascript code to close the window and it works fine, when I start the application separately.
If I used it in the portal and click the close button I get the following error message:
com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Exit-Plug must no be triggered with an URL when running in portal. Use portal navigation instead to navigate to another application!
I tried also: ...wdFirePlugExit("javascript:self.parent.close();") or some other javascript code, but got the same error message.
Then I tried:
WDPortalNavigation.navigateAbsolute(url,WDPortalNavigationMode.SHOW_INPLACE,(String) null, (String) null,(String) null);
instead of fireing the outbound plug in the action of the close button
(...InterfaceViewController().wdFirePlugExit(url);)
but than a new window with the EP open and the old is still there!
We use the NWDS2004s an the EP 7.00.
It must be possible to close a (this) window!
Thanks for any hint
christian

Hi,
   This is what you can do:
1. You have already created the HTML file with the necessary javascript in the foloowing folder structure :
src->Mimes->Components-><your component name>-><fileName.html>.
2. Create a new iView of type URL in your portal.
3. Get the absolute URL of this HTML file inside your project. This will be in the following format:
http://<server>:<port>/webdynpro/resources/sap.com/<development ComponentName>/Components/<namespace>/<fileName>.html
You can find it thus:
try {
String u = WDURLGenerator.getAbsoluteWebResourceURL(wdComponentAPI.getDeployableObjectPart(),"filename.html");
wdComponentAPI.getMessageManager().reportSuccess(u);
} catch (WDURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
4. Now enter this URL string as the URL for the iview.
5. Do a normal portal navigation to this iview on-click of the button.
Regards,
Satyajit.

Similar Messages

  • Examples of 'calling a web dynpro application with parameters'

    Hi!!
    I'm I have been watching manual 'Web dynpro for abap: advanced concepts' in the sections 'url parameters' and 'calling a web dynpro application with parameters'.
    Is there some example where these terms are seen.
    Thanks in advance.

    Hi Ana,
    a window inbound plug can have parameters.
    These parameters are automatically fished out of the URL by the framework.
    So your inbound plug handler method has easy access to the parameters.
    URL
    http://<host>:port/sap/bc/webdynpro/sap/<your application>?param1=xyz&param2=abc
    The application is configured to call an inbound interface(window) and plug.
    The plug can be declared with parameters.
    Double click on window inbound plug and add your parameters.
    The parameters are made available by framework if present in Launch URL.
    You can also call an application that has parameters  directly entered on the parameters tab.
    ie Parameters can be part of the application launch.
    regards
    Phil

  • Reg: Closing and Opening Web Dynpro Application in same browser

    Dear Experts
    In my webdynpro application when i click a button another web dynpro application is opened in another window(another browser) .
    But i want to open the second web dynpro application inside the same browser in which closing the first applicaiton and opening the second web application in same browser window .
    Please guide me to do this.
    Regards
    Arun

    hi ,
    Exit plugs have the special property that they use the defined URL parameter. After you have created the URL parameter in the parameter list on the Outbound Plugs tab page in the window editor, you can specify a value for this parameter in the method that calls the exit plug.
    ref
    link:[http://help.sap.com/saphelp_nw70ehp1/helpdata/en/48/ca3351508f04e7e10000000a42189c/content.htm]
    it would help u
    regards,
    amit

  • Close External Window in Web Dynpro Application

    Hi Folks,
    I am working on a development in Web Dynpro and I am pretty new to this topic, so I seek your help.
    The scene is:
    I have created a Web Dynpro application in which I open an URL using CREATE_EXTERNAL_WINDOW method of the Window Controller. I am able to open the window but not able to close it.
    I tried using methods,
    CLOSE()
      and
      SET_CLOSE_IN_ANY_CASE()
      but no success.
    Please guide me if anything more needs to be done for closing the opened window.
    Thank you.
    Sud.

    Thank you Thomas,
    You correctly pointed out, I was trying to close the external window from my source window.
    More precisely, I have a WD application which has a button (Search) on one of its views. On click of 'Search' button, I open a new window using 'CREATE_EXTERNAL_WINDOW' passing the URL 'www.google.com'.
    Till this point its fine, but now I want to close this newly opened window. As you said now these are 2 different sessions and cannot communicate anymore, so any guidance how to close this new window?.
    OR
    Is this the only way to call an URL i.e using CREATE_EXTERNAL_WINDOW? Is there any other way to call an URL without closing my current running WD application?
    Request your  help......
    Thanks.
    Regards,
    Sud....

  • Securing Web-Dynpro application with Netegrity

    Hi,
    I'm developing a web-dynpro application that will be secured by Netegrity SiteMinder. SiteMinder is a reverse-proxy that authenticates the user and adds the user details as additional headers to the HTTP stream. According to the documentation I found in SDN with regards to JAAS and NetWeaver it looks like SAP has added callbacks so that I can retrieve HTTP headers in my custom login-module. I've implemented a simple login-module and deployed it, but now am stuck with the following issues:
    (1) I can't seem to be able to debug the module (even when I create a simple HelloWorld.jsp and require the use of this module in the visual administrator, the debugger seems to ignore the break-points).
    (2) I can't find any possibility to configure the engine so that this specific module is required for authenticating my deployed web-dynpro application.
    My questions are as follows:
    (1) Is it possible to use standard JAAS authentication with web-dynpro applications?
    (2) How do I debug JAAS login modules?
    Regards, Chris.

    <b><b>Hi Adrian
    During the Life cycle of your application Your connection will be Released when it is inactive for particular Time (The inactive time limit will be specified in the JCo Pool Settings that would be in milli seconds)
    The RFC Connection can be Monitored using the Gateway process .
    There are Some Predefined Connections in the Gatewway Process and each connection Requires approximately 200Kb of Memory.
    So the memory cosumption of the Gateway process is proportional to the number of Active RFC Connection.
    For More Details Check This
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/85a483cb-0d01-0010-2990-c5168f01ce8a">JCo Connection Pools</a>
    Regards
    Chandran S</b>

  • Opening External Window in Web Dynpro ABAP with URL disabled or Hidden

    Hi Experts, I have a requirement where-in we want to open the Web Dynpro ABAP application using tcode WDYID (by passing the application name  and startmode), but the URL of the newly opened explorer should be disabled or hidden. To achieve the same, I have created a component (lets name it PARENT) and inside that in DOMODIFY/DOINIT method have written code to invoke the required WDA (lets name it CHILD) in external window (by using lo_window_manager->CREATE_EXTERNAL_WINDOW) and is successfully able to open the application with URL disable using different parameter of method CREATE_EXTERNAL_WINDOW. But in this case there are 2 window which opens, one is for PARENT view and other is for CHILD. Now I only want to keep the second view (CHILD) to be opened and want to close the PARENT view. When I used EXIT_PLUG to close the PARENT window, it closes both the window. Need your inputs on my approach or if you have any. Regards, Harish

    Hi,
    If you open the popup, it opens as Modal Window, originating from Parent window. Without external window( where you can pass has_location = abap_false ), you cannot hide the URL/Address bar.
    If you want to partially hide the URL( if you dont want to show the full URL with application path), you can create an Alias for the service in SICF.
    Go to SICF, and create an alias for your WDA application; say original URL: domain:port/sap/bc/webdynpro/sap/<ZAPPLICATION_NAME>
    This URL you can convert( partially hide) as, domain:port/sap/<ANY_NAME>
    Refer creating Alias in this help: http://help.sap.com/saphelp_sem320bw/helpdata/en/55/361a3c9c004866e10000000a11402f/content.htm
    Hope this helps u,
    Regards,
    Kiran

  • Calling a new Browser Window from Web Dynpro Application - Empty Context

    Hello,
    I want to open a view in a new browser window, and followed the same way which is described in this thread:
    Open view in new browser window
    My first try was creating two applications, which refer to the same Component Controller. The opening of a new browser window is triggered by an action, which is called in the other application. As both applications have the same Component Controller, I thought, the context content has to be the same, but actually the context attributes are empty after opening of the new window.
    In my second try I created two applications with two different Component Controllers, mapped via embedded Interface Controller. The effect is the same - I have no context content in the view.
    Please, can anybody help me?
    Thank you in advance.
    Ilona Seifert

    I done something like this:
    [code]
    try {
    strURL =
         WDURLGenerator.getApplicationURL(
                        "$<b>PROJECT_PATH</b>$/$<b>PROJECT_NAME</b>$",
                                            "$<b>APPLIC_NAME</b>$");
    } catch (WDURLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
    strURL += "?par1=";
    strURL +=  var1;
    strURL += "&par2=";
    strURL +=  var2;
    strURL += "&par3=";
    strURL +=  var3;
    [/code]
    and after i retrieve them:
    [code]
    Var1Value= WDWebContextAdapter.getWebContextAdapter().getRequestParameter("var1");
    [/code]

  • Web Dynpro Application Deployment need server restart?

    Hi Everyone,
    When deploying Web Dynpro application on production environment, do we need to restart the sap portal system and server?
    I have this issue that when ever we deployed new develop Web Dynpro application with new Abap Function module we need to restart our Enterprise portal production server. Is this really necessary. Is there other way to deploy Web Dynpro application with new Abap function module without restarting the server.
    Please help,
    Michael Mondelo

    Hi michel,
    for example , assume you imported a RFC bapi_flights from r/3 to webdynpro dc , and both rfc requests and webdynpro application is deployed to the development server and then moved to quality server.
    now you have done some changes in the rfc bapi_flights i  mean change in the structure .
    case 1 : now with out reimporting the change to webdynpro application and you move the request to the quality r/3, your application dumps . because the structure change is not incorporated at your webdynpro DC.
    case 2 : you have re imported the rfc incorporating the changes to the web dynpro applicaiton dc, now with out moving the structure changes request to the quality r/3 and you deploy the webdynpro Dc having the changes to your quality EP , still the applicaiton dumps because your appliction refers to the rfc with out structure change in quality r/3.
    case 3 : you have moved the abap request having the strucutre change and also the webdynpro development component where the changes are also incorporated , now on moving both , your application might dump , because the meta data cache might have been not updated with the new structure change in the quality ep server. so you have invalidate the cache in the JCos you have used to import the rfc. or else on restarting the EP server , the new structure change will be updated in the server.
    most of the cases  Invalidation of cache works and in some cases you have restart the server fo the changes to update.
    Regards
    Govardan Raj

  • How to Debug a BAPI from a Web Dynpro application

    I have a Web Dynpro application calling a BAPI, and I would very much like to see what data the Web Dynpro application is passing into the BAPI, and then debug the BAPI.
    Is there a way to do this? I'm wondering if it is possible to somehow set up the ABAP stack so that on receipt of the BAPI call, it appears on the tRFC queue waiting for execution.
    However it is done, I need a way to step through the BAPI on the ABAP stack.
    BR,
    Tony.

    Hi Anthony,
    The ABAP runtime environment contains various tools that you can use for analysis purposes, such as for debugging source code. All source code written for Web Dynpro applications in ABAP can normally be tested using the debugger.
    To allow it to test other Web Dynpro-specific program entities too, the debugger has been equipped with a special enhancement. In the phase model in the active application, you can typically see the following information at various points in time:
    -The structure of the content of the current controller,
    -The properties of the UI elements in the layout of the current view
    -The currently instantiated component usages
    Starting the Debugger
    The functions for debugging Web Dynpro entities are embedded in the new debugger. You therefore need to have selected the new debugger in your Workbench settings.
    Selecting the New Debugger
    1. In the menu, choose Utilities -> Settings.
    2. A dialog box now appears that contains two nested tab page areas. Choose the “parent” tab page ABAP Editor.
    3. The settings for ABAP Editor always open with the content of the child tab page Editor. Here, select Front End Editor (New).
    4. Now switch to the Debugging tab page in the ABAP Editor settings and select New Debugger.
    5. Save your changes and close the dialog.
    Starting the Debugging Process
    To run an application in debugging mode, you first need to set an external breakpoint in display mode in one of the methods in the component.
    Now start a test run of the application from ABAP Workbench as usual.
    The method in which you set the breakpoint depends on the purpose of the test run. To debug a view, for example, it is best to set the breakpoint in method WDDOMODIFYVIEW. Provided that the context of the view controller is not filled using a supply method, the view is fully instantiated in the phase model at this point in time.
    Selecting the Web Dynpro Tool in the New Debugger
    When you start the application, another session opens automatically for the debugger. If you have not yet saved any personal settings with regard to the layout of the debugger, the Editor tool will now appear on the left, with the Display Variables tool on the right.
    1. Select one of the three desktops in order to reconfigure it for debugging the Web Dynpro application (see Designing Work Areas).
    2. The right-hand edge of the debugger window has a bar of function icons. Choose the Replace Tools icon:
    3. In the next dialog box (New Tool) open the lowest node (Special Tools) and choose Web Dynpro.
    4. Confirm the dialog box.
    On the right of the debugger desktop, you will see that the previous tool has now been replaced by the Web Dynpro debugger. You can save this setting for future debugging activities. To do this, choose Save Layout In the debugger’s general toolbar.
    Thankyou,
    Ramganesh.

  • Replacing web dynpro application URL

    Hi Experts,
            I have created a web dynpro application with 2 views. view 1 has a button when I click on it it opens view2 in "external window". To do this I am getting absolute URL using cl_wd_utilities=>construct_wd_url and pass this URL into lr_window_manager->create_external_window and everything works great. Now, I integrated my web dynpro into MSS portal iview. When I click the button on view1 it tries to go to different URL (We have single sign on ) instead of actual URL which is "HTTP://<host>.<domain>.<extension>.<port>/sap/bc/webdynpro/sap/mycomponent". In portal the section "HTTP://<host>.<domain>.<extension>.<port>/" is getting replaced by "https://dev.xxxxx.com" and due to this a blank page opens up because this URL is not found.
    Is there any way I can get actual URL of web dynpro application? I have done plenty of reserach but could not resolve this. Please let me know if anyone has any information.
    Thanks.
    Mithun

    Mithun Dha wrote:
    Hi Experts,
    >         I have created a web dynpro application with 2 views. view 1 has a button when I click on it it opens view2 in "external window". To do this I am getting absolute URL using cl_wd_utilities=>construct_wd_url and pass this URL into lr_window_manager->create_external_window and everything works great. Now, I integrated my web dynpro into MSS portal iview. When I click the button on view1 it tries to go to different URL (We have single sign on ) instead of actual URL which is "HTTP://<host>.<domain>.<extension>.<port>/sap/bc/webdynpro/sap/mycomponent". In portal the section "HTTP://<host>.<domain>.<extension>.<port>/" is getting replaced by "https://dev.xxxxx.com" and due to this a blank page opens up because this URL is not found.
    > Is there any way I can get actual URL of web dynpro application? I have done plenty of reserach but could not resolve this. Please let me know if anyone has any information.
    >
    > Thanks.
    > Mithun
    I am not Sure what is going wrong here . How can it be different url ? You may have to check THE sso configuration and the system defintion in the portal. How ever you cannot see the actual url in THE portal url.
    Is That Correct That your wda application with view1 is loding correctly but THE opening external window is not going good? In that case you can try to change THE generated url from cl_wd_utilities=>construct_wd_url  to https protocol.

  • Error - Creating a Web Dynpro Application Accessing ABAP Functions

    Dear All,
    we are trying to implement a web dynpro application with accessing ABAP functions.
    Previous tasks:
    -     insert the ABAP system into the SLD from the NWDI System (Transaction RZ70; the ABAP system is correctly insert into the SLD => technical systems)
    -     equipped the JCO connections with the web dynpro content manager (ping and test = OK)
    It’s the standard tutorial out of the SDN called “Creating a Web Dynpro Application Accessing ABAP Functions”.
    Some hints:
    -     There are no errors after the implementation and the “rebuild” of the project in the NWDS
    -     The auto deployment works fine to the development runtime system. The application is shown in the Web Dynpro content manager
    -     The In the build log I found these entries:
    System.err] [Invoked from  com.sap.s2x.tools.GUID.getnodeaddress(GUID.java:585)]
    [System.err] java.net.UnknownHostException: FRASAPP562: FRASAPP562
    [System.err]      at java.net.InetAddress.getLocalHost(InetAddress.java:1191)
    [System.err]      at com.sap.s2x.tools.GUID.getnodeaddress(GUID.java:575)
    [System.err]      at com.sap.s2x.tools.GUID.<clinit>(GUID.java:179)
    [System.err]      at com.sap.s2x.tools.S2XGUID.getGUID(S2XGUID.java:19)
    [System.err]      at com.sap.ide.metamodel.core.i18n.LanguageState.createS2XID(LanguageState.java:191)
    [System.err]      at com.sap.ide.metamodel.core.i18n.S2XLanguageUnmarshaller.unmarshal(S2XLanguageUnmarshaller.java:52)
    [System.err]      at com.sap.ide.metamodel.core.i18n.TextPoolProxy.loadLanguageState(TextPoolProxy.java:703)
    [System.err]      at com.sap.ide.metamodel.core.i18n.TextPoolProxy.prepareLanguageForRead(TextPoolProxy.java:646)
    [System.err]      at com.sap.ide.metamodel.core.i18n.TextPoolProxy.isEmpty(TextPoolProxy.java:222)
    [System.err]      at com.sap.ide.webdynpro.checklayer.MDOChecker.check(MDOChecker.java:23)
    [System.err]      at com.sap.ide.webdynpro.checklayer.view.ViewChecker.check(ViewChecker.java:52)
    [System.err]      at com.sap.ide.webdynpro.checklayer.controller.ViewControllerChecker.check(ViewControllerChecker.java:96)
    [System.err]      at com.sap.ide.webdynpro.checklayer.controller.ControllerChecker.check(ControllerChecker.java:119)
    [System.err]      at com.sap.ide.webdynpro.checklayer.controller.ControllerChecker.check(ControllerChecker.java:56)
    [System.err]      at com.sap.ide.webdynpro.checklayer.component.ComponentChecker.check(ComponentChecker.java:181)
    [System.err]      at com.sap.ide.webdynpro.checklayer.component.ComponentChecker.check(ComponentChecker.java:56)
    [System.err]      at com.sap.ide.webdynpro.generation.Generation.check(Generation.java:2039)
    [System.err]      at com.sap.ide.webdynpro.generation.Generation.generatePersistentComponent(Generation.java:1296)
    [System.err]      at com.sap.ide.webdynpro.generation.console.GenerationConsole.generate(GenerationConsole.java:175)
    [System.err]      at com.sap.webdynpro.generation.ant.GenerationAnt.main(GenerationAnt.java:50)
    [System.err]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [System.err]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [System.err]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [System.err]      at java.lang.reflect.Method.invoke(Method.java:324)
    [System.err]      at com.sap.webdynpro.generation.ant.WDGenAntTask.execute(WDGenAntTask.java:219)
    [System.err]      at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    [System.err]      at org.apache.tools.ant.Task.perform(Task.java:364)
    [System.err]      at org.apache.tools.ant.Target.execute(Target.java:341)
    [System.err]      at org.apache.tools.ant.Target.performTasks(Target.java:369)
    [System.err]      at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
    [System.err]      at com.sap.tc.buildplugin.techdev.ant.util.AntRunner.run(AntRunner.java:112)
    [System.err]      at com.sap.tc.buildplugin.DefaultAntBuildAction.execute(DefaultAntBuildAction.java:61)
    [System.err]      at com.sap.tc.buildplugin.DefaultPlugin.handleBuildStepSequence(DefaultPlugin.java:213)
    [System.err]      at com.sap.tc.buildplugin.DefaultPlugin.performBuild(DefaultPlugin.java:190)
    [System.err]      at com.sap.tc.buildplugin.DefaultPluginV3Delegate$BuildRequestHandler.handle(DefaultPluginV3Delegate.java:66)
    [System.err]      at com.sap.tc.buildplugin.DefaultPluginV3Delegate.requestV3(DefaultPluginV3Delegate.java:48)
    [System.err]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [System.err]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [System.err]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [System.err]      at java.lang.reflect.Method.invoke(Method.java:324)
    [System.err]      at com.sap.tc.buildtool.v2.impl.PluginHandler2.maybeInvoke(PluginHandler2.java:350)
    [System.err]      at com.sap.tc.buildtool.v2.impl.PluginHandler2.request(PluginHandler2.java:102)
    [System.err]      at com.sap.tc.buildtool.v2.impl.PluginHandler2.build(PluginHandler2.java:76)
    [System.err]      at com.sap.tc.buildtool.PluginHandler2Wrapper.execute(PluginHandler2Wrapper.java:58)
    [System.err]      at com.sap.tc.devconf.impl.DCProxy.make(DCProxy.java:1723)
    [System.err]      at com.sap.tc.devconf.impl.DCProxy.make(DCProxy.java:1495)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.build(CBSBuildController.java:727)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.execCommand(CBSBuildController.java:503)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.evalCmdLine(CBSBuildController.java:442)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.run(CBSBuildController.java:314)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.exec(CBSBuildController.java:252)
    [System.err]      at com.sap.tc.buildcontroller.CBSBuildController.mainLoop(CBSBuildController.java:207)
    -     I’m able to start the application out of the Web Dynpro content manager with “run” => only the user interface is displayed without any functionality
    -     The “normal” start over the NWDS fails => error text
    “com.sap.tc.webdynpro.services.sal.core.DispatcherException: The requested deployable object 'local/J08_Flugdat_Daventdcflight~xxx.com' and application 'FlightListApp' are not deployed on the server. Please check the used URL for typos.”
    There two different URLs in use.
    Start via NWDS:
    http://frasapp562:50000/webdynpro/dispatcher/J08_Flugdat_Daventdcflight~xxx.com/FlightListApp
    Start via web dynpro content manager:
    http://frasapp562:50000/webdynpro/dispatcher/xxx.com/aventdc~flight/FlightListApp
    For test purposes, we started the BAPI (BAPI_Flight_Getlist) on the ABAP system directly. It works.
    Any ideas about the system behaviours (different URLs and missing functionality)?
    Thanks a lot in advanced!
    Best regards
    Christoph

    The Error has been solved – The implementation of a method was missing....
    Thx
    Christoph

  • How to get User Id in Web dynpro application

    Hi Experts,
    I am running web dynpro application with authentication checkbox set. I want to display user id of the user in my application. I am using following code in Init method of component controller.
    IWDClientUser wdUser = WDClientUser.getCurrentUser();
    WdContext.currentContextElement().setUserName           (wdUser.getClientUserID());
    Here I am getting some integer value as userId.
    I am not using Portals, so solutions suggested for portal are not useful for me .
    Is there any way to get this uset id.
    Thanks in advance

    hi
    try this piece of code
              IWDClientUser wdUser = WDClientUser.getCurrentUser();
              IUser user = wdUser.getSAPUser();
              if (user != null)
                        IUserAccount[] acct = user.getUserAccounts();
                        if(acct[0] != null)
                                  String strUserid = acct[0].getLogonUid();
    wdContext.currentZtms_Fm_Regupdate_InputElement().setAssoid(new String(strUserid));
    Note: Defining the IUser will show an error. To resolve this, within the properties of
    the project, choose Java build path -> Libraries -> Add external jars ->
    com.sap.securities -> lib -> com.sap.security.api. Open this file and retype the code.

  • Using IGS in Abap web dynpro application

    Hi ,
    I would like to develop an Abap web dynpro application with complex graphs.
    There is an installation of IGS services.
    In the layout screen I see only graphic basic options.
    In thr internet I saw much more options in the graphic label. ( WD applic-> view-> layout ).
    Does anyone know how to add this options to the view layout?
    Thenks,

    עיחיחןלכלןעל

  • Using EJBs in Web Dynpro Applications

    I have recently started to develop Web applications using the Web Dynpro framework. Coming from a pure J2EE world, I must admit that Web Dynpro has a few innovative features that I find interesting for user interface development. The use of component & view contexts, for example, is not unlike the ActionForms that one may find in a Struts application, but pushed a bit further. No complaints here.
    What I do have some problems with is the whole CommandBean paradigm that is put forth by SAP (refer to the document <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/using%20ejbs%20in%20web%20dynpro%20applications.pdf">Using EJBs in Web Dynpro Applications</a>).
    I do understand the usefulness of defining a model that will be used to generate and eventually bind to Context data structures. That's fine. What I do object to is the use of a so-called CommandBean to play that role. Again, coming from a J2EE world, I am familiar with the BusinessDelegate pattern - which would typically be used by a client application to invoke business logic on the server side. I would propose that a better, cleaner way of integrating EJBs with the Web Dynpro framework would be to use a BusinessDelegate for invoking business logic, and importing a separate and distinct ModelBean (instead of a CommandBean) to be used for defining and binding to Context data.
    I have built one Web Dynpro application thus far. Instead of using a CommandBean, I created a ModelBean that extends my business object DTO (Data Transfer Object) (which is quite appropriate for that role, given that it implements all the get & set methods that are required for the business data that I need to model). My Web Dynpro application also makes use of an independant BusinessDelegate that is packaged with my EJB DC - this is a standard best practice on J2EE projects. I have been asked by the people working with me to modify this architecture to bring it more in line with the SAP way of doing things. I am open-minded and willing to learn and accept new ways of thinking and doing things. However, I fail to understand the usefulness of merging structure and behaviour by resorting to CommandBeans:
    - <b>It violates the MVC paradigm</b> by having one object (the CommandBean) serve as both model AND controller as far as the Web Dynpro application is concerned. The CommandBean is obviously a model - since it is literally imported as such into the Web Dynpro application. It is ALSO a controller from the Web Dynpro's application perspective, since all calls to the back-end go thru the CommandBean via one or more of its execute_xxx methods. In contrast, the use of a business delegate by the Web Dynpro application clearly separates the model (the CommandBean... or rather, a more suitably named ModelBean) from the controller (BusinessDelegate).
    - <b>Doesn't carry its own weight</b>. In other words, I haven't yet been provided with any valid justification for going thru the extra effort of coding the CommandBean's execute methods. It's been proposed to me that it somehow serves as an abstraction layer between the Web Dynpro application and the business logic. I would argue that it is the BusinessDelegate's role to abstract away the back-end logic from clients. If one does have a BusinessDelegate available, I would argue there's no need to code execute methods in a separate CommandBean. To prove my point, I would simply point out that all of the CommandBean examples that I have seen so far, either in How-To documents, or in production code, all follow the same pattern....
    CommandBean.execute_doSomething() calls BusinessDelegate.doSomething()
    Not a heck of an "abstraction" layer... I would in fact argue that it is worse than useless. If some major change occurs in the business logic that requires changing the doSomething() operation, we expect of course to modify the BusinessDelegate. The Web Dynpro client will also presumably need to be modified - that's to be expected, and unavoidable. But then, we'll also need to go about and change the CommandBean's execute_doSomething() method - again, extra work for no apparent benefit. Adding and removing business methods has the same implication. All this for an layer that simply adds the prefix execute_ in front of all business method calls... Is this "abstraction layer" worth the cost of creating and maintaining it ??
    - <b>Unnecessarily complicates error handling</b>. I have been told that for technical reasons, it is recommended that all exceptions thrown by the CommandBean be of type WDException or WDRuntimException. But what if the client application needs to react differently to different failure scenarios ? When I create a business object, I might wish to provide the user with an error messages if connection is lost to the backend, and with a different error message if an object already exists in the database with the same attributes. In order to do that, I will have to catch the WDException, extract the cause, and continue processing from there... possible, yes, but clearly less standard and more labor intensive than the classical try/catch mechanism.
    To say nothing about the fact that SAP's own API documentation clearly states that applications using Web Dynpro can reference and catch WDExceptions, but THEY MUST NOT THROW OR EXTEND IT !
    - <b>Produces unnecessary DCs</b>. Page 6 of the aforementioned document presents an architectural view of a Web Dynpro project that uses a CommandBean. Why an extra DC for the CommandBean ?? I created my ModelBean class right inside the Web Dynpro project (in the Package view). That, to me, is where this class should reside, because it is created for no other reason that to be used by this particular Web Dynpro application. What is the benefit of placing it in its own independant DC ?
    - <b>Not a typical application of the Command pattern</b>. The well-documented command pattern (Design Patterns - Gang of Four) has been devised mainly to enable encapsulation of request as objects, thereby making it possible to:
    - specify, queue and execute requests at different times
    - decouple execution of a command from its invoker
    - support undo operations
    - support logging changes so that they can be reapplied in case of system crash making it possible to assemble commands into composite commands (macros), thereby structuring a system around high-level operations built on primitive operations.
    None of this applies to the way the SAP CommandBeans are being used. Not that much of an issue to people new to J2EE and/or OO development... but quite confusing for those already familiar with the classic Command pattern.
    At this point, I fail to understand the advantage of merging structure (model) and behaviour (execute methods) through the use of a unique CommandBean object. Am I missing something ?

    Hi Romeo,
    You would be disappointed, this reply ain't anywhere nearby to what you are talking about...
    I wanted to mail you, but you have not mentioned your email in your profile.
    I am really impressed by your flair for writing. It would be far better had you written a blog on this topic. Believe me, it would really be better. There is a much wider audience waiting out there to read your views rather than on the forums. This is what I believe. To top it, you would be rewarded for writing something like this from SDN. On the blogs too, people can comment and all, difference being there you would be rewarded by SDN, here people who reply to you would be rewarded by you. Doesn't make  much a difference.
    Anyways the ball is still in your court
    As far as I am concerned, it has still not been much time since I have started working on Web Dynpro. So can't really comment on the issue...
    Bye
    Ankur

  • Web Dynpro integration with R/3

    Dear all,
    We have the following requirement in Web Dynpro integration with R/3
    We have to update the local SQL tables based on R/3 system return values. R/3 system should call the webdynpro business method for updating local SQL Status table.  In the R/3 system after purchase order is created, via user exit it should call and update some fields in the local SQL tables. To solve this problem we have thought of following solutions possibility:
    1.       In R/3 system based on user exit, it calls the ABAP Proxy ->  XI (SOAP Adapter) -> Web Dynpro Web Service in WebAS->  XI -> ABAP Proxy -> User exit – PO continues.
    2.       In R/3 system based on user exit, it calls directly web service then web service goes to user exit.
    3.       In R/3 -> user exit -> ABAP Proxy – JDBC Adapter -> SQL stored procedure call - > user exit.
    Please give your valuable suggestion or any other options to solve above problems.
    And another one question is how to create web service and deploy into WebAS through webdynpro project?. Kindly guide us to the correct document for creating webservice through webdynpro or any other related url link.
    Advance thanks,
    S.Saravanan.

    Hi Sarvanan,
    Please refer to the following link for help on webservice,
    Creating webservice, http://help.sap.com/saphelp_nw2004s/helpdata/en/db/99c04ba22fe64f96a8651df68eab92/frameset.htm
    Consuming a Web Service in JAVA,
    http://help.sap.com/saphelp_nw2004s/helpdata/en/81/12703e5da3e946e10000000a114084/frameset.htm
    Consuming webservices in webdynpro,
    http://help.sap.com/saphelp_nw2004s/helpdata/en/91/9c2226df76f64fa7783dcaa4534395/frameset.htm
    I feel once you go through these links you yourself will be in a much better position to decide upon to your design options.
    Reply back for more help,
    Guru.

Maybe you are looking for

  • To attach a Phone or a vehicle to a particular position in Organisation

    Hi Experts, Is it possible to attach a Phone or a vehicle to a particular position in an organisation so that an employee holding that particular position may be able to access them. Scenario is like a Phone & Car is issued to a particular position l

  • Execute SQL Task Error

    I am using the following query in Execute SQL Task SELECT CASE(SELECT COUNT(*) FROM STG_APJ_APIW_DETAILS WHERE source_filename = ? AND lTRIM(RTRIM([BILLING DATE])) <> '') WHEN 0 THEN (SELECT CONVERT(VARCHAR(8), GETDATE(), 112) AS [YYYYMMDD]) ELSE (SE

  • RFBIBL00 - updating long text

    Hello Experts, I am using RFBIBL00 program to post documents through FB01. I have a requirement to update longtexts. I updated BBKPF, BBSEG structures and wrote to a file which is the input for the program RFBIBL00. Everything is working fine but i c

  • Downgrade CC to CS6

    Hi, Is it possible to downgrade CC to CS6 and get back Photoshop CS6 within CreativeCloud for my team? After recent update there is so much f***-ups (eg. invisible/deactivated layers are still selectable) so we cannot basically do any web-design. Tha

  • Collaboration Launch Pad Error

    Hi We are using NW2004s EP7 SP 12. Exception Class:  class com.sapportals.wcm.WcmException Exception Message:  Could not execute command 'com.sap.ip.collaboration.coreui.api.people.flexibleui.CLPUICommand' Call Stack: com.sapportals.wcm.WcmException: