Dynamic insertion of MIME object into a web dynpro component

Hi,
I want to dynamically insert a MIME object of type JPEG or type GIF into my web dynpro component at runtime.
I was unable to find the database table which contains the list of MIME objects for a particular web dynpro component.
Can you please help me out with this?
Thanks in advance,
Adithya
Moderator message: wrong forum, please have a look in the "Web Dynpro ABAP" forum.
Edited by: Thomas Zloch on May 23, 2011 9:55 AM

Hi Muzammil Bichoo ,
                               when you copy the wda component, it will be copied and will be in active state, once all the components are activated means, windows, views, everything will be available.
now create application for your component, if you have more than one window(interface view) select the one which you need for the application.
Regards
Sarath

Similar Messages

  • Callable object - Implementing a Web Dynpro Component

    Hi,
    I am trying out the tutorial for implementing Web Dynpro Callable object.
    I think i have missed to add some library.
    Can anybody guide me for importing the correct library?
    It is not able to recognise the WebDynproResourceAccessor class.
    Also mention what other library i need to import for this.
    <b>WebDynproResourceAccessor resourceAccessor = new WebDynproResourceAccessor(textAccessor);
    StructureInfo input = techDesc.getInputStructureInfo();</b>
    Regards
    Satya

    Hi Satya,
    You need to add the following DC's as used DC's to your WebDynpro DC:
    caf/eu/gp/api
    caf/eu/gp/api/wd
    Then, you should be able to use the following code for accessing the message pool:
    IWDTextAccessor textAccessor = wdComponentAPI.getTextAccessor();
    GPWebDynproResourceAccessor resourceAccessor = new GPWebDynproResourceAccessor(textAccessor);
    Johan

  • Web Dynpro Component cannot be found in list when Creating Callable Object

    Hi All,
        I have created a web dynpro component and implemented the IGPWebDynproCO interface, after that I deployed it into the J2EE engine.
        But in the step of choosing the web dynpro component as a callable object, I cannot find the one I created.
        Any suggestion or idea?
        Thanks,
    YiNing

    Hi,
    Check out these links :
    -> Composite Application Framework Tutorial Center
    SAP Composite Application Framework - CAF Tutorial Center [original link is broken]
    ->Creating a Callable Object: Composite Application Web Dynpro Component https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ac4c81d1-0c01-0010-adb0-bb14220343c2
    Regards,
    Indu
    Edited by: Indu Garg on Feb 28, 2008 12:33 PM

  • Help inserting a flash video into my web page

    Hello!
    I'd love some help inserting a flash video into my web page. My web page is hosted by Viviti, templated, and edited online. I can add html to it, and I have the html source for my flash video. I also have uploaded the flash file to the server. Since I am very html illiterate, though, I need some help rewriting the html script so it can be published. There are two problems- firstly, no 'headers' or 'body' allowed in the script- these are already a part of the template. Secondly, I don't know how to rewrite it to refer to the uploaded files. It's also imperative that the full screen mode functions. I've pasted the source code for the flash video here. Please help!!!
    Thanks!
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Drag and drop labelling</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    //v1.7
    // Flash Player Version Detection
    // Detect Client Browser type
    // Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
    var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
    var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
    var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
    function ControlVersion()
         var version;
         var axo;
         var e;
         // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
         try {
              // version will be set for 7.X or greater players
              axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
              version = axo.GetVariable("$version");
         } catch (e) {
         if (!version)
              try {
                   // version will be set for 6.X players only
                   axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                   // installed player is some revision of 6.0
                   // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
                   // so we have to be careful.
                   // default to the first public version
                   version = "WIN 6,0,21,0";
                   // throws if AllowScripAccess does not exist (introduced in 6.0r47)          
                   axo.AllowScriptAccess = "always";
                   // safe to call for 6.0r47 or greater
                   version = axo.GetVariable("$version");
              } catch (e) {
         if (!version)
              try {
                   // version will be set for 4.X or 5.X player
                   axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
                   version = axo.GetVariable("$version");
              } catch (e) {
         if (!version)
              try {
                   // version will be set for 3.X player
                   axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
                   version = "WIN 3,0,18,0";
              } catch (e) {
         if (!version)
              try {
                   // version will be set for 2.X player
                   axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                   version = "WIN 2,0,0,11";
              } catch (e) {
                   version = -1;
         return version;
    // JavaScript helper required to detect Flash Player PlugIn version information
    function GetSwfVer(){
         // NS/Opera version >= 3 check for Flash plugin in plugin array
         var flashVer = -1;
         if (navigator.plugins != null && navigator.plugins.length > 0) {
              if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
                   var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
                   var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
                   var descArray = flashDescription.split(" ");
                   var tempArrayMajor = descArray[2].split(".");               
                   var versionMajor = tempArrayMajor[0];
                   var versionMinor = tempArrayMajor[1];
                   var versionRevision = descArray[3];
                   if (versionRevision == "") {
                        versionRevision = descArray[4];
                   if (versionRevision[0] == "d") {
                        versionRevision = versionRevision.substring(1);
                   } else if (versionRevision[0] == "r") {
                        versionRevision = versionRevision.substring(1);
                        if (versionRevision.indexOf("d") > 0) {
                             versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                   var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
         // MSN/WebTV 2.6 supports Flash 4
         else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
         // WebTV 2.5 supports Flash 3
         else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
         // older WebTV supports Flash 2
         else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
         else if ( isIE && isWin && !isOpera ) {
              flashVer = ControlVersion();
         return flashVer;
    // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
    function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
         versionStr = GetSwfVer();
         if (versionStr == -1 ) {
              return false;
         } else if (versionStr != 0) {
              if(isIE && isWin && !isOpera) {
                   // Given "WIN 2,0,0,11"
                   tempArray         = versionStr.split(" ");      // ["WIN", "2,0,0,11"]
                   tempString        = tempArray[1];               // "2,0,0,11"
                   versionArray      = tempString.split(",");     // ['2', '0', '0', '11']
              } else {
                   versionArray      = versionStr.split(".");
              var versionMajor      = versionArray[0];
              var versionMinor      = versionArray[1];
              var versionRevision   = versionArray[2];
                 // is the major.revision >= requested major.revision AND the minor version >= requested minor
              if (versionMajor > parseFloat(reqMajorVer)) {
                   return true;
              } else if (versionMajor == parseFloat(reqMajorVer)) {
                   if (versionMinor > parseFloat(reqMinorVer))
                        return true;
                   else if (versionMinor == parseFloat(reqMinorVer)) {
                        if (versionRevision >= parseFloat(reqRevision))
                             return true;
              return false;
    function AC_AddExtension(src, ext)
      if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext+'?');
      else
        return src + ext;
    function AC_Generateobj(objAttrs, params, embedAttrs)
      var str = '';
      if (isIE && isWin && !isOpera)
        str += '<object ';
        for (var i in objAttrs)
          str += i + '="' + objAttrs[i] + '" ';
        str += '>';
        for (var i in params)
          str += '<param name="' + i + '" value="' + params[i] + '" /> ';
        str += '</object>';
      else
        str += '<embed ';
        for (var i in embedAttrs)
          str += i + '="' + embedAttrs[i] + '" ';
        str += '> </embed>';
      document.write(str);
    function AC_FL_RunContent(){
      var ret =
        AC_GetArgs
        (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
         , "application/x-shockwave-flash"
      AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
    function AC_SW_RunContent(){
      var ret =
        AC_GetArgs
        (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
         , null
      AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
    function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
      var ret = new Object();
      ret.embedAttrs = new Object();
      ret.params = new Object();
      ret.objAttrs = new Object();
      for (var i=0; i < args.length; i=i+2){
        var currArg = args[i].toLowerCase();   
        switch (currArg){     
          case "classid":
            break;
          case "pluginspage":
            ret.embedAttrs[args[i]] = args[i+1];
            break;
          case "src":
          case "movie":     
            args[i+1] = AC_AddExtension(args[i+1], ext);
            ret.embedAttrs["src"] = args[i+1];
            ret.params[srcParamName] = args[i+1];
            break;
          case "onafterupdate":
          case "onbeforeupdate":
          case "onblur":
          case "oncellchange":
          case "onclick":
          case "ondblclick":
          case "ondrag":
          case "ondragend":
          case "ondragenter":
          case "ondragleave":
          case "ondragover":
          case "ondrop":
          case "onfinish":
          case "onfocus":
          case "onhelp":
          case "onmousedown":
          case "onmouseup":
          case "onmouseover":
          case "onmousemove":
          case "onmouseout":
          case "onkeypress":
          case "onkeydown":
          case "onkeyup":
          case "onload":
          case "onlosecapture":
          case "onpropertychange":
          case "onreadystatechange":
          case "onrowsdelete":
          case "onrowenter":
          case "onrowexit":
          case "onrowsinserted":
          case "onstart":
          case "onscroll":
          case "onbeforeeditfocus":
          case "onactivate":
          case "onbeforedeactivate":
          case "ondeactivate":
          case "type":
          case "codebase":
          case "id":
            ret.objAttrs[args[i]] = args[i+1];
            break;
          case "width":
          case "height":
          case "align":
          case "vspace":
          case "hspace":
          case "class":
          case "title":
          case "accesskey":
          case "name":
          case "tabindex":
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
            break;
          default:
            ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
      ret.objAttrs["classid"] = classid;
      if (mimeType) ret.embedAttrs["type"] = mimeType;
      return ret;
    // -->
    </script>
    </head>
    <body bgcolor="#ffffff">
    <!--url's used in the movie-->
    <!--text used in the movie-->
    <!-- saved from url=(0013)about:internet -->
    <script language="JavaScript" type="text/javascript">
         AC_FL_RunContent(
              'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
              'width', '720',
              'height', '440',
              'src', 'Drag and drop labelling',
              'quality', 'medium',
              'pluginspage', 'http://www.adobe.com/go/getflashplayer',
              'align', 'middle',
              'play', 'true',
              'loop', 'true',
              'scale', 'showall',
              'wmode', 'window',
              'devicefont', 'false',
              'id', 'Drag and drop labelling',
              'bgcolor', '#ffffff',
              'name', 'Drag and drop labelling',
              'menu', 'true',
              'allowFullScreen', 'true',
              'allowScriptAccess','sameDomain',
              'movie', 'Drag and drop labelling',
              'salign', ''
              ); //end AC code
    </script>
    <noscript>
         <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="720" height="440" id="Drag and drop labelling" align="middle">
         <param name="allowScriptAccess" value="sameDomain" />
         <param name="allowFullScreen" value="true" />
         <param name="movie" value="Drag and drop labelling.swf" /><param name="quality" value="medium" /><param name="bgcolor" value="#ffffff" />     <embed src="Drag and drop labelling.swf" quality="medium" bgcolor="#ffffff" width="720" height="440" name="Drag and drop labelling" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
         </object>
    </noscript>
    </body>
    </html>

    What you basically need to do is copy the sections of content from the code you show into the template (assuming the template already provides the <head> and <body> sections of the page.  So in the head section of what you show, take everything starting with...
    <script language="JavaScript" type="text/javascript">
    all the way down thru...
    </script>
    , inclusive (in the head section only), and paste that into the head section of your template.
    Similarly, take everything that lies between the <body> ... </body> tags (exclusive of the body tags) and paste it into the body section of your template wherever you plan to display the Flash file.

  • Loading of MIME objects into HTML pages

    Hi Everyone
    I am trying to load two logos as mime objects into an HTML page.
    I am using
    call method web_page->load_mime_object
    After that I use
    call method web_page->show_url
    Whenever I call this last method with parameter in_place as a space (to call an external browser) my logos are not displayed.
    If I call the method with in_place as 'X' the logos appear.
    The mime objects reside in the SAP web repository (trans smw0).
    Any ideas how to pull the logos into the external page?
    Regards
    Johan

    Hi Satya
    Thanks very much for your reply. I do not use ITS for my purposes but it is something to be remembered for next time.
    I have actually solved the problem but only with a "second price" solution.
    In the HTML form I have pointed the source of my two images to a shared folder somewhere on our dev server. For our purpose this will always work.
    What I am thinking is that if SAP allows an external browser to be used it should also give the means of loading the images. Maybe I just don't know how.
    Now that I think about it more - I should go and try your suggestion in any case and see if it works. 
    I thank you again and if anyone comes with more ideas they will be as welcome.
    Regards
    Johan

  • Nwdi-managed access of pcd-objects from java web dynpro

    Hi,
    im am trying to access portal pcd-objects from a java web dynpro component (namely getting and setting personalized iview properties). for locally managed web dynpro components this works fine with the code below.
    when i try the same with a nwdi managed web dynpro component i run into problems regarding references to used dcs. for instance, i need to reference used dc SAP_JTECHS/tc/epbc/pcm/adminapi/java because the build needs tcepbcpcmadminapijava.jar which is inside the mentioned dc. but access permissions of this dc don't allow the dependency. when i try to "add used dc ..." in nwds i get the error message: illegal dependency: access list does not allow use of ...
    has someone any solution for this problem? are there other ways of accessing pcd-objects from java web dynpro (nwdi managed!)?
    thanks
    heiko
    private static void savePersonalizationData(String value) {
         try {
              IAttributeSet attributeSet = (IAttributeSet) getIview(IVIEW);
              attributeSet.putAttribute(ATTRIBUTE, value);
              attributeSet.save();
         } catch (Exception e) {
    private static Object getIview(String pcdPath) throws Exception {
         Hashtable env = new Hashtable();
         env.put(
              com.sap.portal.directory.Constants.REQUESTED_ASPECT,
              com.sap.portal.pcm.admin.PcmConstants.ASPECT_SEMANTICS);
         env.put(
              Context.SECURITY_PRINCIPAL,
              WDClientUser.getCurrentUser().getSAPUser());
         env.put(
              IPcdContext.PCD_PERSONALIZATION_PRINCIPAL,
              WDClientUser.getCurrentUser().getSAPUser());
         InitialContext iCtx = new InitialContext(env);
         return iCtx.lookup(pcdPath);

    Hi Kust,
    To access the PCD objects the code you used looks ok for me but your main issues is related to the dc access permissions. This thread discussed about the similar issue. Please review this below thread.
    /message/979328#979328 [original link is broken]
    Regards
    Krishna Reddy

  • I am not able to create a callable object of my web Dynpro application

    Hi,  
      I have my Portal server installed with NW2004S and with other components as follows.    
    ·WAS 7.0 SP9  
    ·EP7.0 SP9  
    ·CAF 7.0 SP9  
    ·VC 7.0 SP9  
    But now my webdynpro application is not reflecting in web Dynpro Component(GP Interface) during the design time, when I am trying to create a callable object.    
    So please can you suggest what is the problem and how I will get it corrected.  
    Regards,  
    Paresh.

    Hi Aliaksei,
    I had created a complete CAF application which was working fine. Then the server got crashed and i lost everything.So then i again installed the server and upgraded it to SP7.But than i was not able to see my web dynpro application while creating callable object. So i created another instance in the server at the base level(SP4) and i was able to create callable object.
    There is no problem in the webdynpro application.I have added runtime library referece to my project : sap.com/cafeugp~api and also implemented the Interface IGPWebDynproCO in my component.
    So i dont know where i am going wrong while i am upgrading the server.
    Regards,
    Paresh.

  • Errot at creation of callable object (Web Dynpro Component (GP Interface))

    Hi,
    I have made a Web Dynpro component and it has been built and deployed without problems.
    However, when I go to the Design Time in the portal to create the callable object, it dumps with this message:
    500 Internal server error
    The initial exception that caused the request to fail was:
    java.lang.UnsupportedClassVersionError: bad  version number in .class file
    Any ideas to what this is about ?

    Hi Peter,
    Check this link.It may be helpful.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/java/netweaver%252bdeveloper%252bstudio%252b(NWDS)
    Regards,
    Sumangala

  • Create Callable object of Web Dynpro Component (GP interface) giving error

    Hi All,
    We are facing a strange error in Guided Procedure.
    While trying to create a new callable object of Web Dynpro Component (GP interface) after selecting the type and click on Next it is throwing below error.
    *javax.xml.stream.FactoryConfigurationError: Requested factory com.ctc.wstx.stax.WstxInputFactory cannot be located. Classloader =com.sap.engine.services.deploy.server.ApplicationLoader 3995fdb9 sap.com/cafeugpuidt
        at javax.xml.stream.FactoryLocator.loadFactory(FactoryLocator.java:120)
        at javax.xml.stream.FactoryLocator.locate(FactoryLocator.java:109)
        at javax.xml.stream.FactoryLocator.locate(FactoryLocator.java:54)
        at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:41)
        at org.apache.axiom.om.util.StAXUtils$7.run(StAXUtils.java:311)*
    Also while running the GP processses which are created in the past and working fine till few days back are also giving the same above error.
    Please help us in resolving the issue.
    Regards,
    Satish

    Hi Peter,
    Check this link.It may be helpful.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/java/netweaver%252bdeveloper%252bstudio%252b(NWDS)
    Regards,
    Sumangala

  • Dynamic Use of web dynpro component

    Hi,
    How can I dynamically use the web dynpro component for display in one component with out using Wdb Dynpro Interface component?
    I want to give user a dash board which is configurable by the user.
    Thanks and regards,
    Pradip

    >
    Pradip R[https://cw.sdn.sap.com/cw/docs/DOC-37733
    > Hi Bhaskar,
    > My components are not in used componenty. In runtime user will search the component in server and shall embedd in my application. So component usage is also dynamic.
    > Any suggestion?
    > Regards,
    > Pradip
    Hi,
    see the link here
    [https://cw.sdn.sap.com/cw/docs/DOC-37733|https://cw.sdn.sap.com/cw/docs/DOC-37733].
    as advised, you create a usage group for dynamic components, add component usages to the group based on your conditions.

  • Converting Web Dynpro project into a Web Dynpro DC

    Hi
    I have a Web Dynpro project created.
    Now I want to convert it into a Web Dynpro DC (Development Component).
    Could anyone tell me if there is a standard procedure to do this?
    Right now, I am following the below procedure:
    Copy all the folders under root folder->src-> packages of Web Dynpro project into root folder->src-> packages of Web Dynpro DC.
    Rebuild the DC.
    But in this procedure I am getting errors (in view code) as the required interfaces (example, IPrivate<<component-name>>.java) are not getting generated when I re-build the DC.
    Could anyone help me with this issue?

    Hi Aditya,
    I have used two way for this and both worked fine for me.
    1. While creating DC project at the end there eill be a check box, which when you tick will show your local dynpro project and you can then import that.
    2. Create DC project after that copy the component of your local dynpro project and paste it on the option where you can create the component of DC project.
    After pasting click next - next so that everything remain in sync.
    After that check if you have any compilation error, check them if they are because of some jar files.. you have to add the library files by using the option -> DC Metadata ->DC Definition ->Used DC.
    If you got no compliation error, then just rename the component ( again click next) and then deploy.
    otherwise you may get deployment error.
    Hope this helps,
    Thanks,
    Namrta

  • Dynamic navigation, on HCM Process and Forms "Web Dynpro FORM"

    Hi,
    I'm trying to solve an issue regarding dynamic navigation, on a enhacement done at the Web Dynpro ABAP QISR_UI component for HCM Process and Forms.
    I'm hiding the Adobe Form, and doing "do_dynamic_navigation" for a dynamic generated view container present at the VIEWSHOWFORM on the QISR_UI component.
    The code works great, i.e.: the Adobe Form remains hidden and the custom form, using Web Dynpro appears.
    I'm also using the HRASR00_PROCESS_EXECUTE_1 component to execute a Portal IView (Floorplan based component).
    When the process is started, and the folowing actions are executed:
    1- Select Employee
    2- Select Process
    3- Edit form
    4- Press back (for example if the wrong process is selected)
    5- Select the Process
    6- Edit form again
    There is a NULL exception, the "embedding_vca" (below) is NULL
    SAPLWDR_RUNTIME_REPOSITORY
    METHOD: IF_WD_RR_VIEW_USAGE~GET_EMB_VIEW_CNT_ASSIGNMENT (LCL_VIEW_USA
    * method IF_WD_RR_VIEW_USAGE~GET_EMB_VIEW_CNT_ASSIGNMENT
      method if_wd_rr_view_usage~get_emb_view_cnt_assignment.
        result = me->view_usage->embedding_vca->get_api( ).
      endmethod.
    "IF_WD_RR_VIEW_USAGE~GET_VIEW_CONTAINER_ASSIGNMENT
    Can you guys give me an hand?
    Regards

    Hello,
    Basically what I did was replacing the Adobe Form, by a Web Dynpro component that contains its own form, and associated logic.
    Tecnically the steps to acomplish the task were:
    1º Development of a component for showing a form. ( I suggest you to start with just a "hello world" or something very basic )
    2º Enhance the QISR_UI component (VIEWSHOWFORM view, on the modify view method), something like
    if form scenario = XXXXX then
    hide the adobe form;
    create a custom view container (the problem I had above), and create an instance of the component created on step 1
    end if
    3º Access the context that the original form returns (you can check the context debugging the VIEWSHORFORM view )
    4º Pass the context to the component created..
    I can't provide further details on this, I'm sorry...
    I do not suggest doing this, this was a requirement so I had to do it... But this requires a lot of workarrounds, and lots of small changes in standard code related with process and forms... It's not, also, a "clean" solution
    Regards,
    Joã

  • No component usage created in enhanced web dynpro component

    Hi experts,
    I am facing the following problem:
    I'd like to enhance a web dynpro component in order to add a popup window. The popup is triggered by the process_event method. So far everything works just fine.
    But the popup needs to know some context attributes from the main component, and I cannot create a component usage in order to set the context mapping.
    Does anybody know how to solve this issue?
    Thanks and regards
    Jan Phillip Höft

    Hi!
    Thanks for your answers first of all.
    I need the popup to be a stand alone web dynpro component, so I guess the assistant class doesn't do the trick because I can not access it in the popup component.
    The popup is called when the business object is saved. So that the user is asked to notify other users that the document has changed. In this popup the user should fill in the message and click a button to send it and close the popup.
    So I tried the OBN approach as well but with two problems :
    1. I cannot close the popup component by coding (button click) because it has no direct parent component
    2. The save event is not run through properly so the document stays locked by the user. But I didn't look into this yet.
    So it would be perfect to have an embedded popup component which is based on a stand alone web dynpro application so it can be closed properly but it need at least access to the guid of the main component.
    Anybody got an idea for this?
    Thanks and regards
    Jan Phillip Höft

  • Transport issue when copying a web dynpro component

    Hello All.
    I have a web dynpro component lets say ZTest and now I want to copy this, I gave the new one a different name i.e. ZFINAL, now when I copied, it asked me for the trasnport and when I asked to create a new transport I got this message "Class ZIWCI_ZFINAL does not exist" and then I clicked the green arrow again and it created a transport for me. After this process I activated my web dynpro component successfully, my web dynpro component has 3 views and 3 windows. When I looked at my new transport (for ZFinal),  I only saw three tasks attached to teh transport i.e. 1. Interface 2. Info Object from the MIME Repository and 3. Web Dynpro Component but I didn't see Controller (Web Dynpro), Definition (Web Dynpro) and View (Web Dynpro) attached to my transport. Now I wonder when I release my transport to Q I may have issues.
    Note: My old trasnport (which has Ztest)has all the missing objects: (Web Dynpro), Definition (Web Dynpro) and View (Web Dynpro)

    I resolved it myself.. I had to write the transport entry manually for the views and windows and even the component controller definition.

  • Is it possible to serialize a web dynpro component controller?

    Hi,
    Is it possible to serialize a web dynpro component controller and deserialize it for use?
    I have one web dynpro application WDA1 for web dynpro component WDC1. And  another web dynpro application WDA2 for WDC2 will be opened in a new window triggered by a button action in WDC1.
    Iu2019d like to pass the object reference of WDC1 component controller to WDC2.
    I first tried to use a static member of a class object but found out that even the static member is initialized and set in WDC1, itu2019s still initial when I access it in WDC2.
    Then I searched the forum and found one article Passing Object ref to Webdynpro Application while calling from BSP screen .
    The recommended way is to serialize the object reference and store in a DB table, later on read it out and deserialize it for use.
    I tried serialization using the following code, but when itu2019s deserialized, the result is initial.
    Can anyone share some ideas on this?
    Serialize
      data: ostream type string,
               xslt_err type ref to cx_xslt_exception.
    ***** serialize model class
      try.
          call transformation id
          source model = wd_comp_controller
          result xml ostream.
        catch cx_xslt_exception into xslt_err.
      endtry.
    Deserialize
        data: istream type string,
              xslt_err type ref to cx_xslt_exception.
        istream = ls_db_sel-obj.
        data lr_wdc type REF TO ZIWCI_BY_WDC_SERIALIZE.
        try.
            call transformation id
            source xml istream
            result model = lr_wdc.
          catch cx_xslt_exception into xslt_err.
        endtry.

    When you say new window, I assume you mean new browser window. This is a separate user session then.  This is why the singleton pattern doesn't work.  Have you considered using a new dialog window instead of a new browser window.  It will be modal, but will share the same user session as the parent window.
    >Why do you choose this approach over cross-component usage ? component usage is the way webdynpro components are >to be reused.
    >You can also consider using Singleton OO pattern class to share data between these two components.
    Neither of these approaches will work if you are using separate browser windows. Such an approach results in two separate user sessions (perhaps even running on different application servers depending upon how you have load balancing setup) and therefore can't share data using either of these approaches.
    In general the idea of serialization and then writing the string ito a server cookie or other database table is sound.  I don't think you should try and serialize the component controller, however.  Serialization only saves and restores public attributes - not protected or private ones.  So in general a class has to be designed for serialization.  The component controller is much too complex and wasn't designed for such an operation. 
    I would suggest instead extracting the data you want to share out of component controller or context and serializing it into a custom class and passing that to the other component.

Maybe you are looking for