Passing Data Back from a WebDynpro App to a Portal App

Hello all,
We have an iView in the portal that has a link to a webdynpro application.  When the link is clicked, it opens the webdynpro app in a new window.  When a user selects data on this window and clicks a button, I want that data selected transferred to a specific field on calling window. 
Prior to using webDynpro, we were able to do this by using the code below on the called page.
<SCRIPT language='JavaScript'>
function SelectUser() {
   var selectedUserAdmcd=document.all["EMP_ADMCD_RET"].value;
   window.opener.document.forms[0].ADMIN_HR_CODE_NEW.value=selectedUserAdmcd;     
Any suggestions will be appreciated.
Thanks,
Mike

Hi Mike,
  The SAP Enterprise Portal 6.0 supports client-side eventing. I dont thhink  you cannot write Java Script code in a Web Dynpro application, a Java wrapper enables you to implement portal eventing. You can subscribe to and unsubscribe from specific portal events. This means that the SAP Enterprise Portal can react to an event that is triggered by a Web Dynpro application.
Sample code for the same
In the sender application, On action of the button click event.
String parm=wdContext.currentContextElement().getInput();
WDPortalEventing.fire ("urn:com.sap.tc.webdynpro.example.portaleventing", "Event Name ", parm);
In the listener application
In the Init method subscribe the portal event
WDPortalEventing.subscribe("urn:com.sap.tc.webdynpro.example.portaleventing","Event Name ", wdThis.wdGetReactPortalEventingAction() );
Create an action ReactPortalEventing. Add the parameter data of  type java.lang.String.
wdContext.currentContextElement().setOuput(dataObject);
The value of the element Input recieved in the Sender application will mapped to the element Output  of the  listener application.
Regards,
Srivathsan

Similar Messages

  • Passing data back from PL/SQL to a dataTemplate

    Hi,
    I'm using a standard version of BIP against an Oracle 10g database. I have some reporting requirements that involve a lot of procedural steps. Ideally, it would be great to have a beforeReport trigger that passed through a series of parameters to a PL/SQL procedure, write all the code in PL/SQL, and then just return the results back to the dataTemplate for grouping and writing out to XML.
    Is this possible?
    If not, is there any way of performing procedural code within the dataTemplate (rather than within the ReportTemplate), to reduce the amount of data we return?
    Thanks
    Phil

    There are a range of SQL functions you can use to generate XML from within a PL/SQL procedure. If you use these to generate a variable with a type of 'XMLTYPE' . You can then use a procedure to split the contents of this variable into single records and output that to the concurrent output file using FND_FILE.
    The procedure for doing this would be something like:
    PROCEDURE xml_to_file (
    p_xml IN XMLTYPE) IS
    l_clob CLOB;
    l_size NUMBER;
    l_offset NUMBER;
    l_char VARCHAR2 (2);
    l_record varchar2(250);
    BEGIN
    SELECT XMLRoot(p_xml.extract('/*'), VERSION '1.0').getClobVal()
    INTO l_clob
    FROM sys.dual;
    l_size := DBMS_LOB.getlength (l_clob);
    IF (NVL (l_size, 0) = 0) THEN
    raise_application_error (-20001, 'CLOB is NULL');
    END IF;
    l_offset := 1;
    WHILE (l_offset <= l_size) LOOP
    l_char := DBMS_LOB.SUBSTR (l_clob,1,l_offset);
    IF (l_char = CHR (10)) THEN
    fnd_file.new_line (fnd_file.output, 1);
    ELSE
    fnd_file.put (fnd_file.output, l_char);
    END IF;
    l_offset := l_offset
    + 1;
    END LOOP;
    fnd_file.new_line (fnd_file.output, 1);
    END xml_to_file;
    hope this helps

  • Pass the data back from the jsp page to the java code

    Hi,
    I have written an iView that receives an event using EPCF and extracts data from the client data bag.
    I need this iView to pass the data back from the jsp page to the java code.
    I am trying to do this using a hidden input field, but I cannot get the code to work.
    Here is the code on the jsp page.
    <%@ taglib uri="tagLib" prefix="hbj" %>
    <hbj:content id="myContext" >
      <hbj:page title="PageTitle">
       <hbj:form id="myFormId">
    <hbj:inputField id="myInputField" type="string" maxlength="100" value="" jsObjectNeeded="true">
    <% myInputField.setVisible(false);%>
    </hbj:inputField>      
       </hbj:form>
      </hbj:page>
    </hbj:content>
    <script language=JavaScript>
    EPCM.subscribeEvent("urn:com.peter", "namedata", window, "eventReceiver");
    function eventReceiver(eventObj) {
         var url = eventObj.dataObject;
         var funcName = htmlb_formid+"_getHtmlbElementId";
         func = window[funcName];
         var ipField = eval(func("myInputField"));
         ipField.setValue(url);
         var form = document.all(htmlb_formid);
         form.submit();
    </script> 
    Here is my java code
    package com.sap.training.portal;
    import com.sapportals.htmlb.InputField;
    import com.sapportals.htmlb.page.DynPage;
    import com.sapportals.htmlb.page.PageException;
    import com.sapportals.portal.htmlb.page.JSPDynPage;
    import com.sapportals.portal.htmlb.page.PageProcessorComponent;
    public class ListSalesOrder extends PageProcessorComponent {
      public DynPage getPage(){
        return new ListSalesOrderDynPage();
      public static class ListSalesOrderDynPage extends JSPDynPage{
         private String merong;
        public void doInitialization(){
        public void doProcessAfterInput() throws PageException {
              InputField reportfld = (InputField) getComponentByName("myInputField");
              if (reportfld != null)      merong = reportfld.getValueAsDataType().toString();
        public void doProcessBeforeOutput() throws PageException {
              if ( merong != null ) setJspName("merong.jsp");
              else setJspName("ListSalesOrder.jsp");
    Here is DD
    <?xml version="1.0" encoding="utf-8"?>
    <application>
      <application-config>
        <property name="SharingReference" value="com.sap.portal.htmlb"/>
        <property name="PrivateSharingReference" value="com.sap.portal.htmlb"/>
      </application-config>
      <components>
        <component name="SearchSalesOrder">
          <component-config>
            <property name="ComponentType" value="jspnative"/>
            <property name="JSP" value="/pagelet/SearchSalesOrder.jsp"/>
          </component-config>
          <component-profile>
            <property name="tagLib" value="/SERVICE/htmlb/taglib/htmlb.tld"/>
          </component-profile>
        </component>
        <component name="ListSalesOrder">
          <component-config>
            <property name="ClassName" value="com.sap.training.portal.ListSalesOrder"/>
          </component-config>
          <component-profile>
            <property name="tagLib" value="/SERVICE/htmlb/taglib/htmlb.tld"/>
          </component-profile>
        </component>
      </components>
      <services/>
    </application>
    After receive event, then call java script function "eventReceiver" and call "form.submit()".
    But .. PAI Logic in Java code doesn't called ...
    Where is my problme ?
    Help me ...
    Regards, Arnold.

    Hi Arnold,
    you should not do a form.submit yourself. Instead you can put a component called ExternalSubmit to your page:
    ExternalSubmit exSubmit = new ExternalSubmit("EX_SUBMIT"));
    exSubmit.setServerEventName("MyEvent");
    This results in a java script funtion on the page which is called "_htmlb_external_submit_". If you call this function the the form gets submitted and your event handler is called.
    regards,
    Martin

  • How can I get the data back from my game

    How can I get the data back from minecraft if I deleted the app and bought with a different Apple ID

    No, they are tied to the ID that purchased them, and cannot be transferred to anyone else.

  • How to get data back from an action ?

    Hello,
    Would it be possible to get data back from an action (out of the question EO_MESSAGE & ET_FAILED_KEY )?
    For example we got an order with order positions and we need a "function" to e.g. count all positions. Because of Performance the function should not be processed each time the order is changed, read or a position is added. Instead the function should be processed only if it was called explicitly.
    Is it possible to create a kind of action which is actually counting all entries and export the number of them?
    How to mark a parameter in is_parameters as exporting?
    Is this just done by (naming-) convention?
    What is the preferred way to have “methods” with returning/exporting values?
    Regards,
    Lorenz

    Hello Lorenz,
    As you have already figured out , the Action API provides you with only the messages and failed keys if any.
    Post action execution , you can always execute a retrieve or retrive by association , to get the latest buffer snapshot , which of course would include the changes that you have made in your action.
    If you want to ensure that users have explict control on execution of your "fucntion", then of course , you should model it as an action on the BO.
    The parameter is_parameters is an IMPORTING parameter. You CANNOT use it to export anything back from the action. For importing ,  you can of course have any structure to use as the is_paramaters , which you model as the action parameter structure which modelling your BO action.
    From an external entity the only way to interact with a BO is by consuming the BO services and you are bound by the BOBF standard interfaces. Any and all data you require needs to be modelled as node attributes ( persistent or transient ) and fetched using the RETRIEVE, RETRIEVE_BY_ASSOCIATION or QUERY services.
    Regards,
    Indranil.

  • I have updated my mac from snow leopard to mountain lion 3 days back. I had some important data in my library folder and it got overwritten. Is there any way i can get the data back from my snow leopard library folder?

    I have updated my mac from snow leopard to mountain lion 3 days back. I had some important data in my library folder and it got overwritten. Is there any way i can get the data back from my snow leopard library folder?
    I tried mackeeper to recover files but it could not. Any other way any one has tried to recover a system library folder after OS upgrade?

    No, it doesn't store a clone. You would have needed to make one with either SuperDuper or CarbonCopy Cloner.
    If the files were in your ~/Library folder then they may still be there. As I said, you can access it by
    going to your Finder "Go" menu hold the option key to choose "Library". I wouldn't think an upgrade would overwrite anything in ~/Library.
    If you have a Time Machine backup you may also be able to use that to retrieve them.

  • Hii . , any method can help resotore my data back from the sync service ?!

    hii ,
    I have set up a Firefox Sync account . and, I backed up my laptop but forgot to back up the sync key or the recovery key ! .so Now, I can't set up the Firefox Sync service anymore, as my email address has already registered but i don't have a sync key to access.
    I would like to have the sync key back wthout losing any of my data !! only what i want is my data !!
    so what do i have to do ? can u help me ? or can u send me the recovery sync key ? how can i have my data back from the service ? can u tell any method that can help me or can restore my data plzz ; (
    i have realy important data !! = (
    my email : (Email removed by mod)

    You can try to run a recovery program (recuva, or the like) but that is a slim chance. Otherwise, you can't get that data back after deleting it.

  • Getting changed data back from editable ALV...

    Hello Gurus,
    I am working on ALV using standard ALV function module REUSE_ALV_GRID_DISPLAY. Now, To make the fields editale, I am using flag EDIT = 'X' in field catalog. This working fine.
    Now, when the data is changed in ALV grid and user clicks on SAVE button that I have programmed in i_callback_usercommand, how can I get the changed data back from editable ALV so that I can change data in custom table ?
    Please help.
    Regards,
    Rajesh.

    I see that the method CHECK_CHANGED_DATA is used. I am also doing it as follows. But how do I get the changed data back in table. There are no table parameters in
    CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
    DATA: REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
    IF REF_GRID IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = REF_GRID.
    ENDIF.
    IF NOT REF_GRID IS INITIAL.
    CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
    ENDIF.
    Please guide

  • Pass a table from my webdynpro JAVA application to an RFC in R/3

    Hi All,
    I need to Pass a table from my webdynpro JAVA application to an RFC in R/3. How can I do that?
    Regards
    Sarath

    Hi,
    Please have a look at this thread,
    Pass Table as Input to Adaptive RFC
    Regards,
    Saravanan K

  • Passing context data back to Java Webdynpro

    Hi All,
    I have created Java Webdynpro's with Adobe Interactive Forms in them. I use ActiveX not Native. Yesterday passing data from the AIF to Webdynpro for Java was working like this (it didn't work in Native mode) today it doesn't. Neither does pressing any buttons. I'm not sure what has been installed on my system, it could be Adobe Read 9.0. Now creating the forms using the livecycle designer in de Netweaver developer studio is also very unstable (unworkable)
    My main question is: how can I pass the data from the interactive form to webdynpro for java (without using the submit button, as I want to have such buttons on my webdynpro and not in my forms.)
    Jeschael

    Jeschael,
    Try creating a new project and repeat the same steps. Do you get error there as well.
    Also try setting some context in WD, assign it to a Text Field of Adobe and see if you get the value.
    For eg: Let's assume you created a Context called "Name" then set it
    wdContext.currentContextElement.setName("Test");
    Now try to assign this to Text Field, see if you get the value in Adobe form by writing this code in the initialize event of Text Field in Adobe LiveCycle Designer in JavaSript.
    xfa.host.messageBox("Value is :"+TextField1.rawValue);
    Chintan

  • Passing vectors into JSP from Servlet and passing data back to Servlet

    I have been building an MVC application.
    It has a controller which instantiates classes and evokes methods to
    populate vectors. These vectors are then passed into a JSP. This part of the application works fine.
    What I am having trouble with is a new JSP I have designed; this will
    display the data that is actioned by the FORM action. This is actioned
    based on the Search criteria entered by the user. Based on this a further vector is populated and brought back to the JSP as a vector
    and this is rendered via the TABLE tag. Again this works fine.
    Against each of the rows displayed, I have a print checkbox which can be checked by the user. On checking the records they want to print, they should then hint a Print button which should go back to the Servlet and print the data. THIS IS WHERE I HAVE THE PROBLEM. On going
    back to the servlet the checkbox values are not displayed, rather
    the values that initially populate the JSP. How do I get these new values back into the vector and hence accessible from the Servlet.
    Any help with be very much appreciated.
    Chris

    Thanks for this.
    Just to clarify I am not using Struts.
    What I am having difficulties with is the fact that:
    I can't get the checked values back to the Servlet - they keep the values they have in the bean - so as part of instantiating the bean class I set the value of the item to 'off'. The user will then check
    the checkbox which should presumbably set the value to 'on'. This isn't happening because the setter method of the bean is not evoked again
    because I don't come into this JSP again - the Servlet has finished here
    and now needs to print the records. It can't do this because as
    far as it is concerned nothing has changed since it last passed through
    the vector to the JSP.
    Even when I do the following:
    Enumeration paramNames = request.getParameterNames();
    String param = null;
    while (paramNames.hasMoreElements())
    param=(String)paramNames.nextElement();
    System.out.println("parameter " + param + " is " +
    request.getParameter(param));
    what comes back is the valus of 'off' as opposed to 'on'.
    The other thing is that 'request.getParameterNames()' only works
    with the first record in the vector, i.e. it doesn't fetch any other
    records that are rendered in the <TABLE> tag.
    In desperation is there anybody out there who can help me.
    Thanks
    Chris
    I am going to assume you are using a MVC framework
    like Struts or very similar (I am assuming that from
    the language you are using).
    When the servlet passes the vector back to the JSP
    page and you render the HTML that is passed back the
    client your Vector is gone. The Vector is not
    available at the HTML level that is being viewed at
    the browser.
    When the user selects the checkboxes and submits the
    page (by clicking the print button) the controller
    servlet (called ActionServlet in Struts, yours maybe
    called something else) forwards the request to the
    appropriate JavaBean and Servlet to process the
    request. Either the JavaBean has to recreate the
    Vector (not recommended) or the processing Servlet can
    (better). You can do this by recreating the Vector
    from scratch for the HttpRequest parameters or, at the
    time of the initial request, saving Vector to a
    session and then updating with the data you get back
    from the client (again from the HttpRequest
    parameters).
    Either way you have to work with
    HttpRequest.getParameter().

  • How can I safe my data back from the Time capsule to iphone and macbook?

    Hi,
    last weekend we were robbed while being on vacation and iphones and macbook air got stolen. Good thing was that at home we had a time capsule and our normal macbook. As soon as we get the new iphones and the new airbook we want to get our itunes and apps and datas back to the iphones and airbook ... can somebody tell us how to re-safe or back-safe stuff from the time capsule back to the equipment?
    Thank you ... I feel so "naked" without my phone :-(
    Virtualkate

    Sorry about your loss. Follow the directions here to use Time Capsule to restore your new Air to the state your old Air was in when stolen. When you first connect your new phones, you'll be given the option of restoring from the backup of your old phones or setting up as new. Restore from your previous backups, followed by syncing your content back to your phones. You should be good to go. Maintaining current backups makes this a piece of cake.
    http://support.apple.com/kb/HT1177

  • Passing Tables back from Java Stored Procedures

    Thomas Kyte has written (in reference to
    trying to pass an array back from a stored
    function call):
    You can do one of two things (and both require the use of
    objects). You cannot use PLSQL table types as JDBC cannot bind to
    this type -- we must use OBJECT Types.
    [snip]
    Another way is to use a result set and "select * from
    plsql_function". It could look like this:
    ops$tkyte@8i> create or replace type myTableType as table of
    varchar2 (64);
    2 /
    Type created.
    ops$tkyte@8i>
    ops$tkyte@8i>
    ops$tkyte@8i> create or replace
    2 function demo_proc2( p_rows_to_make_up in number )
    3 return myTableType
    4 as
    5 l_data myTableType := myTableType();
    6 begin
    7 for i in 1 .. p_rows_to_make_up
    8 loop
    9 l_data.extend;
    10 l_data(i) := 'Made up row ' &#0124; &#0124; i;
    11 end loop;
    12 return l_data;
    13 end;
    14 /
    Function created.
    ops$tkyte@8i>
    ops$tkyte@8i> select *
    2 from the ( select cast( demo_proc2(5) as mytableType )
    3 from dual );
    COLUMN_VALUE
    Made up row 1
    Made up row 2
    Made up row 3
    Made up row 4 [Image]
    Made up row 5
    So, your JDBC program would just run the query to get the data.
    If the function "demo_proc2" cannot be called from SQL for
    whatever reason (eg: it calls an impure function in another piece
    of code or it itself tries to modify the database via an insert
    or whatever), you'll just make a package like:
    ops$tkyte@8i> create or replace package my_pkg
    2 as
    3
    4 procedure Make_up_the_data( p_rows_to_make_up in
    number ); 5 function Get_The_Data return myTableType;
    6 end;
    7 /
    Package created.
    ops$tkyte@8i>
    ops$tkyte@8i> create or replace package body my_pkg
    2 as
    3
    4 g_data myTableType;
    5
    6 procedure Make_up_the_data( p_rows_to_make_up in number )
    7 as
    8 begin
    9 g_data := myTableType();
    10 for i in 1 .. p_rows_to_make_up
    11 loop
    12 g_data.extend;
    13 g_data(i) := 'Made up row ' &#0124; &#0124; i;
    14 end loop;
    15 end;
    16
    17
    18 function get_the_data return myTableType
    19 is
    20 begin
    21 return g_data;
    22 end;
    23
    24 end;
    25 /
    Package body created.
    ops$tkyte@8i>
    ops$tkyte@8i> exec my_pkg.make_up_the_data( 3 );
    PL/SQL procedure successfully completed.
    ops$tkyte@8i>
    ops$tkyte@8i> select *
    2 from the ( select cast( my_pkg.get_the_data as mytableType
    ) 3 from dual );
    COLUMN_VALUE
    Made up row 1
    Made up row 2
    Made up row 3
    And you'll call the procedure followed by a query to get the
    data...
    I have tried this, and it works perfectly.
    My question, is what does the wrapper look
    like if the stored function is written
    in java instead of PL/SQL? My experiments
    with putting the function in java have been
    dismal failures. (I supposed I should also
    ask how the java stored procedure might
    look also, as I suppose that could be where
    I have been having a problem)
    null

    Thanks for the response Avi, but I think I need to clarify my question. The articles referenced in your link tended to describe using PL/SQL ref cursors in Java stored procedures and also the desire to pass ref cursors from Java to PL/SQL programs. Unfortunately, what I am looking to do is the opposite.
    We currently have several Java stored procedures that are accessed via select statements that have become a performance bottleneck in our system. Originally the business requirements were such that only a small number of rows were ever selected and passed into the Java stored procedures. Well, business requirements have changed and now thousands and potentially tens of thousands of rows can be passed in. We benchmarked Java stored procedures vs. PL/SQL stored procedures being accessed via a select statement and PL/SQL had far better performance and scaleable. So, our thought is by decouple the persistence logic into PL/SQL and keeping the business logic in Java stored procedures we can increase performance without having to do a major rewrite of the existing code. This leads to the current problem.
    What we currently do is select into a Java stored procedure which has many database access calls. What we would like to do is select against a PL/SQL stored procedure to aggregate the data and then pass that data via a ref cursor (or whatever structure is acceptable) to a Java stored procedure. This would save us a significant amount of work since the current Java stored procedures would simple need to be changed to not make database calls since the data would be handed to them.
    Is there a way to send a ref cursor from PL/SQL as an input parameter to a Java stored procedure? My call would potentially look like this:
    SELECT java_stored_proc(pl/sql_stored_proc(col_id))
    FROM table_of_5000_rows;
    Sorry for the lengthy post.

  • Getting the in-app data back for just one App.

    Hello. A while ago I posted about a method I used to get my data back for an application. I restored from a backup that was retrieved using Time Machine.
    Now I have a question some of you more experienced folks out there might be able to answer.
    I have just found out that my iPod touch needs to be swapped at the GB. No problem says I. But first I would like to try to set my existing iPod up as a new device without using the backup to remove the possibility that the software is to blame for the issue I am having. Doing this will erase all in-app data and progress in games and utility applications I have been using these last five or so months.
    So my questions are as follows:
    IF I were to restore from a backup, would the actual operating system software on the iPod be replaced with a new copy and leave the in app data intact?
    If I needed to set up as a new iPod and completely wipe the whole thing, could I get my in app data back?
    Is there a way to isolate individual applications' data from the MobileSync folder to replace manually after such a full restore?
    I have purposely added data in one app on the iPod and then observed the contents of the MobileSync folder while my iPod backs up during a sync in order to pick out which ones are the most recently modified. I am assuming those files are the ones that reflect the application(s) I had just worked in. But I do not want to go in and start messing with those files because they are not exactly labeled as belonging to a specific app.
    The long and short of all this is: When I swap my iPod at the GB, I would like to set it up as new and then sync my apps over to it? There are two or three apps that currently have a lot of data/progress I would like to restore individually after replacing my iPod. Is there a surefire way to isolate, backup and then restore each of those individual apps' data?
    Message was edited by: Volvoguy
    Message was edited by: Volvoguy

    Pretty sure that you can't selectively load app data, it's all or nothing.
    If you do a restore and load your last backup, whatever problem you're having could be embedded in the backup and so the problem will perpetuate. You can try restoring as new, and if that solves whatever problem you're having then you have to weigh that against losing your app data (and starting all your settings and accounts from scratch). But if restoring as new does not solve your problem, you should be able to restore again and select your last backup (maybe force a backup before you restore by right-clicking on its name and select the backup option).

  • Passing date parameter from prompt

    Hi experts
    I am getting some problem while passing date from a dashboard prompt.
    In RPD i have changed the date column properties as DATE only so that i will get the DATE part of the data not the time stamp.
    Now in the dashboard prompt i added a prompt for the date column.
    I initialized the date prompt with a server variable of sysdate
    when i am running the dashboard i am getting default value in the prompt(04/15/2011)
    when i am changing the date it is selected as(04/15/2011)
    but when i am clicking the 'Go' button the date is converting to 2011-04-15 00:00:00 due to which my report is not running and i am getting error as
    View Display Error
    A date value was expected (received "2011-04-15 00:00:00").
    Error Details
    Error Codes: QABPH2PO
    can anyone help me to pass only date part
    thanks in advance
    regards
    Gourisankar

    Hi J / Srikanth
    Sorry to restart the thread again.
    As we discussed i have downloaded the patch and applied to my windows 32 bit machine.
    But now when i run the report the report is running only for the default value(Server Variable) which is specified to the prompt. when i change the date there is no effect to the report.
    When i drill down to the report i found that the date column(is prompted) is changed to teh server variable name which is might be the cause.
    any input on this???
    regards
    Gourisankar

Maybe you are looking for