Apply request values from a region on an event from another region

Hi,
I am quite new to ADF and that's my first question/post here (and as a matter of fact pretty much anywhere),
so i hope i manage to make my problem clear enough.
First i am using ADF Faces + ADF BC using JDeveloper 11.1.2.1.0 with the integrated WebLogic Server
Now the what is the case:
I have a page with two af:regions in it.
The first one is basically a single selection table.
The second one is a to put is simply an edit form for the selected row of the first table.
I don't use the contextual events mechanism ( i have spent some week or more playing around with it awhile ago, but from that exprience i don't recollect any particular thing that might solve my problem) so what i do is pass as parameter to the first(table) region a "delegate" that would listen/handle selection events and in the backing bean of the table i have the selection listener that fires the events/calls the delegate's handleEvent(String eventType,Object data) method so that the main page knows and refreshes the second/edit form region
with the newly selected ID of the entity.
My problem is that if i had entered data in the form in the second region it is lost after selection
has been made in the first one.
I see (in the http request content of the selection event, or in the requestMap), that all that was in the html page, including the second region is transmitted to the server - so are the newly entered values. However the jsf components that are a part of the second region are not applied with their new values, nor their model is updated in the next jsf phase.
Now I suspect that has something to do with the (Adf)RichRegion being a EventRoot or something.
I tried putting partialTrigger to the second region (though i currently and for various reasons call the AdfFacesContext.addPartialTarget programmatically at about one million places in the java code after the selection event)
I even tried hacking the javascript AdfRichRegion object, so that it would always return false if asked isEventRoot. :) that's how desperate i was
The only solution i have so far is:
First to make clear. When i say refreshing the second region i don't mean calling RichRegion.refresh(), but rather RichRegion.queueActionEventInRegion(....., "refresh",PhaseId.ANY_PHASE) which in the second's region taskflow is just a method call, that sets the right current row of the iterator and then loops back to the same (one and only view in this taskflow - the edit form) and adds some parialTargets to the AdfFacesContext, so we see the new data
then in that methodCall (which i think happens in the INVOKE_APPLICATION phase) i add those few lines to make sure the values are applied to the jsf components sub-tree of interest:
RichPanelGroupLayout fl = getFl();//that's a binding of the UIComponent, that holds all the inputTexts i care about
fl.processDecodes(FacesContext.getCurrentInstance());
fl.processValidators(FacesContext.getCurrentInstance());
And when i say make sure that the values are applied... i actually mean - get on my knees and pray because the whole thing looks too hacky already, but so far it works.
But now i have to make sure the validation has been ok (otherwise i get a funny effect of seeing the red popups at the invalid text inputs just for a second and then my region is refreshed to the new entity or i get an JBO exception depending of whether i call the next lines that follow without the if(..){processUpdates}
How do i check this:
System.out.println(FacesContext.getCurrentInstance().isValidationFailed());
//The above line would print false nomatter what happenned so i decided to use this "something":
boolean validationFailed = FacesContext.getCurrentInstance().getMessageList().size()>0;
if(validationFailed){
//dont update the iterator's current row and return to the edit form page
return "fail";
}else{                    
fl.processUpdates(FacesContext.getCurrentInstance());
//update the current row and return to the edit form page
It took me days to come up with this...i would call it hack...And a day or two more to adapt the rest of the page's logic with the whole design changes i had to make but i still believe there must be some better solution that i am missing because for a number of reasons i don't feel right eith this one, which, while implemented and working (i hope) makes the whole real case a lot more complex than it used to be (and still feels like a hack),
just for the simple reason that I want to get some updated values back in the model.
Just as an example of a design change i had to make i give you the afformentioned methodCall i had to add, because the processUpdate would not work if not called with the right adf bindings context... first i tried calling them from a custom PhaseListener i have but at that moment nobody knows what #{bindings.MyEntityId.inputValue} is.
Thanks and Greeting
trout
Edited by: trout1234 on Aug 2, 2012 10:47 AM
Edited by: trout1234 on Aug 2, 2012 10:57 AM

Oh yes... and i have also noticed that if the action is triggered from a component(e.g. clicking on a commandLink) that is a part of the main page
the values are updated in all regions (i think so :) ) ... so i even tried a client listener in the first region that calls javascript function that queues a custom event with a source component from the main page, but yet the selection event is propagated to the server even with the event.cancel() and evt.stopBubbling()
and i could not make my custom event force the apply request values... but here i might have done somthing wrong i dont know it is a mess anyway... sure this one sound more of a hack than my current option....by my criteria at least

Similar Messages

  • Slow performance during Apply Request Values Phase of JSF lifecycle

    Dear all,
    I found that my application is sucked at the Apply Request Values Phase of JSF lifecycle when I submit the page. (Totally spend 1 min to pass this phase)
    In the application, there is around 300 input fields in the page. Who know how can I ehance the performace?
    Thanks.

    Thanks a lot for your help. Maybe I explain more about my current structure
    I need to develop a input form for course instructor to input students' assignment / examination result (max 9 assignments and 1 examination).
    so that I have below coding:
    *1. bean to store marks of a student*
    public class Mark {
    private String studentID = "";
    private String mark1 = "";
    private String mark9 = "";
    private String markExam = "";
    //getter & setter of above properties
    public void setMark1(String mark1) {
    this.mark1 = mark1;
    public String getMark1() {
    return this.mark1;
    *2. backing bean*
    public class markHandler {
    ArrayList<Mark> marks = new ArrayList<Mark>();
    //getter & setter of above property
    //method to retrieve list of student (this will be the action before go in mark input page)
    public void getStudentList() {
    //get student list from database
    for(int i = 0 ; i < studentCount; i++){
    //initial mark of student
    Mark mark = new Mark();
    mark.setStudentID(studentID);
    mark.setMark1("");
    mark.setMarkExam("");
    //put into arraylist
    marks.add(mark);
    *3. mark input page*
    <html>
    <h:dataTable value="#{markHandler.marks}" var="e">
    <column>
    <h:output value="#{e.studentID}" />
    </column>
    <column>
    <h:input id="mark1" value="#{e.mark1}" />
    </column>
    <column>
    <h:input id="mark1" value="#{e.markExam}" />
    </column>
    </h:dataTable>
    <h:commandButton action="#{markHandler.save} />
    </html>
    When I submit the page, It seems that there is a long time spent at the input field of datatable at Apply Request Values Phase. (I use Phase Listeners to test the time difference before & after phase)
    Pls help. Thanks.
    Edited by: Daniel_problem on Aug 15, 2008 10:34 AM
    Edited by: Daniel_problem on Aug 15, 2008 10:36 AM

  • How to make items in a region populate a parameter in another region

    I have two regions in an APEX page: List of items (hyperlinks) on the left, PL/SQl block containing a media player for videos on the right.
    What I want is for the list to talk to the media player. Click an item in the list and that populates what file is played in the media player.
    I'm very new to APEX and if anyone has an example of this, I would greatly appreciate it.
    Thank you,
    Amy

    On one plage, I have the following region:
    htp.p('
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>play</title>
    </head>
    <body align="left">
    <object id="MediaPlayer1" CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/ en/nsmp2inf.cab#Version=5,1,52,701"
    standby="Loading Microsoft Windows® Media Player components..." TYPE="application/x-oleobject" width="700" height="500">
    <param name="fileName" value="'||VIDEO_NAME||'">
    <param name="animationatStart" value="true">
    <param name="transparentatStart" value="true">
    <param name="autoStart" value="true">
    <param name="showControls" value="true">
    <param name="Volume" value="-20">
    <embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="http://yourdomain.com/play.wmv" name="MediaPlayer1" width=280 height=256 autostart=0 showcontrols=1 volume=-20>
    </object>
    </body>
    </html>
    And a list with the following links in another region: "Video 1" "Video 2" "Video 3" etc
    How do send the URL/value of the lists into the fileName value in the media player?

  • Creating a region inside another region

    Hi,
    I have created a region with a report. Inside that region, I want to create another region with a report. How do I do this?
    Thanks.

    bp21 wrote:
    Hi Denes,Please DO NOT post follow-ups to closed/ancient threads.
    Posting follow-ups to ancient threads/departed users is NOT an effective way of getting help:
    <li>Other users may ignore the thread if it is closed.
    <li>Your assumption that the questions are related may be incorrect, leading to confusion about the nature of the problem and potential solutions.
    <li>Watches on the thread will have expired, so the original participants are totally unaware of the new post. They may no longer be active on the forum.
    <li>You have no ability to mark posts as helpful or correct.
    <li>As in this case, features and techniques discussed in old threads may no longer be relevant in the version you are using.
    Post your requirements as a new thread, including at least the following information:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Links to related posts and threads (using the methods in the FAQ)
    I have exactly the same requirement i.e. I want to display two reports within a single region. I am using Apex 4.1.In APEX 4.1 this is best achieved using the built-in subregion feature.

  • .MSG files. Problem with getting requested values from crawled properites

    Hi
    I have a lot of msg files on my file server. I use SharePoint Enterprise Serach engine to crawl all these MSGs.
    I would like to get extra managed properties out of these files. I am most interested in getting Mail:5(text) / Mail:12(Date and Time) / Mail:53(Date and Time) from MAIL category in Managed Properties.
    This thread is very similar to one already posted by SpinnerUp:
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/82d69df0-5cb2-4e51-a485-34209e111f4b/problem-with-crawling-msg-files-doesnt-seem-to-return-requested-values-from-crawled-property
    Please be aware that I do not use Public Folders. These MSGs are exproted from Outlook and are stored on File Server not Exchange.
    I tried to link Crawled Properties to new property however I cannot get any results back.
    Thank you for you help.
    Regards, Marcin (Please mark as helpful or answered if it helps)

    Thank you for your replay.
    However I am not keen to write custom connector at this stage.
    Is it possible to simply get "Subject", "Sent", "Received" info from msg file and then map it to managed properties.
    Does SharePoint create any crawled properties which contain information about let's say "Subject" which then can be used to create managed properties?
    I tried playing with "MAIL" properties however I cannot get them to work. I guess this is because the file is a msg file rather than mail which is stored in Exchange Public Folder.
    Regards, Marcin (Please mark as helpful or answered if it helps)

  • Refreshing sql report region based on values from another region - 4.0

    Greetings All,
    I have a page with two regions, say region 1 and region 2. I have a before header process that fetches values from db based on criteria entered from another page. Region 2 is a sql report region with bind variables from region 1. When this page is rendered region 1 renders properly however sql report region always returns no records. What am i missing here?
    I would like to have the region 2 render a report based on the values from region 1. Region 2 has a sql query that looks something like
    select
    colum 1,
    column 2,
    column 3
    from table t1
    where t1.c1 = :p10_item1
    and t1.c2 = :p10_item2Using apex 4.0
    thanks
    Seetharaman

    If these items hidden, try making them display only .
    Also what happens when you move the items from region 1 to region 2.
    From my experience items do not have much of a dependency on the region they are attached to other than cases when the region is not rendered(when its condition fails) and then the item values become null(bcoz they themselves are not rendered).

  • Is there a way to request values of configuration variables from EM?

    Hi, All.
    Please advise is there a way to request values for some configuration variables from EM.
    For example there is a variable - DefaultRowsDisplayedInDownload.
    How can I get its value in Repository or Analyses?
    My use case is: disable navigation in aggregated report with count > DefaultRowsDisplayedInDownload
    Thanks in advance.

    I dont think you can call them in analysis since these tags are used in the form of xml files used as instructions to the application, within the application you may not use them.
    More over there is no syntax as obiee variable to call them.
    if helps pls mark as correct/helpful

  • Passing request value into a query

    Hi,
    I was wondering whether it was possible to pass a request value into a report query in apex 3.2.
    I have a button with a submit value of "ALL" which when pressed i need to open up all the contents of a query as opposed to on those that have been completed.
    SELECT *
    FROM TABLE
    WHERE (STATUS = 'COMPLETE' OR :REQUEST = 'ALL')
    I was expecting this to return only completed records, unless the Button is pressed and then I want to return all records regardless of status.
    Can someone please advise whether this will work? At present it does not seem to recognise the request.
    Cheers,
    ca84

    query could not be parsed: select "ASCIDD" "ASCIDD", "TEMIDD1" "TEMIDD1", "NAME" "NAME", "LSTIDD1" "LSTIDD1", "ASCORDOPT"
    "ASCORDOPT", "ASCORD" "ASCORD", "TEMIDD2" "TEMIDD2", "TEMDES_COUNT" "TEMDES_COUNT" from ( /* Formatted on 2010/12/06
    15:23 (Formatter Plus v4.8.8) */ SELECT ascidd, temidd1, (SELECT temdes FROM lsttem WHERE temtyp = 'D' AND lsttem.temidd =
    temidd1) NAME, lstidd1, ascordopt,ascord,TEMIDD1 TEMIDD2, CASE (:REQUEST) WHEN 'COUNT' THEN
    LSTTEM_PKG_1.CountRecords(TEMIDD1) ELSE 0 END "TEMDES_COUNT" FROM lsttemasc WHERE lstidd1 = :p355_lstidd and exists
    (select 'y' from lsttem where bizidd1 = :P355_BIZIDD1 and lsttem.TEMIDD = lsttemasc.TEMIDD1) order by ascord;) apex$_rpt_src
    failed to parse SQL query: ORA-00911: invalid characterThe ";" looks very suspicious...
    And please:
    <li>Update your forum profile with a better handle than "user13453962"
    <li> DON'T post unrelated questions as follow-ups to existing threads. This issue is not connected to the OP.

  • Sys.webforms.page request manager server error exception:An unknown error occured while processing the request on server. The status code returned from the server was:0

    sys.webforms.page request manager server error exception:An unknown error occured while processing the request on server. The status code returned from the server was:0 We got this response(In firebug console) when we try to click on link (after leave webpage for 3 minuts ideal) which is AJAX based. Please reply ASAP because its urgent.

    Hi SP,
    Please check if the following web config appSettins value settings from SSRS server could fix the issue (Note, back up your original web config file before any modification).
    http://stackoverflow.com/questions/10911610/ssrs-webpage-error-status-code-500
    http://srinivasbn.blogspot.in/2013/09/syswebformspagerequestmanagerservererro.html
    http://connect.microsoft.com/SQLServer/feedback/details/782155/ssrs-2012-failed-with-win32-error-0x03e3
    If you have more questions about the SSRS error logs related to this issue, you can post in the SSRS forum for a better assistance with more experts.
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices
    Thanks
    We are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Large XML Publisher reports fail with client-error-request-value-too-long

    We are running BI Publisher 5.6.3 with Oracle Applications 11.5.10.2 (ATG.H RUP 5), and are having frequent failures with client-error-request-value-too-long messages on large PDF reports that cause the entire report to not print.
    The exact error message is as follows:
    lp: unable to print file: client-error-request-value-too-long
    Pasta: Error: Print failed. Command=lp -c -dPDX_B6_1LJ5200NEAST /logs/temp/pasta3262_0.tmp
    Pasta: Error: Check printCommand/ntPrintCommand in pasta.cfg
    Pasta: Error: Preprocess or Print command failed!!!
    APP-FND-00500: AFPPRN received a return code of failure from routine FDUPRN. Program exited with status 1
    Cause: AFPPRN received a return code of failure from the OSD routine FDUPRN. Program exited with status 1.
    Action: Review your concurrent request log file for more detailed information.
    I have Google'd client-error-request-value-too-long, and found it is a common CUPS issue on Linux. The popular solutions (having /var/spool/cups and /var/spool/cups/tmp) are already in place. Also, the temp files are nowhere near 2 GB (44MB).
    Has anyone had this issue with BI Publisher on Linux?

    Thanks for the link. It looks like the sysadmins have throttled cups to low to allow large bitmapped print jobs:
    grep MaxRequestSize cupsd.conf
    # MaxRequestSize: controls the maximum size of HTTP requests and print files.
    MaxRequestSize 10M
    I am trying to get a more reasonable size limit.

  • Large BI Publisher reports fail with client-error-request-value-too-long

    We are running BI Publisher 5.6.3 with Oracle Applications 11.5.10.2, and are having frequent failures with client-error-request-value-too-long messages on large PDF reports that cause the entire report to not print.
    The exact error message is as follows:
    lp: unable to print file: client-error-request-value-too-long
    Pasta: Error: Print failed. Command=lp -c -dPDX_B6_1LJ5200NEAST /logs/temp/pasta3262_0.tmp
    Pasta: Error: Check printCommand/ntPrintCommand in pasta.cfg
    Pasta: Error: Preprocess or Print command failed!!!
    APP-FND-00500: AFPPRN received a return code of failure from routine FDUPRN. Program exited with status 1
    Cause: AFPPRN received a return code of failure from the OSD routine FDUPRN. Program exited with status 1.
    Action: Review your concurrent request log file for more detailed information.
    I have Google'd client-error-request-value-too-long, and found it is a common CUPS issue on Linux. The popular solutions (having /var/spool/cups and /var/spool/cups/tmp) are already in place. Also, the temp files are nowhere near 2 GB (44MB).
    Has anyone had this issue with BI Publisher on Linux?

    The linux sysadmins set the cups max_request_size at 10 MB, which was causing this error. Once the restriction was lifted, the reports ran without error.

  • How to use 'REQUEST' value on PL/SQL

    Hi All,
    I have assigned 'SEARCH' as button request to search button. I want to use this value in PL/SQL some thing like
    IF REQUEST='SEARCH' THEN
    --do something
    ELSE
    --do something else
    END IF;
    Can any one suggest how to access the 'REQUEST' value?
    Thanks in advance.
    Regards,
    Hari

    Hi rchalton!
    Sorry for that. Here is an english document which also shows an example of how to use v('REQUEST') or :REQUEST.
    [http://download.oracle.com/docs/cd/E14373_01/appdev.32/e11838/concept.htm]
    regards
    Edited by: Florian W. on 06.04.2009 15:35
    I've also tried to translate this link from german into english with google and it worked very good.

  • Client-error-request-value-too-long

    What is this error???? I am trying to add an Epson 1280 printer and I get this error. I have the most current driver and not sure why this isn't working.

    My flatmate had this "client-error-request-value-too-long" problem with her (powerpc) powerbook. Nearly everything I tried didn't work:
    1) Reinstalling drivers
    2) Permissions repair
    3) Resetting print system using Fixamac's Printer Setup Repair Utility
    4) Updating from 10.4.10 to 10.4.11
    5) Using the command line to try and recreate the directory: /var/spool/cups/tmp (which told me it already existed)
    6) Using Transmit (with show invisible files turned on) to browse to /var/spool/cups/ and try and recreate the tmp folder
    On the last point I couldn't change anything about the /var/spool/cups/ directory because the permissions were corrupted in some way. It keep telling me tmp already existed but I couldn't see it.
    In the end what did work was enabling and logging in as root, browsing to /var/spool/ using Transmit and deleting the cups folder and then recreating. It took a few tries to delete too, but in the end I managed to remove it.
    Of course I wouldn't actually recommend this. I'm no Unix geek so god knows what I might have broken in the process, so I'm going to reinstall her system with the Archive and Install options when I get a chance, which is what I'd recommend doing in the first place to anyone having this problem.

  • USB Printing - client-error-request-value-too-long

    A little while back, my iSight suddenly stopped working and so I did a full format and reinstall to 'fix' the problem. The problem wasn't 'fixed' through this action. Instead, I had to disconnect power and let the computer sit there for a bit and think about what it had done (naughty iMac). Anyway... Another USB-related problem just popped up - this time with my printer.
    The printer is a Canon IP4000 and I just installed the latest drivers to try to fix this error. The first error was something about not being able to write to the device. I thought that was stupid and would probably be fixed by deleting the printer and then reinstalling it. I have so far 'uninstalled' the printer (more or less just removed it from the printers list in the printer utility) and now I can't re-add it to the list to install it. The error reads as follows:
    An error occurred while trying to add the selected printer.
    client-error-request-value-too-long
    I have tried Google but I just don't have the time to sort through all kinds of explainations on how CUPS works on Linux (apparently, this error is related to CUPS in some way). I also tried searching the forum for the error message but found nothing. So here I am again asking for some help from those who might have seen this problem before.
    This is on a fresh install and I have tried it on newly created users to no avail.
    Thanks for any help! -Thomas

    I've recently had this error which came up because the spool folder was missing. In the terminal:
    sudo mkdir /private/var/spool
    sudo mkdir /private/var/spool/cups
    puts the proper folders in their place. Repair permissions afterwards.
    Through the cups web interface, the error is "Request entity too large"
    Panther has the same folders, but a different error comes up.
    The above cups folder has different permissions than the default. Probably the same for Tiger and Panther but just to be safe, repair permissions.

  • F4 display upon value request - values to be selected

    Hello experts,
    I have an issue here. When the function module F4IF_INT_TABLE_VALUE_REQUEST is used in my program for displaying the PSTYV field values on the selection screen upon value request. Now, when the popup opens there are 53 number of item categories, i.e., from VBRP table. If any one of them is selected and double clicked, they should be selected as per the conventional idea, but nothing is being selected after double clicking. How to achieve this ?  The following is my code.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_PSTYV-LOW.
    SELECT DISTINCT PSTYV
      FROM VBRP
      INTO TABLE GT_PSTYV.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
        retfield               = 'PSTYV'
       VALUE_ORG              = 'S'
      tables
        value_tab              = GT_PSTYV
       RETURN_TAB             = GT_RETURN
    EXCEPTIONS
       PARAMETER_ERROR        = 1
       NO_VALUES_FOUND        = 2
       OTHERS                 = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Thanks and regards,
    Ambareesh J.

    Try passing parameters dynpprog dynppr and dynprofield as below:
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
         EXPORTING
           retfield        = 'PSTYV'
           value_org       = 'S'
          dynpprog        = sy-cprog
           dynpnr          = sy-dynnr
           dynprofield     = 'SO_PSTYV-LOW'
         TABLES
           value_tab       = gt_pstyv
           return_tab      = gt_return
         EXCEPTIONS
           parameter_error = 1
           no_values_found = 2
           OTHERS          = 3.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
    Regards

Maybe you are looking for